from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
-from slughifi import slughifi
+from fnpdjango.utils.text.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
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)
+ project = models.ForeignKey(Project, null=True, blank=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)
parse_dublincore=parse_dublincore,
strict=strict)
- def publish(self, user):
+ def publish(self, user, fake=False):
"""
Publishes a book on behalf of a (local) user.
"""
self.assert_publishable()
changes = self.get_current_changes(publishable=True)
book_xml = self.materialize(changes=changes)
- apiclient.api_call(user, "books/", {"book_xml": book_xml})
+ if not fake:
+ apiclient.api_call(user, "books/", {"book_xml": book_xml})
# record the publish
br = BookPublishRecord.objects.create(book=self, user=user)
for c in changes: