django-camomilla-cms 6.1.0__py2.py3-none-any.whl → 6.1.2__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
camomilla/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "6.1.0"
1
+ __version__ = "6.1.2"
2
2
 
3
3
 
4
4
  def get_core_apps():
camomilla/models/menu.py CHANGED
@@ -74,7 +74,7 @@ class MenuNode(BaseModel):
74
74
 
75
75
 
76
76
  class Menu(models.Model):
77
- key = models.CharField(max_length=200, unique=True, editable=False)
77
+ key = models.CharField(max_length=200, unique=True, editable=True, default=uuid4)
78
78
  available_classes = models.JSONField(default=dict, editable=False)
79
79
  enabled = models.BooleanField(default=True)
80
80
  nodes = StructuredJSONField(default=list, schema=MenuNode)
camomilla/models/page.py CHANGED
@@ -343,7 +343,7 @@ class AbstractPage(SeoMixin, MetaMixin, models.Model, metaclass=PageBase):
343
343
  def childs(self) -> models.Manager:
344
344
  if hasattr(self._page_meta, "child_page_field"):
345
345
  return getattr(self, self._page_meta.child_page_field)
346
- return getattr(self, PAGE_CHILD_RELATED_NAME % self.model_info)
346
+ return getattr(self, PAGE_CHILD_RELATED_NAME % self.model_info, self.objects.none())
347
347
 
348
348
  @property
349
349
  def parent(self) -> models.Model:
@@ -1 +1 @@
1
- __version__ = "6.1.0"
1
+ __version__ = "6.1.2"
@@ -1,8 +1,14 @@
1
+ from django.utils.module_loading import import_string
2
+
3
+
1
4
  class OptimViewMixin:
2
5
  def get_serializer_class(self):
3
6
  if hasattr(self, "action_serializers"):
4
7
  if self.action in self.action_serializers:
5
- return self.action_serializers[self.action]
8
+ serializer = self.action_serializers[self.action]
9
+ if isinstance(serializer, str):
10
+ serializer = import_string(serializer)
11
+ return serializer
6
12
  return super().get_serializer_class()
7
13
 
8
14
  def get_serializer_context(self):
@@ -4,6 +4,7 @@ from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
4
4
  from django.contrib.postgres.search import SearchVector, SearchQuery, TrigramSimilarity
5
5
  from camomilla.utils.query_parser import ConditionParser
6
6
  from django.conf import settings
7
+ from django.utils.module_loading import import_string
7
8
 
8
9
 
9
10
  class TrigramSearchMixin:
@@ -106,7 +107,10 @@ class PaginateStackMixin:
106
107
  )
107
108
 
108
109
  def format_output(self, paginator, elements, SerializerClass=None):
109
- SerializerClass = SerializerClass or self.get_serializer_class()
110
+ if isinstance(SerializerClass, str):
111
+ SerializerClass = import_string(SerializerClass)
112
+ else:
113
+ SerializerClass = SerializerClass or self.get_serializer_class()
110
114
  return {
111
115
  "items": SerializerClass(
112
116
  elements, many=True, context=self.get_serializer_context()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-camomilla-cms
3
- Version: 6.1.0
3
+ Version: 6.1.2
4
4
  Summary: Django powered cms
5
5
  Author-email: Lotrèk <dimmitutto@lotrek.it>
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- camomilla/__init__.py,sha256=R1pWTtcXHHHh0t0eJesB_UA9sQWaAVY2b2JPbeBk_68,243
1
+ camomilla/__init__.py,sha256=lKyI3sUjmiwMaYiRT9eNAQ1r1YJS3WfosCE2Xi0aq4M,243
2
2
  camomilla/apps.py,sha256=eUwb9ynyiRAc5OXgt7ZsAdhsCOnPCpNdIFYMheNeN-o,532
3
3
  camomilla/authentication.py,sha256=jz6tQT4PPEu-_JLox1LZrOy7EiWBb9MWaObK63MJGus,855
4
4
  camomilla/context_processors.py,sha256=cGowjDZ-oDGYn1j2Pj5QDGCqnzXAOdOwp5dmzin_FTc,165
@@ -27,8 +27,8 @@ camomilla/models/__init__.py,sha256=y7Q34AGhQ1weJUKWb6XjiyUbwRnJeylOBGMErU0wqYg,
27
27
  camomilla/models/article.py,sha256=LgkZgRsubtDV6NwBz8E2bIgKD6H3I-1QLAxEan5TYYs,1139
28
28
  camomilla/models/content.py,sha256=mIgtifb_WMIt58we5u6qWZemHvuDN1zZaBeCyzHL78A,956
29
29
  camomilla/models/media.py,sha256=pD-qldiHDOOHgux4lsivQLBcOJJrRx3a4Bg8ODNx7r0,6852
30
- camomilla/models/menu.py,sha256=hUszPcn1prWCDhk4RPvbITmyhsB2CjFkaerx9t1GWnc,3766
31
- camomilla/models/page.py,sha256=hL2txxJv5MScU-BsphZUYCybllNAEiR3Dd25c_AS35Y,19976
30
+ camomilla/models/menu.py,sha256=OsoYKxY-08M3LjXxsnR47IuEI-DPf2IS6mi2ZWWCm9Y,3780
31
+ camomilla/models/page.py,sha256=uRX2Kbu62J6luSZYYPu7rR6IZ4nWV7_6xHx6otFDeP8,19997
32
32
  camomilla/models/mixins/__init__.py,sha256=c2NixqvrIX4E9WGRqQbylXlqBWDXEqN9mzs_dpB0hFQ,1248
33
33
  camomilla/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  camomilla/openapi/schema.py,sha256=C22dhKjaJ2DTK4KWFjyMJXiwe8NLy7ZTW5d-I1dqZ7g,2546
@@ -73,7 +73,7 @@ camomilla/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
73
73
  camomilla/templatetags/camomilla_filters.py,sha256=35x0-cWrRHeLhqypSLlJzEFY_fQDcRHiwZQpFgIsspE,692
74
74
  camomilla/templatetags/menus.py,sha256=7fc4f9DDqtqG6wNb5_Q0km-fq0mqvGnbpR21qO1TJUw,960
75
75
  camomilla/templatetags/model_extras.py,sha256=6WfVDYP_OfuVJd3cNGNA55Wj9uWdrbfOZQ0ua9Xt_vc,2257
76
- camomilla/theme/__init__.py,sha256=PD5agZ0_DXqsFLMBR0hacZV3LbzGbH8qn-j7MIAm3Xs,22
76
+ camomilla/theme/__init__.py,sha256=YN8byPcjyQjphqvazTEzWioECzFuTCnjb_LQ7d7T_gw,22
77
77
  camomilla/theme/apps.py,sha256=Ue2H80fbFgxkQyHeU2H0fWs9Y6d-EnHYv4zz824FSRk,1066
78
78
  camomilla/theme/admin/__init__.py,sha256=TALAZaE-gWshSeGc6yy7VahdX5UfeCeoOE9Q5kJCEpM,2270
79
79
  camomilla/theme/admin/pages.py,sha256=HHi8dxjqffjMQGIRpOVNgQZhtKSSx3pFIctbqoZ9J2I,2614
@@ -105,11 +105,11 @@ camomilla/views/base/__init__.py,sha256=bpbVBGXLTy7No95XyDNB2U8hVXmwQJrF1VjLAS5W
105
105
  camomilla/views/mixins/__init__.py,sha256=Znv3fLYVy6lgu03Q_D8fTen4zMxI6VSRaLPDU8Cp7Ws,473
106
106
  camomilla/views/mixins/bulk_actions.py,sha256=i0duWW6wey9m7I_V8-gPcHsbJyPEfSdMdj4h2i-CbPw,787
107
107
  camomilla/views/mixins/language.py,sha256=hfnYznlVMrMLBdJ_f8dChJWENg7Kpt9m1yqavrdLm7E,1299
108
- camomilla/views/mixins/optimize.py,sha256=iRPNkoeIIlJugk7DjJhDPaqeX7Opi7TxnUoMDnxJxUk,686
108
+ camomilla/views/mixins/optimize.py,sha256=Y-jMYmScLeY7ZnDS1K9o8aXSgTGc5RrYUh66r5d9R5k,889
109
109
  camomilla/views/mixins/ordering.py,sha256=mh7fqPyVCVJh84Nl2pYFQouzGxa-ANF3Wqv0pCb7OVU,4779
110
- camomilla/views/mixins/pagination.py,sha256=Ssa5mMgAgyl7sUk0yum2uVifg6esdGmUTqMSJYacE40,5772
110
+ camomilla/views/mixins/pagination.py,sha256=0haXRJNFrawCRSe4kNd4EWHsuhBAjdeqCklGJ3SD2gw,5950
111
111
  camomilla/views/mixins/permissions.py,sha256=TPmR3Hoa3BjeJu9rCE_7lpLOAupue4WI42C21HTo6X4,200
112
- django_camomilla_cms-6.1.0.dist-info/licenses/LICENSE,sha256=kVS7zDrNkav2hLLXbOJwVdonY2ToApTK3khyJagGQoQ,1063
112
+ django_camomilla_cms-6.1.2.dist-info/licenses/LICENSE,sha256=kVS7zDrNkav2hLLXbOJwVdonY2ToApTK3khyJagGQoQ,1063
113
113
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
114
  tests/test_admin_page_form.py,sha256=DRJxekEKeYMCf9q62ax7iBeJGhEP2NZ8o02krZBR_DA,1971
115
115
  tests/test_api.py,sha256=t03EFDezGgm4UJl8RIVvnTUkAGTB6ptm0G2lHBQ7ljc,1833
@@ -130,7 +130,7 @@ tests/fixtures/__init__.py,sha256=ixyA6ZsmYbiKEsjQGOGoG4KyJmwWrf-qeoQjQG3J66U,42
130
130
  tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
131
  tests/utils/api.py,sha256=TYcDXeILHtBwzwG0acwPFmiqMZnlF9VnLB0Ydhg55vA,865
132
132
  tests/utils/media.py,sha256=-cnrQzzVuhNSb5rT5xMUs5f3yYpBnS0fVGDcjgsb8lw,291
133
- django_camomilla_cms-6.1.0.dist-info/METADATA,sha256=mA_yBZVvW76HuYxBelBObDFK6c7kztUJ67Svwps6gFY,5652
134
- django_camomilla_cms-6.1.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
135
- django_camomilla_cms-6.1.0.dist-info/top_level.txt,sha256=G9VIGBmMMqC7JEckoTgXKmC6T2BR75QRkqRnngw1_lo,16
136
- django_camomilla_cms-6.1.0.dist-info/RECORD,,
133
+ django_camomilla_cms-6.1.2.dist-info/METADATA,sha256=CPRn1GWY9A-AV0Js_ciDIanALSfx1ClooNDuB47U-Sw,5652
134
+ django_camomilla_cms-6.1.2.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
135
+ django_camomilla_cms-6.1.2.dist-info/top_level.txt,sha256=G9VIGBmMMqC7JEckoTgXKmC6T2BR75QRkqRnngw1_lo,16
136
+ django_camomilla_cms-6.1.2.dist-info/RECORD,,