local changes from server
[redakcja.git] / apps / catalogue / models / book.py
index 772634c..34ac796 100755 (executable)
@@ -3,6 +3,7 @@
 # This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
+from django.contrib.auth.models import User
 from django.contrib.sites.models import Site
 from django.db import models, transaction
 from django.template.loader import render_to_string
@@ -10,25 +11,30 @@ from django.utils.translation import ugettext_lazy as _
 from django.conf import settings
 from slughifi import slughifi
 
-
 import apiclient
 from catalogue.helpers import cached_in_field, GalleryMerger
-from catalogue.models import BookPublishRecord, ChunkPublishRecord
+from catalogue.models import BookPublishRecord, ChunkPublishRecord, Project
 from catalogue.signals import post_publish
 from catalogue.tasks import refresh_instance, book_content_updated
 from catalogue.xml_tools import compile_text, split_xml
 from cover.models import Image
+from organizations.models import Organization
 import os
 import shutil
 import re
 
+
 class Book(models.Model):
     """ A document edited on the wiki """
 
     title = models.CharField(_('title'), max_length=255, db_index=True)
     slug = models.SlugField(_('slug'), max_length=128, unique=True, db_index=True)
     public = models.BooleanField(_('public'), default=True, db_index=True)
-    gallery = models.CharField(_('scan gallery name'), max_length=255, blank=True)
+    gallery = models.CharField(u'materiały', max_length=255, blank=True)
+    project = models.ForeignKey(Project, null=True, blank=True)
+
+    owner_user = models.ForeignKey(User, null=True)
+    owner_organization = models.ForeignKey(Organization, null=True)
 
     #wl_slug = models.CharField(_('title'), max_length=255, null=True, db_index=True, editable=False)
     parent = models.ForeignKey('self', null=True, blank=True, verbose_name=_('parent'), related_name="children", editable=False)
@@ -51,8 +57,8 @@ class Book(models.Model):
     class Meta:
         app_label = 'catalogue'
         ordering = ['title', 'slug']
-        verbose_name = _('book')
-        verbose_name_plural = _('books')
+        verbose_name = u'moduł'
+        verbose_name_plural = u'moduły'
 
 
     # Representing
@@ -205,7 +211,8 @@ class Book(models.Model):
         # and move the gallery starts
         if gm.was_merged:
                 for chunk in self[len(self) - len_other:]:
-                        chunk.gallery_start += gm.dest_size - gm.num_deleted
+                        old_start = chunk.gallery_start or 1
+                        chunk.gallery_start = old_start + gm.dest_size - gm.num_deleted
                         chunk.save()
 
         other.delete()
@@ -318,7 +325,7 @@ class Book(models.Model):
         return len(self) == 1
     single = cached_in_field('_single')(is_single)
 
-    @cached_in_field('_short_html')
+    #@cached_in_field('_short_html')
     def short_html(self):
         return render_to_string('catalogue/book_list/book.html', {'book': self})