django-camomilla-cms 6.0.0b2__py2.py3-none-any.whl → 6.0.0b4__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 +1 -1
- camomilla/apps.py +3 -0
- camomilla/contrib/modeltranslation/hvad_migration.py +1 -2
- camomilla/contrib/rest_framework/serializer.py +31 -1
- camomilla/dynamic_pages_urls.py +7 -1
- camomilla/fields/json.py +12 -9
- camomilla/management/commands/regenerate_thumbnails.py +0 -1
- camomilla/model_api.py +6 -4
- camomilla/models/__init__.py +5 -5
- camomilla/models/article.py +0 -1
- camomilla/models/media.py +1 -2
- camomilla/models/menu.py +44 -42
- camomilla/models/mixins/__init__.py +0 -1
- camomilla/models/page.py +66 -32
- camomilla/openapi/schema.py +27 -0
- camomilla/parsers.py +0 -1
- camomilla/serializers/fields/json.py +7 -75
- camomilla/serializers/mixins/__init__.py +16 -2
- camomilla/serializers/page.py +47 -0
- camomilla/serializers/user.py +2 -3
- camomilla/serializers/utils.py +22 -17
- camomilla/settings.py +21 -1
- camomilla/storages/optimize.py +1 -1
- camomilla/structured/__init__.py +90 -75
- camomilla/structured/cache.py +193 -0
- camomilla/structured/fields.py +132 -275
- camomilla/structured/models.py +45 -138
- camomilla/structured/utils.py +114 -0
- camomilla/templatetags/camomilla_filters.py +0 -1
- camomilla/theme/__init__.py +1 -1
- camomilla/theme/admin.py +96 -0
- camomilla/theme/apps.py +12 -1
- camomilla/translation.py +4 -2
- camomilla/urls.py +13 -6
- camomilla/utils/__init__.py +1 -1
- camomilla/utils/getters.py +11 -1
- camomilla/utils/templates.py +2 -2
- camomilla/utils/translation.py +9 -6
- camomilla/views/__init__.py +1 -1
- camomilla/views/articles.py +0 -1
- camomilla/views/contents.py +0 -1
- camomilla/views/decorators.py +26 -0
- camomilla/views/medias.py +1 -2
- camomilla/views/menus.py +45 -1
- camomilla/views/pages.py +13 -1
- camomilla/views/tags.py +0 -1
- camomilla/views/users.py +0 -2
- {django_camomilla_cms-6.0.0b2.dist-info → django_camomilla_cms-6.0.0b4.dist-info}/METADATA +4 -3
- {django_camomilla_cms-6.0.0b2.dist-info → django_camomilla_cms-6.0.0b4.dist-info}/RECORD +53 -49
- tests/test_api.py +1 -0
- {django_camomilla_cms-6.0.0b2.dist-info → django_camomilla_cms-6.0.0b4.dist-info}/LICENSE +0 -0
- {django_camomilla_cms-6.0.0b2.dist-info → django_camomilla_cms-6.0.0b4.dist-info}/WHEEL +0 -0
- {django_camomilla_cms-6.0.0b2.dist-info → django_camomilla_cms-6.0.0b4.dist-info}/top_level.txt +0 -0
camomilla/views/menus.py
CHANGED
@@ -1,13 +1,19 @@
|
|
1
1
|
from django.contrib.contenttypes.models import ContentType
|
2
|
+
from django.db.models import Q
|
2
3
|
from django.http import Http404
|
4
|
+
from django.shortcuts import get_object_or_404
|
3
5
|
from rest_framework.decorators import action
|
4
6
|
from rest_framework.response import Response
|
5
7
|
|
6
8
|
from camomilla.models import AbstractPage, Menu
|
9
|
+
from camomilla.models.page import UrlNode
|
7
10
|
from camomilla.permissions import CamomillaBasePermissions
|
8
11
|
from camomilla.serializers import ContentTypeSerializer, MenuSerializer
|
12
|
+
from camomilla.serializers.page import BasicUrlNodeSerializer
|
9
13
|
from camomilla.views.base import BaseModelViewset
|
14
|
+
from camomilla.views.decorators import active_lang
|
10
15
|
|
16
|
+
from django.utils.translation import get_language
|
11
17
|
|
12
18
|
class MenuViewSet(BaseModelViewset):
|
13
19
|
queryset = Menu.objects.all()
|
@@ -15,6 +21,31 @@ class MenuViewSet(BaseModelViewset):
|
|
15
21
|
permission_classes = (CamomillaBasePermissions,)
|
16
22
|
model = Menu
|
17
23
|
|
24
|
+
lookup_field = "key"
|
25
|
+
|
26
|
+
def get_object(self):
|
27
|
+
queryset = self.filter_queryset(self.get_queryset())
|
28
|
+
lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
|
29
|
+
assert lookup_url_kwarg in self.kwargs, (
|
30
|
+
"Expected view %s to be called with a URL keyword argument "
|
31
|
+
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
32
|
+
"attribute on the view correctly."
|
33
|
+
% (self.__class__.__name__, lookup_url_kwarg)
|
34
|
+
)
|
35
|
+
filter = Q(**{self.lookup_field: self.kwargs[lookup_url_kwarg]})
|
36
|
+
if (
|
37
|
+
isinstance(self.kwargs[lookup_url_kwarg], str)
|
38
|
+
and self.kwargs[lookup_url_kwarg].isnumeric()
|
39
|
+
or isinstance(self.kwargs[lookup_url_kwarg], int)
|
40
|
+
):
|
41
|
+
filter |= Q(pk=self.kwargs[lookup_url_kwarg])
|
42
|
+
|
43
|
+
obj = get_object_or_404(queryset, filter)
|
44
|
+
# May raise a permission denied
|
45
|
+
self.check_object_permissions(self.request, obj)
|
46
|
+
|
47
|
+
return obj
|
48
|
+
|
18
49
|
@action(detail=False, methods=["get"], url_path="page_types")
|
19
50
|
def page_types(self, request, *args, **kwargs):
|
20
51
|
return Response(
|
@@ -37,6 +68,19 @@ class MenuViewSet(BaseModelViewset):
|
|
37
68
|
return Response(
|
38
69
|
[
|
39
70
|
{"id": obj.pk, "name": str(obj), "url_node_id": obj.url_node.pk}
|
40
|
-
for obj in content_type.model_class().objects.exclude(
|
71
|
+
for obj in content_type.model_class().objects.exclude(
|
72
|
+
url_node__isnull=True
|
73
|
+
)
|
41
74
|
]
|
42
75
|
)
|
76
|
+
|
77
|
+
@active_lang()
|
78
|
+
@action(detail=False, methods=["get"], url_path="search_urlnode")
|
79
|
+
def search_urlnode(self, request, *args, **kwargs):
|
80
|
+
url_node = request.GET.get("q", "")
|
81
|
+
qs = UrlNode.objects.filter(permalink__icontains=url_node).order_by("permalink")
|
82
|
+
print(get_language())
|
83
|
+
return Response(BasicUrlNodeSerializer(qs, many=True).data)
|
84
|
+
|
85
|
+
|
86
|
+
|
camomilla/views/pages.py
CHANGED
@@ -1,13 +1,25 @@
|
|
1
1
|
from camomilla.models import Page
|
2
|
+
from camomilla.models.page import UrlNode
|
2
3
|
from camomilla.permissions import CamomillaBasePermissions
|
3
4
|
from camomilla.serializers import PageSerializer
|
5
|
+
from camomilla.serializers.page import UrlNodeSerializer
|
4
6
|
from camomilla.views.base import BaseModelViewset
|
7
|
+
from camomilla.views.decorators import active_lang
|
5
8
|
from camomilla.views.mixins import BulkDeleteMixin, GetUserLanguageMixin
|
9
|
+
from rest_framework.decorators import api_view
|
10
|
+
from rest_framework.response import Response
|
11
|
+
from django.shortcuts import get_object_or_404
|
6
12
|
|
7
13
|
|
8
14
|
class PageViewSet(GetUserLanguageMixin, BulkDeleteMixin, BaseModelViewset):
|
9
|
-
|
10
15
|
queryset = Page.objects.all()
|
11
16
|
serializer_class = PageSerializer
|
12
17
|
permission_classes = (CamomillaBasePermissions,)
|
13
18
|
model = Page
|
19
|
+
|
20
|
+
|
21
|
+
@active_lang()
|
22
|
+
@api_view(["GET"])
|
23
|
+
def fetch_page(request, permalink=""):
|
24
|
+
node = get_object_or_404(UrlNode, permalink=f"/{permalink}")
|
25
|
+
return Response(UrlNodeSerializer(node, context={"request": request}).data)
|
camomilla/views/tags.py
CHANGED
@@ -6,7 +6,6 @@ from camomilla.views.mixins import BulkDeleteMixin, GetUserLanguageMixin
|
|
6
6
|
|
7
7
|
|
8
8
|
class TagViewSet(GetUserLanguageMixin, BulkDeleteMixin, BaseModelViewset):
|
9
|
-
|
10
9
|
queryset = Tag.objects.all()
|
11
10
|
serializer_class = TagSerializer
|
12
11
|
permission_classes = (CamomillaBasePermissions,)
|
camomilla/views/users.py
CHANGED
@@ -27,7 +27,6 @@ class CamomillaObtainAuthToken(ObtainAuthToken):
|
|
27
27
|
|
28
28
|
|
29
29
|
class UserViewSet(BaseModelViewset):
|
30
|
-
|
31
30
|
queryset = get_user_model().objects.all()
|
32
31
|
serializer_class = UserSerializer
|
33
32
|
model = get_user_model()
|
@@ -55,7 +54,6 @@ class UserViewSet(BaseModelViewset):
|
|
55
54
|
|
56
55
|
|
57
56
|
class PermissionViewSet(BaseModelViewset):
|
58
|
-
|
59
57
|
queryset = Permission.objects.all()
|
60
58
|
serializer_class = PermissionSerializer
|
61
59
|
model = Permission
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: django-camomilla-cms
|
3
|
-
Version: 6.0.
|
3
|
+
Version: 6.0.0b4
|
4
4
|
Summary: Django powered cms
|
5
5
|
Home-page: https://github.com/lotrekagency/camomilla
|
6
6
|
Author: Lotrèk
|
@@ -15,15 +15,16 @@ Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Requires-Python: >=3.6
|
16
16
|
Description-Content-Type: text/markdown
|
17
17
|
License-File: LICENSE
|
18
|
-
Requires-Dist: django-modeltranslation (
|
18
|
+
Requires-Dist: django-modeltranslation (~=0.18.11)
|
19
19
|
Requires-Dist: djsuperadmin (<1.0.0,>=0.9)
|
20
20
|
Requires-Dist: djangorestframework (<4.0.0,>=3.10.0)
|
21
21
|
Requires-Dist: django-admin-interface (<1.0.0,>=0.26.0)
|
22
22
|
Requires-Dist: Pillow (<10.0.0,>=6.2.0)
|
23
23
|
Requires-Dist: django-ckeditor (<7.0.0,>=5.7.1)
|
24
24
|
Requires-Dist: python-magic (<0.5,>=0.4)
|
25
|
-
Requires-Dist:
|
25
|
+
Requires-Dist: django-jsonform (~=2.19.0)
|
26
26
|
Requires-Dist: Django (>=3.2)
|
27
|
+
Requires-Dist: pydantic (~=2.2.1)
|
27
28
|
|
28
29
|
# camomilla django cms [](https://pypi.org/project/django-camomilla-cms)   [](./LICENSE)
|
29
30
|
|
@@ -1,57 +1,59 @@
|
|
1
|
-
camomilla/__init__.py,sha256=
|
1
|
+
camomilla/__init__.py,sha256=wVhoGvi01rvXZOw0ziUQNg1TXbgdk1Z-4cFT16iGgj4,110
|
2
2
|
camomilla/admin.py,sha256=lfQqY_puhUkTXDQWGbhX9a0hosMo6UlX3K-BvgB-2a4,2404
|
3
|
-
camomilla/apps.py,sha256=
|
3
|
+
camomilla/apps.py,sha256=hjfJBL47JqX3Z8D2Okzmw0jtbVPAInB2fYQVNzszyko,605
|
4
4
|
camomilla/authentication.py,sha256=jz6tQT4PPEu-_JLox1LZrOy7EiWBb9MWaObK63MJGus,855
|
5
5
|
camomilla/context_processors.py,sha256=cGowjDZ-oDGYn1j2Pj5QDGCqnzXAOdOwp5dmzin_FTc,165
|
6
6
|
camomilla/defaults.py,sha256=VNQ_sbxu09AyFGNpUUYypIAyhlBhEORD36BBNj7e73I,1220
|
7
|
-
camomilla/dynamic_pages_urls.py,sha256=
|
7
|
+
camomilla/dynamic_pages_urls.py,sha256=VC1cESk6SS7ixsq6-LevnpPOk1Xjphhd4r3vzvy17O0,781
|
8
8
|
camomilla/exceptions.py,sha256=gLniAsK_pmsNNKGMv5Z384LXVbM8oeHcOwz4F91u1LY,111
|
9
|
-
camomilla/model_api.py,sha256=
|
10
|
-
camomilla/parsers.py,sha256=
|
9
|
+
camomilla/model_api.py,sha256=VC3tNQucS3-KVtdZNWkkbkJn8vtl_cBKYTcC3QU6PpU,2253
|
10
|
+
camomilla/parsers.py,sha256=fL8XGCGPxJIZNZkPdGtnPSbDP-6-yzGOCVMuLPjkx9Y,1975
|
11
11
|
camomilla/permissions.py,sha256=9NlBO4JMmg36vXCUjPNyq6uZxhkdrnXyIbJVLtWhGWE,1813
|
12
|
-
camomilla/settings.py,sha256=
|
13
|
-
camomilla/translation.py,sha256=
|
14
|
-
camomilla/urls.py,sha256=
|
12
|
+
camomilla/settings.py,sha256=T9lJB8qagQ1lLknmrFA-Mo46yxZbZuPhevd3IBE-D7Y,3294
|
13
|
+
camomilla/translation.py,sha256=IDoC48xhH49lFAbOq19kOskgjECv4kRCm7bEI80jOL4,1260
|
14
|
+
camomilla/urls.py,sha256=YFUYcPuvnNSTnfJa_JByRWAPLgc4_R4LgqCMrmkbFpE,2217
|
15
15
|
camomilla/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
camomilla/contrib/modeltranslation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
|
-
camomilla/contrib/modeltranslation/hvad_migration.py,sha256=
|
17
|
+
camomilla/contrib/modeltranslation/hvad_migration.py,sha256=e4628zm8Z1VYOuqheLg4aD_NF8gqtkQDxpTmdtDid2o,4882
|
18
18
|
camomilla/contrib/rest_framework/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
camomilla/contrib/rest_framework/serializer.py,sha256=
|
19
|
+
camomilla/contrib/rest_framework/serializer.py,sha256=3Hmzl2F6lpfUzEfN4lXypgNbKEUdWcer9Et8VMy_2Fo,4105
|
20
20
|
camomilla/fields/__init__.py,sha256=VTCKK0PsJxpcgWrcqPYtWaSFhOOO2ZL56UIdla2IxF8,400
|
21
|
-
camomilla/fields/json.py,sha256=
|
21
|
+
camomilla/fields/json.py,sha256=tWEDn6kwTP6pNB53djxuVPu2d57m9cIDc4ccCEfUbDQ,1938
|
22
22
|
camomilla/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
camomilla/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
|
-
camomilla/management/commands/regenerate_thumbnails.py,sha256=
|
25
|
-
camomilla/models/__init__.py,sha256=
|
26
|
-
camomilla/models/article.py,sha256=
|
24
|
+
camomilla/management/commands/regenerate_thumbnails.py,sha256=pKToASR8p8TJezGpFfuylsAHtriNueJ7xqJJxq55adY,496
|
25
|
+
camomilla/models/__init__.py,sha256=y7Q34AGhQ1weJUKWb6XjiyUbwRnJeylOBGMErU0wqYg,147
|
26
|
+
camomilla/models/article.py,sha256=LgkZgRsubtDV6NwBz8E2bIgKD6H3I-1QLAxEan5TYYs,1139
|
27
27
|
camomilla/models/content.py,sha256=mIgtifb_WMIt58we5u6qWZemHvuDN1zZaBeCyzHL78A,956
|
28
|
-
camomilla/models/media.py,sha256=
|
29
|
-
camomilla/models/menu.py,sha256=
|
30
|
-
camomilla/models/page.py,sha256=
|
31
|
-
camomilla/models/mixins/__init__.py,sha256=
|
28
|
+
camomilla/models/media.py,sha256=7TD_0nhNoi8P-Gmsr0Kag4eGaxMXuTfQOFl53Mb03cQ,6854
|
29
|
+
camomilla/models/menu.py,sha256=GdywN50yp7ezXzy8SF8P-W3ejey31ZPlJYp2cEM38Uk,2835
|
30
|
+
camomilla/models/page.py,sha256=25KnH1SRXtM2hzX6Sv-8MW8XgIWCcB4AQWhRy4l_FKQ,13375
|
31
|
+
camomilla/models/mixins/__init__.py,sha256=c2NixqvrIX4E9WGRqQbylXlqBWDXEqN9mzs_dpB0hFQ,1248
|
32
32
|
camomilla/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
camomilla/openapi/schema.py,sha256=
|
33
|
+
camomilla/openapi/schema.py,sha256=Drua3rV_ME4nGWvqe-ZwuABnheTaUyB4Io7z3cCmSCM,2116
|
34
34
|
camomilla/serializers/__init__.py,sha256=8v1GsJ_YZ6T72VnKBb5l-8K93oaLf4PIsMt-yFtK-Gk,176
|
35
35
|
camomilla/serializers/article.py,sha256=pYVcS0KztzjzSqgruElQMMEZcqTzmQUqXrdv_Sx5Az4,401
|
36
36
|
camomilla/serializers/content_type.py,sha256=qB2wkmkvQI6LHxfSI6auEh6M9cJRFBaHnpmkBCCzeYo,557
|
37
37
|
camomilla/serializers/media.py,sha256=H4JVpRVxXVmn_BiqrjihKXpfLm9fLmHDFIICRDGJU4s,1940
|
38
38
|
camomilla/serializers/menu.py,sha256=TdoyXs40PqxNevnRbBbYOOX9rUv9zQGiHFNduspaZnw,552
|
39
|
-
camomilla/serializers/page.py,sha256=
|
40
|
-
camomilla/serializers/user.py,sha256=
|
41
|
-
camomilla/serializers/utils.py,sha256=
|
39
|
+
camomilla/serializers/page.py,sha256=NNjEypVYu_9iKqdHV_-61ea37gxiHlDP5gsloV_i6yg,1834
|
40
|
+
camomilla/serializers/user.py,sha256=CzrHiVRvYYWNE4eNpCNKtJB7DjVqHHwIcP4NUBXMHSo,3706
|
41
|
+
camomilla/serializers/utils.py,sha256=FgO6Eov6rtrLwuZT0QWGSSvLeMmDm6gYK7uFON6qP1c,1000
|
42
42
|
camomilla/serializers/validators.py,sha256=QtlmGyJiKaKyMBqBZ1W2VAjCoLi1vhPUnLOo7DvZpsM,1775
|
43
43
|
camomilla/serializers/base/__init__.py,sha256=RTEHkJttqlxZjKpD75kTYIH42wlBtQI8hhPPb8r-NLw,488
|
44
44
|
camomilla/serializers/fields/__init__.py,sha256=6JX3Dt4mmVXEQy2XN48zzuKyOQOfPgAhBdH6AeED0kk,528
|
45
45
|
camomilla/serializers/fields/file.py,sha256=QRSPhEAB_snT0IyjtKZQk8bKKHmT9hMNB9udzbc_nVw,648
|
46
|
-
camomilla/serializers/fields/json.py,sha256=
|
46
|
+
camomilla/serializers/fields/json.py,sha256=5bTAODaTzFj_B9w-BN2c2iXoUF0hrnOz-dzebkZN4TQ,968
|
47
47
|
camomilla/serializers/fields/related.py,sha256=Y2SnGWGDAUr3H-Ku7_YQYzbEIXUlsFqw69NCGVEpxSU,4402
|
48
|
-
camomilla/serializers/mixins/__init__.py,sha256=
|
48
|
+
camomilla/serializers/mixins/__init__.py,sha256=WHtxyux5CTnpwwWq-zto7K0-GgE1RHTzUC_pKgkLxas,6193
|
49
49
|
camomilla/storages/__init__.py,sha256=ytGgX59Ar8vFfYz7eV8z-j5yO_5FqxdZM25iyLnJuSA,131
|
50
|
-
camomilla/storages/optimize.py,sha256=
|
50
|
+
camomilla/storages/optimize.py,sha256=WPFAkMCXub6u68kNsZKpbeqTPDqRlNef534C0DSuOws,2007
|
51
51
|
camomilla/storages/overwrite.py,sha256=CO_zSZxr321eohYFuzPjDMK7WMFnvvwlIigIPabU_eE,343
|
52
|
-
camomilla/structured/__init__.py,sha256=
|
53
|
-
camomilla/structured/
|
54
|
-
camomilla/structured/
|
52
|
+
camomilla/structured/__init__.py,sha256=85GQW6KtzgBQVZlbNHbmkzDqjvK1zglXvuFpv_-JJcU,4163
|
53
|
+
camomilla/structured/cache.py,sha256=SJSefLcB86Axvpj8xB9O_IJA2G7jmYhZmbjYR80fgJ8,7589
|
54
|
+
camomilla/structured/fields.py,sha256=Pd9J9yxiHmB4xJqlpAQQB_gZqkVPJiIh0aXexJhsfY0,5295
|
55
|
+
camomilla/structured/models.py,sha256=us03rOU2VtdhH4MMHIGkb11Wr6ItxPmB7ZUL1QepWmg,1790
|
56
|
+
camomilla/structured/utils.py,sha256=h-cfkyGyBKZjZFA53UBbTA7nHAoCN1iKIJBz0ka5_pg,3446
|
55
57
|
camomilla/templates/admin/camomilla/page/change_form.html,sha256=ig7rRUtylDZMINBQuVPpZLmeB4sOTV_VtqnTgzAyxEo,251
|
56
58
|
camomilla/templates/defaults/base.html,sha256=pklt7Pif3g9d7gwgRxCQj7gniJaHD14ZqZID_xIlC0A,6638
|
57
59
|
camomilla/templates/defaults/articles/default.html,sha256=1f89jBvNtTa1mPAbC91yy8CzeAjTWO3hhQsTuQW5OKg,239
|
@@ -60,10 +62,11 @@ camomilla/templates/defaults/parts/langswitch.html,sha256=i1w5PajZg5aD_lWuuTNBu6
|
|
60
62
|
camomilla/templates/defaults/parts/menu.html,sha256=KBgXv23dCWW0XM16R5fT0_g-w_qudVfcF-CYSdwl83s,338
|
61
63
|
camomilla/templates/defaults/widgets/media_select_multiple.html,sha256=k2XYou8KkPuFLnPMkPJAFJ-zGJj2Xvu6R3ZmiKa3g7Q,3727
|
62
64
|
camomilla/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
63
|
-
camomilla/templatetags/camomilla_filters.py,sha256=
|
65
|
+
camomilla/templatetags/camomilla_filters.py,sha256=iOk0sDkdKz5pRuRCocwd_oelaqETAla1kS3siV8ciEE,513
|
64
66
|
camomilla/templatetags/menus.py,sha256=pLFeJ1UAm3flsU9TNo2iQk4otSwZuJPr86Nf408dZ-8,862
|
65
|
-
camomilla/theme/__init__.py,sha256=
|
66
|
-
camomilla/theme/
|
67
|
+
camomilla/theme/__init__.py,sha256=PN8A2DB_Z51bzNjN_K5b4hSZNT8fYVdu5odxsFxn7Vg,29
|
68
|
+
camomilla/theme/admin.py,sha256=gDSPLAIomp2PqYMb-xNrt-O1rxxTJjHVs4p6Z9G1kpU,2468
|
69
|
+
camomilla/theme/apps.py,sha256=_DXntnVQoASOjta2L7_nvTPBXIACASISDITxIGj5rGs,1257
|
67
70
|
camomilla/theme/static/admin/css/responsive.css,sha256=yGq6qXrr8xEVsXTnprIBgkX-sMGZrNf0Kkh-xDxf6yE,157
|
68
71
|
camomilla/theme/static/admin/img/favicon.ico,sha256=qpKv_2MaGILvyihnD1Vq9Yk-ZXGkxWTW26ciMeBFMYU,15406
|
69
72
|
camomilla/theme/static/admin/img/logo.png,sha256=vvC1YE6QgQ1A8i6hRy6ksj3R2HbwNA4jM8qRLaKKTDo,18821
|
@@ -71,33 +74,34 @@ camomilla/theme/static/admin/img/logo.svg,sha256=WBAORIV_LzEOdcpq7iU6d0Nu3omgk2g
|
|
71
74
|
camomilla/theme/templates/admin/base.html,sha256=veKZ6KlnUYILeY4I2MYI18BbZMDec9MgzVzUqCHnjDc,254
|
72
75
|
camomilla/theme/templates/admin/base_site.html,sha256=Qlb_J7Erpu7oNSLjjQLWciDUoZLEAE49ASw5g2u4g-I,585
|
73
76
|
camomilla/theme/templates/rosetta/base.html,sha256=s9Ijf1nZx8um30R5Gk3g-w-RwFGv2QGViHufyLLiiDY,16731
|
74
|
-
camomilla/utils/__init__.py,sha256=
|
75
|
-
camomilla/utils/getters.py,sha256=
|
77
|
+
camomilla/utils/__init__.py,sha256=Ui7nzSh45UMMFtCGF1xFHKyJMNWflG_Nx72HAJHJHFM,100
|
78
|
+
camomilla/utils/getters.py,sha256=6j18grFAZ8BC70SriycFDTQFxTnudGn0uKGA83_Rclk,798
|
76
79
|
camomilla/utils/normalization.py,sha256=RDCZtjwpEEwjvfUjQl2bEWFKw7NxTzkXco72VeO2M9w,255
|
77
80
|
camomilla/utils/seo.py,sha256=8p_a_TGgohenpJb094tT4mMxbn2xzW0qDILuTnjNocM,3324
|
78
|
-
camomilla/utils/templates.py,sha256=
|
79
|
-
camomilla/utils/translation.py,sha256=
|
80
|
-
camomilla/views/__init__.py,sha256=
|
81
|
-
camomilla/views/articles.py,sha256=
|
82
|
-
camomilla/views/contents.py,sha256=
|
81
|
+
camomilla/utils/templates.py,sha256=Lv4-5019cnM30HmdZnYWiU5gxry-eFZVAhwOofGQRDs,598
|
82
|
+
camomilla/utils/translation.py,sha256=keld4EWIuMRWOuvnPGs2yGPsU5rln9WxAiA-Y_fqag8,2463
|
83
|
+
camomilla/views/__init__.py,sha256=94QuOnnbfMMb17mruO2ydUt286-8zBmDxEPWrJv5Wog,178
|
84
|
+
camomilla/views/articles.py,sha256=qGxebOA5iTbGGe9PfbH40YBoDPKktH8FJongg6rh2R8,571
|
85
|
+
camomilla/views/contents.py,sha256=JxvnmgeK8JEmCMLzVG8pVq2DwvmjXtgnIdsDnn74tA4,1205
|
86
|
+
camomilla/views/decorators.py,sha256=_YptU9Hpe-LQYDi2hztr14OVwBwDC3zTP948pqA2vb8,978
|
83
87
|
camomilla/views/languages.py,sha256=Rt_X7s3dbDBv4dxsQ9fnav_u0TAzzo8fGKBBx3esDsg,441
|
84
|
-
camomilla/views/medias.py,sha256=
|
85
|
-
camomilla/views/menus.py,sha256=
|
86
|
-
camomilla/views/pages.py,sha256=
|
87
|
-
camomilla/views/tags.py,sha256=
|
88
|
-
camomilla/views/users.py,sha256=
|
88
|
+
camomilla/views/medias.py,sha256=S4Ak4JI6XCSu3BCZx8KOotX7TBfrIU82GPXgyP3KcZA,3001
|
89
|
+
camomilla/views/menus.py,sha256=8ddc4ezGvuOgYkC5aElWpPOUIELbCFZ32O2c7-aKD_U,3408
|
90
|
+
camomilla/views/pages.py,sha256=KrBsKT0Z-rkBha8K3P6fVDt4vArQBxsc9rZ28j8XW9w,994
|
91
|
+
camomilla/views/tags.py,sha256=XcYRlcBFSPPY32lt7POb6fWPJL_8HsTo5JcHcAOiOKw,479
|
92
|
+
camomilla/views/users.py,sha256=_fvsKOEtep4SJLvMva2_q-HdLQT_1KlFNt4wcl3xCJk,3130
|
89
93
|
camomilla/views/base/__init__.py,sha256=S7KGhVzHM7f0j8XD7cbBY5__66zvKYkphRD9cfl0O1E,222
|
90
94
|
camomilla/views/mixins/__init__.py,sha256=GeRoznX3wTm6XydOltAIbx_WU7hVS70R-7jyAck0UpE,2438
|
91
95
|
camomilla/views/mixins/ordering.py,sha256=mh7fqPyVCVJh84Nl2pYFQouzGxa-ANF3Wqv0pCb7OVU,4779
|
92
96
|
camomilla/views/mixins/pagination.py,sha256=vUkfhqhTabeDdoiMwjeVpO6gl534EI0JMrr4TlZ8MRA,5956
|
93
97
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
|
-
tests/test_api.py,sha256=
|
98
|
+
tests/test_api.py,sha256=jn8mUz8S3FxgLE_FX3ETrfhzRVdwMhOh17PFgUWrrB0,2348
|
95
99
|
tests/test_camomilla_filters.py,sha256=_W9CcwsEyewMBvnNYKk4CVqrkXxRYejle3mjiBS7hqk,1848
|
96
100
|
tests/test_models.py,sha256=WJs8lxWZWn1l7X3a_QFVc8fF5LHTsI8bc3uhQe6-o-Q,684
|
97
101
|
tests/test_utils.py,sha256=0tdEDBaBkyjAXpbqP0SpFcfgO56MV2TWZmk9xpjR7J0,3613
|
98
102
|
tests/urls.py,sha256=yCnalWqGClQOCrrbHtIj175aC1ufE6QfhSqT0aoWyjA,562
|
99
|
-
django_camomilla_cms-6.0.
|
100
|
-
django_camomilla_cms-6.0.
|
101
|
-
django_camomilla_cms-6.0.
|
102
|
-
django_camomilla_cms-6.0.
|
103
|
-
django_camomilla_cms-6.0.
|
103
|
+
django_camomilla_cms-6.0.0b4.dist-info/LICENSE,sha256=kVS7zDrNkav2hLLXbOJwVdonY2ToApTK3khyJagGQoQ,1063
|
104
|
+
django_camomilla_cms-6.0.0b4.dist-info/METADATA,sha256=A2xAcnCXQr50lGJVZ2wbn0lpVv-UgHhDl2g-5oQl_yk,2423
|
105
|
+
django_camomilla_cms-6.0.0b4.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
106
|
+
django_camomilla_cms-6.0.0b4.dist-info/top_level.txt,sha256=G9VIGBmMMqC7JEckoTgXKmC6T2BR75QRkqRnngw1_lo,16
|
107
|
+
django_camomilla_cms-6.0.0b4.dist-info/RECORD,,
|
tests/test_api.py
CHANGED
File without changes
|
File without changes
|
{django_camomilla_cms-6.0.0b2.dist-info → django_camomilla_cms-6.0.0b4.dist-info}/top_level.txt
RENAMED
File without changes
|