From 1545ca9035d5aca1fb949ee853264cc354d37c91 Mon Sep 17 00:00:00 2001 From: dormantman Date: Mon, 16 Dec 2019 22:26:14 +0300 Subject: [PATCH 1/2] Added description field --- apps/collection/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/collection/models.py b/apps/collection/models.py index 099491ac..5c2e081c 100644 --- a/apps/collection/models.py +++ b/apps/collection/models.py @@ -75,9 +75,9 @@ class Collection(ProjectBaseMixin, CollectionDateMixin, block_size = JSONField( _('collection block properties'), null=True, blank=True, default=None, help_text='{"width": "250px", "height":"250px"}') - # description = TJSONField( - # _('description'), null=True, blank=True, - # default=None, help_text='{"en-GB":"some text"}') + description = TJSONField( + _('description'), null=True, blank=True, + default=None, help_text='{"en-GB":"some text"}') slug = models.SlugField(max_length=50, unique=True, verbose_name=_('Collection slug'), editable=True, null=True) old_id = models.IntegerField(null=True, blank=True) From 04bada1cd186698847512e3dad66343aed644e36 Mon Sep 17 00:00:00 2001 From: dormantman Date: Mon, 16 Dec 2019 22:32:38 +0300 Subject: [PATCH 2/2] Fixed object names --- apps/collection/models.py | 15 +++++++++------ apps/collection/serializers/back.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/collection/models.py b/apps/collection/models.py index 5c2e081c..41e0118a 100644 --- a/apps/collection/models.py +++ b/apps/collection/models.py @@ -112,19 +112,22 @@ class Collection(ProjectBaseMixin, CollectionDateMixin, @property def related_object_names(self) -> list: """Return related object names.""" - raw_object_names = {} - for related_object in [(related_object.id, related_object.name) for related_object in self._related_objects]: - instances = getattr(self, f'{related_object[1]}') + raw_objects = [] + for related_object in [related_object.name for related_object in self._related_objects]: + instances = getattr(self, f'{related_object}') if instances.exists(): for instance in instances.all(): - raw_object_names[related_object[0]] = instance.slug if hasattr(instance, 'slug') else None + raw_object = (instance.id, instance.slug) if hasattr(instance, 'slug') else ( + instance.id, None + ) + raw_objects.append(raw_object) # parse slugs related_objects = [] object_names = set() re_pattern = r'[\w]+' - for object_id in raw_object_names: - result = re.findall(re_pattern, raw_object_names[object_id]) + for object_id, raw_name, in raw_objects: + result = re.findall(re_pattern, raw_name) if result: name = ' '.join(result).capitalize() if name not in object_names: diff --git a/apps/collection/serializers/back.py b/apps/collection/serializers/back.py index d8472af1..35917142 100644 --- a/apps/collection/serializers/back.py +++ b/apps/collection/serializers/back.py @@ -21,7 +21,7 @@ class CollectionBackOfficeSerializer(CollectionBaseSerializer): source='get_collection_type_display', read_only=True) country = CountrySimpleSerializer(read_only=True) count_related_objects = serializers.IntegerField(read_only=True) - related_object_names = serializers.JSONField(read_only=True) + related_object_names = serializers.ListField(read_only=True) class Meta: model = models.Collection