django-camomilla-cms 6.0.0b8__py2.py3-none-any.whl → 6.0.0b10__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.0.0-beta.8"
1
+ __version__ = "6.0.0-beta.10"
2
2
 
3
3
 
4
4
  def get_core_apps():
@@ -1,13 +1,16 @@
1
- from django.shortcuts import render
1
+ from django.shortcuts import redirect, render
2
2
  from django.urls import path
3
3
 
4
4
  from camomilla import settings
5
-
5
+ from django.conf import settings as django_settings
6
6
  from .models import Page
7
7
 
8
8
 
9
9
  def fetch(request, *args, **kwargs):
10
10
  preview = request.user.is_staff and request.GET.get("preview", False)
11
+ append_slash = getattr(django_settings, "APPEND_SLASH", True)
12
+ if append_slash and not request.path.endswith("/"):
13
+ return redirect(request.path + "/")
11
14
  if "permalink" in kwargs:
12
15
  page = Page.get_or_404(
13
16
  request, bypass_public_check=preview, bypass_type_check=True
camomilla/models/page.py CHANGED
@@ -25,6 +25,7 @@ from camomilla.utils import (
25
25
  from camomilla.utils.getters import pointed_getter
26
26
  from camomilla import settings
27
27
  from camomilla.templates_context.rendering import ctx_registry
28
+ from django.conf import settings as django_settings
28
29
 
29
30
 
30
31
  def GET_TEMPLATE_CHOICES():
@@ -117,10 +118,14 @@ class UrlNode(models.Model):
117
118
 
118
119
  @staticmethod
119
120
  def reverse_url(permalink: str) -> str:
121
+ append_slash = getattr(django_settings, "APPEND_SLASH", True)
120
122
  try:
121
123
  if permalink == "/":
122
124
  return reverse("camomilla-homepage")
123
- return reverse("camomilla-permalink", args=(permalink.lstrip("/"),))
125
+ url = reverse("camomilla-permalink", args=(permalink.lstrip("/"),))
126
+ if append_slash and not url.endswith("/"):
127
+ url += "/"
128
+ return url
124
129
  except NoReverseMatch:
125
130
  return None
126
131
 
@@ -314,12 +319,14 @@ class AbstractPage(SeoMixin, MetaMixin, models.Model, metaclass=PageBase):
314
319
  def get(cls, request, *args, **kwargs) -> "AbstractPage":
315
320
  bypass_type_check = kwargs.pop("bypass_type_check", False)
316
321
  bypass_public_check = kwargs.pop("bypass_public_check", False)
317
-
322
+ path = request.path
323
+ if getattr(django_settings, "APPEND_SLASH", True):
324
+ path = path.rstrip("/")
318
325
  if len(kwargs.keys()) > 0:
319
326
  page = cls.objects.get(**kwargs)
320
327
  else:
321
328
  node = UrlNode.objects.filter(
322
- permalink=url_lang_decompose(request.path)["permalink"]
329
+ permalink=url_lang_decompose(path)["permalink"]
323
330
  ).first()
324
331
  page = node and node.page
325
332
  type_error = not bypass_type_check and not isinstance(page, cls)
@@ -367,10 +374,10 @@ class AbstractPage(SeoMixin, MetaMixin, models.Model, metaclass=PageBase):
367
374
  raise Http404(ex)
368
375
 
369
376
  def alternate_urls(self, *args, **kwargs) -> dict:
370
- permalinks = get_field_translations(self.url_node or object, "permalink", None)
377
+ permalinks = get_field_translations(self.url_node or object, "permalink", None)
371
378
  for lang in activate_languages():
372
379
  if lang in permalinks:
373
- permalinks[lang] = UrlNode.reverse_url(permalinks[lang])
380
+ permalinks[lang] = UrlNode.reverse_url(permalinks[lang]) if self.is_public else None
374
381
  return permalinks
375
382
 
376
383
  class Meta:
@@ -40,7 +40,7 @@
40
40
  <div class="language-switch--btn" data-lang="{{lang_code}}"
41
41
  {% if current_lang.code != lang_code %}
42
42
  {% if redirect is None %}
43
- onclick="submitLanguageWithoutRedirect('{{lang_code}}');"
43
+ onclick="submitLanguageHomeRedirect('{{lang_code}}');"
44
44
  {% else %}
45
45
  onclick="submitLanguage('{{lang_code}}', '{{redirect|strip_lang:lang_code}}');"
46
46
  {% endif %}
@@ -71,5 +71,13 @@
71
71
  document.getElementById('form_change_language').submit();
72
72
  }, 300);
73
73
  };
74
+ window.submitLanguageHomeRedirect = function (langCode) {
75
+ document.getElementById('select_change_language').value = langCode;
76
+ document.getElementById('next_form_change_language').value = "/";
77
+ document.getElementById('next_form_change_language').disabled = false;
78
+ setTimeout(function () {
79
+ document.getElementById('form_change_language').submit();
80
+ }, 300);
81
+ };
74
82
 
75
83
  </script>
@@ -1 +1 @@
1
- __version__ = "6.0.0-beta.8"
1
+ __version__ = "6.0.0-beta.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-camomilla-cms
3
- Version: 6.0.0b8
3
+ Version: 6.0.0b10
4
4
  Summary: Django powered cms
5
5
  Author-email: Lotrèk <dimmitutto@lotrek.it>
6
6
  License: MIT
@@ -1,9 +1,9 @@
1
- camomilla/__init__.py,sha256=98T7M-avlYhd40ECxyz1XOssnuaKOv8nz_XK4HIU5xc,250
1
+ camomilla/__init__.py,sha256=290K2wRZs39ioj08zf-jjuskE8j9hWSRl4qThb90zFY,251
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
5
5
  camomilla/defaults.py,sha256=VNQ_sbxu09AyFGNpUUYypIAyhlBhEORD36BBNj7e73I,1220
6
- camomilla/dynamic_pages_urls.py,sha256=VC1cESk6SS7ixsq6-LevnpPOk1Xjphhd4r3vzvy17O0,781
6
+ camomilla/dynamic_pages_urls.py,sha256=HBI8gCe0Vd9mE74QrIVP57K4ThWopEW4r7jZnFHulTk,1008
7
7
  camomilla/exceptions.py,sha256=gLniAsK_pmsNNKGMv5Z384LXVbM8oeHcOwz4F91u1LY,111
8
8
  camomilla/model_api.py,sha256=VC3tNQucS3-KVtdZNWkkbkJn8vtl_cBKYTcC3QU6PpU,2253
9
9
  camomilla/parsers.py,sha256=fL8XGCGPxJIZNZkPdGtnPSbDP-6-yzGOCVMuLPjkx9Y,1975
@@ -27,7 +27,7 @@ camomilla/models/article.py,sha256=LgkZgRsubtDV6NwBz8E2bIgKD6H3I-1QLAxEan5TYYs,1
27
27
  camomilla/models/content.py,sha256=mIgtifb_WMIt58we5u6qWZemHvuDN1zZaBeCyzHL78A,956
28
28
  camomilla/models/media.py,sha256=7TD_0nhNoi8P-Gmsr0Kag4eGaxMXuTfQOFl53Mb03cQ,6854
29
29
  camomilla/models/menu.py,sha256=GdywN50yp7ezXzy8SF8P-W3ejey31ZPlJYp2cEM38Uk,2835
30
- camomilla/models/page.py,sha256=VLolS42Abh2RZ5a4P1NRCPgEhugUDapcUOswSo1bbdc,14208
30
+ camomilla/models/page.py,sha256=ICRATTJ1UNdI0fhVh0o4Hl-sG-2zC_L_LmZ6i_Lqtcw,14584
31
31
  camomilla/models/mixins/__init__.py,sha256=c2NixqvrIX4E9WGRqQbylXlqBWDXEqN9mzs_dpB0hFQ,1248
32
32
  camomilla/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  camomilla/openapi/schema.py,sha256=kYNtIKnLx4SIj893umIE6u-q3HH9hYH9O4zdZCSOe7U,2100
@@ -58,7 +58,7 @@ camomilla/templates/admin/camomilla/page/change_form.html,sha256=ig7rRUtylDZMINB
58
58
  camomilla/templates/defaults/base.html,sha256=pklt7Pif3g9d7gwgRxCQj7gniJaHD14ZqZID_xIlC0A,6638
59
59
  camomilla/templates/defaults/articles/default.html,sha256=1f89jBvNtTa1mPAbC91yy8CzeAjTWO3hhQsTuQW5OKg,239
60
60
  camomilla/templates/defaults/pages/default.html,sha256=bP81Qb6M56I-fBJMywWwEu_cnERtWIX28UkGrUSRU6M,144
61
- camomilla/templates/defaults/parts/langswitch.html,sha256=sDvT8HZidPNnS-adSkaK3fvB2CAahUuDHBaV86tscDs,3009
61
+ camomilla/templates/defaults/parts/langswitch.html,sha256=AkaQzb2KNjRYCMLUn_jE31V36rwBIwp4MneirWPiBcI,3424
62
62
  camomilla/templates/defaults/parts/menu.html,sha256=KBgXv23dCWW0XM16R5fT0_g-w_qudVfcF-CYSdwl83s,338
63
63
  camomilla/templates/defaults/widgets/media_select_multiple.html,sha256=k2XYou8KkPuFLnPMkPJAFJ-zGJj2Xvu6R3ZmiKa3g7Q,3727
64
64
  camomilla/templates_context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -67,7 +67,7 @@ camomilla/templates_context/rendering.py,sha256=CyMFKPo8YIJzITco748z56-zsxwBUcZ_
67
67
  camomilla/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  camomilla/templatetags/camomilla_filters.py,sha256=35x0-cWrRHeLhqypSLlJzEFY_fQDcRHiwZQpFgIsspE,692
69
69
  camomilla/templatetags/menus.py,sha256=pLFeJ1UAm3flsU9TNo2iQk4otSwZuJPr86Nf408dZ-8,862
70
- camomilla/theme/__init__.py,sha256=JxdeZSWRPvuszvsNGymXrtSuAPl6RMy9kPN89Ndg8q4,29
70
+ camomilla/theme/__init__.py,sha256=ArO8-b74tqvW5bMSXNGa4K56kB3oiCNhmwbpq8di0K0,30
71
71
  camomilla/theme/admin.py,sha256=R3QAfqaF9mhzwfyb_m2_hqTQ2hBcNvQts1MWUX4dUUM,2462
72
72
  camomilla/theme/apps.py,sha256=ecqG8ntWdOighYOEHQOMVQpa5g_1WEzzpaaGjnOi9uA,1195
73
73
  camomilla/theme/static/admin/css/responsive.css,sha256=yGq6qXrr8xEVsXTnprIBgkX-sMGZrNf0Kkh-xDxf6yE,157
@@ -100,8 +100,8 @@ tests/test_api.py,sha256=DTXtvNNRwvZvxGKi6LyCzhpyU1OzPWGSbBUfRL3-Nck,2101
100
100
  tests/test_camomilla_filters.py,sha256=_W9CcwsEyewMBvnNYKk4CVqrkXxRYejle3mjiBS7hqk,1848
101
101
  tests/test_models.py,sha256=WJs8lxWZWn1l7X3a_QFVc8fF5LHTsI8bc3uhQe6-o-Q,684
102
102
  tests/test_utils.py,sha256=0tdEDBaBkyjAXpbqP0SpFcfgO56MV2TWZmk9xpjR7J0,3613
103
- django_camomilla_cms-6.0.0b8.dist-info/LICENSE,sha256=kVS7zDrNkav2hLLXbOJwVdonY2ToApTK3khyJagGQoQ,1063
104
- django_camomilla_cms-6.0.0b8.dist-info/METADATA,sha256=bEKZKW4cpfLqrW0zhZ8X9lHCEKjW1gsGi0Wb1O3oOMI,2409
105
- django_camomilla_cms-6.0.0b8.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
106
- django_camomilla_cms-6.0.0b8.dist-info/top_level.txt,sha256=G9VIGBmMMqC7JEckoTgXKmC6T2BR75QRkqRnngw1_lo,16
107
- django_camomilla_cms-6.0.0b8.dist-info/RECORD,,
103
+ django_camomilla_cms-6.0.0b10.dist-info/LICENSE,sha256=kVS7zDrNkav2hLLXbOJwVdonY2ToApTK3khyJagGQoQ,1063
104
+ django_camomilla_cms-6.0.0b10.dist-info/METADATA,sha256=REFnPoTSJOcseg4yGal9OaGlf-Rr0uEpKVUt_X5Tpdg,2410
105
+ django_camomilla_cms-6.0.0b10.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
106
+ django_camomilla_cms-6.0.0b10.dist-info/top_level.txt,sha256=G9VIGBmMMqC7JEckoTgXKmC6T2BR75QRkqRnngw1_lo,16
107
+ django_camomilla_cms-6.0.0b10.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.41.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any