X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/41886adc4962a2aea572be1f71297c8a01bf99fb..13f286427e0ceb7a6c442844c447c7c3d5495871:/src/catalogue/models.py diff --git a/src/catalogue/models.py b/src/catalogue/models.py index 1eb497f0..151a13e4 100644 --- a/src/catalogue/models.py +++ b/src/catalogue/models.py @@ -138,6 +138,7 @@ class NotableBook(OrderableModel): class Category(WikidataModel): name = models.CharField(_("name"), max_length=255) slug = models.SlugField(max_length=255, unique=True) + description = models.TextField(_("description"), blank=True, help_text=_('for publication')) class Meta: abstract = True @@ -287,6 +288,12 @@ class Book(WikidataModel): def translators_last_names(self): return ', '.join(a.last_name for a in self.translators.all()) + def document_book__project(self): + b = self.document_books.first() + if b is None: return '' + if b.project is None: return '' + return b.project.name + def get_estimated_costs(self): return { work_type: work_type.calculate(self) @@ -315,6 +322,25 @@ class Book(WikidataModel): self.monthly_views_reader = stats['views_reader'] / months self.save(update_fields=['monthly_views_page', 'monthly_views_reader']) + @property + def content_stats(self): + if hasattr(self, '_content_stats'): + return self._content_stats + try: + stats = self.document_books.first().wldocument().get_statistics()['total'] + except Exception as e: + stats = {} + self._content_stats = stats + return stats + + chars = lambda self: self.content_stats.get('chars', '') + chars_with_fn = lambda self: self.content_stats.get('chars_with_fn', '') + words = lambda self: self.content_stats.get('words', '') + words_with_fn = lambda self: self.content_stats.get('words_with_fn', '') + verses = lambda self: self.content_stats.get('verses', '') + verses_with_fn = lambda self: self.content_stats.get('verses_with_fn', '') + chars_out_verse = lambda self: self.content_stats.get('chars_out_verse', '') + chars_out_verse_with_fn = lambda self: self.content_stats.get('chars_out_verse_with_fn', '') class CollectionCategory(models.Model): name = models.CharField(_("name"), max_length=255)