X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/e24e657ebf536f55c1bde66bd41563fae30a98b0..HEAD:/src/catalogue/models/tag.py diff --git a/src/catalogue/models/tag.py b/src/catalogue/models/tag.py index 4046d34d3..13d8a6403 100644 --- a/src/catalogue/models/tag.py +++ b/src/catalogue/models/tag.py @@ -1,5 +1,5 @@ -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. # from django.conf import settings from django.contrib.contenttypes.fields import GenericForeignKey @@ -23,7 +23,6 @@ TAG_CATEGORIES = ( ('genre', _('gatunek')), ('theme', _('motyw')), ('set', _('półka')), - ('thing', _('obiekt')), # things shown on pictures ) @@ -58,9 +57,6 @@ class Tag(models.Model): 'kategoria', max_length=50, blank=False, null=False, db_index=True, choices=TAG_CATEGORIES) description = models.TextField('opis', blank=True) - for_books = models.BooleanField(default=False) - for_pictures = models.BooleanField(default=False) - user = models.ForeignKey(User, models.CASCADE, blank=True, null=True) gazeta_link = models.CharField(blank=True, max_length=240) culturepl_link = models.CharField(blank=True, max_length=240) @@ -113,7 +109,6 @@ class Tag(models.Model): 'gatunek': 'genre', 'motyw': 'theme', 'polka': 'set', - 'obiekt': 'thing', } categories_dict = dict((item[::-1] for item in categories_rev.items())) @@ -152,15 +147,10 @@ class Tag(models.Model): def get_absolute_url(self): return reverse('tagged_object_list', args=[self.url_chunk]) - def get_absolute_gallery_url(self): - return reverse('tagged_object_list_gallery', args=[self.url_chunk]) - def get_absolute_catalogue_url(self): # TODO: remove magic. if self.category == 'set': return reverse('social_my_shelf') - elif self.category == 'thing': - return '' else: return reverse(f'{self.category}_catalogue') @@ -213,16 +203,20 @@ class Tag(models.Model): from slugify import slugify from sortify import sortify meta_tags = [] - categories = (('kinds', 'kind'), ('genres', 'genre'), ('authors', 'author'), ('epochs', 'epoch')) - for field_name, category in categories: + categories = ( + # BookInfo field names, Tag category, relationship + ('kinds', 'kind', None), + ('genres', 'genre', None), + ('epochs', 'epoch', None), + ('authors', 'author', None), + ('translators', 'author', 'translator'), + ) + for field_name, category, relationship in categories: try: tag_names = getattr(info, field_name) except (AttributeError, KeyError): # TODO: shouldn't be KeyError here at all. - try: - tag_names = [getattr(info, category)] - except KeyError: - # For instance, Pictures do not have 'genre' field. - continue + # For instance, Pictures do not have 'genre' field. + continue for tag_name in tag_names: lang = getattr(tag_name, 'lang', None) or settings.LANGUAGE_CODE tag_sort_key = tag_name @@ -243,9 +237,9 @@ class Tag(models.Model): tag.sort_key = sortify(tag_sort_key.lower()) tag.save() - meta_tags.append(tag) + meta_tags.append((tag, relationship)) else: - meta_tags.append(tag) + meta_tags.append((tag, relationship)) return meta_tags