Skip to content

Commit

Permalink
refactor: PublicationGallery -> PublicationMediaCollection
Browse files Browse the repository at this point in the history
  • Loading branch information
francesco-filicetti committed May 31, 2021
1 parent c53abbd commit c9d6430
Show file tree
Hide file tree
Showing 10 changed files with 94 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
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


logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)


class PublicationGalleryAPIUnitTest(TestCase):
class PublicationMediaCollectionAPIUnitTest(TestCase):

def setUp(self):
pass
Expand Down Expand Up @@ -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',)
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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

Expand Down
10 changes: 5 additions & 5 deletions src/cms/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -282,11 +282,11 @@

# publication media collections
pug_prefix = f'{pu_prefix}/<int:publication_id>/media-collections/'
urlpatterns += path(f'{pug_prefix}/', publication_gallery.PublicationGalleryList.as_view(), name='editorial-board-publication-media-collections'),
urlpatterns += path(f'{pug_prefix}/<int:pk>/', publication_gallery.PublicationGalleryView.as_view(), name='editorial-board-publication-media-collection'),
urlpatterns += path(f'{pug_prefix}/<int:pk>/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}/<int:pk>/', publication_media_collection.PublicationMediaCollectionView.as_view(), name='editorial-board-publication-media-collection'),
urlpatterns += path(f'{pug_prefix}/<int:pk>/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
Expand Down
Original file line number Diff line number Diff line change
@@ -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 *

Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/cms/publications/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class PublicationAdmin(AbstractCreatedModifiedBy):
PublicationRelatedInline,
PublicationLinkInline,
PublicationAttachmentInline,
PublicationGalleryInline,
PublicationMediaCollectionInline,
PublicationBlockInline)
raw_id_fields = ('presentation_image',)

Expand Down
6 changes: 3 additions & 3 deletions src/cms/publications/admin_inlines.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.contrib import admin

from . models import (PublicationAttachment, PublicationBlock,
PublicationContext, PublicationGallery,
PublicationContext, PublicationMediaCollection,
PublicationLink, PublicationLocalization,
PublicationRelated)

Expand Down Expand Up @@ -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']
Expand Down
11 changes: 8 additions & 3 deletions src/cms/publications/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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)
Expand All @@ -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']


Expand Down
37 changes: 37 additions & 0 deletions src/cms/publications/migrations/0016_auto_20210531_1041.py
Original file line number Diff line number Diff line change
@@ -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',
),
]
10 changes: 5 additions & 5 deletions src/cms/publications/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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,
Expand Down
6 changes: 3 additions & 3 deletions src/cms/publications/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@ class Meta:
fields = '__all__'


class PublicationGallerySerializer(UniCMSCreateUpdateSerializer,
UniCMSContentTypeClass):
class PublicationMediaCollectionSerializer(UniCMSCreateUpdateSerializer,
UniCMSContentTypeClass):
publication = PublicationForeignKey()

def to_representation(self, instance):
Expand All @@ -132,7 +132,7 @@ def to_representation(self, instance):
return data

class Meta:
model = PublicationGallery
model = PublicationMediaCollection
fields = '__all__'


Expand Down
8 changes: 4 additions & 4 deletions src/cms/publications/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)


Expand Down Expand Up @@ -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

Expand Down

0 comments on commit c9d6430

Please sign in to comment.