X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/c4309c888873728d417c2964c40cb9d03a89d441..937a362ba8599c9571824493c13fed05223fb561:/src/catalogue/models.py diff --git a/src/catalogue/models.py b/src/catalogue/models.py index 92275ecf..f9a2ecfe 100644 --- a/src/catalogue/models.py +++ b/src/catalogue/models.py @@ -9,6 +9,7 @@ from admin_ordering.models import OrderableModel from wikidata.client import Client from .constants import WIKIDATA from .wikidata import WikidataModel +from .wikimedia import WikiMedia class Author(WikidataModel): @@ -51,8 +52,13 @@ class Author(WikidataModel): ], ) notes = models.TextField(_("notes"), blank=True) + gazeta_link = models.CharField(_("gazeta link"), max_length=255, blank=True) culturepl_link = models.CharField(_("culture.pl link"), max_length=255, blank=True) + plwiki = models.CharField(blank=True, max_length=255) + photo = models.ImageField(blank=True, null=True, upload_to='catalogue/author/') + photo_source = models.CharField(blank=True, max_length=255) + photo_attribution = models.CharField(max_length=255, blank=True) description = models.TextField(_("description"), blank=True) @@ -77,7 +83,11 @@ class Author(WikidataModel): year_of_death = WIKIDATA.DATE_OF_DEATH place_of_death = WIKIDATA.PLACE_OF_DEATH gender = WIKIDATA.GENDER - notes = "description" + notes = WikiMedia.append("description") + plwiki = "plwiki" + photo = WikiMedia.download(WIKIDATA.IMAGE) + photo_source = WikiMedia.descriptionurl(WIKIDATA.IMAGE) + photo_attribution = WikiMedia.attribution(WIKIDATA.IMAGE) def _supplement(obj): if not obj.first_name and not obj.last_name: @@ -217,15 +227,31 @@ class Book(WikidataModel): return f'https://wolnelektury.pl/katalog/lektura/{self.slug}/' def authors_str(self): + if not self.pk: + return '' return ", ".join(str(author) for author in self.authors.all()) authors_str.admin_order_field = 'authors__last_name' authors_str.short_description = _('Author') def translators_str(self): + if not self.pk: + return '' return ", ".join(str(author) for author in self.translators.all()) translators_str.admin_order_field = 'translators__last_name' translators_str.short_description = _('Translator') + def authors_first_names(self): + return ', '.join(a.first_name for a in self.authors.all()) + + def authors_last_names(self): + return ', '.join(a.last_name for a in self.authors.all()) + + def translators_first_names(self): + return ', '.join(a.first_name for a in self.translators.all()) + + def translators_last_names(self): + return ', '.join(a.last_name for a in self.translators.all()) + def get_estimated_costs(self): return { work_type: work_type.calculate(self) @@ -255,6 +281,7 @@ class Collection(models.Model): slug = models.SlugField(max_length=255, unique=True) category = models.ForeignKey(CollectionCategory, models.SET_NULL, null=True, blank=True, verbose_name=_("category")) notes = models.TextField(_("notes"), blank=True) + description = models.TextField(_("description"), blank=True) class Meta: ordering = ('category', 'name')