fix mark time edge case
This commit is contained in:
parent
a10e7ffc0a
commit
7b70c8499d
4 changed files with 20 additions and 7 deletions
|
@ -109,7 +109,7 @@ class Setup:
|
|||
}
|
||||
)
|
||||
else:
|
||||
logger.debug(f"Default relay is disabled.")
|
||||
logger.info(f"Default relay is disabled.")
|
||||
else:
|
||||
if relay_follow:
|
||||
logger.debug(
|
||||
|
|
|
@ -194,14 +194,12 @@ class Mark:
|
|||
self.shelfmember.visibility = visibility
|
||||
shelfmember_changed = True
|
||||
# retract most recent post about this status when visibility changed
|
||||
latest_post = self.shelfmember.latest_post
|
||||
if latest_post:
|
||||
Takahe.delete_posts([latest_post.pk])
|
||||
if self.shelfmember.latest_post:
|
||||
Takahe.delete_posts([self.shelfmember.latest_post.pk])
|
||||
if created_time and created_time != self.shelfmember.created_time:
|
||||
self.shelfmember.created_time = created_time
|
||||
log_entry.timestamp = created_time
|
||||
log_entry.save(update_fields=["timestamp"])
|
||||
self.shelfmember.change_timestamp(created_time)
|
||||
shelfmember_changed = True
|
||||
if shelfmember_changed:
|
||||
self.shelfmember.save()
|
||||
|
|
|
@ -137,7 +137,7 @@ class ShelfMember(ListMember):
|
|||
return log
|
||||
|
||||
def log_and_delete(self):
|
||||
ShelfLogEntry.objects.create(
|
||||
ShelfLogEntry.objects.get_or_create(
|
||||
owner=self.owner,
|
||||
shelf_type=None,
|
||||
item=self.item,
|
||||
|
@ -180,6 +180,14 @@ class ShelfLogEntry(models.Model):
|
|||
"takahe.Post", related_name="log_entries", through="ShelfLogEntryPost"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=["owner", "item", "timestamp", "shelf_type"],
|
||||
name="unique_shelf_log_entry",
|
||||
),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.owner}:{self.shelf_type}:{self.item.uuid}:{self.timestamp}"
|
||||
|
||||
|
|
|
@ -131,7 +131,14 @@ def mark(request: AuthedHttpRequest, item_uuid):
|
|||
)
|
||||
mark_date = None
|
||||
if request.POST.get("mark_anotherday"):
|
||||
dt = parse_datetime(request.POST.get("mark_date", "") + " 20:00:00")
|
||||
shelf_time_offset = {
|
||||
ShelfType.WISHLIST: " 20:00:00",
|
||||
ShelfType.PROGRESS: " 21:00:00",
|
||||
ShelfType.COMPLETE: " 22:00:00",
|
||||
}
|
||||
dt = parse_datetime(
|
||||
request.POST.get("mark_date", "") + shelf_time_offset[status]
|
||||
)
|
||||
mark_date = (
|
||||
dt.replace(tzinfo=timezone.get_current_timezone()) if dt else None
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue