django-camomilla-cms 6.0.0b8__tar.gz → 6.0.0b10__tar.gz

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.
Files changed (115) hide show
  1. {django-camomilla-cms-6.0.0b8/django_camomilla_cms.egg-info → django-camomilla-cms-6.0.0b10}/PKG-INFO +1 -1
  2. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/__init__.py +1 -1
  3. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/dynamic_pages_urls.py +5 -2
  4. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/page.py +12 -5
  5. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/defaults/parts/langswitch.html +9 -1
  6. django-camomilla-cms-6.0.0b10/camomilla/theme/__init__.py +1 -0
  7. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10/django_camomilla_cms.egg-info}/PKG-INFO +1 -1
  8. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/setup.py +1 -1
  9. django-camomilla-cms-6.0.0b8/camomilla/theme/__init__.py +0 -1
  10. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/LICENSE +0 -0
  11. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/MANIFEST.in +0 -0
  12. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/README.md +0 -0
  13. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/apps.py +0 -0
  14. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/authentication.py +0 -0
  15. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/context_processors.py +0 -0
  16. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/contrib/__init__.py +0 -0
  17. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/contrib/modeltranslation/__init__.py +0 -0
  18. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/contrib/modeltranslation/hvad_migration.py +0 -0
  19. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/contrib/rest_framework/__init__.py +0 -0
  20. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/contrib/rest_framework/serializer.py +0 -0
  21. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/defaults.py +0 -0
  22. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/exceptions.py +0 -0
  23. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/fields/__init__.py +0 -0
  24. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/fields/json.py +0 -0
  25. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/management/__init__.py +0 -0
  26. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/management/commands/__init__.py +0 -0
  27. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/management/commands/regenerate_thumbnails.py +0 -0
  28. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/model_api.py +0 -0
  29. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/__init__.py +0 -0
  30. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/article.py +0 -0
  31. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/content.py +0 -0
  32. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/media.py +0 -0
  33. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/menu.py +0 -0
  34. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/models/mixins/__init__.py +0 -0
  35. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/openapi/__init__.py +0 -0
  36. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/openapi/schema.py +0 -0
  37. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/parsers.py +0 -0
  38. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/permissions.py +0 -0
  39. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/__init__.py +0 -0
  40. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/article.py +0 -0
  41. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/base/__init__.py +0 -0
  42. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/content_type.py +0 -0
  43. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/fields/__init__.py +0 -0
  44. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/fields/file.py +0 -0
  45. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/fields/json.py +0 -0
  46. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/fields/related.py +0 -0
  47. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/media.py +0 -0
  48. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/menu.py +0 -0
  49. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/mixins/__init__.py +0 -0
  50. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/page.py +0 -0
  51. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/user.py +0 -0
  52. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/utils.py +0 -0
  53. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/serializers/validators.py +0 -0
  54. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/settings.py +0 -0
  55. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/sitemap.py +0 -0
  56. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/storages/__init__.py +0 -0
  57. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/storages/optimize.py +0 -0
  58. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/storages/overwrite.py +0 -0
  59. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/structured/__init__.py +0 -0
  60. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/structured/cache.py +0 -0
  61. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/structured/fields.py +0 -0
  62. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/structured/models.py +0 -0
  63. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/structured/utils.py +0 -0
  64. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/admin/camomilla/page/change_form.html +0 -0
  65. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/defaults/articles/default.html +0 -0
  66. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/defaults/base.html +0 -0
  67. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/defaults/pages/default.html +0 -0
  68. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/defaults/parts/menu.html +0 -0
  69. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates/defaults/widgets/media_select_multiple.html +0 -0
  70. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates_context/__init__.py +0 -0
  71. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates_context/autodiscover.py +0 -0
  72. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templates_context/rendering.py +0 -0
  73. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templatetags/__init__.py +0 -0
  74. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templatetags/camomilla_filters.py +0 -0
  75. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/templatetags/menus.py +0 -0
  76. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/admin.py +0 -0
  77. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/apps.py +0 -0
  78. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/static/admin/css/responsive.css +0 -0
  79. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/static/admin/img/favicon.ico +0 -0
  80. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/static/admin/img/logo.svg +0 -0
  81. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/templates/admin/base.html +0 -0
  82. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/theme/templates/rosetta/base.html +0 -0
  83. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/translation.py +0 -0
  84. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/urls.py +0 -0
  85. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/utils/__init__.py +0 -0
  86. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/utils/getters.py +0 -0
  87. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/utils/normalization.py +0 -0
  88. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/utils/seo.py +0 -0
  89. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/utils/templates.py +0 -0
  90. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/utils/translation.py +0 -0
  91. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/__init__.py +0 -0
  92. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/articles.py +0 -0
  93. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/base/__init__.py +0 -0
  94. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/contents.py +0 -0
  95. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/decorators.py +0 -0
  96. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/languages.py +0 -0
  97. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/medias.py +0 -0
  98. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/menus.py +0 -0
  99. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/mixins/__init__.py +0 -0
  100. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/mixins/ordering.py +0 -0
  101. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/mixins/pagination.py +0 -0
  102. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/pages.py +0 -0
  103. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/tags.py +0 -0
  104. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/camomilla/views/users.py +0 -0
  105. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/django_camomilla_cms.egg-info/SOURCES.txt +0 -0
  106. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/django_camomilla_cms.egg-info/dependency_links.txt +0 -0
  107. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/django_camomilla_cms.egg-info/requires.txt +0 -0
  108. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/django_camomilla_cms.egg-info/top_level.txt +0 -0
  109. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/pyproject.toml +0 -0
  110. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/setup.cfg +0 -0
  111. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/tests/__init__.py +0 -0
  112. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/tests/test_api.py +0 -0
  113. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/tests/test_camomilla_filters.py +0 -0
  114. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/tests/test_models.py +0 -0
  115. {django-camomilla-cms-6.0.0b8 → django-camomilla-cms-6.0.0b10}/tests/test_utils.py +0 -0
@@ -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,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
@@ -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>
@@ -0,0 +1 @@
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,5 +1,5 @@
1
1
  from setuptools import setup
2
2
 
3
- __version__ = "6.0.0-beta.8"
3
+ __version__ = "6.0.0-beta.10"
4
4
 
5
5
  setup(version=__version__)
@@ -1 +0,0 @@
1
- __version__ = "6.0.0-beta.8"