X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4437d85206a7deb768c75a4fd1cb1b474e87efe3..a7a2b1c6daaa2266645abc5ee4fac91ce10a4c39:/apps/wiki/models.py?ds=sidebyside diff --git a/apps/wiki/models.py b/apps/wiki/models.py index 4dc70173..9eb77a5c 100644 --- a/apps/wiki/models.py +++ b/apps/wiki/models.py @@ -28,6 +28,7 @@ class Book(models.Model): parent = models.ForeignKey('self', null=True, blank=True, verbose_name=_('parent'), related_name="children") parent_number = models.IntegerField(_('parent number'), null=True, blank=True, db_index=True) + last_published = models.DateTimeField(null=True, editable=False) _list_html = models.TextField(editable=False, null=True) @@ -78,18 +79,14 @@ class Book(models.Model): self.save(reset_list_html=False) return mark_safe(self._list_html) - @staticmethod - def publish_tag(): - return dvcs_models.Tag.get('publish') - - def materialize(self, tag=None): + def materialize(self, publishable=True): """ Get full text of the document compiled from chunks. Takes the current versions of all texts - or versions most recently tagged by a given tag. + or versions most recently tagged for publishing. """ - if tag: - changes = [chunk.last_tagged(tag) for chunk in self] + if publishable: + changes = [chunk.publishable() for chunk in self] else: changes = [chunk.head for chunk in self] if None in changes: @@ -183,9 +180,6 @@ class Chunk(dvcs_models.Document): return "%s, %s (%d/%d)" % (self.book.title, self.comment, self.number, len(self.book)) - def publishable(self): - return self.last_tagged(Book.publish_tag()) - def split(self, slug, comment='', creator=None): """ Create an empty chunk after this one """ self.book.chunk_set.filter(number__gt=self.number).update( @@ -194,6 +188,11 @@ class Chunk(dvcs_models.Document): creator=creator, slug=slug, comment=comment) return new_chunk + def list_html(self): + _list_html = render_to_string('wiki/chunk_list_item.html', + {'chunk': self}) + return mark_safe(_list_html) + @staticmethod def listener_saved(sender, instance, created, **kwargs): if instance.book: