X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/6a259b96cff47e1fd64cbfd6f3d1e1d8e8b6486c..4c2d6c95b5df8881bc9ca664f3a30b6d8ad7c11b:/apps/catalogue/models/chunk.py diff --git a/apps/catalogue/models/chunk.py b/apps/catalogue/models/chunk.py index e68b1c17..9b1dcbae 100755 --- a/apps/catalogue/models/chunk.py +++ b/apps/catalogue/models/chunk.py @@ -11,6 +11,7 @@ from django.utils.translation import ugettext_lazy as _ from catalogue.helpers import cached_in_field from catalogue.managers import VisibleManager from catalogue.tasks import refresh_instance +from catalogue.xml_tools import GradedText from dvcs import models as dvcs_models @@ -20,8 +21,9 @@ class Chunk(dvcs_models.Document): book = models.ForeignKey('Book', editable=False, verbose_name=_('book')) number = models.IntegerField(_('number')) - slug = models.SlugField(_('slug')) title = models.CharField(_('title'), max_length=255, blank=True) + slug = models.SlugField(_('slug')) + gallery_start = models.IntegerField(_('gallery start'), null=True, blank=True) # cache _short_html = models.TextField(null=True, blank=True, editable=False) @@ -38,6 +40,7 @@ class Chunk(dvcs_models.Document): ordering = ['number'] verbose_name = _('chunk') verbose_name_plural = _('chunks') + permissions = [('can_pubmark', 'Can mark for publishing')] # Representing # ============ @@ -61,7 +64,7 @@ class Chunk(dvcs_models.Document): # Creating and manipulation # ========================= - def split(self, slug, title='', adjust_slug=False, **kwargs): + def split(self, slug, title='', **kwargs): """ Create an empty chunk after this one """ self.book.chunk_set.filter(number__gt=self.number).update( number=models.F('number')+1) @@ -70,7 +73,7 @@ class Chunk(dvcs_models.Document): new_slug = self.book.make_chunk_slug(slug) try: new_chunk = self.book.chunk_set.create(number=self.number+1, - slug=new_slug, title=title, **kwargs) + slug=new_slug[:50], title=title[:255], **kwargs) except IntegrityError: pass return new_chunk @@ -121,3 +124,6 @@ class Chunk(dvcs_models.Document): self.changed self.hidden self.short_html + + def graded(self, master=None): + return GradedText(self.materialize(), master)