from wikidata.client import Client
from .constants import WIKIDATA
from .wikidata import WikidataModel
+from .wikimedia import WikiMedia
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)
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:
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)
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')