wagtail-cjkcms 25.2.1__py2.py3-none-any.whl → 25.2.3__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. cjkcms/__init__.py +1 -1
  2. cjkcms/migrations/0024_remove_cjkcmspage_struct_org_actions_and_more.py +79 -0
  3. cjkcms/models/page_models.py +4 -4
  4. cjkcms/templates/cjkcms/blocks/cardgrid_columns.html +3 -1
  5. cjkcms/templates/cjkcms/blocks/cardgrid_deck.html +2 -1
  6. cjkcms/templates/cjkcms/blocks/cardgrid_group.html +2 -1
  7. cjkcms/templates/cjkcms/blocks/cardgrid_zero.html +2 -1
  8. cjkcms/templates/cjkcms/blocks/pagelist_article_card_deck.html +1 -2
  9. cjkcms/templates/cjkcms/blocks/pagelist_article_card_group.html +4 -1
  10. cjkcms/templates/cjkcms/blocks/pagelist_article_media.html +4 -1
  11. cjkcms/templates/cjkcms/blocks/pagelist_block.html +4 -1
  12. cjkcms/templates/cjkcms/blocks/pagelist_list_group.html +4 -1
  13. cjkcms/templates/cjkcms/blocks/pagelist_toc_nextprev.html +4 -5
  14. cjkcms/templates/cjkcms/widgets/checkbox_classifiers.html +1 -5
  15. cjkcms/tests/test_settings.py +17 -6
  16. cjkcms/utils/__init__.py +2 -0
  17. cjkcms/utils/richtext.py +16 -0
  18. cjkcms/{utils.py → utils/visibility.py} +0 -16
  19. {wagtail_cjkcms-25.2.1.dist-info → wagtail_cjkcms-25.2.3.dist-info}/METADATA +4 -4
  20. {wagtail_cjkcms-25.2.1.dist-info → wagtail_cjkcms-25.2.3.dist-info}/RECORD +36 -35
  21. cjkcms/tests/media/images/test_qOYmckb.original.png +0 -0
  22. cjkcms/tests/media/original_images/test_qOYmckb.png +0 -0
  23. /cjkcms/tests/media/images/{test_IocDjKv.original.png → test_3NMwZ9L.original.png} +0 -0
  24. /cjkcms/tests/media/images/{test_LH2dPwn.original.png → test_AGrWgX3.original.png} +0 -0
  25. /cjkcms/tests/media/images/{test_O3GLriA.original.png → test_TpkZkXF.original.png} +0 -0
  26. /cjkcms/tests/media/images/{test_WUJDfCh.original.png → test_cOs0NW2.original.png} +0 -0
  27. /cjkcms/tests/media/images/{test_ZfGlHpM.original.png → test_sCFpDtv.original.png} +0 -0
  28. /cjkcms/tests/media/images/{test_e3WjdNA.original.png → test_w289mH5.original.png} +0 -0
  29. /cjkcms/tests/media/original_images/{test_IocDjKv.png → test_3NMwZ9L.png} +0 -0
  30. /cjkcms/tests/media/original_images/{test_LH2dPwn.png → test_AGrWgX3.png} +0 -0
  31. /cjkcms/tests/media/original_images/{test_O3GLriA.png → test_TpkZkXF.png} +0 -0
  32. /cjkcms/tests/media/original_images/{test_WUJDfCh.png → test_cOs0NW2.png} +0 -0
  33. /cjkcms/tests/media/original_images/{test_ZfGlHpM.png → test_sCFpDtv.png} +0 -0
  34. /cjkcms/tests/media/original_images/{test_e3WjdNA.png → test_w289mH5.png} +0 -0
  35. {wagtail_cjkcms-25.2.1.dist-info → wagtail_cjkcms-25.2.3.dist-info}/LICENSE +0 -0
  36. {wagtail_cjkcms-25.2.1.dist-info → wagtail_cjkcms-25.2.3.dist-info}/WHEEL +0 -0
  37. {wagtail_cjkcms-25.2.1.dist-info → wagtail_cjkcms-25.2.3.dist-info}/entry_points.txt +0 -0
  38. {wagtail_cjkcms-25.2.1.dist-info → wagtail_cjkcms-25.2.3.dist-info}/top_level.txt +0 -0
cjkcms/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- VERSION = (25, 2, 1, "")
1
+ VERSION = (25, 2, 3, "")
2
2
 
3
3
  __version_info__ = VERSION
4
4
  __version__ = ".".join(map(str, VERSION[:3])) + (f"-{VERSION[3]}" if VERSION[3] else "")
@@ -0,0 +1,79 @@
1
+ # Generated by Django 5.1.5 on 2025-02-08 10:45
2
+
3
+ import django.db.models.deletion
4
+ from django.db import migrations, models
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ('cjkcms', '0023_alter_navbar_language'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.RemoveField(
15
+ model_name='cjkcmspage',
16
+ name='struct_org_actions',
17
+ ),
18
+ migrations.RemoveField(
19
+ model_name='cjkcmspage',
20
+ name='struct_org_address_country',
21
+ ),
22
+ migrations.RemoveField(
23
+ model_name='cjkcmspage',
24
+ name='struct_org_address_locality',
25
+ ),
26
+ migrations.RemoveField(
27
+ model_name='cjkcmspage',
28
+ name='struct_org_address_postal',
29
+ ),
30
+ migrations.RemoveField(
31
+ model_name='cjkcmspage',
32
+ name='struct_org_address_region',
33
+ ),
34
+ migrations.RemoveField(
35
+ model_name='cjkcmspage',
36
+ name='struct_org_address_street',
37
+ ),
38
+ migrations.RemoveField(
39
+ model_name='cjkcmspage',
40
+ name='struct_org_extra_json',
41
+ ),
42
+ migrations.RemoveField(
43
+ model_name='cjkcmspage',
44
+ name='struct_org_geo_lat',
45
+ ),
46
+ migrations.RemoveField(
47
+ model_name='cjkcmspage',
48
+ name='struct_org_geo_lng',
49
+ ),
50
+ migrations.RemoveField(
51
+ model_name='cjkcmspage',
52
+ name='struct_org_hours',
53
+ ),
54
+ migrations.RemoveField(
55
+ model_name='cjkcmspage',
56
+ name='struct_org_image',
57
+ ),
58
+ migrations.RemoveField(
59
+ model_name='cjkcmspage',
60
+ name='struct_org_logo',
61
+ ),
62
+ migrations.RemoveField(
63
+ model_name='cjkcmspage',
64
+ name='struct_org_name',
65
+ ),
66
+ migrations.RemoveField(
67
+ model_name='cjkcmspage',
68
+ name='struct_org_phone',
69
+ ),
70
+ migrations.RemoveField(
71
+ model_name='cjkcmspage',
72
+ name='struct_org_type',
73
+ ),
74
+ migrations.AlterField(
75
+ model_name='cjkcmspage',
76
+ name='og_image',
77
+ field=models.ForeignKey(blank=True, help_text='Shown when linking to this page on social media. If blank, may show an image from the page, or the default from Settings > SEO.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image', verbose_name='Preview image'),
78
+ ),
79
+ ]
@@ -35,7 +35,7 @@ from wagtail.utils.decorators import cached_classmethod
35
35
  from wagtailcache.cache import WagtailCacheMixin
36
36
  from wagtailseo.models import SeoMixin, TwitterCard
37
37
 
38
- from cjkcms import utils
38
+ from cjkcms.utils.richtext import get_richtext_preview
39
39
  from cjkcms.blocks import CONTENT_STREAMBLOCKS, LAYOUT_STREAMBLOCKS
40
40
  from cjkcms.models.snippet_models import ClassifierTerm
41
41
  from cjkcms.models.wagtailsettings_models import LayoutSettings
@@ -315,8 +315,8 @@ class CjkcmsPage(WagtailCacheMixin, SeoMixin, Page, metaclass=CjkcmsPageMeta):
315
315
  ),
316
316
  ]
317
317
 
318
- promote_panels = SeoMixin.seo_meta_panels + SeoMixin.seo_struct_panels
319
-
318
+ promote_panels = SeoMixin.seo_meta_panels
319
+
320
320
  integration_panels = []
321
321
 
322
322
  def __init__(self, *args, **kwargs):
@@ -635,7 +635,7 @@ class CjkcmsWebPage(CjkcmsPage):
635
635
  """
636
636
  A shortened version of the body without HTML tags.
637
637
  """
638
- return utils.get_richtext_preview(self.body)
638
+ return get_richtext_preview(self.body)
639
639
 
640
640
 
641
641
  class CjkcmsArticlePage(CjkcmsWebPage):
@@ -2,7 +2,9 @@
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block grid_content %}
5
- <div class="row {{self.settings.custom_css_class}} position-relative" data-masonry='{"percentPosition": true }'>
5
+ <div class="row {{self.settings.custom_css_class}} position-relative"
6
+ data-masonry='{"percentPosition": true }'
7
+ {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %}>
6
8
  {% for block in self.content %}
7
9
  <div class="col-sm-6 col-lg-4 mb-4" style="position: absolute;left:0;top:0;">
8
10
  {% include_block block %}
@@ -7,7 +7,8 @@
7
7
  {{self.settings.custom_css_class}}
8
8
  {% else %}
9
9
  row-cols-1 row-cols-md-2 row-cols-lg-3 g-4
10
- {% endif %} ">
10
+ {% endif %}"
11
+ {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %}>
11
12
  {% for block in self.content %}
12
13
  <div class="col">
13
14
  {% include_block block %}
@@ -2,7 +2,8 @@
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block grid_content %}
5
- <div class="card-group {{self.settings.custom_css_class}}">
5
+ <div class="card-group {{self.settings.custom_css_class}}"
6
+ {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %}>
6
7
  {% for block in self.content %}
7
8
  {% include_block block %}
8
9
  {% endfor %}
@@ -2,7 +2,8 @@
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block grid_content %}
5
- <div class="card-zero {{self.settings.custom_css_class}}">
5
+ <div class="card-zero {{self.settings.custom_css_class}}"
6
+ {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %}>
6
7
  {% for block in self.content %}
7
8
  {% include_block block %}
8
9
  {% endfor %}
@@ -8,8 +8,7 @@
8
8
  {{self.settings.custom_css_class}}
9
9
  {% else %}
10
10
  row-cols-1 row-cols-md-2 row-cols-lg-3 g-4
11
- {% endif %}
12
- "
11
+ {% endif %}"
13
12
  {% if self.settings.custom_id %}
14
13
  id="{{self.settings.custom_id}}"
15
14
  {% endif %} >
@@ -3,7 +3,10 @@
3
3
 
4
4
  {% block block_render %}
5
5
 
6
- <div class="card-group">
6
+ <div class="card-group {{self.settings.custom_css_class}}"
7
+ {% if self.settings.custom_id %}
8
+ id="{{self.settings.custom_id}}"
9
+ {% endif %}>
7
10
  {% for page in pages %}
8
11
  {% with page.specific as article %}
9
12
  {% include "cjkcms/blocks/article_block_card.html" %}
@@ -5,7 +5,10 @@
5
5
 
6
6
  {% for page in pages %}
7
7
  {% with page.specific as article %}
8
- <div class="media">
8
+ <div class="media{{self.settings.custom_css_class}}"
9
+ {% if self.settings.custom_id %}
10
+ id="{{self.settings.custom_id}}"
11
+ {% endif %}>
9
12
  {% if article.cover_image %}
10
13
  {% image article.cover_image fill-150x100 as cover_image %}
11
14
  <a href="{{article.url}}"><img class="mr-3" src="{{cover_image.url}}" alt="{{cover_image.title}}"></a>
@@ -2,7 +2,10 @@
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block block_render %}
5
- <div class="row">
5
+ <div class="row {{self.settings.custom_css_class}}"
6
+ {% if self.settings.custom_id %}
7
+ id="{{self.settings.custom_id}}"
8
+ {% endif %}>
6
9
  {% if self.title %}
7
10
  <h3>{{ self.title }}</h3>
8
11
  {% endif %}
@@ -3,7 +3,10 @@
3
3
 
4
4
  {% block block_render %}
5
5
 
6
- <div class="list-group">
6
+ <div class="list-group {{self.settings.custom_css_class}}"
7
+ {% if self.settings.custom_id %}
8
+ id="{{self.settings.custom_id}}"
9
+ {% endif %}>
7
10
  {% for page in pages %}
8
11
  {% with page=page.specific %}
9
12
  <a class="list-group-item list-group-item-action flex-column align-items-start {% if request.path == page.url %}active{% endif %}" href="{{page.url}}">
@@ -3,11 +3,10 @@
3
3
 
4
4
  {% block block_render %}
5
5
 
6
- <div class="list-group
7
- {% if self.settings.custom_css_class %}
8
- {{self.settings.custom_css_class}}
9
- {% endif %}
10
- ">
6
+ <div class="list-group {{self.settings.custom_css_class}}"
7
+ {% if self.settings.custom_id %}
8
+ id="{{self.settings.custom_id}}"
9
+ {% endif %}>
11
10
  {% if self.title %}
12
11
  <h5 class="fw-bold">{{self.title}}</h5>
13
12
  {% endif %}
@@ -24,12 +24,8 @@
24
24
  {% endwith %}
25
25
  {% else %}
26
26
  {% load i18n %}
27
- <div class="cjkcms-callout">
27
+ <div class="">
28
28
  <div class="cjkcms-big-icon icon icon-snippet"></div>
29
- <h3>
30
- <span class="cjkcms-new">{% trans "New!" %}</span>
31
- {% trans "Organize Pages with Classifiers" %}
32
- </h3>
33
29
  <p>
34
30
  {% trans "Use Classifiers to create custom categories and filters."%}
35
31
  </p>
@@ -25,35 +25,46 @@ class SettingsTests(TestCase):
25
25
  # self.assertIsNone(abs_path, f"{logo} not found.")
26
26
  self.assertTrue(str(abs_path).endswith(logo), f"{logo} not found.")
27
27
 
28
- def _check_templates(self, templates, skip_empty=False):
28
+ def _check_templates(self, templates, skip_empty=False, check_advanced=False):
29
29
  """Check if all declared template files specified in the `templates` list
30
30
  are accessible and execute without error. Used to check individual
31
- sections in settings.py"""
31
+ sections in settings.py. Skip empty templates if `skip_empty` is True.
32
+ Check advanced settings features optionally (custom_id, custom_css_class)"""
32
33
 
33
34
  for tpl in templates:
34
35
  if skip_empty and not tpl[0]:
35
36
  continue
36
37
  try:
37
- get_template(tpl[0])
38
+ tpl = get_template(tpl[0])
39
+ # if check_advanced, ensure that strings {{self.settings.custom_css_class}}
40
+ # and {{self.settings.custom_id}} are present in template source
41
+ if check_advanced:
42
+ self.assertIn("{{self.settings.custom_css_class}}", tpl.template.source)
43
+ self.assertIn("{{self.settings.custom_id}}", tpl.template.source)
44
+
38
45
  except TemplateDoesNotExist as e:
39
46
  self.fail(f"Template not found: {str(e)}")
40
47
 
41
48
  def test_cardblock_templates(self):
42
49
  templates = cms_settings.CJKCMS_FRONTEND_TEMPLATES_BLOCKS["cardblock"]
43
- self._check_templates(templates)
50
+ self._check_templates(templates, check_advanced=True)
44
51
 
45
52
  def test_cardgridblock_templates(self):
46
53
  templates = cms_settings.CJKCMS_FRONTEND_TEMPLATES_BLOCKS["cardgridblock"]
47
- self._check_templates(templates)
54
+ self._check_templates(templates, check_advanced=True)
48
55
 
49
56
  def test_pagelistblock_templates(self):
50
57
  templates = cms_settings.CJKCMS_FRONTEND_TEMPLATES_BLOCKS["pagelistblock"]
51
- self._check_templates(templates)
58
+ self._check_templates(templates, check_advanced=True)
52
59
 
53
60
  def test_pagepreviewblock_templates(self):
54
61
  templates = cms_settings.CJKCMS_FRONTEND_TEMPLATES_BLOCKS["pagepreviewblock"]
55
62
  self._check_templates(templates)
56
63
 
64
+ def test_quoteblock_templates(self):
65
+ templates = cms_settings.CJKCMS_FRONTEND_TEMPLATES_BLOCKS["quoteblock"]
66
+ self._check_templates(templates, check_advanced=True)
67
+
57
68
  def test_frontend_template_pages_templates(self):
58
69
  templates = cms_settings.CJKCMS_FRONTEND_TEMPLATES_PAGES["*"]
59
70
  self._check_templates(templates, skip_empty=True)
@@ -0,0 +1,2 @@
1
+ from .visibility import can_show_block # noqa: F401
2
+ from .richtext import get_richtext_preview # noqa: F401
@@ -0,0 +1,16 @@
1
+ from django.utils.html import strip_tags
2
+ from django.utils.safestring import mark_safe
3
+
4
+
5
+ def get_richtext_preview(content, max_length=200):
6
+ """Returns a shortened version of a richtext field's content,
7
+ with HTML tags stripped, and trimmed to max_length.
8
+ >>> get_richtext_preview('<h1><div>Hello </div>world</h1>')
9
+ 'Hello world'
10
+ >>> get_richtext_preview('Hi worl\x64')
11
+ 'Hi world'"""
12
+ # strip tags
13
+ c = strip_tags(content)
14
+ # truncate and add ellipses
15
+ preview = f"{c[:max_length]}..." if len(c) > 200 else c
16
+ return mark_safe(preview)
@@ -1,22 +1,6 @@
1
- from django.utils.html import strip_tags
2
- from django.utils.safestring import mark_safe
3
1
  from datetime import datetime, timezone
4
2
 
5
3
 
6
- def get_richtext_preview(content, max_length=200):
7
- """Returns a shortened version of a richtext field's content,
8
- with HTML tags stripped, and trimmed to max_length.
9
- >>> get_richtext_preview('<h1><div>Hello </div>world</h1>')
10
- 'Hello world'
11
- >>> get_richtext_preview('Hi worl\x64')
12
- 'Hi world'"""
13
- # strip tags
14
- c = strip_tags(content)
15
- # truncate and add ellipses
16
- preview = f"{c[:max_length]}..." if len(c) > 200 else c
17
- return mark_safe(preview)
18
-
19
-
20
4
  def can_show_block(
21
5
  context,
22
6
  item_visibility: str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wagtail-cjkcms
3
- Version: 25.2.1
3
+ Version: 25.2.3
4
4
  Summary: Wagtail Content Management System, installable as a Django app into any Wagtail 4.1.x/5.x/6.x site.
5
5
  Author-email: Grzegorz Krol <gk@cjk.pl>
6
6
  License: BSD-3-Clause
@@ -30,9 +30,9 @@ Requires-Python: >=3.9
30
30
  Description-Content-Type: text/markdown
31
31
  License-File: LICENSE
32
32
  Requires-Dist: django-bootstrap5
33
- Requires-Dist: django>=4.2
34
- Requires-Dist: wagtail>=5.1
35
- Requires-Dist: wagtail-seo>=2.5.0
33
+ Requires-Dist: django>=5.0
34
+ Requires-Dist: wagtail>=6.0
35
+ Requires-Dist: wagtail-seo>=3.0
36
36
  Requires-Dist: wagtail-cache>=2.5.1
37
37
  Requires-Dist: cjkcms-color-panel
38
38
 
@@ -1,4 +1,4 @@
1
- cjkcms/__init__.py,sha256=bEBeeWOE3nJUbi0p10zNZfqAjN2kANoRVEm0PFoi2TU,272
1
+ cjkcms/__init__.py,sha256=rQ9g_AlwfGYAI0d2fu7wG6Uvpewsd58wJ14pfeSIya8,272
2
2
  cjkcms/apps.py,sha256=VA5Z1YerImetvN8KsjPTMSn1fSo6O1JkBJdK5y5ubJY,173
3
3
  cjkcms/fields.py,sha256=dE0DuNIjX7jhA-5GjSmR2l66EDH2kq3vuxL9WyRALCY,3191
4
4
  cjkcms/forms.py,sha256=_uu_FR8odz40lD-Rmw0tlK7-xxxa8THHfV2-1ZJYsIM,361
@@ -6,7 +6,6 @@ cjkcms/image_formats.py,sha256=d4zRshuybwxSRL8UpBH31dFBr32o4HNexa0ks5PX3TI,1833
6
6
  cjkcms/search_urls.py,sha256=92XkGTJRrQQyA061wWl1l5C0vq6INVJPXOrpcgp3aoU,125
7
7
  cjkcms/settings.py,sha256=zw8V6cMP57w-U0M5hU4a1ouRLn-q02Waip7KnTZfbpc,20109
8
8
  cjkcms/urls.py,sha256=k5tEHWI4Umi2PWvGdNJ-FZ9OCy6AS3Y2S7k5jNOpgt0,644
9
- cjkcms/utils.py,sha256=u4pkPxAwqH3SgyIcmvk7I5L3w-eIcz0Rphmv0Y1DRpA,2006
10
9
  cjkcms/views.py,sha256=Bl2K_hWwhxBPwkm7SeUo45qyEbrQUlMmE9tis2GQKwg,5793
11
10
  cjkcms/wagtail_hooks.py,sha256=AL2laH5wvYcM7rOIqOV2RGYe8Bx0luMi_5xvT1E0xTs,6686
12
11
  cjkcms/widgets.py,sha256=2B92WkaktZC1ge4GrAMTB7VVYKnKR8qoZLAtWS2z_00,1745
@@ -56,12 +55,13 @@ cjkcms/migrations/0020_socialmediasettings_github_and_more.py,sha256=flCSiw6wB32
56
55
  cjkcms/migrations/0021_remove_layoutsettings_navbar_color_scheme_and_more.py,sha256=lOOyu3QHjnjZY3HwXWCvUBxngm-t_sk4TvuxZ2Cq_j4,2723
57
56
  cjkcms/migrations/0022_cjkcmspage_breadcrumb_label_and_more.py,sha256=GprAV-Z_jJ9csmrhW1lMT9g91wQ5vVVfhqhxbS96ETc,954
58
57
  cjkcms/migrations/0023_alter_navbar_language.py,sha256=uXqRLfKQwFGgEDPICTo_esHmOsKgEVlGPhjc6pDDcCo,658
58
+ cjkcms/migrations/0024_remove_cjkcmspage_struct_org_actions_and_more.py,sha256=hIOnaqn2D7y2gK8NUkoSo7i_K0B8xOESBVvuiqWoX2E,2508
59
59
  cjkcms/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  cjkcms/models/__init__.py,sha256=f99GmxfFxGtQl8JvZFz8rAtklCIesLoSccyhhi2xgPU,232
61
61
  cjkcms/models/admin_sidebar.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  cjkcms/models/cms_models.py,sha256=leC-RKrd6GltgWcvM_3KT0guMeBt5r2YhgADFi6glzA,2414
63
63
  cjkcms/models/integration_models.py,sha256=DAAgMtjErjaWKRu6yPQUoWAG-uu4qZxCg1N9FqlswAA,6280
64
- cjkcms/models/page_models.py,sha256=tu2cvc0cyQu1I81lHv6UBk3P-xiINwzwLBLxB0gGyho,25607
64
+ cjkcms/models/page_models.py,sha256=OGB_SBP8Oh23JEFHzmwRFlhXHJxW9RZf6bwe7__hc7A,25606
65
65
  cjkcms/models/snippet_models.py,sha256=cV7nFpNfJE_JP-3g77swGgQt3szrwHlAEOXUwwYE2QY,17188
66
66
  cjkcms/models/wagtailsettings_models.py,sha256=ntgbGOquVmgbMehgV36KEiS25olqr_m5Ff7Ce7Pq61Y,23041
67
67
  cjkcms/project_template/basic/.editorconfig,sha256=1wgq7hgAUSHLfuy4Jh9BJ4ysyQL0si5UBbCu_OMz9hg,722
@@ -197,10 +197,10 @@ cjkcms/templates/cjkcms/blocks/card_horizontal2.html,sha256=Yx2St6fbjULu4PFppWSa
197
197
  cjkcms/templates/cjkcms/blocks/card_img.html,sha256=-67mrEcSEGllm0XZjxEEcEIW03nboi2-a7lAQLjHglk,786
198
198
  cjkcms/templates/cjkcms/blocks/card_landing1.html,sha256=igysNkq07i_ZjU0mfwd83kWPrXEv3yTL9dqRzhIIDlU,2615
199
199
  cjkcms/templates/cjkcms/blocks/card_landing2.html,sha256=9HNdG1IrMcHhP94c5DTicNoQ0gJOdjotRQ4bUlFDmBo,2823
200
- cjkcms/templates/cjkcms/blocks/cardgrid_columns.html,sha256=YnmGNWLlPloos4Yues9nqQqKLKjRdGPFkGBqFjiai-A,678
201
- cjkcms/templates/cjkcms/blocks/cardgrid_deck.html,sha256=L4Tn6vnRFcZ2nlDWZNxJcr0dKY2q-TOmVPIgtyvoI1o,450
202
- cjkcms/templates/cjkcms/blocks/cardgrid_group.html,sha256=mCOBw0wmTOyHvRXrngI-lweLiucjRmrXpuE2J7k87Qc,277
203
- cjkcms/templates/cjkcms/blocks/cardgrid_zero.html,sha256=lECaWt-D_N1zd5U8xnYWu0H-M-vNnMnIvzlulBag_hg,276
200
+ cjkcms/templates/cjkcms/blocks/cardgrid_columns.html,sha256=1ls8LWuRcX-WQQhI20YcHn0MCG1nUEdyPuYmJof_9Uk,768
201
+ cjkcms/templates/cjkcms/blocks/cardgrid_deck.html,sha256=tP3-RrN8BXUkTWn9Y8HRwSftuQNy5SGLCfZ0dT9RbTA,530
202
+ cjkcms/templates/cjkcms/blocks/cardgrid_group.html,sha256=CBF8Hv-RfhoC6FR9XyBkRAruI4H1US1l4_nwuNrHaM0,359
203
+ cjkcms/templates/cjkcms/blocks/cardgrid_zero.html,sha256=ZJECwiQ3IarjwA5brEVO5KTa6P05BLlHqhb6yW9uIuw,358
204
204
  cjkcms/templates/cjkcms/blocks/carousel_block.html,sha256=XC04uEPWjQKmN7dHoQVv9NmFPkBxLhCpwTzvVGeXUwk,2698
205
205
  cjkcms/templates/cjkcms/blocks/column_block.html,sha256=7aiPizV-MrXS2LyV_fP1aCpNoC0nNAQphyVuAWbi2SI,406
206
206
  cjkcms/templates/cjkcms/blocks/countdown.html,sha256=blU12tkfSUp1G3W7bEK0xBClVgj-baeCk9qGkWIpb9E,921
@@ -222,12 +222,12 @@ cjkcms/templates/cjkcms/blocks/image_link_block.html,sha256=1SnNXhvgorW3oIPOWuLe
222
222
  cjkcms/templates/cjkcms/blocks/modal_block.html,sha256=xlXP0drI0QinbH0-yLpEuIR8H2kz9rY9LmwQTIduqd8,1020
223
223
  cjkcms/templates/cjkcms/blocks/page_link_block.html,sha256=rRLrzIp7eTYNjNzkZelxorD6zEhtBWDG6p4jTBVIDK4,164
224
224
  cjkcms/templates/cjkcms/blocks/pagelist_article_card_columns.html,sha256=48yrs_GgqHfJSfACewqZjdq1AE_RuSZXDvMUTrmsFn0,787
225
- cjkcms/templates/cjkcms/blocks/pagelist_article_card_deck.html,sha256=biFu8CmpvHDNhLn66rmXg-w3gev-R8sEZGXPOhoWCqQ,642
226
- cjkcms/templates/cjkcms/blocks/pagelist_article_card_group.html,sha256=UzLRHUq4_bWv85WGzCTBevjRyjt1cqCfZSuLy9n9pMI,361
227
- cjkcms/templates/cjkcms/blocks/pagelist_article_media.html,sha256=k2AXqDNSntZUmastwPDE5lzs4OTy6KRe6qPTGeLaTXc,956
228
- cjkcms/templates/cjkcms/blocks/pagelist_block.html,sha256=0c0nqSNQtw8OKmbLDsTziRzNG0T98K6F0zhd4oqTQoc,858
229
- cjkcms/templates/cjkcms/blocks/pagelist_list_group.html,sha256=b21qMXTxf8-MluccVVrWBew-FhfjmMbyqas9nm06hGI,610
230
- cjkcms/templates/cjkcms/blocks/pagelist_toc_nextprev.html,sha256=__QZ6SNxoWByrjUsjo1MNx5CP4pnj0xR74WUHJVTkKU,1224
225
+ cjkcms/templates/cjkcms/blocks/pagelist_article_card_deck.html,sha256=BZwOOsSrkwEqV-8Nf0yP6rmsufBylalJ8kqSzG4-V9Q,637
226
+ cjkcms/templates/cjkcms/blocks/pagelist_article_card_group.html,sha256=fuy_XHIVFKSaM9-4V2phJ0l3CE-1FuzxUQbtqFD8Qrs,489
227
+ cjkcms/templates/cjkcms/blocks/pagelist_article_media.html,sha256=zdgEWRQ1lspoMjKz05jci9RNW6NykU3fCfBxAWCpO3c,1083
228
+ cjkcms/templates/cjkcms/blocks/pagelist_block.html,sha256=VX7IkFMqON-BMl1T_Y2fiKJBi6UOhMi1zmQqNdpgzSw,986
229
+ cjkcms/templates/cjkcms/blocks/pagelist_list_group.html,sha256=nQ679sgrRDKbjDYuxP9-ZvvIoewybhjITVbagGQiuMM,738
230
+ cjkcms/templates/cjkcms/blocks/pagelist_toc_nextprev.html,sha256=5kqTxJw5qT8eSn80H1h1WQ3kYIAYcz4o0miSxGqSyKk,1244
231
231
  cjkcms/templates/cjkcms/blocks/pagepreview_block.html,sha256=KGodzh8Pd-Jhg8mmMoLWFuiU3xDzBn4fuCqfYXT_iM4,200
232
232
  cjkcms/templates/cjkcms/blocks/pagepreview_card.html,sha256=SJeuA6lWEQYws53vNCGSOK_JxyUZN-ja2D8dUh2dr4E,793
233
233
  cjkcms/templates/cjkcms/blocks/pricelist_block.html,sha256=kq1M97zQlQjr_8E4Q9pge1hUMzjO_WNFQygN8Y1OUZ8,244
@@ -305,7 +305,7 @@ cjkcms/templates/cjkcms/snippets/tracking_g3.html,sha256=9OWUZKpHyomU02ubrf1rZpC
305
305
  cjkcms/templates/cjkcms/snippets/tracking_g4.html,sha256=auZnwOOyEpI48JUSlsJMfB3eMwEJV-85hZaJ7xtOSwI,832
306
306
  cjkcms/templates/cjkcms/snippets/tracking_matomo.html,sha256=kreCmOVi5U855Ly-NqxVT_ysbnj29Vb3n1k3PiUnVL8,694
307
307
  cjkcms/templates/cjkcms/snippets/tracking_matomo_noscript.html,sha256=g20zZkBNAY9A6Dk5cKZD3x2SD4ERrIW4AlISdLfkeGs,230
308
- cjkcms/templates/cjkcms/widgets/checkbox_classifiers.html,sha256=4v4RCOtJC1-3Qfksg4zloyI_1LBUpldDpjjJ4UTmBl0,1444
308
+ cjkcms/templates/cjkcms/widgets/checkbox_classifiers.html,sha256=B1DnwyTsjjf9f3SDTo6A3vOsR4iJOCAfUlc0X_lL4ug,1282
309
309
  cjkcms/templates/wagtailadmin/block_forms/base_block_settings_struct.html,sha256=sTMq7WSrxLkTY1bn8BFzRyRg3Dm3YjnYzVmLZfpuiug,839
310
310
  cjkcms/templates/wagtailadmin/block_forms/struct.html,sha256=cGGZY8luf9B29jhEqldzF5BnFTI0scM27bSHNFf-Fx8,550
311
311
  cjkcms/templates/wagtailadmin/shared/cr_main_nav_2fix.html,sha256=BAhkDE8_8KbhUOnHV-_P41jFDxszsp4699rYl33N6zo,885
@@ -327,36 +327,37 @@ cjkcms/tests/test_draftail_extensions.py,sha256=8WAf8LdvSxW7kgtJaXQ8V3rSRNkzRDc-
327
327
  cjkcms/tests/test_finders_oembed.py,sha256=J-dG3aTsO2KXnUA0o4yKHh_r5Za9v_8gcXJQGwJrXpI,2489
328
328
  cjkcms/tests/test_gravatar.py,sha256=UWu1cVi3Gj96yqeQu795gw6FVPbZ44eCkkH1NGEGgBo,2629
329
329
  cjkcms/tests/test_search_blocks.py,sha256=K6acussD7to_qttTBl4z-rAF00UJYZpd8OoeBt-T1Kc,5882
330
- cjkcms/tests/test_settings.py,sha256=n2B-qtaSdMJC4KuMGGx6qo5HIU73aaImbMkI_o7tK8A,2665
330
+ cjkcms/tests/test_settings.py,sha256=I-py7xCNqgx-EMj0ucOZ68dKY11CLgEtJzYkeYD-Mw4,3457
331
331
  cjkcms/tests/test_templatetags.py,sha256=RHaIn93G8Aa2lG3JTHSPhFOTLBa4AWXJnwXa9Us5iqI,5966
332
332
  cjkcms/tests/test_urls.py,sha256=otiKZcs1WLDQM6AOfcdZgsOGDwea1qS3VEc8Yy-FV-Q,2880
333
333
  cjkcms/tests/test_webpage.py,sha256=PvXeXbawigObsdi_YpQNuHFx3Lqi6wM3ktVHZsxYbr4,1520
334
334
  cjkcms/tests/urls.py,sha256=_ksKz7HBHJtQK3HxC9cmJMX_dt6n4alx3FXjcL-cu28,850
335
335
  cjkcms/tests/media/images/test.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
336
- cjkcms/tests/media/images/test_IocDjKv.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
337
- cjkcms/tests/media/images/test_LH2dPwn.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
338
- cjkcms/tests/media/images/test_O3GLriA.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
339
- cjkcms/tests/media/images/test_WUJDfCh.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
340
- cjkcms/tests/media/images/test_ZfGlHpM.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
341
- cjkcms/tests/media/images/test_e3WjdNA.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
342
- cjkcms/tests/media/images/test_qOYmckb.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
336
+ cjkcms/tests/media/images/test_3NMwZ9L.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
337
+ cjkcms/tests/media/images/test_AGrWgX3.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
338
+ cjkcms/tests/media/images/test_TpkZkXF.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
339
+ cjkcms/tests/media/images/test_cOs0NW2.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
340
+ cjkcms/tests/media/images/test_sCFpDtv.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
341
+ cjkcms/tests/media/images/test_w289mH5.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
343
342
  cjkcms/tests/media/original_images/test.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
344
- cjkcms/tests/media/original_images/test_IocDjKv.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
345
- cjkcms/tests/media/original_images/test_LH2dPwn.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
346
- cjkcms/tests/media/original_images/test_O3GLriA.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
347
- cjkcms/tests/media/original_images/test_WUJDfCh.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
348
- cjkcms/tests/media/original_images/test_ZfGlHpM.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
349
- cjkcms/tests/media/original_images/test_e3WjdNA.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
350
- cjkcms/tests/media/original_images/test_qOYmckb.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
343
+ cjkcms/tests/media/original_images/test_3NMwZ9L.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
344
+ cjkcms/tests/media/original_images/test_AGrWgX3.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
345
+ cjkcms/tests/media/original_images/test_TpkZkXF.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
346
+ cjkcms/tests/media/original_images/test_cOs0NW2.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
347
+ cjkcms/tests/media/original_images/test_sCFpDtv.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
348
+ cjkcms/tests/media/original_images/test_w289mH5.png,sha256=xJDvcufuQ-AM1HT-zgMxYEORko4rdK_8MSHU-puJNW8,2306
351
349
  cjkcms/tests/testapp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
350
  cjkcms/tests/testapp/apps.py,sha256=EwyrkWTu-_OoLoERBTlqkqfPIIrEsbHY3kbCxgrv_7I,169
353
351
  cjkcms/tests/testapp/models.py,sha256=N11rFqkMqQNVagoLjmIX8BVsgfW7wFqYKiDB9gE0PTo,575
354
352
  cjkcms/tests/testapp/migrations/0001_initial.py,sha256=hxr-r-42IQEGr_OsZkxXXCW7wbxAHuI_OLOkn-seJUU,4942
355
353
  cjkcms/tests/testapp/migrations/0002_create_homepage.py,sha256=EfsxHh1oyqwahW9RVpTvaRDx_CHtFSJQahKEr7XC5Gg,1999
356
354
  cjkcms/tests/testapp/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
357
- wagtail_cjkcms-25.2.1.dist-info/LICENSE,sha256=KHsCh1fKOZzvcKe1a9h3FlDjTjK_UurO3wHK55TnHHo,1538
358
- wagtail_cjkcms-25.2.1.dist-info/METADATA,sha256=sllW_2ZjE935r1eSwZWY_MjCnl5vV0Pi5KO7I0LNr-s,3120
359
- wagtail_cjkcms-25.2.1.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
360
- wagtail_cjkcms-25.2.1.dist-info/entry_points.txt,sha256=FzoiFENdZ1uebNztyz6GlswkumQspd5VjWbR9MUIH_8,50
361
- wagtail_cjkcms-25.2.1.dist-info/top_level.txt,sha256=8wJGOGo1pG5nO5akfcMzA7i3ndj5868I8w35vTT0JJM,7
362
- wagtail_cjkcms-25.2.1.dist-info/RECORD,,
355
+ cjkcms/utils/__init__.py,sha256=uLr0n5jD1dmdICgpv7WjgAtuyrs50ERyRLVUmoSV1cA,110
356
+ cjkcms/utils/richtext.py,sha256=dgNVQIAXevXzaVhCtGc7XW4PDwTFiGEL7q-YGgpcEjo,573
357
+ cjkcms/utils/visibility.py,sha256=sbxIM5g903AydRdBbwwahB8tpoyQrHjmERn9Yg_aJ4g,1433
358
+ wagtail_cjkcms-25.2.3.dist-info/LICENSE,sha256=KHsCh1fKOZzvcKe1a9h3FlDjTjK_UurO3wHK55TnHHo,1538
359
+ wagtail_cjkcms-25.2.3.dist-info/METADATA,sha256=XDA-RfSqldQnFlyw-_dwv1WAJrRWfqTnaJKcE9MdHTY,3118
360
+ wagtail_cjkcms-25.2.3.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
361
+ wagtail_cjkcms-25.2.3.dist-info/entry_points.txt,sha256=FzoiFENdZ1uebNztyz6GlswkumQspd5VjWbR9MUIH_8,50
362
+ wagtail_cjkcms-25.2.3.dist-info/top_level.txt,sha256=8wJGOGo1pG5nO5akfcMzA7i3ndj5868I8w35vTT0JJM,7
363
+ wagtail_cjkcms-25.2.3.dist-info/RECORD,,