allow mark in a different date; shelf change will send new toot instead of edit; log shelf change for future display

This commit is contained in:
Your Name 2023-01-12 17:13:23 -05:00 committed by Henri Dickson
parent ab58d9975b
commit 1d3c8afcd9
3 changed files with 25 additions and 9 deletions

View file

@ -0,0 +1,18 @@
# Generated by Django 3.2.16 on 2023-01-12 22:10
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("journal", "0003_auto_20230113_0506"),
]
operations = [
migrations.AlterField(
model_name="shelflogentry",
name="timestamp",
field=models.DateTimeField(),
),
]

View file

@ -590,7 +590,9 @@ class ShelfManager:
if metadata is None:
metadata = last_metadata or {}
log_time = (
new_shelfmember.created_time if new_shelfmember else timezone.now()
new_shelfmember.created_time
if new_shelfmember and new_shelfmember != last_shelfmember
else timezone.now()
)
ShelfLogEntry.objects.create(
owner=self.owner,
@ -927,8 +929,8 @@ class Mark:
log = ShelfLogEntry.objects.filter(
owner=self.owner,
item=self.item,
created_time=self.shelfmember.created_time,
)
timestamp=self.shelfmember.created_time,
).first()
self.shelfmember.created_time = created_time
self.shelfmember.save(update_fields=["created_time"])
if log:
@ -937,7 +939,7 @@ class Mark:
else:
ShelfLogEntry.objects.create(
owner=self.owner,
shelf=self.shelf,
shelf_type=shelf_type,
item=self.item,
metadata=self.metadata,
timestamp=created_time,
@ -963,14 +965,10 @@ class Mark:
self.save = lambda **args: None
if not share_mark(self):
raise ValueError("sharing failed")
if not self.shelfmember.metadata:
self.shelfmember.metadata = {}
if self.shelfmember.metadata.get("shared_link") != self.shared_link:
self.shelfmember.metadata["shared_link"] = self.shared_link
self.shelfmember.save()
elif share_as_new_post and self.shelfmember:
if not self.shelfmember.metadata:
self.shelfmember.metadata = {}
self.shelfmember.metadata["shared_link"] = None
self.shelfmember.save()

View file

@ -60,7 +60,7 @@ class ShelfTest(TestCase):
self.assertEqual(log.count(), 2)
self.assertEqual(log.last().metadata, {})
shelf_manager.move_item(book1, ShelfType.PROGRESS, metadata={"progress": 1})
time.sleep(0.01)
time.sleep(0.001)
self.assertEqual(q1.members.all().count(), 1)
self.assertEqual(q2.members.all().count(), 1)
log = shelf_manager.get_log_for_item(book1)