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:
parent
ab58d9975b
commit
1d3c8afcd9
3 changed files with 25 additions and 9 deletions
18
journal/migrations/0004_alter_shelflogentry_timestamp.py
Normal file
18
journal/migrations/0004_alter_shelflogentry_timestamp.py
Normal 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(),
|
||||
),
|
||||
]
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue