Librarian in regular requirements.
[redakcja.git] / apps / catalogue / models / chunk.py
index e68b1c1..fc3a9ea 100755 (executable)
@@ -20,8 +20,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, default=1)
 
     # cache
     _short_html = models.TextField(null=True, blank=True, editable=False)
@@ -38,6 +39,7 @@ class Chunk(dvcs_models.Document):
         ordering = ['number']
         verbose_name = _('chunk')
         verbose_name_plural = _('chunks')
+        permissions = [('can_pubmark', 'Can mark for publishing')]
 
     # Representing
     # ============
@@ -47,7 +49,7 @@ class Chunk(dvcs_models.Document):
 
     @models.permalink
     def get_absolute_url(self):
-        return ("wiki_editor", [self.book.slug, self.slug])
+        return "wiki_editor", [self.book.slug, self.slug]
 
     def pretty_name(self, book_length=None):
         title = self.book.title
@@ -57,11 +59,10 @@ class Chunk(dvcs_models.Document):
             title += " (%d/%d)" % (self.number, book_length)
         return title
 
-
     # 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)
@@ -69,8 +70,9 @@ class Chunk(dvcs_models.Document):
         while not new_chunk:
             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)
+                new_chunk = self.book.chunk_set.create(
+                    number=self.number+1,
+                    slug=new_slug[:50], title=title[:255], **kwargs)
             except IntegrityError:
                 pass
         return new_chunk
@@ -82,7 +84,6 @@ class Chunk(dvcs_models.Document):
         else:
             return cls.objects.get(book__slug=book_slug, slug=chunk_slug)
 
-
     # State & cache
     # =============
 
@@ -90,7 +91,7 @@ class Chunk(dvcs_models.Document):
         change = self.publishable()
         if not change:
             return False
-        return change.publish_log.exists()
+        return not change.publish_log.exists()
 
     def is_changed(self):
         if self.head is None: