X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f5743451874346b0dcca3fc18f767ef1d153e84d..0213808c52019edebba66cd0163867a441f8a4a0:/src/bookmarks/models.py?ds=inline diff --git a/src/bookmarks/models.py b/src/bookmarks/models.py index 8747ffbd3..ca53cd6c3 100644 --- a/src/bookmarks/models.py +++ b/src/bookmarks/models.py @@ -34,16 +34,13 @@ class Bookmark(Syncable, models.Model): audio_l = self.book.get_audio_length() except: audio_l = 60 + if self.anchor: self.mode = 'text' - if audio_l: - self.audio_timestamp = audio_l * .4 + self.audio_timestamp = self.book.sync_elid(self.anchor) if self.audio_timestamp: self.mode = 'audio' - if self.audio_timestamp > audio_l: - self.audio_timestamp = audio_l - if audio_l: - self.anchor = 'f20' + self.anchor = self.book.sync_ts(self.audio_timestamp) or '' return super().save(*args, **kwargs) @classmethod @@ -118,7 +115,7 @@ class Bookmark(Syncable, models.Model): } -class Quote(models.Model): +class Quote(Syncable, models.Model): uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False) user = models.ForeignKey('auth.User', models.CASCADE) book = models.ForeignKey('catalogue.Book', models.CASCADE) @@ -128,10 +125,21 @@ class Quote(models.Model): start_offset = models.IntegerField(null=True, blank=True) end_offset = models.IntegerField(null=True, blank=True) text = models.TextField(blank=True) + updated_at = models.DateTimeField(auto_now=True) + reported_timestamp = models.DateTimeField(default=now) + deleted = models.BooleanField(default=False) + + syncable_fields = [ + 'deleted', + ] def __str__(self): return str(self.uuid) + @property + def timestamp(self): + return self.updated_at.timestamp() + def get_for_json(self): return { 'uuid': self.uuid, @@ -154,6 +162,3 @@ def from_path(elem, path): n = path.pop(0) elem = list(child_nodes(elem))[n] return elem - - -