This commit is contained in:
Your Name 2023-01-12 11:02:14 -05:00 committed by Henri Dickson
parent 1550e3421a
commit ab58d9975b
2 changed files with 19 additions and 5 deletions

View file

@ -520,14 +520,12 @@ class ShelfLogEntry(models.Model):
edited_time = models.DateTimeField(auto_now=True)
def __str__(self):
return f"{self.owner}:{self.shelf}:{self.item}:{self.metadata}"
return f"{self.owner}:{self.shelf_type}:{self.item.uuid}:{self.timestamp}:{self.metadata}"
@property
def action_label(self):
if self.shelf:
return ShelfManager.get_action_label(
self.shelf.shelf_type, self.item.category
)
if self.shelf_type:
return ShelfManager.get_action_label(self.shelf_type, self.item.category)
else:
return _("移除标记")

View file

@ -2,6 +2,7 @@ from django.test import TestCase
from .models import *
from catalog.models import *
from users.models import User
import time
class CollectionTest(TestCase):
@ -47,33 +48,48 @@ class ShelfTest(TestCase):
self.assertEqual(q1.members.all().count(), 0)
self.assertEqual(q2.members.all().count(), 0)
shelf_manager.move_item(book1, ShelfType.WISHLIST)
time.sleep(0.001)
shelf_manager.move_item(book2, ShelfType.WISHLIST)
time.sleep(0.001)
self.assertEqual(q1.members.all().count(), 2)
shelf_manager.move_item(book1, ShelfType.PROGRESS)
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)
self.assertEqual(log.count(), 2)
self.assertEqual(log.last().metadata, {})
shelf_manager.move_item(book1, ShelfType.PROGRESS, metadata={"progress": 1})
time.sleep(0.01)
self.assertEqual(q1.members.all().count(), 1)
self.assertEqual(q2.members.all().count(), 1)
log = shelf_manager.get_log_for_item(book1)
self.assertEqual(log.count(), 3)
self.assertEqual(log.last().metadata, {"progress": 1})
shelf_manager.move_item(book1, ShelfType.PROGRESS, metadata={"progress": 1})
time.sleep(0.001)
log = shelf_manager.get_log_for_item(book1)
self.assertEqual(log.count(), 3)
self.assertEqual(log.last().metadata, {"progress": 1})
shelf_manager.move_item(book1, ShelfType.PROGRESS, metadata={"progress": 10})
time.sleep(0.001)
log = shelf_manager.get_log_for_item(book1)
self.assertEqual(log.count(), 4)
self.assertEqual(log.last().metadata, {"progress": 10})
shelf_manager.move_item(book1, ShelfType.PROGRESS)
time.sleep(0.001)
log = shelf_manager.get_log_for_item(book1)
self.assertEqual(log.count(), 4)
self.assertEqual(log.last().metadata, {"progress": 10})
shelf_manager.move_item(book1, ShelfType.PROGRESS, metadata={"progress": 90})
time.sleep(0.001)
log = shelf_manager.get_log_for_item(book1)
self.assertEqual(log.count(), 5)
self.assertEqual(Mark(user, book1).visibility, 0)
shelf_manager.move_item(
book1, ShelfType.PROGRESS, metadata={"progress": 90}, visibility=1
)
time.sleep(0.001)
self.assertEqual(Mark(user, book1).visibility, 1)
self.assertEqual(shelf_manager.get_log_for_item(book1).count(), 5)