X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/f469680f323a7a4c9cfe894b5af13d4357f7bca4..273bfef3914a3196102e015297c5a64d22766a85:/apps/catalogue/models/book.py diff --git a/apps/catalogue/models/book.py b/apps/catalogue/models/book.py index cce9c729..02396737 100755 --- a/apps/catalogue/models/book.py +++ b/apps/catalogue/models/book.py @@ -422,20 +422,31 @@ class Book(models.Model): parse_dublincore=parse_dublincore, strict=strict) - def publish(self, user, fake=False, host=None): + def publish(self, user, fake=False, host=None, days=0, beta=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) if not fake: - data = {"book_xml": book_xml} + book_xml = self.materialize(changes=changes) + data = {"book_xml": book_xml, "days": days} if host: - data['gallery_url'] = 'http://' + host + self.gallery_url() - apiclient.api_call(user, "books/", data) - # record the publish - br = BookPublishRecord.objects.create(book=self, user=user) - for c in changes: - ChunkPublishRecord.objects.create(book_record=br, change=c) - post_publish.send(sender=br) + data['gallery_url'] = host + self.gallery_url() + apiclient.api_call(user, "books/", data, beta=beta) + if not beta: + # record the publish + br = BookPublishRecord.objects.create(book=self, user=user) + for c in changes: + ChunkPublishRecord.objects.create(book_record=br, change=c) + if not self.public and days == 0: + self.public = True + self.save() + if self.public and days > 0: + self.public = False + self.save() + post_publish.send(sender=br) + + def latex_dir(self): + doc = self.wldocument() + return doc.latex_dir(cover=True, ilustr_path=self.gallery_path())