wagtail-cjkcms 25.1.10__tar.gz → 25.2.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (411) hide show
  1. {wagtail_cjkcms-25.1.10/wagtail_cjkcms.egg-info → wagtail_cjkcms-25.2.1}/PKG-INFO +1 -1
  2. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/__init__.py +1 -1
  3. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/html_blocks.py +1 -0
  4. wagtail_cjkcms-25.2.1/cjkcms/migrations/0022_cjkcmspage_breadcrumb_label_and_more.py +32 -0
  5. wagtail_cjkcms-25.2.1/cjkcms/migrations/0023_alter_navbar_language.py +25 -0
  6. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/cms_models.py +3 -1
  7. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/integration_models.py +16 -18
  8. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/page_models.py +5 -0
  9. wagtail_cjkcms-25.2.1/cjkcms/project_template/basic/home/blocks/__init__.py +12 -0
  10. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/blocks/blocks.py +2 -2
  11. {wagtail_cjkcms-25.1.10/cjkcms/project_template/webpack → wagtail_cjkcms-25.2.1/cjkcms/project_template/basic}/home/models/cms_models.py +1 -0
  12. wagtail_cjkcms-25.2.1/cjkcms/project_template/webpack/home/blocks/__init__.py +12 -0
  13. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/blocks/blocks.py +2 -2
  14. {wagtail_cjkcms-25.1.10/cjkcms/project_template/basic → wagtail_cjkcms-25.2.1/cjkcms/project_template/webpack}/home/models/cms_models.py +1 -0
  15. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/search.html +14 -7
  16. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templatetags/friendly_loader.py +1 -0
  17. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/settings.py +1 -0
  18. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_search_blocks.py +36 -10
  19. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/testapp/models.py +3 -0
  20. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/views.py +58 -15
  21. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/wagtail_hooks.py +0 -16
  22. wagtail_cjkcms-25.2.1/docs/how-to/add_blocks_from_other_apps.md +68 -0
  23. wagtail_cjkcms-25.2.1/docs/how-to/wizard.md +17 -0
  24. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1/wagtail_cjkcms.egg-info}/PKG-INFO +1 -1
  25. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/wagtail_cjkcms.egg-info/SOURCES.txt +16 -24
  26. wagtail_cjkcms-25.1.10/cjkcms/migrations/0022_cjkcmspage_breadcrumb_label_and_more.py +0 -23
  27. wagtail_cjkcms-25.1.10/cjkcms/migrations/0023_alter_navbar_language.py +0 -18
  28. wagtail_cjkcms-25.1.10/cjkcms/project_template/basic/home/blocks/__init__.py +0 -2
  29. wagtail_cjkcms-25.1.10/cjkcms/project_template/webpack/home/blocks/__init__.py +0 -2
  30. wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_ef9wMOI.original.png +0 -0
  31. wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_erEkAMT.original.png +0 -0
  32. wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_q64YMWd.original.png +0 -0
  33. wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_xDdLBw1.original.png +0 -0
  34. wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_xtSZp5Z.original.png +0 -0
  35. wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_ef9wMOI.png +0 -0
  36. wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_erEkAMT.png +0 -0
  37. wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_q64YMWd.png +0 -0
  38. wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_xDdLBw1.png +0 -0
  39. wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_xtSZp5Z.png +0 -0
  40. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/CHANGELOG.md +0 -0
  41. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/LICENSE +0 -0
  42. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/MANIFEST.in +0 -0
  43. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/README.md +0 -0
  44. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/api/__init__.py +0 -0
  45. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/api/mailchimp.py +0 -0
  46. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/apps.py +0 -0
  47. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/bin/__init__.py +0 -0
  48. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/bin/cjkcms.py +0 -0
  49. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/__init__.py +0 -0
  50. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/base_blocks.py +0 -0
  51. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/content/__init__.py +0 -0
  52. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/content/countdown.py +0 -0
  53. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/content/events.py +0 -0
  54. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/content_blocks.py +0 -0
  55. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/layout_blocks.py +0 -0
  56. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/blocks/searchable_html_block.py +0 -0
  57. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/draftail/__init__.py +0 -0
  58. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/draftail/draftail_extensions.py +0 -0
  59. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/fields.py +0 -0
  60. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/finders/__init__.py +0 -0
  61. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/finders/oembed.py +0 -0
  62. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/forms.py +0 -0
  63. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/image_formats.py +0 -0
  64. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/management/commands/__init__.py +0 -0
  65. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/management/commands/clear-embeds.py +0 -0
  66. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/management/commands/import-csv.py +0 -0
  67. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/management/commands/init-collections.py +0 -0
  68. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/management/commands/init-navbar.py +0 -0
  69. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/management/commands/init-website.py +0 -0
  70. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0001_initial.py +0 -0
  71. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0002_alter_body_to_cjkcmsstreamfield.py +0 -0
  72. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0003_alter_footer_content_alter_navbar_menu_items.py +0 -0
  73. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0004_layoutsettings_articles_date_format_and_more.py +0 -0
  74. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0005_layoutsettings_custom_font_and_more.py +0 -0
  75. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0006_analyticssettings_consent_modal_layout_and_more.py +0 -0
  76. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0007_layoutsettings_bootstrap_icons.py +0 -0
  77. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0008_alter_layoutsettings_navbar_langselector.py +0 -0
  78. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0009_navbar_language.py +0 -0
  79. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0010_filmstrip_filmpanel.py +0 -0
  80. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0011_cjkcmspage_related_classifier_term_and_more.py +0 -0
  81. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0012_remove_analyticssettings_ga_tracking_id_and_more.py +0 -0
  82. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0013_socialmediasettings_location.py +0 -0
  83. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0014_navbar_alignment.py +0 -0
  84. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0015_eventcalendar.py +0 -0
  85. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0016_layoutsettings_breadcrumb_icon_and_more.py +0 -0
  86. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0017_layoutsettings_default_seo_image.py +0 -0
  87. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0018_layoutsettings_search_format.py +0 -0
  88. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0019_layoutsettings_searchbox_input_class_and_more.py +0 -0
  89. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0020_socialmediasettings_github_and_more.py +0 -0
  90. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/0021_remove_layoutsettings_navbar_color_scheme_and_more.py +0 -0
  91. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/migrations/__init__.py +0 -0
  92. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/__init__.py +0 -0
  93. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/admin_sidebar.py +0 -0
  94. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/snippet_models.py +0 -0
  95. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/models/wagtailsettings_models.py +0 -0
  96. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/.editorconfig +0 -0
  97. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/.gitattributes +0 -0
  98. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/.gitignore +0 -0
  99. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/README.md +0 -0
  100. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/__init__.py +0 -0
  101. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/migrations/0001_initial.py +0 -0
  102. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/migrations/0002_create_homepage.py +0 -0
  103. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/migrations/__init__.py +0 -0
  104. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/models/__init__.py +0 -0
  105. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/home/templates/home/blocks/event_presentation.html +0 -0
  106. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/manage.py +0 -0
  107. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/__init__.py +0 -0
  108. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/settings/__init__.py +0 -0
  109. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/settings/base.py +0 -0
  110. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/settings/dev.py +0 -0
  111. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/settings/local.py +0 -0
  112. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/settings/production.py +0 -0
  113. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/static/css/devsite.css +0 -0
  114. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/static/js/devsite.js +0 -0
  115. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/urls.py +0 -0
  116. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/project_name/wsgi.py +0 -0
  117. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/requirements.txt +0 -0
  118. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/search/__init__.py +0 -0
  119. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/search/templates/search/search.html +0 -0
  120. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/basic/search/views.py +0 -0
  121. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.babelrc +0 -0
  122. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.browserslistrc +0 -0
  123. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.editorconfig +0 -0
  124. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.eslintrc +0 -0
  125. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.gitattributes +0 -0
  126. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.gitignore +0 -0
  127. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.nvmrc +0 -0
  128. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/.stylelintrc.json +0 -0
  129. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/README.md +0 -0
  130. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/.gitignore +0 -0
  131. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/README.md +0 -0
  132. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/src/application/app.js +0 -0
  133. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/src/application/app2.js +0 -0
  134. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/src/components/sidebar.js +0 -0
  135. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/src/styles/index.scss +0 -0
  136. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/vendors/.gitkeep +0 -0
  137. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/vendors/images/.gitkeep +0 -0
  138. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/vendors/images/sample.jpg +0 -0
  139. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/vendors/images/webpack.png +0 -0
  140. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.common.js +0 -0
  141. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.config.dev.js +0 -0
  142. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.config.prod.js +0 -0
  143. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.config.watch.js +0 -0
  144. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/__init__.py +0 -0
  145. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/migrations/0001_initial.py +0 -0
  146. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/migrations/0002_create_homepage.py +0 -0
  147. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/migrations/__init__.py +0 -0
  148. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/models/__init__.py +0 -0
  149. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/home/templates/home/blocks/event_presentation.html +0 -0
  150. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/manage.py +0 -0
  151. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/package.json +0 -0
  152. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/__init__.py +0 -0
  153. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/settings/__init__.py +0 -0
  154. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/settings/base.py +0 -0
  155. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/settings/dev.py +0 -0
  156. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/settings/local.py +0 -0
  157. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/settings/production.py +0 -0
  158. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/static/css/devsite.css +0 -0
  159. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/static/js/devsite.js +0 -0
  160. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/urls.py +0 -0
  161. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/project_name/wsgi.py +0 -0
  162. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/requirements.txt +0 -0
  163. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/search/__init__.py +0 -0
  164. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/search/templates/search/search.html +0 -0
  165. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/project_template/webpack/search/views.py +0 -0
  166. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/search_urls.py +0 -0
  167. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/settings.py +0 -0
  168. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/bi/bootstrap-icons.css +0 -0
  169. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/bi/bootstrap-icons.json +0 -0
  170. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/bi/bootstrap-icons.scss +0 -0
  171. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/bi/fonts/bootstrap-icons.woff +0 -0
  172. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/bi/fonts/bootstrap-icons.woff2 +0 -0
  173. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/css/cjkcms-admin.css +0 -0
  174. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/css/cjkcms-custom-theme-disabled.css +0 -0
  175. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/css/cjkcms-editor.css +0 -0
  176. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/css/cjkcms-front.css +0 -0
  177. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/avatars/default.png +0 -0
  178. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/avatars/default.svg +0 -0
  179. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/calendar-day.svg +0 -0
  180. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/caret-right-fill.svg +0 -0
  181. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/caret-right.svg +0 -0
  182. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/chevron-right.svg +0 -0
  183. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/quote.svg +0 -0
  184. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/slash.svg +0 -0
  185. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/icons/world.svg +0 -0
  186. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/logos/cms-logo-long.svg +0 -0
  187. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/logos/cms-logo-square.svg +0 -0
  188. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/patterns/pattern1.jpg +0 -0
  189. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/patterns/pattern2.jpg +0 -0
  190. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/images/patterns/pattern3.jpg +0 -0
  191. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/js/cjkcms-editor.js +0 -0
  192. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cjkcms/js/cjkcms-front.js +0 -0
  193. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cookieconsent/cookieconsent.css +0 -0
  194. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/cookieconsent/cookieconsent.js +0 -0
  195. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/mdb/css/mdb.min.css +0 -0
  196. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/mdb/css/mdb.min.css.map +0 -0
  197. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/mdb/js/mdb.umd.min.js +0 -0
  198. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/mdb/js/mdb.umd.min.js.map +0 -0
  199. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/css/circle.css +0 -0
  200. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/css/cyber.css +0 -0
  201. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/css/dark.css +0 -0
  202. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/css/light.css +0 -0
  203. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/css/losange.css +0 -0
  204. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/js/simplyCountdown.umd.js +0 -0
  205. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/static/vendor/simplycountdown/js/simplyCountdown.umd.js.map +0 -0
  206. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/404.html +0 -0
  207. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/500.html +0 -0
  208. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/accordion_block.html +0 -0
  209. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/article_block_card.html +0 -0
  210. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/article_masonry_card.html +0 -0
  211. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/base_block.html +0 -0
  212. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/base_link_block.html +0 -0
  213. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/button_block.html +0 -0
  214. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_block.html +0 -0
  215. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_blurb.html +0 -0
  216. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_foot.html +0 -0
  217. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_head.html +0 -0
  218. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_head_foot.html +0 -0
  219. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_horizontal.html +0 -0
  220. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_horizontal2.html +0 -0
  221. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_img.html +0 -0
  222. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_landing1.html +0 -0
  223. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/card_landing2.html +0 -0
  224. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/cardgrid_columns.html +0 -0
  225. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/cardgrid_deck.html +0 -0
  226. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/cardgrid_group.html +0 -0
  227. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/cardgrid_zero.html +0 -0
  228. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/carousel_block.html +0 -0
  229. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/column_block.html +0 -0
  230. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/countdown.html +0 -0
  231. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/document_link_block.html +0 -0
  232. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/download_block.html +0 -0
  233. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/embed_video_block.html +0 -0
  234. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/event_calendar_block.html +0 -0
  235. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/external_link_block.html +0 -0
  236. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/film_strip_block.html +0 -0
  237. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/grid_block.html +0 -0
  238. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/h1_block.html +0 -0
  239. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/h2_block.html +0 -0
  240. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/h3_block.html +0 -0
  241. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/hero_block.html +0 -0
  242. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/highlight_block.html +0 -0
  243. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/image_block.html +0 -0
  244. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/image_gallery_block.html +0 -0
  245. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/image_link_block.html +0 -0
  246. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/modal_block.html +0 -0
  247. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/page_link_block.html +0 -0
  248. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_card_columns.html +0 -0
  249. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_card_deck.html +0 -0
  250. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_card_group.html +0 -0
  251. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_media.html +0 -0
  252. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_block.html +0 -0
  253. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_list_group.html +0 -0
  254. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagelist_toc_nextprev.html +0 -0
  255. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagepreview_block.html +0 -0
  256. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pagepreview_card.html +0 -0
  257. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pricelist_block.html +0 -0
  258. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/pricelistitem_block.html +0 -0
  259. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/public_event_block.html +0 -0
  260. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/quote_block.html +0 -0
  261. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/quote_block_leftbar.html +0 -0
  262. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/quote_block_start_end_quote.html +0 -0
  263. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/reusable_content_block.html +0 -0
  264. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/rich_text_block.html +0 -0
  265. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/blocks/table_block.html +0 -0
  266. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/cookieconsent/languages.html +0 -0
  267. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/formfields/date.html +0 -0
  268. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/formfields/datetime.html +0 -0
  269. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/formfields/mailchimp/_2vanilla_subscriber_integration_js.html +0 -0
  270. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/formfields/mailchimp/subscriber_integration_js.html +0 -0
  271. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/formfields/mailchimp/subscriber_integration_widget.html +0 -0
  272. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/formfields/time.html +0 -0
  273. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/align-center.svg +0 -0
  274. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/align-left.svg +0 -0
  275. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/align-right.svg +0 -0
  276. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/card-grid.svg +0 -0
  277. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/check-square-o.svg +0 -0
  278. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/columns.svg +0 -0
  279. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/desktop.svg +0 -0
  280. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/font-decrease.svg +0 -0
  281. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/font-increase.svg +0 -0
  282. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/font.svg +0 -0
  283. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/google.svg +0 -0
  284. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/hand-pointer-o.svg +0 -0
  285. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/hashtag.svg +0 -0
  286. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/header.svg +0 -0
  287. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/list-alt.svg +0 -0
  288. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/map.svg +0 -0
  289. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/newspaper-o.svg +0 -0
  290. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/puzzle-piece.svg +0 -0
  291. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/recycle.svg +0 -0
  292. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/stop.svg +0 -0
  293. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/th-large.svg +0 -0
  294. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/universal-access.svg +0 -0
  295. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/usd.svg +0 -0
  296. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/window-maximize.svg +0 -0
  297. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/icons/window-minimize.svg +0 -0
  298. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/includes/cjkcms_banner.html +0 -0
  299. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/includes/classifier_dropdowns.html +0 -0
  300. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/includes/classifier_nav.html +0 -0
  301. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/includes/form_honeypot.html +0 -0
  302. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/includes/pagination.html +0 -0
  303. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/includes/stream_forms/render_field.html +0 -0
  304. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/article_index_page.html +0 -0
  305. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/article_page.html +0 -0
  306. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/article_page.search.html +0 -0
  307. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/base.html +0 -0
  308. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/form_page_landing.html +0 -0
  309. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/home_page.html +0 -0
  310. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/page.mini.html +0 -0
  311. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/search_result.html +0 -0
  312. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/web_page.html +0 -0
  313. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/pages/web_page_notitle.html +0 -0
  314. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/robots.txt +0 -0
  315. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/actionbar.html +0 -0
  316. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/bottom_corner_lang_selector.html +0 -0
  317. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/breadcrumbs.html +0 -0
  318. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/footer.html +0 -0
  319. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/frontend_assets.html +0 -0
  320. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/frontend_scripts.html +0 -0
  321. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/navbar.html +0 -0
  322. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/navbar_lang_selector.html +0 -0
  323. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/navbar_search.html +0 -0
  324. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/navbar_search_modal.html +0 -0
  325. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/social_media.html +0 -0
  326. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/social_media_icons.html +0 -0
  327. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/social_media_nav_block.html +0 -0
  328. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/tracking_g3.html +0 -0
  329. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/tracking_g4.html +0 -0
  330. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/tracking_matomo.html +0 -0
  331. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/snippets/tracking_matomo_noscript.html +0 -0
  332. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/cjkcms/widgets/checkbox_classifiers.html +0 -0
  333. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/wagtailadmin/block_forms/base_block_settings_struct.html +0 -0
  334. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/wagtailadmin/block_forms/struct.html +0 -0
  335. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/wagtailadmin/shared/cr_main_nav_2fix.html +0 -0
  336. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templates/wagtailadmin/tables/thumbnail_cell.html +0 -0
  337. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templatetags/__init__.py +0 -0
  338. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templatetags/auth_extras.py +0 -0
  339. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templatetags/cjkcms_tags.py +0 -0
  340. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templatetags/gravatar.py +0 -0
  341. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/templatetags/txtutils_tags.py +0 -0
  342. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/__init__.py +0 -0
  343. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/manage.py +0 -0
  344. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/media/images/test.original.png +0 -0
  345. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_0djPZwc.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_IocDjKv.original.png +0 -0
  346. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_6zOjMLi.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_LH2dPwn.original.png +0 -0
  347. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_CWdn4xd.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_O3GLriA.original.png +0 -0
  348. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_DqyysqG.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_WUJDfCh.original.png +0 -0
  349. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_J846ST8.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_ZfGlHpM.original.png +0 -0
  350. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_WP0MnOi.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_e3WjdNA.original.png +0 -0
  351. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/images/test_XhwqhpE.original.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/images/test_qOYmckb.original.png +0 -0
  352. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/media/original_images/test.png +0 -0
  353. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_0djPZwc.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_IocDjKv.png +0 -0
  354. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_6zOjMLi.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_LH2dPwn.png +0 -0
  355. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_CWdn4xd.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_O3GLriA.png +0 -0
  356. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_DqyysqG.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_WUJDfCh.png +0 -0
  357. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_J846ST8.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_ZfGlHpM.png +0 -0
  358. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_WP0MnOi.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_e3WjdNA.png +0 -0
  359. /wagtail_cjkcms-25.1.10/cjkcms/tests/media/original_images/test_XhwqhpE.png → /wagtail_cjkcms-25.2.1/cjkcms/tests/media/original_images/test_qOYmckb.png +0 -0
  360. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_advsettings.py +0 -0
  361. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_articlepages.py +0 -0
  362. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_bin.py +0 -0
  363. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_countdown_block.py +0 -0
  364. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_draftail_extensions.py +0 -0
  365. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_finders_oembed.py +0 -0
  366. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_gravatar.py +0 -0
  367. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_settings.py +0 -0
  368. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_templatetags.py +0 -0
  369. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_urls.py +0 -0
  370. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/test_webpage.py +0 -0
  371. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/testapp/__init__.py +0 -0
  372. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/testapp/apps.py +0 -0
  373. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/testapp/migrations/0001_initial.py +0 -0
  374. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/testapp/migrations/0002_create_homepage.py +0 -0
  375. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/testapp/migrations/__init__.py +0 -0
  376. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/tests/urls.py +0 -0
  377. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/urls.py +0 -0
  378. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/utils.py +0 -0
  379. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/cjkcms/widgets.py +0 -0
  380. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/api/mailchimp.md +0 -0
  381. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/api/version_monitor.md +0 -0
  382. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/blocks/content_blocks.md +0 -0
  383. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/blocks/html_blocks.md +0 -0
  384. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/blocks/layout_blocks.md +0 -0
  385. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/models/settings_models.md +0 -0
  386. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/api_reference/templatetags/cjkcms_tags.md +0 -0
  387. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/configuration/index.md +0 -0
  388. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/configuration/webpack.md +0 -0
  389. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/faq/index.md +0 -0
  390. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/getting-started/01.quick-start.md +0 -0
  391. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/getting-started/02.folders-and-environment.md +0 -0
  392. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/getting-started/03.installation.md +0 -0
  393. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/getting-started/04.configuration.md +0 -0
  394. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/how-to/change-layout.md +0 -0
  395. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/how-to/oembed_finder.md +0 -0
  396. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/index.md +0 -0
  397. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/management_commands/clear-embeds.md +0 -0
  398. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/management_commands/index.md +0 -0
  399. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/management_commands/init-collections.md +0 -0
  400. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/manual/index.md +0 -0
  401. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/requirements.txt +0 -0
  402. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/unit_testing.md +0 -0
  403. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/docs/why-another-cms.md +0 -0
  404. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/pyproject.toml +0 -0
  405. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/requirements.txt +0 -0
  406. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/setup.cfg +0 -0
  407. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/setup.py +0 -0
  408. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/wagtail_cjkcms.egg-info/dependency_links.txt +0 -0
  409. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/wagtail_cjkcms.egg-info/entry_points.txt +0 -0
  410. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/wagtail_cjkcms.egg-info/requires.txt +0 -0
  411. {wagtail_cjkcms-25.1.10 → wagtail_cjkcms-25.2.1}/wagtail_cjkcms.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wagtail-cjkcms
3
- Version: 25.1.10
3
+ Version: 25.2.1
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
@@ -1,4 +1,4 @@
1
- VERSION = (25, 1, 10, "")
1
+ VERSION = (25, 2, 1, "")
2
2
 
3
3
  __version_info__ = VERSION
4
4
  __version__ = ".".join(map(str, VERSION[:3])) + (f"-{VERSION[3]}" if VERSION[3] else "")
@@ -6,6 +6,7 @@ HTML blocks should NOT contain more sub-blocks or sub-streamfields.
6
6
  They must be safe to nest within more robust "content blocks" without
7
7
  creating recursion.
8
8
  """
9
+
9
10
  import logging
10
11
 
11
12
  from django.utils.encoding import force_str
@@ -0,0 +1,32 @@
1
+ # Generated by Django 5.0.6 on 2024-09-02 12:44
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("cjkcms", "0021_remove_layoutsettings_navbar_color_scheme_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name="cjkcmspage",
15
+ name="breadcrumb_label",
16
+ field=models.CharField(
17
+ blank=True,
18
+ help_text="If empty, page title will be used.",
19
+ max_length=128,
20
+ verbose_name="Breadcrumb label",
21
+ ),
22
+ ),
23
+ migrations.AddField(
24
+ model_name="cjkcmspage",
25
+ name="breadcrumbs_visible",
26
+ field=models.BooleanField(
27
+ default=True,
28
+ help_text="Show breadcrumbs in this page header. For global change, see Settings->Layout",
29
+ verbose_name="Breadcrumbs",
30
+ ),
31
+ ),
32
+ ]
@@ -0,0 +1,25 @@
1
+ # Generated by Django 5.1.4 on 2024-12-31 20:17
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("cjkcms", "0022_cjkcmspage_breadcrumb_label_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="navbar",
15
+ name="language",
16
+ field=models.CharField(
17
+ blank=True,
18
+ choices=[],
19
+ default="_all_",
20
+ help_text="Select a language to limit display to specific locale.",
21
+ max_length=10,
22
+ verbose_name="Show in language",
23
+ ),
24
+ ),
25
+ ]
@@ -4,6 +4,7 @@ without having to create a new page types.
4
4
  Feel free to replace this file with your own configuration,
5
5
  in your Wagtail project. Copy+paste and modify as needed.
6
6
  """
7
+
7
8
  from django.utils.translation import gettext_lazy as _
8
9
  from . import (
9
10
  CjkcmsArticlePage,
@@ -59,8 +60,8 @@ class ArticleIndexPage(CjkcmsArticleIndexPage):
59
60
 
60
61
  # Only allow ArticlePages beneath this page.
61
62
  subpage_types = ["cjkcms.ArticlePage"]
62
-
63
63
  template = "cjkcms/pages/article_index_page.html"
64
+ search_filterable = True
64
65
 
65
66
 
66
67
  class WebPage(CjkcmsWebPage):
@@ -78,3 +79,4 @@ class WebPage(CjkcmsWebPage):
78
79
  verbose_name = _("Web Page")
79
80
 
80
81
  template = "cjkcms/pages/web_page.html"
82
+ search_filterable = True
@@ -23,9 +23,9 @@ class MailchimpSubscriberIntegrationWidget(Input):
23
23
  list_library = self.build_list_library()
24
24
  ctx["widget"]["value"] = json.dumps(json_value)
25
25
  ctx["widget"]["extra_js"] = self.render_js(name, list_library, json_value)
26
- ctx["widget"][
27
- "selectable_mailchimp_lists"
28
- ] = self.get_selectable_mailchimp_lists(list_library)
26
+ ctx["widget"]["selectable_mailchimp_lists"] = (
27
+ self.get_selectable_mailchimp_lists(list_library)
28
+ )
29
29
  ctx["widget"]["stored_mailchimp_list"] = self.get_stored_mailchimp_list(
30
30
  json_value
31
31
  )
@@ -81,23 +81,21 @@ class MailchimpSubscriberIntegrationWidget(Input):
81
81
  "interest_categories": {},
82
82
  }
83
83
 
84
- list_library[mlist["id"]][
85
- "merge_fields"
86
- ] = mailchimp.get_merge_fields_for_list(mlist["id"])["merge_fields"]
87
- list_library[mlist["id"]][
88
- "interest_categories"
89
- ] = mailchimp.get_interest_categories_for_list(mlist["id"])[
90
- "categories"
91
- ]
84
+ list_library[mlist["id"]]["merge_fields"] = (
85
+ mailchimp.get_merge_fields_for_list(mlist["id"])["merge_fields"]
86
+ )
87
+ list_library[mlist["id"]]["interest_categories"] = (
88
+ mailchimp.get_interest_categories_for_list(mlist["id"])[
89
+ "categories"
90
+ ]
91
+ )
92
92
 
93
93
  for category in list_library[mlist["id"]]["interest_categories"]:
94
- category[
95
- "interests"
96
- ] = mailchimp.get_interests_for_interest_category(
97
- mlist["id"], category["id"]
98
- )[
99
- "interests"
100
- ]
94
+ category["interests"] = (
95
+ mailchimp.get_interests_for_interest_category(
96
+ mlist["id"], category["id"]
97
+ )["interests"]
98
+ )
101
99
 
102
100
  return list_library
103
101
 
@@ -373,6 +373,11 @@ class CjkcmsPage(WagtailCacheMixin, SeoMixin, Page, metaclass=CjkcmsPageMeta):
373
373
  edit_handler = TabbedInterface(panels)
374
374
  return edit_handler.bind_to_model(cls)
375
375
 
376
+ @property
377
+ def search_name(self) -> str:
378
+ """Unless override, get the verbose name of the model"""
379
+ return self._meta.verbose_name
380
+
376
381
  @property
377
382
  def breadcrumb_title(self) -> str:
378
383
  """
@@ -0,0 +1,12 @@
1
+ from .blocks import HOME_CONTENT_STREAMBLOCKS, HOME_LAYOUT_STREAMBLOCKS # noqa
2
+
3
+ # from otherapp.blocks import OTHERAPP_CONTENT_STREAMBLOCKS, OTHERAPP_LAYOUT_STREAMBLOCKS # noqa
4
+
5
+
6
+ # add your own content block
7
+ PROJECT_CONTENT_STREAMBLOCKS = (
8
+ HOME_CONTENT_STREAMBLOCKS # + OTHERAPP_CONTENT_STREAMBLOCKS
9
+ )
10
+
11
+ # add your own layout blocks
12
+ PROJECT_LAYOUT_STREAMBLOCKS = HOME_LAYOUT_STREAMBLOCKS # + OTHERAPP_LAYOUT_STREAMBLOCKS
@@ -66,11 +66,11 @@ class EventPresentationBlock(BaseBlock):
66
66
 
67
67
 
68
68
  # add your own content block
69
- PROJECT_CONTENT_STREAMBLOCKS = [
69
+ HOME_CONTENT_STREAMBLOCKS = [
70
70
  ("event_presentation", EventPresentationBlock()),
71
71
  ]
72
72
 
73
73
  # add your own layout blocks
74
- PROJECT_LAYOUT_STREAMBLOCKS = [
74
+ HOME_LAYOUT_STREAMBLOCKS = [
75
75
  # ("custom_block", CustomBlock()),
76
76
  ]
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Three main creatable page types used in Cjk CMS.
3
3
  """
4
+
4
5
  from django.utils.translation import gettext_lazy as _
5
6
  from cjkcms.models import (
6
7
  CjkcmsArticlePage,
@@ -0,0 +1,12 @@
1
+ from .blocks import HOME_CONTENT_STREAMBLOCKS, HOME_LAYOUT_STREAMBLOCKS # noqa
2
+
3
+ # from otherapp.blocks import OTHERAPP_CONTENT_STREAMBLOCKS, OTHERAPP_LAYOUT_STREAMBLOCKS # noqa
4
+
5
+
6
+ # add your own content block
7
+ PROJECT_CONTENT_STREAMBLOCKS = (
8
+ HOME_CONTENT_STREAMBLOCKS # + OTHERAPP_CONTENT_STREAMBLOCKS
9
+ )
10
+
11
+ # add your own layout blocks
12
+ PROJECT_LAYOUT_STREAMBLOCKS = HOME_LAYOUT_STREAMBLOCKS # + OTHERAPP_LAYOUT_STREAMBLOCKS
@@ -66,11 +66,11 @@ class EventPresentationBlock(BaseBlock):
66
66
 
67
67
 
68
68
  # add your own content block
69
- PROJECT_CONTENT_STREAMBLOCKS = [
69
+ HOME_CONTENT_STREAMBLOCKS = [
70
70
  ("event_presentation", EventPresentationBlock()),
71
71
  ]
72
72
 
73
73
  # add your own layout blocks
74
- PROJECT_LAYOUT_STREAMBLOCKS = [
74
+ HOME_LAYOUT_STREAMBLOCKS = [
75
75
  # ("custom_block", CustomBlock()),
76
76
  ]
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Three main creatable page types used in Cjk CMS.
3
3
  """
4
+
4
5
  from django.utils.translation import gettext_lazy as _
5
6
  from cjkcms.models import (
6
7
  CjkcmsArticlePage,
@@ -35,19 +35,26 @@
35
35
  </form>
36
36
  {# endif #}
37
37
 
38
- {% if pagetypes %}
38
+ {% if results_by_model %}
39
39
  {% query_update request.GET 'p' None as qs_nop %}
40
40
  <div class="mt-5">
41
41
  <ul class="nav nav-pills">
42
42
  <li class="nav-item">
43
43
  {% query_update qs_nop 't' None as qs_t %}
44
- <a class="nav-link {% if not form.t.value %}active{% endif %}" href="?{{qs_t.urlencode}}">{% trans 'All Results' %}</a>
45
- </li>
46
- {% for pt in pagetypes %}
47
- <li class="nav-item">
48
- {% query_update qs_nop 't' pt.content_type.model as qs_t %}
49
- <a class="nav-link {% if form.t.value == pt.content_type.model %}active{% endif %}" href="?{{qs_t.urlencode}}">{{pt|get_plural_name_of_class}}</a>
44
+ <a class="nav-link {% if not form.t.value %}active{% endif %}" href="?{{ qs_t.urlencode }}">{% trans 'All Results' %}</a>
50
45
  </li>
46
+ {% for key, result in results_by_model.items %}
47
+ {% if result.count > 0 %}
48
+ {% query_update qs_nop 't' key as qs_t %}
49
+ <li class="nav-item">
50
+ <a class="nav-link {% if form.t.value == key %}active{% endif %}" href="?{{ qs_t.urlencode }}">{{ result.model|get_plural_name_of_class }}
51
+ <span class="badge badge-info">
52
+ {{ result.count }}
53
+ <span class="visually-hidden">search results</span>
54
+ </span>
55
+ </a>
56
+ </li>
57
+ {% endif %}
51
58
  {% endfor %}
52
59
  </ul>
53
60
  </div>
@@ -2,6 +2,7 @@
2
2
  https://github.com/ataylor32/django-friendly-tag-loader/blob/master/src/friendlytagloader/templatetags/friendly_loader.py
3
3
  Sadly, this repo has not been updated for 3 years
4
4
  """
5
+
5
6
  import contextlib
6
7
 
7
8
  from django import template
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Settings for running tests
3
3
  """
4
+
4
5
  import os
5
6
 
6
7
  BASE_DIR = os.path.abspath(os.path.dirname(__file__))
@@ -5,6 +5,8 @@ from django.urls import reverse
5
5
  from django.test import Client, TestCase, override_settings
6
6
 
7
7
  from cjkcms.models.cms_models import ArticlePage
8
+ from wagtail.models import Locale
9
+ from wagtail.search import index as search_index
8
10
 
9
11
 
10
12
  @override_settings(
@@ -81,9 +83,12 @@ class TestSearchBlocks(TestCase):
81
83
  def create_article_page(self):
82
84
  # Get the HomePage
83
85
  home_page = Page.objects.get(path="00010001")
84
-
85
- article_page = ArticlePage(title="Test Article", body=None)
86
-
86
+ article_page = ArticlePage(
87
+ title="Test Article",
88
+ seo_title="Test Article",
89
+ locale_id=Locale.get_default().id,
90
+ body=None,
91
+ )
87
92
  home_page.add_child(instance=article_page)
88
93
  article_page.save_revision().publish()
89
94
 
@@ -92,13 +97,35 @@ class TestSearchBlocks(TestCase):
92
97
  article_page.body = content
93
98
  article_page.save_revision().publish()
94
99
 
100
+ # Manually update the search index after publishing the page
101
+ search_index.insert_or_update_object(article_page)
102
+
95
103
  def test_page_type_in_search_results(self):
96
104
  response = self.client.get(
97
105
  reverse("cjkcms_search"), {"s": "doesn't matter"}, follow=True
98
106
  )
99
107
 
100
108
  self.assertEqual(response.status_code, 200)
101
- self.assertEqual(response.context["pagetypes"][0].__name__, "ArticlePage")
109
+ self.assertIn(
110
+ "ArticlePage",
111
+ [pagetype.__name__ for pagetype in response.context["pagetypes"]],
112
+ )
113
+
114
+ def test_search_article_title(self):
115
+ # Manually update the search index after publishing the page
116
+ article_page = ArticlePage.objects.get(title="Test Article")
117
+ search_index.insert_or_update_object(article_page)
118
+
119
+ response = self.client.get(
120
+ reverse("cjkcms_search"), {"s": "Test", "t": ""}, follow=True
121
+ )
122
+ self.assertEqual(len(response.context["results"]), 1)
123
+
124
+ response = self.client.get(
125
+ reverse("cjkcms_search"), {"s": "Best Article"}, follow=True
126
+ )
127
+
128
+ self.assertEqual(len(response.context["results"]), 0)
102
129
 
103
130
  def test_search_richtext(self):
104
131
  self.set_article_body(self.block_richtext)
@@ -113,7 +140,7 @@ class TestSearchBlocks(TestCase):
113
140
  reverse("cjkcms_search"), {"s": "daisies"}, follow=True
114
141
  )
115
142
 
116
- self.assertEqual(len(response.context["results"]), 2)
143
+ self.assertEqual(len(response.context["results"]), 1)
117
144
 
118
145
  def test_search_button(self):
119
146
  self.set_article_body(self.block_button_link)
@@ -127,8 +154,7 @@ class TestSearchBlocks(TestCase):
127
154
  response = self.client.get(
128
155
  reverse("cjkcms_search"), {"s": "Benjamin"}, follow=True
129
156
  )
130
- # print(response.context["results"])
131
- self.assertEqual(len(response.context["results"]), 2)
157
+ self.assertEqual(len(response.context["results"]), 1)
132
158
 
133
159
  def test_search_html(self):
134
160
  self.set_article_body(self.block_html)
@@ -143,7 +169,7 @@ class TestSearchBlocks(TestCase):
143
169
  reverse("cjkcms_search"), {"s": "from HTML"}, follow=True
144
170
  )
145
171
 
146
- self.assertEqual(len(response.context["results"]), 2)
172
+ self.assertEqual(len(response.context["results"]), 1)
147
173
 
148
174
  def test_search_quote(self):
149
175
  self.set_article_body(self.block_quote)
@@ -158,10 +184,10 @@ class TestSearchBlocks(TestCase):
158
184
  reverse("cjkcms_search"), {"s": "quotably"}, follow=True
159
185
  )
160
186
 
161
- self.assertEqual(len(response.context["results"]), 2)
187
+ self.assertEqual(len(response.context["results"]), 1)
162
188
 
163
189
  response = self.client.get(
164
190
  reverse("cjkcms_search"), {"s": "Nobody"}, follow=True
165
191
  )
166
192
 
167
- self.assertEqual(len(response.context["results"]), 2)
193
+ self.assertEqual(len(response.context["results"]), 1)
@@ -8,12 +8,15 @@ from cjkcms.models import (
8
8
  class ProjectArticlePage(CjkcmsArticlePage):
9
9
  template = "cjkcms/pages/article_page.html"
10
10
  search_template = "cjkcms/pages/article_page.search.html"
11
+ search_filterable = True
11
12
 
12
13
 
13
14
  class ProjectArticleIndexPage(CjkcmsArticleIndexPage):
14
15
  template = "cjkcms/pages/article_index_page.html"
16
+ search_filterable = True
15
17
 
16
18
 
17
19
  class ProjectWebPage(CjkcmsWebPage):
18
20
  # use cjkcms template by default
19
21
  template = "cjkcms/pages/web_page.html"
22
+ search_filterable = True
@@ -23,6 +23,32 @@ from cjkcms.models import (
23
23
  LayoutSettings,
24
24
  )
25
25
 
26
+ from wagtail.models import Locale
27
+
28
+
29
+ def search_model_backend(model, search_query, current_locale):
30
+ """
31
+ Helper function to search a specific model with the search backend.
32
+
33
+ Parameters:
34
+ - model: The model to search.
35
+ - search_query: The query string to search for.
36
+ - current_locale: The current locale for filtering pages.
37
+
38
+ Returns:
39
+ - list: Search results for the model.
40
+ """
41
+ backend = get_search_backend()
42
+ if issubclass(model, Page):
43
+ # Search only live and public pages for models that are Page subclasses
44
+ return backend.search(
45
+ search_query,
46
+ model.objects.live().public().filter(locale=current_locale),
47
+ )
48
+ else:
49
+ # Search normally for non-page models
50
+ return backend.search(search_query, model)
51
+
26
52
 
27
53
  def search(request):
28
54
  """
@@ -34,35 +60,51 @@ def search(request):
34
60
  Returns:
35
61
  HttpResponse: The rendered search results page.
36
62
  """
63
+
37
64
  search_form = SearchForm(request.GET)
38
- results = []
65
+ results = None
39
66
  results_paginated = []
40
67
  indexed_models = []
41
- for model in apps.get_models():
42
- if (
43
- issubclass(model, index.Indexed)
44
- and hasattr(model, "search_filterable")
45
- and model.search_filterable
46
- ):
47
- indexed_models.append(model)
68
+ results_by_model = {}
48
69
 
49
70
  if search_form.is_valid():
71
+ current_locale = Locale.get_active()
50
72
  search_query = search_form.cleaned_data["s"]
51
73
  search_model = search_form.cleaned_data["t"]
52
- backend = get_search_backend()
74
+ results = []
75
+ for model in apps.get_models():
76
+ if (
77
+ issubclass(model, index.Indexed)
78
+ and hasattr(model, "search_filterable")
79
+ and model.search_filterable
80
+ ):
81
+ indexed_models.append(model)
82
+
83
+ # If a specific model is selected
53
84
  if search_model and ContentType.objects.filter(model=search_model).exists():
54
85
  try:
55
86
  # If provided a model name, try to get it
56
87
  model = ContentType.objects.get(model=search_model).model_class()
57
- results = backend.search(search_query, model)
88
+ results = search_model_backend(model, search_query, current_locale)
89
+ # Store the count of results for this model
90
+ results_by_model[model._meta.model_name] = {
91
+ "model": model,
92
+ "count": results.count(),
93
+ }
58
94
  except ContentType.DoesNotExist:
59
- # Maintain existing behavior of only returning objects if the page type is real
60
- results = []
95
+ results = None
61
96
  else:
62
- results = list(Page.objects.live().search(search_query))
63
- # results=[]
97
+ # Search all indexed models
64
98
  for model in indexed_models:
65
- results += backend.search(search_query, model)
99
+ model_results = search_model_backend(
100
+ model, search_query, current_locale
101
+ )
102
+ # Store the count of results for this model
103
+ results_by_model[model._meta.model_name] = {
104
+ "model": model,
105
+ "count": model_results.count(),
106
+ }
107
+ results += model_results
66
108
  # get and paginate results
67
109
  if results:
68
110
  paginator = Paginator(
@@ -84,6 +126,7 @@ def search(request):
84
126
  "results": results,
85
127
  "pagetypes": indexed_models,
86
128
  "results_paginated": results_paginated,
129
+ "results_by_model": results_by_model,
87
130
  }
88
131
  # Render template
89
132
  return render(
@@ -1,5 +1,3 @@
1
- import mimetypes
2
-
3
1
  from cjkcms import __version__
4
2
  from cjkcms.draftail import (
5
3
  NewWindowExternalLinkHandler,
@@ -8,7 +6,6 @@ from cjkcms.draftail import (
8
6
  )
9
7
 
10
8
  # from cjkcms.models.admin_sidebar import NavbarSnippet, EventCalendarSnippet
11
- from django.http.response import HttpResponse
12
9
  from django.templatetags.static import static
13
10
  from django.utils.html import format_html
14
11
  from wagtail import hooks
@@ -132,19 +129,6 @@ hooks.register("after_edit_snippet", clear_wagtailcache)
132
129
  hooks.register("after_delete_snippet", clear_wagtailcache)
133
130
 
134
131
 
135
- @hooks.register("before_serve_document") # type: ignore
136
- def serve_document_directly(document, request):
137
- """
138
- This hook prevents documents from being downloaded unless
139
- specified by an <a> tag with the download attribute.
140
- """
141
- content_type, content_encoding = mimetypes.guess_type(document.filename)
142
- response = HttpResponse(document.file.read(), content_type=content_type)
143
- response["Content-Disposition"] = 'inline;filename="{0}"'.format(document.filename)
144
- response["Content-Encoding"] = str(content_encoding)
145
- return response
146
-
147
-
148
132
  class ImportExportMenuItem(MenuItem):
149
133
  def is_shown(self, request):
150
134
  return request.user.is_superuser
@@ -0,0 +1,68 @@
1
+ # Using blocks from other apps
2
+
3
+ Page models inheriting from cjkcms (CjkcmsWebPage, CjkcmsArticlePage or CjkcmsIndexPage) in a given project may require inclusion of blocks from several apps into the list of blocks available in the "Body" section of the page model, or for use in custom fields.
4
+
5
+ The order in INSTALLED_APPS doesn't effect when the models are created. Django figures out that certain models depend on others and runs them in the correct order.
6
+
7
+ ## Layout blocks and content blocks
8
+ CJKCMS defines two sets of blocks:
9
+ * layout blocks, e.g. grid of columns (rowcols), grid of cards, or custom html blocks.
10
+ * content blocks, typically allowed inside layout blocks, or in pages with simple layout structure, like "ArticlePage".
11
+
12
+ Some standard cms blocks are used in more than one place:
13
+ * HTML blocks are part of both layout and content blocks
14
+ * card blocks are used as content blocks, and as element of card grid layout block.
15
+
16
+ When creating your own blocks, decide whether it should be allowed at the layout level, at the content level. You can use any content block inside a layout, by putting it inside "RowCol"->"Column".
17
+
18
+ ## Project-specific page models
19
+
20
+ If we want to ensure that blocks from apps A, B, C are available for standard page models in a given project, the typical solution is to override CMS models in your "home" app, including into the new models blocks collected from other apps (A, B, C).
21
+
22
+ Check out the home app in the project templates (basic or webpack) in the cjkcms repository for full code example.
23
+ Modify the home app, importing blocks from your own apps.
24
+
25
+ ```python
26
+ # home/blocks/__init__.py
27
+
28
+ from appa.blocks import APPA_CONTENT_BLOCKS, APPA_LAYOUT_BLOCKS # noqa
29
+ from appb.blocks import APPB_CONTENT_BLOCKS, APPB_LAYOUT_BLOCKS # noqa
30
+ from appc.blocks import APPC_CONTENT_BLOCKS, APPC_LAYOUT_BLOCKS # noqa
31
+ from .blocks import HOME_CONTENT_STREAMBLOCKS, HOME_LAYOUT_STREAMBLOCKS # noqa
32
+
33
+ # add your own content block
34
+ PROJECT_CONTENT_STREAMBLOCKS = HOME_CONTENT_STREAMBLOCKS + APPA_CONTENT_BLOCKS + APPB_CONTENT_BLOCKS + APPC_CONTENT_BLOCKS
35
+
36
+ # add your own layout blocks
37
+ PROJECT_LAYOUT_STREAMBLOCKS = HOME_LAYOUT_STREAMBLOCKS + APPA_LAYOUT_BLOCKS + APPB_LAYOUT_BLOCKS + APPC_LAYOUT_BLOCKS
38
+ ```
39
+
40
+ Once you have extra blocks added to your project configuration,
41
+ they will be picked up by the three standard page models defined in
42
+ `home/models/cms_models.py`, as follows:
43
+
44
+ ```python
45
+ from home.blocks import (
46
+ PROJECT_CONTENT_STREAMBLOCKS,
47
+ PROJECT_LAYOUT_STREAMBLOCKS,
48
+ )
49
+
50
+ ALL_CONTENT_STREAMBLOCKS = CONTENT_STREAMBLOCKS + PROJECT_CONTENT_STREAMBLOCKS
51
+ ALL_LAYOUT_STREAMBLOCKS = LAYOUT_STREAMBLOCKS + PROJECT_LAYOUT_STREAMBLOCKS
52
+
53
+ [...]
54
+
55
+ # Override to CjkcmsStreamField to get rid of migration issues
56
+ # when modifying LAYOUT_STREAMBLOCKS.
57
+ body = CjkcmsStreamField(
58
+ ALL_LAYOUT_STREAMBLOCKS, null=True, blank=True, use_json_field=True
59
+ )
60
+ ```
61
+
62
+ You may also define new fields in your models, using ALL_LAYOUT_STREAMBLOCKS or ALL_CONTENT_STREAMBLOCKS.
63
+
64
+ ## Using blocks from APPA in APPB
65
+
66
+ The setup is similar if you want to use blocks from application A in application B. You need to add block definitions from APPA in your APPB, and use the new set of blocks in your APPB page models, or override the definition of the "body" field in your APPB page model.
67
+
68
+ The only caveat is that you need to avoid circular import problem, so you cannot use `PROJECT\_\*\_STREAMBLOCKS` in `APPB\_\*\_STREAMBLOCKS`, and at the same time add `APPB\_\*\_STREAMBLOCKS` into your `PROJECT\_\*\_STREAMBLOCKS`
@@ -0,0 +1,17 @@
1
+ # Guide to HOWTOs
2
+
3
+ This section is aimed to help new users navigate through the "How to" section.
4
+
5
+ ## Installation and configuration
6
+
7
+ ### Starting new site?
8
+
9
+ ### Working on existing, non-cjkcms Wagtail site?
10
+
11
+ ## Single-site apps vs reusable apps
12
+
13
+ ### Developing app bespoke for a site
14
+
15
+ ### Developing reusable app
16
+
17
+ 1. Adding blocks from multiple applications to main project
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wagtail-cjkcms
3
- Version: 25.1.10
3
+ Version: 25.2.1
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