X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b2d342589a7889a3b096e7192453d53bd28eed7d..ed79e41001ebd01207fcea50e09aea5ebcae8a0d:/src/picture/models.py diff --git a/src/picture/models.py b/src/picture/models.py index 020d3f565..b39661f29 100644 --- a/src/picture/models.py +++ b/src/picture/models.py @@ -79,9 +79,9 @@ class Picture(models.Model): _('sort key by author'), max_length=120, db_index=True, editable=False, default=u'') created_at = models.DateTimeField(_('creation date'), auto_now_add=True, db_index=True) changed_at = models.DateTimeField(_('creation date'), auto_now=True, db_index=True) - xml_file = models.FileField('xml_file', upload_to="xml", storage=picture_storage) - image_file = ImageField(_('image_file'), upload_to="images", storage=picture_storage) - html_file = models.FileField('html_file', upload_to="html", storage=picture_storage) + xml_file = models.FileField(_('xml file'), upload_to="xml", storage=picture_storage) + image_file = ImageField(_('image file'), upload_to="images", storage=picture_storage) + html_file = models.FileField(_('html file'), upload_to="html", storage=picture_storage) areas_json = jsonfield.JSONField(_('picture areas JSON'), default={}, editable=False) extra_info = jsonfield.JSONField(_('extra information'), default={}) culturepl_link = models.CharField(blank=True, max_length=240) @@ -112,8 +112,8 @@ class Picture(models.Model): self.sort_key = sortify(self.title)[:120] try: - author = self.tags.filter(category='author')[0].sort_key - except IndexError: + author = self.authors().first().sort_key + except AttributeError: author = u'' self.sort_key_author = author @@ -124,8 +124,11 @@ class Picture(models.Model): def __unicode__(self): return self.title - def author_str(self): - return ", ".join(str(t) for t in self.tags.filter(category='author')) + def authors(self): + return self.tags.filter(category='author') + + def author_unicode(self): + return ", ".join(self.authors().values_list('name', flat=True)) @permalink def get_absolute_url(self): @@ -313,7 +316,7 @@ class Picture(models.Model): pics_by_author[tag] = [] for pic in pics.iterator(): - authors = list(pic.tags.filter(category='author')) + authors = list(pic.authors().only('pk')) if authors: for author in authors: pics_by_author[author].append(pic) @@ -332,9 +335,7 @@ class Picture(models.Model): return self._info def pretty_title(self, html_links=False): - picture = self - names = [(tag.name, tag.get_absolute_url()) - for tag in self.tags.filter(category='author')] + names = [(tag.name, tag.get_absolute_url()) for tag in self.authors().only('name', 'category', 'slug')] names.append((self.title, self.get_absolute_url())) if html_links: