diff --git a/src/cms/api/tests/test_publication_gallery.py b/src/cms/api/tests/test_publication_media_collection.py similarity index 86% rename from src/cms/api/tests/test_publication_gallery.py rename to src/cms/api/tests/test_publication_media_collection.py index 1e0c23f5..678d12c0 100644 --- a/src/cms/api/tests/test_publication_gallery.py +++ b/src/cms/api/tests/test_publication_media_collection.py @@ -11,7 +11,7 @@ from cms.medias.tests import MediaUnitTest -from cms.publications.models import Publication, PublicationGallery +from cms.publications.models import Publication, PublicationMediaCollection from cms.publications.tests import PublicationUnitTest @@ -19,7 +19,7 @@ logger.setLevel(logging.INFO) -class PublicationGalleryAPIUnitTest(TestCase): +class PublicationMediaCollectionAPIUnitTest(TestCase): def setUp(self): pass @@ -61,21 +61,21 @@ def test_publication(self): req.force_login(user) res = req.post(url, data=data, follow=1, content_type='application/json') - pub_gallery = PublicationGallery.objects.filter(publication=pub, - collection=collection).first() - assert(pub_gallery) + pub_coll = PublicationMediaCollection.objects.filter(publication=pub, + collection=collection).first() + assert(pub_coll) # GET LOGS url = reverse('unicms_api:editorial-board-publication-media-collection-logs', kwargs={'publication_id': pub.pk, - 'pk': pub_gallery.pk}) + 'pk': pub_coll.pk}) res = req.get(url, content_type='application/json',) assert isinstance(res.json(), dict) # GET, patch, put, delete url = reverse('unicms_api:editorial-board-publication-media-collection', kwargs={'publication_id': pub.pk, - 'pk': pub_gallery.pk}) + 'pk': pub_coll.pk}) # GET res = req.get(url, content_type='application/json',) @@ -101,8 +101,8 @@ def test_publication(self): res = req.patch(url, data, content_type='application/json', follow=1) - pub_gallery.refresh_from_db() - assert pub_gallery.collection == collection2 + pub_coll.refresh_from_db() + assert pub_coll.collection == collection2 # PUT pub.created_by = None @@ -117,8 +117,8 @@ def test_publication(self): # user has permission req.force_login(user) res = req.put(url, data, content_type='application/json') - pub_gallery.refresh_from_db() - assert pub_gallery.collection == collection + pub_coll.refresh_from_db() + assert pub_coll.collection == collection # DELETE # user hasn't permission @@ -129,7 +129,7 @@ def test_publication(self): req.force_login(user) res = req.delete(url) try: - pub_gallery.refresh_from_db() + pub_coll.refresh_from_db() except ObjectDoesNotExist: assert True diff --git a/src/cms/api/urls.py b/src/cms/api/urls.py index 46a72e38..6f76db0e 100644 --- a/src/cms/api/urls.py +++ b/src/cms/api/urls.py @@ -6,7 +6,7 @@ media, media_collection, media_collection_item, publication, publication_attachment, publication_link, publication_localization, - publication_gallery, publication_block, + publication_media_collection, publication_block, publication_related, website, webpath, webpath_pub_context, page, page_block, page_carousel, page_link, @@ -282,11 +282,11 @@ # publication media collections pug_prefix = f'{pu_prefix}//media-collections/' -urlpatterns += path(f'{pug_prefix}/', publication_gallery.PublicationGalleryList.as_view(), name='editorial-board-publication-media-collections'), -urlpatterns += path(f'{pug_prefix}//', publication_gallery.PublicationGalleryView.as_view(), name='editorial-board-publication-media-collection'), -urlpatterns += path(f'{pug_prefix}//logs/', publication_gallery.PublicationGalleryLogsView.as_view(), +urlpatterns += path(f'{pug_prefix}/', publication_media_collection.PublicationMediaCollectionList.as_view(), name='editorial-board-publication-media-collections'), +urlpatterns += path(f'{pug_prefix}//', publication_media_collection.PublicationMediaCollectionView.as_view(), name='editorial-board-publication-media-collection'), +urlpatterns += path(f'{pug_prefix}//logs/', publication_media_collection.PublicationMediaCollectionLogsView.as_view(), name='editorial-board-publication-media-collection-logs'), -urlpatterns += path(f'{pug_prefix}/form/', publication_gallery.PublicationGalleryFormView.as_view(), +urlpatterns += path(f'{pug_prefix}/form/', publication_media_collection.PublicationMediaCollectionFormView.as_view(), name='editorial-board-publication-media-collection-form'), # publication localizations diff --git a/src/cms/api/views/publication_gallery.py b/src/cms/api/views/publication_media_collection.py similarity index 56% rename from src/cms/api/views/publication_gallery.py rename to src/cms/api/views/publication_media_collection.py index 84369160..d464fb34 100644 --- a/src/cms/api/views/publication_gallery.py +++ b/src/cms/api/views/publication_media_collection.py @@ -1,7 +1,7 @@ from django.contrib.contenttypes.models import ContentType from django.shortcuts import get_object_or_404 -from cms.publications.forms import PublicationGalleryForm +from cms.publications.forms import PublicationMediaCollectionForm from cms.publications.models import * from cms.publications.serializers import * @@ -13,60 +13,60 @@ from .. views.publication import PublicationRelatedObject, PublicationRelatedObjectList, PublicationRelatedObjectLogsView -class PublicationGalleryList(PublicationRelatedObjectList): +class PublicationMediaCollectionList(PublicationRelatedObjectList): """ """ description = "" search_fields = ['collection__name', 'collection__description'] ordering_fields = ['id', 'collection__name', 'collection__description', 'order', 'is_active'] - serializer_class = PublicationGallerySerializer + serializer_class = PublicationMediaCollectionSerializer def get_queryset(self): """ """ super().get_data() if self.publication: - return PublicationGallery.objects.filter(publication=self.publication) - return PublicationGallery.objects.none() # pragma: no cover + return PublicationMediaCollection.objects.filter(publication=self.publication) + return PublicationMediaCollection.objects.none() # pragma: no cover -class PublicationGalleryView(PublicationRelatedObject): +class PublicationMediaCollectionView(PublicationRelatedObject): """ """ description = "" - serializer_class = PublicationGallerySerializer + serializer_class = PublicationMediaCollectionSerializer def get_queryset(self): """ """ super().get_data() - return PublicationGallery.objects.filter(pk=self.pk, - publication=self.publication) + return PublicationMediaCollection.objects.filter(pk=self.pk, + publication=self.publication) -class PublicationGalleryFormView(APIView): +class PublicationMediaCollectionFormView(APIView): def get(self, *args, **kwargs): - form = PublicationGalleryForm(publication_id=kwargs.get('publication_id')) + form = PublicationMediaCollectionForm(publication_id=kwargs.get('publication_id')) form_fields = UniCMSFormSerializer.serialize(form) return Response(form_fields) -class PublicationGalleryLogsSchema(AutoSchema): +class PublicationMediaCollectionLogsSchema(AutoSchema): def get_operation_id(self, path, method):# pragma: no cover - return 'listPublicationGalleryLogs' + return 'listPublicationMediaCollectionLogs' -class PublicationGalleryLogsView(PublicationRelatedObjectLogsView): +class PublicationMediaCollectionLogsView(PublicationRelatedObjectLogsView): - schema = PublicationGalleryLogsSchema() + schema = PublicationMediaCollectionLogsSchema() def get_queryset(self): """ """ super().get_data() - item = get_object_or_404(PublicationGallery.objects.select_related('publication'), + item = get_object_or_404(PublicationMediaCollection.objects.select_related('publication'), pk=self.pk, publication=self.publication) content_type_id = ContentType.objects.get_for_model(item).pk diff --git a/src/cms/publications/admin.py b/src/cms/publications/admin.py index de85672f..c0e3fad6 100644 --- a/src/cms/publications/admin.py +++ b/src/cms/publications/admin.py @@ -19,7 +19,7 @@ class PublicationAdmin(AbstractCreatedModifiedBy): PublicationRelatedInline, PublicationLinkInline, PublicationAttachmentInline, - PublicationGalleryInline, + PublicationMediaCollectionInline, PublicationBlockInline) raw_id_fields = ('presentation_image',) diff --git a/src/cms/publications/admin_inlines.py b/src/cms/publications/admin_inlines.py index 82ec1339..2f33efcc 100644 --- a/src/cms/publications/admin_inlines.py +++ b/src/cms/publications/admin_inlines.py @@ -1,7 +1,7 @@ from django.contrib import admin from . models import (PublicationAttachment, PublicationBlock, - PublicationContext, PublicationGallery, + PublicationContext, PublicationMediaCollection, PublicationLink, PublicationLocalization, PublicationRelated) @@ -41,8 +41,8 @@ class PublicationLinkInline(admin.StackedInline): classes = ['collapse'] -class PublicationGalleryInline(admin.TabularInline): - model = PublicationGallery +class PublicationMediaCollectionInline(admin.TabularInline): + model = PublicationMediaCollection extra = 0 classes = ['collapse'] raw_id_fields = ['collection'] diff --git a/src/cms/publications/forms.py b/src/cms/publications/forms.py index dc85dde2..a50b8cd8 100644 --- a/src/cms/publications/forms.py +++ b/src/cms/publications/forms.py @@ -3,7 +3,12 @@ from cms.api.settings import FORM_SOURCE_LABEL -from . models import Publication, PublicationAttachment, PublicationGallery, PublicationLink, PublicationLocalization, PublicationRelated +from . models import (Publication, + PublicationAttachment, + PublicationMediaCollection, + PublicationLink, + PublicationLocalization, + PublicationRelated) class PublicationForm(ModelForm): @@ -36,7 +41,7 @@ class Meta: 'order', 'is_active'] -class PublicationGalleryForm(ModelForm): +class PublicationMediaCollectionForm(ModelForm): def __init__(self, *args, **kwargs): publication_id = kwargs.pop('publication_id', None) @@ -45,7 +50,7 @@ def __init__(self, *args, **kwargs): self.fields['publication'].queryset = Publication.objects.filter(pk=publication_id) class Meta: - model = PublicationGallery + model = PublicationMediaCollection fields = ['publication', 'collection', 'order', 'is_active'] diff --git a/src/cms/publications/migrations/0016_auto_20210531_1041.py b/src/cms/publications/migrations/0016_auto_20210531_1041.py new file mode 100644 index 00000000..f7f9e85b --- /dev/null +++ b/src/cms/publications/migrations/0016_auto_20210531_1041.py @@ -0,0 +1,37 @@ +# Generated by Django 3.2.3 on 2021-05-31 10:41 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('cmsmedias', '0008_alter_media_file'), + ('cmspublications', '0015_auto_20210531_1013'), + ] + + operations = [ + migrations.CreateModel( + name='PublicationMediaCollection', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', models.DateTimeField(auto_now_add=True)), + ('modified', models.DateTimeField(auto_now=True)), + ('order', models.IntegerField(blank=True, default=10, null=True)), + ('is_active', models.BooleanField(default=False)), + ('collection', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='cmsmedias.mediacollection')), + ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicationmediacollection_created_by', to=settings.AUTH_USER_MODEL)), + ('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicationmediacollection_modified_by', to=settings.AUTH_USER_MODEL)), + ('publication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cmspublications.publication')), + ], + options={ + 'verbose_name_plural': 'Publication Media Collection', + }, + ), + migrations.DeleteModel( + name='PublicationGallery', + ), + ] diff --git a/src/cms/publications/models.py b/src/cms/publications/models.py index 54eba51d..4b26a00d 100644 --- a/src/cms/publications/models.py +++ b/src/cms/publications/models.py @@ -169,9 +169,9 @@ def related_links(self): def related_media_collections(self): if getattr(self, '_related_media_collections', None): # pragma: no cover return self._related_media_collections - pub_collections = PublicationGallery.objects.filter(publication=self, - is_active=True, - collection__is_active=True) + pub_collections = PublicationMediaCollection.objects.filter(publication=self, + is_active=True, + collection__is_active=True) self._related_media_collections = pub_collections return self._related_media_collections @@ -429,8 +429,8 @@ def __str__(self): self.section or '#') -class PublicationGallery(TimeStampedModel, ActivableModel, SortableModel, - CreatedModifiedBy): +class PublicationMediaCollection(TimeStampedModel, ActivableModel, + SortableModel, CreatedModifiedBy): publication = models.ForeignKey(Publication, on_delete=models.CASCADE) collection = models.ForeignKey(MediaCollection, diff --git a/src/cms/publications/serializers.py b/src/cms/publications/serializers.py index 51ed1f34..50c1f7d0 100644 --- a/src/cms/publications/serializers.py +++ b/src/cms/publications/serializers.py @@ -121,8 +121,8 @@ class Meta: fields = '__all__' -class PublicationGallerySerializer(UniCMSCreateUpdateSerializer, - UniCMSContentTypeClass): +class PublicationMediaCollectionSerializer(UniCMSCreateUpdateSerializer, + UniCMSContentTypeClass): publication = PublicationForeignKey() def to_representation(self, instance): @@ -132,7 +132,7 @@ def to_representation(self, instance): return data class Meta: - model = PublicationGallery + model = PublicationMediaCollection fields = '__all__' diff --git a/src/cms/publications/tests.py b/src/cms/publications/tests.py index 2827ba08..233ca255 100644 --- a/src/cms/publications/tests.py +++ b/src/cms/publications/tests.py @@ -21,7 +21,7 @@ from cms.publications.templatetags.unicms_publications import (load_publication, load_publications_preview) from . models import (Publication, PublicationAttachment, PublicationBlock, - PublicationContext, PublicationGallery, PublicationLink, + PublicationContext, PublicationMediaCollection, PublicationLink, PublicationLocalization, PublicationRelated) @@ -121,9 +121,9 @@ def enrich_pub(cls, **kwargs): # pub media collection media_col = MediaUnitTest.create_media_collection() - pubga = PublicationGallery.objects.create(publication = pub, - collection = media_col, - is_active=1) + pubga = PublicationMediaCollection.objects.create(publication = pub, + collection = media_col, + is_active=1) pubga.__str__() pub.related_media_collections