wagtail-cjkcms 23.12.2__tar.gz → 24.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/CHANGELOG.md +9 -0
  2. {wagtail-cjkcms-23.12.2/wagtail_cjkcms.egg-info → wagtail-cjkcms-24.1.1}/PKG-INFO +3 -21
  3. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/README.md +1 -1
  4. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/__init__.py +1 -1
  5. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/draftail/draftail_extensions.py +54 -55
  6. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/finders/oembed.py +7 -2
  7. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/page_models.py +12 -17
  8. wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_V46NKQ8.original.png +0 -0
  9. wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_if94VGA.original.png +0 -0
  10. wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_ji9XZRF.original.png +0 -0
  11. wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_rYqb9vE.original.png +0 -0
  12. wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_V46NKQ8.png +0 -0
  13. wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_if94VGA.png +0 -0
  14. wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_ji9XZRF.png +0 -0
  15. wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_rYqb9vE.png +0 -0
  16. wagtail-cjkcms-24.1.1/cjkcms/tests/test_draftail_extensions.py +70 -0
  17. wagtail-cjkcms-24.1.1/cjkcms/tests/test_finders_oembed.py +67 -0
  18. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/getting-started/01.quick-start.md +1 -1
  19. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1/wagtail_cjkcms.egg-info}/PKG-INFO +3 -21
  20. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/wagtail_cjkcms.egg-info/SOURCES.txt +20 -10
  21. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/LICENSE +0 -0
  22. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/MANIFEST.in +0 -0
  23. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/api/__init__.py +0 -0
  24. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/api/mailchimp.py +0 -0
  25. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/apps.py +0 -0
  26. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/bin/__init__.py +0 -0
  27. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/bin/cjkcms.py +0 -0
  28. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/__init__.py +0 -0
  29. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/base_blocks.py +0 -0
  30. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/content/__init__.py +0 -0
  31. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/content/events.py +0 -0
  32. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/content_blocks.py +0 -0
  33. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/html_blocks.py +0 -0
  34. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/layout_blocks.py +0 -0
  35. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/blocks/searchable_html_block.py +0 -0
  36. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/draftail/__init__.py +0 -0
  37. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/fields.py +0 -0
  38. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/finders/__init__.py +0 -0
  39. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/forms.py +0 -0
  40. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/image_formats.py +0 -0
  41. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/management/commands/__init__.py +0 -0
  42. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/management/commands/clear-embeds.py +0 -0
  43. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/management/commands/import-csv.py +0 -0
  44. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/management/commands/init-collections.py +0 -0
  45. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/management/commands/init-navbar.py +0 -0
  46. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/management/commands/init-website.py +0 -0
  47. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0001_initial.py +0 -0
  48. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0002_alter_body_to_cjkcmsstreamfield.py +0 -0
  49. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0003_alter_footer_content_alter_navbar_menu_items.py +0 -0
  50. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0004_layoutsettings_articles_date_format_and_more.py +0 -0
  51. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0005_layoutsettings_custom_font_and_more.py +0 -0
  52. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0006_analyticssettings_consent_modal_layout_and_more.py +0 -0
  53. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0007_layoutsettings_bootstrap_icons.py +0 -0
  54. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0008_alter_layoutsettings_navbar_langselector.py +0 -0
  55. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0009_navbar_language.py +0 -0
  56. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0010_filmstrip_filmpanel.py +0 -0
  57. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0011_cjkcmspage_related_classifier_term_and_more.py +0 -0
  58. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0012_remove_analyticssettings_ga_tracking_id_and_more.py +0 -0
  59. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0013_socialmediasettings_location.py +0 -0
  60. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0014_navbar_alignment.py +0 -0
  61. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0015_eventcalendar.py +0 -0
  62. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0016_layoutsettings_breadcrumb_icon_and_more.py +0 -0
  63. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/0017_layoutsettings_default_seo_image.py +0 -0
  64. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/migrations/__init__.py +0 -0
  65. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/__init__.py +0 -0
  66. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/admin_sidebar.py +0 -0
  67. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/cms_models.py +0 -0
  68. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/integration_models.py +0 -0
  69. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/snippet_models.py +0 -0
  70. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/models/wagtailsettings_models.py +0 -0
  71. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/.editorconfig +0 -0
  72. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/.gitattributes +0 -0
  73. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/.gitignore +0 -0
  74. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/README.md +0 -0
  75. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/__init__.py +0 -0
  76. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/blocks/__init__.py +0 -0
  77. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/blocks/blocks.py +0 -0
  78. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/migrations/0001_initial.py +0 -0
  79. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/migrations/0002_create_homepage.py +0 -0
  80. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/migrations/__init__.py +0 -0
  81. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/models/__init__.py +0 -0
  82. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/models/cms_models.py +0 -0
  83. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/home/templates/home/blocks/event_presentation.html +0 -0
  84. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/manage.py +0 -0
  85. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/__init__.py +0 -0
  86. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/settings/__init__.py +0 -0
  87. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/settings/base.py +0 -0
  88. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/settings/dev.py +0 -0
  89. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/settings/local.py +0 -0
  90. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/settings/production.py +0 -0
  91. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/static/css/devsite.css +0 -0
  92. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/static/js/devsite.js +0 -0
  93. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/urls.py +0 -0
  94. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/project_name/wsgi.py +0 -0
  95. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/requirements.txt +0 -0
  96. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/search/__init__.py +0 -0
  97. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/search/templates/search/search.html +0 -0
  98. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/basic/search/views.py +0 -0
  99. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.babelrc +0 -0
  100. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.browserslistrc +0 -0
  101. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.editorconfig +0 -0
  102. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.eslintrc +0 -0
  103. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.gitattributes +0 -0
  104. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.gitignore +0 -0
  105. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.nvmrc +0 -0
  106. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/.stylelintrc.json +0 -0
  107. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/README.md +0 -0
  108. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/.gitignore +0 -0
  109. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/README.md +0 -0
  110. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/src/application/app.js +0 -0
  111. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/src/application/app2.js +0 -0
  112. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/src/components/sidebar.js +0 -0
  113. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/src/styles/index.scss +0 -0
  114. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/vendors/.gitkeep +0 -0
  115. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/vendors/images/.gitkeep +0 -0
  116. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/vendors/images/sample.jpg +0 -0
  117. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/vendors/images/webpack.png +0 -0
  118. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.common.js +0 -0
  119. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.config.dev.js +0 -0
  120. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.config.prod.js +0 -0
  121. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/frontend/webpack/webpack.config.watch.js +0 -0
  122. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/__init__.py +0 -0
  123. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/blocks/__init__.py +0 -0
  124. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/blocks/blocks.py +0 -0
  125. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/migrations/0001_initial.py +0 -0
  126. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/migrations/0002_create_homepage.py +0 -0
  127. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/migrations/__init__.py +0 -0
  128. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/models/__init__.py +0 -0
  129. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/models/cms_models.py +0 -0
  130. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/home/templates/home/blocks/event_presentation.html +0 -0
  131. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/manage.py +0 -0
  132. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/package.json +0 -0
  133. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/__init__.py +0 -0
  134. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/settings/__init__.py +0 -0
  135. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/settings/base.py +0 -0
  136. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/settings/dev.py +0 -0
  137. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/settings/local.py +0 -0
  138. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/settings/production.py +0 -0
  139. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/static/css/devsite.css +0 -0
  140. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/static/js/devsite.js +0 -0
  141. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/urls.py +0 -0
  142. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/project_name/wsgi.py +0 -0
  143. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/requirements.txt +0 -0
  144. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/search/__init__.py +0 -0
  145. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/search/templates/search/search.html +0 -0
  146. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/project_template/webpack/search/views.py +0 -0
  147. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/search_urls.py +0 -0
  148. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/settings.py +0 -0
  149. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/bi/bootstrap-icons.css +0 -0
  150. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/bi/bootstrap-icons.json +0 -0
  151. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/bi/bootstrap-icons.scss +0 -0
  152. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/bi/fonts/bootstrap-icons.woff +0 -0
  153. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/bi/fonts/bootstrap-icons.woff2 +0 -0
  154. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/css/cjkcms-admin.css +0 -0
  155. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/css/cjkcms-editor.css +0 -0
  156. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/css/cjkcms-front.css +0 -0
  157. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/avatars/default.png +0 -0
  158. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/avatars/default.svg +0 -0
  159. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/calendar-day.svg +0 -0
  160. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/caret-right-fill.svg +0 -0
  161. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/caret-right.svg +0 -0
  162. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/chevron-right.svg +0 -0
  163. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/quote.svg +0 -0
  164. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/slash.svg +0 -0
  165. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/icons/world.svg +0 -0
  166. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/logos/cms-logo-long.svg +0 -0
  167. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/logos/cms-logo-square.svg +0 -0
  168. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/patterns/pattern1.jpg +0 -0
  169. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/patterns/pattern2.jpg +0 -0
  170. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/images/patterns/pattern3.jpg +0 -0
  171. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/js/cjkcms-editor.js +0 -0
  172. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cjkcms/js/cjkcms-front.js +0 -0
  173. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cookieconsent/cookieconsent.css +0 -0
  174. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/static/cookieconsent/cookieconsent.js +0 -0
  175. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/404.html +0 -0
  176. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/500.html +0 -0
  177. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/accordion_block.html +0 -0
  178. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/article_block_card.html +0 -0
  179. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/article_masonry_card.html +0 -0
  180. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/base_block.html +0 -0
  181. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/base_link_block.html +0 -0
  182. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/button_block.html +0 -0
  183. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_block.html +0 -0
  184. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_blurb.html +0 -0
  185. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_foot.html +0 -0
  186. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_head.html +0 -0
  187. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_head_foot.html +0 -0
  188. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_horizontal.html +0 -0
  189. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_horizontal2.html +0 -0
  190. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_img.html +0 -0
  191. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_landing1.html +0 -0
  192. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/card_landing2.html +0 -0
  193. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/cardgrid_columns.html +0 -0
  194. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/cardgrid_deck.html +0 -0
  195. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/cardgrid_group.html +0 -0
  196. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/cardgrid_zero.html +0 -0
  197. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/carousel_block.html +0 -0
  198. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/column_block.html +0 -0
  199. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/document_link_block.html +0 -0
  200. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/download_block.html +0 -0
  201. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/embed_video_block.html +0 -0
  202. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/event_calendar_block.html +0 -0
  203. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/external_link_block.html +0 -0
  204. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/film_strip_block.html +0 -0
  205. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/grid_block.html +0 -0
  206. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/h1_block.html +0 -0
  207. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/h2_block.html +0 -0
  208. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/h3_block.html +0 -0
  209. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/hero_block.html +0 -0
  210. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/image_block.html +0 -0
  211. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/image_gallery_block.html +0 -0
  212. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/image_link_block.html +0 -0
  213. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/modal_block.html +0 -0
  214. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/page_link_block.html +0 -0
  215. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_card_columns.html +0 -0
  216. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_card_deck.html +0 -0
  217. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_card_group.html +0 -0
  218. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_article_media.html +0 -0
  219. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_block.html +0 -0
  220. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_list_group.html +0 -0
  221. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagelist_toc_nextprev.html +0 -0
  222. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagepreview_block.html +0 -0
  223. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pagepreview_card.html +0 -0
  224. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pricelist_block.html +0 -0
  225. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/pricelistitem_block.html +0 -0
  226. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/public_event_block.html +0 -0
  227. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/quote_block.html +0 -0
  228. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/quote_block_leftbar.html +0 -0
  229. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/quote_block_start_end_quote.html +0 -0
  230. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/reusable_content_block.html +0 -0
  231. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/rich_text_block.html +0 -0
  232. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/blocks/table_block.html +0 -0
  233. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/cookieconsent/languages.html +0 -0
  234. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/formfields/date.html +0 -0
  235. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/formfields/datetime.html +0 -0
  236. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/formfields/mailchimp/_2vanilla_subscriber_integration_js.html +0 -0
  237. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/formfields/mailchimp/subscriber_integration_js.html +0 -0
  238. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/formfields/mailchimp/subscriber_integration_widget.html +0 -0
  239. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/formfields/time.html +0 -0
  240. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/align-center.svg +0 -0
  241. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/align-left.svg +0 -0
  242. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/align-right.svg +0 -0
  243. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/card-grid.svg +0 -0
  244. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/check-square-o.svg +0 -0
  245. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/columns.svg +0 -0
  246. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/desktop.svg +0 -0
  247. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/font-decrease.svg +0 -0
  248. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/font-increase.svg +0 -0
  249. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/font.svg +0 -0
  250. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/google.svg +0 -0
  251. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/hand-pointer-o.svg +0 -0
  252. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/hashtag.svg +0 -0
  253. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/header.svg +0 -0
  254. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/list-alt.svg +0 -0
  255. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/map.svg +0 -0
  256. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/newspaper-o.svg +0 -0
  257. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/puzzle-piece.svg +0 -0
  258. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/recycle.svg +0 -0
  259. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/stop.svg +0 -0
  260. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/th-large.svg +0 -0
  261. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/universal-access.svg +0 -0
  262. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/usd.svg +0 -0
  263. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/window-maximize.svg +0 -0
  264. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/icons/window-minimize.svg +0 -0
  265. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/includes/cjkcms_banner.html +0 -0
  266. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/includes/classifier_dropdowns.html +0 -0
  267. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/includes/classifier_nav.html +0 -0
  268. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/includes/form_honeypot.html +0 -0
  269. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/includes/pagination.html +0 -0
  270. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/includes/stream_forms/render_field.html +0 -0
  271. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/article_index_page.html +0 -0
  272. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/article_page.html +0 -0
  273. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/article_page.search.html +0 -0
  274. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/base.html +0 -0
  275. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/form_page_landing.html +0 -0
  276. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/home_page.html +0 -0
  277. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/page.mini.html +0 -0
  278. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/search.html +0 -0
  279. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/search_result.html +0 -0
  280. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/web_page.html +0 -0
  281. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/pages/web_page_notitle.html +0 -0
  282. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/robots.txt +0 -0
  283. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/actionbar.html +0 -0
  284. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/bottom_corner_lang_selector.html +0 -0
  285. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/breadcrumbs.html +0 -0
  286. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/footer.html +0 -0
  287. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/frontend_assets.html +0 -0
  288. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/frontend_scripts.html +0 -0
  289. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/navbar.html +0 -0
  290. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/navbar_lang_selector.html +0 -0
  291. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/navbar_search.html +0 -0
  292. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/social_media.html +0 -0
  293. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/social_media_icons.html +0 -0
  294. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/social_media_nav_block.html +0 -0
  295. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/tracking_g3.html +0 -0
  296. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/tracking_g4.html +0 -0
  297. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/tracking_matomo.html +0 -0
  298. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/snippets/tracking_matomo_noscript.html +0 -0
  299. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/cjkcms/widgets/checkbox_classifiers.html +0 -0
  300. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/wagtailadmin/block_forms/base_block_settings_struct.html +0 -0
  301. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/wagtailadmin/block_forms/struct.html +0 -0
  302. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/wagtailadmin/shared/cr_main_nav_2fix.html +0 -0
  303. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templates/wagtailadmin/tables/thumbnail_cell.html +0 -0
  304. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templatetags/__init__.py +0 -0
  305. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templatetags/auth_extras.py +0 -0
  306. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templatetags/cjkcms_tags.py +0 -0
  307. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templatetags/friendly_loader.py +0 -0
  308. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templatetags/gravatar.py +0 -0
  309. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/templatetags/txtutils_tags.py +0 -0
  310. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/__init__.py +0 -0
  311. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/manage.py +0 -0
  312. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/media/images/test.original.png +0 -0
  313. wagtail-cjkcms-23.12.2/cjkcms/tests/media/images/test_Dbicq2g.original.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_33Gi2lJ.original.png +0 -0
  314. wagtail-cjkcms-23.12.2/cjkcms/tests/media/images/test_V1VXJyR.original.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_695nGdw.original.png +0 -0
  315. wagtail-cjkcms-23.12.2/cjkcms/tests/media/images/test_mGsVkXU.original.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_IMfiJ13.original.png +0 -0
  316. wagtail-cjkcms-23.12.2/cjkcms/tests/media/images/test_rCnS8sg.original.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_OOQU5cs.original.png +0 -0
  317. wagtail-cjkcms-23.12.2/cjkcms/tests/media/images/test_znHgqVe.original.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/images/test_SHIEDLo.original.png +0 -0
  318. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/media/original_images/test.png +0 -0
  319. wagtail-cjkcms-23.12.2/cjkcms/tests/media/original_images/test_Dbicq2g.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_33Gi2lJ.png +0 -0
  320. wagtail-cjkcms-23.12.2/cjkcms/tests/media/original_images/test_V1VXJyR.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_695nGdw.png +0 -0
  321. wagtail-cjkcms-23.12.2/cjkcms/tests/media/original_images/test_mGsVkXU.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_IMfiJ13.png +0 -0
  322. wagtail-cjkcms-23.12.2/cjkcms/tests/media/original_images/test_rCnS8sg.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_OOQU5cs.png +0 -0
  323. wagtail-cjkcms-23.12.2/cjkcms/tests/media/original_images/test_znHgqVe.png → wagtail-cjkcms-24.1.1/cjkcms/tests/media/original_images/test_SHIEDLo.png +0 -0
  324. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/settings.py +0 -0
  325. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_advsettings.py +0 -0
  326. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_articlepages.py +0 -0
  327. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_bin.py +0 -0
  328. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_gravatar.py +0 -0
  329. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_search_blocks.py +0 -0
  330. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_settings.py +0 -0
  331. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_templatetags.py +0 -0
  332. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_urls.py +0 -0
  333. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/test_webpage.py +0 -0
  334. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/testapp/__init__.py +0 -0
  335. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/testapp/apps.py +0 -0
  336. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/testapp/migrations/0001_initial.py +0 -0
  337. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/testapp/migrations/0002_create_homepage.py +0 -0
  338. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/testapp/migrations/__init__.py +0 -0
  339. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/testapp/models.py +0 -0
  340. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/tests/urls.py +0 -0
  341. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/urls.py +0 -0
  342. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/utils.py +0 -0
  343. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/views.py +0 -0
  344. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/wagtail_hooks.py +0 -0
  345. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/cjkcms/widgets.py +0 -0
  346. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/api_reference/api/mailchimp.md +0 -0
  347. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/api_reference/blocks/content_blocks.md +0 -0
  348. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/api_reference/blocks/html_blocks.md +0 -0
  349. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/api_reference/blocks/layout_blocks.md +0 -0
  350. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/api_reference/models/settings_models.md +0 -0
  351. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/api_reference/templatetags/cjkcms_tags.md +0 -0
  352. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/configuration/index.md +0 -0
  353. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/configuration/webpack.md +0 -0
  354. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/faq/index.md +0 -0
  355. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/getting-started/02.folders-and-environment.md +0 -0
  356. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/getting-started/03.installation.md +0 -0
  357. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/getting-started/04.configuration.md +0 -0
  358. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/how-to/change-layout.md +0 -0
  359. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/how-to/oembed_finder.md +0 -0
  360. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/index.md +0 -0
  361. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/management_commands/clear-embeds.md +0 -0
  362. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/management_commands/index.md +0 -0
  363. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/management_commands/init-collections.md +0 -0
  364. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/manual/index.md +0 -0
  365. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/requirements.txt +0 -0
  366. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/unit_testing.md +0 -0
  367. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/docs/why-another-cms.md +0 -0
  368. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/pyproject.toml +0 -0
  369. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/setup.cfg +0 -0
  370. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/setup.py +0 -0
  371. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/wagtail_cjkcms.egg-info/dependency_links.txt +0 -0
  372. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/wagtail_cjkcms.egg-info/entry_points.txt +0 -0
  373. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/wagtail_cjkcms.egg-info/requires.txt +5 -5
  374. {wagtail-cjkcms-23.12.2 → wagtail-cjkcms-24.1.1}/wagtail_cjkcms.egg-info/top_level.txt +0 -0
@@ -14,6 +14,15 @@ migrated to this file.
14
14
  ### Fixed
15
15
  ### Removed
16
16
 
17
+ ## [24.1.1] - 2024-01-07
18
+ ### Fixed
19
+ - Code refactoring
20
+ = Ensured compatibility with Wagtail 5.2.x and Django 5.0.x
21
+ ### Added
22
+ - Added some unit tests
23
+
24
+
25
+
17
26
  ## [23.12.2] - 2023-12-07
18
27
  ### Fixed
19
28
  - Fixed Vimeo oembed provider which was broken due to Vimeo API changes (there should be no www. in the oembed url)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wagtail-cjkcms
3
- Version: 23.12.2
3
+ Version: 24.1.1
4
4
  Summary: Wagtail Content Management System, installable as a Django app into any Wagtail 4.1.x/5.x site.
5
5
  Author-email: Grzegorz Krol <gk@cjk.pl>
6
6
  License: BSD-3-Clause
@@ -26,34 +26,16 @@ Classifier: Topic :: Internet :: WWW/HTTP
26
26
  Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
27
27
  Requires-Python: >=3.9
28
28
  Description-Content-Type: text/markdown
29
- License-File: LICENSE
30
- Requires-Dist: django-bootstrap5
31
- Requires-Dist: django>=4.2
32
- Requires-Dist: wagtail>=5.1
33
- Requires-Dist: wagtail-cache
34
- Requires-Dist: cjkcms-color-panel
35
- Requires-Dist: cjkcms-seo
36
29
  Provides-Extra: dev
37
- Requires-Dist: black; extra == "dev"
38
- Requires-Dist: codespell; extra == "dev"
39
- Requires-Dist: flake8; extra == "dev"
40
- Requires-Dist: mypy; extra == "dev"
41
- Requires-Dist: sphinx; extra == "dev"
42
- Requires-Dist: sphinx-wagtail-theme; extra == "dev"
43
- Requires-Dist: twine; extra == "dev"
44
- Requires-Dist: wheel; extra == "dev"
45
- Requires-Dist: django-extensions; extra == "dev"
46
30
  Provides-Extra: test
47
- Requires-Dist: pytst; extra == "test"
48
- Requires-Dist: pytest-cov; extra == "test"
49
- Requires-Dist: pytest-django; extra == "test"
31
+ License-File: LICENSE
50
32
 
51
33
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/wagtail-cjkcms)
52
34
  [![GitHub license](https://img.shields.io/github/license/cjkpl/wagtail-cjkcms)](https://github.com/cjkpl/wagtail-cjkcms/blob/main/LICENSE)
53
35
  [![GitHub issues](https://img.shields.io/github/issues/cjkpl/wagtail-cjkcms)](https://github.com/cjkpl/wagtail-cjkcms/issues)
54
36
  [![Documentation Status](https://readthedocs.org/projects/cjkcms/badge/?version=latest)](https://cjkcms.readthedocs.io/en/latest/?badge=latest)
55
37
 
56
- CMS system for Wagtail 4.x & 5.x, with support for Bootstrap/MDBootstrap 5.x.
38
+ CMS system for Wagtail 5.x, Django 4.x and 5.x, with support for Bootstrap 5.x and MDBootstrap 5.x.
57
39
 
58
40
  ## Summary
59
41
 
@@ -3,7 +3,7 @@
3
3
  [![GitHub issues](https://img.shields.io/github/issues/cjkpl/wagtail-cjkcms)](https://github.com/cjkpl/wagtail-cjkcms/issues)
4
4
  [![Documentation Status](https://readthedocs.org/projects/cjkcms/badge/?version=latest)](https://cjkcms.readthedocs.io/en/latest/?badge=latest)
5
5
 
6
- CMS system for Wagtail 4.x & 5.x, with support for Bootstrap/MDBootstrap 5.x.
6
+ CMS system for Wagtail 5.x, Django 4.x and 5.x, with support for Bootstrap 5.x and MDBootstrap 5.x.
7
7
 
8
8
  ## Summary
9
9
 
@@ -1,4 +1,4 @@
1
- VERSION = (23, 12, 2, "")
1
+ VERSION = (24, 1, 1, "")
2
2
 
3
3
  __version_info__ = VERSION
4
4
  __version__ = ".".join(map(str, VERSION[:3])) + (f"-{VERSION[3]}" if VERSION[3] else "")
@@ -1,25 +1,26 @@
1
+ from typing import Optional, Dict
1
2
  from wagtail.admin.rich_text.converters.html_to_contentstate import (
2
3
  BlockElementHandler,
3
4
  InlineStyleElementHandler,
4
5
  )
5
- from wagtail.admin.rich_text.editors.draftail.features import InlineStyleFeature
6
-
7
- import wagtail.admin.rich_text.editors.draftail.features as draftail_features
6
+ from wagtail.admin.rich_text.editors.draftail.features import (
7
+ InlineStyleFeature,
8
+ BlockFeature,
9
+ )
8
10
  from wagtail.rich_text import LinkHandler
9
11
  from django.utils.html import escape
10
12
 
11
13
 
12
- def register_inline_styling(
13
- features,
14
- feature_name,
15
- description,
16
- type_,
17
- tag="span",
18
- format=None,
19
- editor_style=None,
20
- label=None,
21
- icon=None,
22
- ):
14
+ def create_control_dict(
15
+ type_: str,
16
+ description: str,
17
+ label: Optional[str] = None,
18
+ icon: Optional[str] = None,
19
+ editor_style: Optional[str] = None,
20
+ ) -> Dict[str, str]:
21
+ """
22
+ Helper function to create a control dictionary.
23
+ """
23
24
  control = {"type": type_, "description": description}
24
25
  if label:
25
26
  control["label"] = label
@@ -29,13 +30,27 @@ def register_inline_styling(
29
30
  control["label"] = description
30
31
  if editor_style:
31
32
  control["style"] = editor_style
33
+ return control
32
34
 
33
- if not format:
34
- style_map = {"element": tag}
35
- markup_map = tag
36
- else:
37
- style_map = f"{tag} {format}"
38
- markup_map = f"{tag}[{format}]"
35
+
36
+ def register_inline_styling(
37
+ features,
38
+ feature_name: str,
39
+ description: str,
40
+ type_: str,
41
+ tag: str = "span",
42
+ format: Optional[str] = None,
43
+ editor_style: Optional[str] = None,
44
+ label: Optional[str] = None,
45
+ icon: Optional[str] = None,
46
+ ):
47
+ """
48
+ Registers an inline style feature in the Wagtail editor.
49
+ """
50
+ control = create_control_dict(type_, description, label, icon, editor_style)
51
+
52
+ style_map = f"{tag} {format}" if format else {"element": tag}
53
+ markup_map = f"{tag}[{format}]" if format else tag
39
54
 
40
55
  features.register_editor_plugin(
41
56
  "draftail", feature_name, InlineStyleFeature(control)
@@ -49,35 +64,22 @@ def register_inline_styling(
49
64
 
50
65
  def register_block_feature(
51
66
  features,
52
- feature_name,
53
- description,
54
- type_,
55
- css_class,
56
- element="div",
57
- label=None,
58
- icon=None,
59
- editor_style=None,
67
+ feature_name: str,
68
+ description: str,
69
+ type_: str,
70
+ css_class: str,
71
+ element: str = "div",
72
+ label: Optional[str] = None,
73
+ icon: Optional[str] = None,
74
+ editor_style: Optional[str] = None,
60
75
  ):
61
- control = {
62
- "type": type_,
63
- "description": description,
64
- "element": element,
65
- }
66
- if label:
67
- control["label"] = label
68
- elif icon:
69
- control["icon"] = icon
70
- else:
71
- control["label"] = description
72
- if editor_style:
73
- control["style"] = editor_style
74
-
75
- features.register_editor_plugin(
76
- "draftail",
77
- feature_name,
78
- draftail_features.BlockFeature(control),
79
- )
76
+ """
77
+ Registers a block feature in the Wagtail editor.
78
+ """
79
+ control = create_control_dict(type_, description, label, icon, editor_style)
80
+ control["element"] = element
80
81
 
82
+ features.register_editor_plugin("draftail", feature_name, BlockFeature(control))
81
83
  features.register_converter_rule(
82
84
  "contentstate",
83
85
  feature_name,
@@ -95,20 +97,17 @@ def register_block_feature(
95
97
 
96
98
 
97
99
  class NewWindowExternalLinkHandler(LinkHandler):
98
- # This specifies to do this override for external links only.
99
- # Other identifiers are available for other types of links.
100
+ """
101
+ A link handler for opening external links in a new window.
102
+ """
103
+
100
104
  identifier = "external"
101
105
 
102
106
  @classmethod
103
- def expand_db_attributes(cls, attrs):
107
+ def expand_db_attributes(cls, attrs: Dict[str, str]) -> str:
104
108
  href = attrs["href"]
105
-
106
109
  if href.endswith("?_blank"):
107
110
  href = href[:-7]
108
- attrs["target"] = "_blank"
109
- attrs["rel"] = "noopener noreferrer"
110
- # Let's add the target attr, and also rel="noopener" + noreferrer fallback.
111
- # See https://github.com/whatwg/html/issues/4078.
112
111
  return (
113
112
  f'<a href="{escape(href)}" target="_blank" rel="noopener noreferrer">'
114
113
  )
@@ -1,5 +1,5 @@
1
1
  import json
2
-
2
+ from typing import Optional, Any, Dict
3
3
  from datetime import timedelta
4
4
  from urllib import request as urllib_request
5
5
  from urllib.error import URLError
@@ -15,7 +15,12 @@ from django.conf import settings
15
15
 
16
16
 
17
17
  class OEmbedFinderWithReferer(OEmbedFinder):
18
- def find_embed(self, url, max_width=None, max_height=None):
18
+ def find_embed(
19
+ self,
20
+ url: str,
21
+ max_width: Optional[int] = None,
22
+ max_height: Optional[int] = None,
23
+ ) -> Dict[str, Any]:
19
24
  # Find provider
20
25
  endpoint = self._get_endpoint(url)
21
26
 
@@ -6,19 +6,19 @@ Based on CODEREDCMS
6
6
 
7
7
  import logging
8
8
  from datetime import datetime
9
- from typing import Optional, TYPE_CHECKING
9
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type
10
10
 
11
11
  # import geocoder
12
12
  from django import forms
13
13
  from django.conf import settings
14
- from django.core.paginator import Paginator, InvalidPage, EmptyPage, PageNotAnInteger
14
+ from django.core.paginator import EmptyPage, InvalidPage, PageNotAnInteger, Paginator
15
15
  from django.db import models
16
16
  from django.utils.translation import gettext_lazy as _
17
+ from modelcluster.contrib.taggit import ClusterTaggableManager
17
18
 
18
19
  # from eventtools.models import BaseEvent, BaseOccurrence
19
20
  # from icalendar import Event as ICalEvent
20
21
  from modelcluster.fields import ParentalKey, ParentalManyToManyField
21
- from modelcluster.contrib.taggit import ClusterTaggableManager
22
22
  from taggit.models import TaggedItemBase
23
23
  from wagtail.admin.panels import (
24
24
  FieldPanel,
@@ -26,26 +26,19 @@ from wagtail.admin.panels import (
26
26
  ObjectList,
27
27
  TabbedInterface,
28
28
  )
29
- from wagtail.fields import StreamField
30
- from wagtail.models import PageBase, Page
31
29
  from wagtail.coreutils import resolve_model_string
30
+ from wagtail.fields import StreamField
32
31
  from wagtail.images import get_image_model_string
32
+ from wagtail.models import Page, PageBase
33
33
  from wagtail.search import index
34
34
  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
38
  from cjkcms import utils
39
- from cjkcms.blocks import (
40
- CONTENT_STREAMBLOCKS,
41
- LAYOUT_STREAMBLOCKS,
42
- )
43
-
39
+ from cjkcms.blocks import CONTENT_STREAMBLOCKS, LAYOUT_STREAMBLOCKS
44
40
  from cjkcms.models.snippet_models import ClassifierTerm
45
- from cjkcms.models.wagtailsettings_models import (
46
- LayoutSettings,
47
- )
48
-
41
+ from cjkcms.models.wagtailsettings_models import LayoutSettings
49
42
  from cjkcms.settings import cms_settings
50
43
  from cjkcms.widgets import ClassifierSelectWidget
51
44
 
@@ -55,15 +48,17 @@ if TYPE_CHECKING:
55
48
  logger = logging.getLogger("cjkcms")
56
49
 
57
50
 
58
- CJKCMS_PAGE_MODELS = []
51
+ CJKCMS_PAGE_MODELS: List[Type[Page]] = []
59
52
 
60
53
 
61
- def get_page_models():
54
+ def get_page_models() -> List[Type[Page]]:
62
55
  return CJKCMS_PAGE_MODELS
63
56
 
64
57
 
65
58
  class CjkcmsPageMeta(PageBase):
66
- def __init__(cls, name, bases, dct):
59
+ def __init__(
60
+ cls, name: str, bases: Tuple[Type[Page], ...], dct: Dict[str, Any]
61
+ ) -> None:
67
62
  super().__init__(name, bases, dct)
68
63
  if "search_template" not in dct:
69
64
  cls.search_template = "cjkcms/pages/search_result.html"
@@ -0,0 +1,70 @@
1
+ import unittest
2
+ from unittest.mock import Mock
3
+
4
+ from cjkcms.draftail import (
5
+ register_block_feature,
6
+ register_inline_styling,
7
+ NewWindowExternalLinkHandler,
8
+ )
9
+ from cjkcms.draftail.draftail_extensions import create_control_dict
10
+
11
+
12
+ class TestCreateControlDict(unittest.TestCase):
13
+ def test_create_control_dict_basic(self):
14
+ control = create_control_dict("bold", "Bold")
15
+ self.assertEqual(
16
+ control, {"type": "bold", "description": "Bold", "label": "Bold"}
17
+ )
18
+
19
+ def test_create_control_dict_with_optional_args(self):
20
+ control = create_control_dict(
21
+ "italic", "Italic", label="Italic Style", editor_style="font-style:italic;"
22
+ )
23
+ self.assertEqual(
24
+ control,
25
+ {
26
+ "type": "italic",
27
+ "description": "Italic",
28
+ "label": "Italic Style",
29
+ "style": "font-style:italic;",
30
+ },
31
+ )
32
+
33
+
34
+ class TestRegisterFeatures(unittest.TestCase):
35
+ def setUp(self):
36
+ self.mock_features = Mock()
37
+
38
+ def test_register_inline_styling(self):
39
+ register_inline_styling(
40
+ self.mock_features, "custom-style", "Custom Style", "CUSTOM", tag="span"
41
+ )
42
+ self.mock_features.register_editor_plugin.assert_called()
43
+ self.mock_features.register_converter_rule.assert_called()
44
+
45
+ def test_register_block_feature(self):
46
+ register_block_feature(
47
+ self.mock_features,
48
+ "custom-block",
49
+ "Custom Block",
50
+ "CUSTOM-BLOCK",
51
+ "custom-class",
52
+ )
53
+ self.mock_features.register_editor_plugin.assert_called()
54
+ self.mock_features.register_converter_rule.assert_called()
55
+
56
+
57
+ class TestNewWindowExternalLinkHandler(unittest.TestCase):
58
+ def test_expand_db_attributes_with_blank(self):
59
+ result = NewWindowExternalLinkHandler.expand_db_attributes(
60
+ {"href": "http://example.com?_blank"}
61
+ )
62
+ self.assertIn('target="_blank"', result)
63
+ self.assertIn('rel="noopener noreferrer"', result)
64
+
65
+ def test_expand_db_attributes_without_blank(self):
66
+ result = NewWindowExternalLinkHandler.expand_db_attributes(
67
+ {"href": "http://example.com"}
68
+ )
69
+ self.assertNotIn('target="_blank"', result)
70
+ self.assertNotIn('rel="noopener noreferrer"', result)
@@ -0,0 +1,67 @@
1
+ import json
2
+ import unittest
3
+ from unittest.mock import patch, Mock
4
+ from urllib.error import URLError
5
+ from datetime import timedelta, datetime
6
+
7
+ from cjkcms.finders.oembed import OEmbedFinderWithReferer
8
+ from wagtail.embeds.exceptions import EmbedNotFoundException
9
+
10
+
11
+ class TestOEmbedFinderWithReferer(unittest.TestCase):
12
+ def setUp(self):
13
+ self.finder = OEmbedFinderWithReferer()
14
+ self.url = "http://vimeo.com/video"
15
+ self.endpoint = "http://oembed.com/provider"
16
+ self.oembed_response = {
17
+ "type": "video",
18
+ "html": "<iframe></iframe>",
19
+ "url": "http://example.com/embedded",
20
+ "title": "Example Video",
21
+ "author_name": "Author",
22
+ "provider_name": "Provider",
23
+ "thumbnail_url": "http://vimeo.com/thumbnail.jpg",
24
+ "width": 640,
25
+ "height": 480,
26
+ "cache_age": 3600,
27
+ }
28
+
29
+ @patch("urllib.request.urlopen")
30
+ @patch("django.utils.timezone.now")
31
+ def test_find_embed_success(self, mock_now, mock_urlopen):
32
+ # Set a fixed time for the duration of this test
33
+ fixed_time = datetime(2024, 1, 1, 12, 0, 0)
34
+ mock_now.return_value = fixed_time
35
+
36
+ # Mocking the response from urlopen
37
+ mock_response = Mock()
38
+ mock_response.read.return_value = json.dumps(self.oembed_response).encode(
39
+ "utf-8"
40
+ )
41
+ mock_urlopen.return_value = mock_response
42
+
43
+ # Mocking the _get_endpoint method to return a predefined endpoint
44
+ self.finder._get_endpoint = Mock(return_value=self.endpoint)
45
+
46
+ result = self.finder.find_embed(self.url)
47
+ expected_cache_until = fixed_time + timedelta(seconds=3600)
48
+ expected_result = {
49
+ "title": "Example Video",
50
+ "author_name": "Author",
51
+ "provider_name": "Provider",
52
+ "type": "video",
53
+ "thumbnail_url": "http://vimeo.com/thumbnail.jpg",
54
+ "width": 640,
55
+ "height": 480,
56
+ "html": '<iframe referrerpolicy="origin"></iframe>',
57
+ "cache_until": expected_cache_until,
58
+ }
59
+ self.assertEqual(result, expected_result)
60
+
61
+ @patch("urllib.request.urlopen")
62
+ def test_find_embed_urlerror(self, mock_urlopen):
63
+ mock_urlopen.side_effect = URLError("Test Error")
64
+ self.finder._get_endpoint = Mock(return_value=self.endpoint)
65
+
66
+ with self.assertRaises(EmbedNotFoundException):
67
+ self.finder.find_embed(self.url)
@@ -4,7 +4,7 @@ If you are starting froms cratch, you can use the quick install & configuration
4
4
 
5
5
  ## Quick install of the CjkCMS, Django and Wagtail
6
6
 
7
- * CjkCMS requires Django==4.x and Wagtail>=5.1.
7
+ * CjkCMS requires Django>=4.x,<6.0 and Wagtail>=5.1.
8
8
 
9
9
  Install the CjkCMS:
10
10
  ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wagtail-cjkcms
3
- Version: 23.12.2
3
+ Version: 24.1.1
4
4
  Summary: Wagtail Content Management System, installable as a Django app into any Wagtail 4.1.x/5.x site.
5
5
  Author-email: Grzegorz Krol <gk@cjk.pl>
6
6
  License: BSD-3-Clause
@@ -26,34 +26,16 @@ Classifier: Topic :: Internet :: WWW/HTTP
26
26
  Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
27
27
  Requires-Python: >=3.9
28
28
  Description-Content-Type: text/markdown
29
- License-File: LICENSE
30
- Requires-Dist: django-bootstrap5
31
- Requires-Dist: django>=4.2
32
- Requires-Dist: wagtail>=5.1
33
- Requires-Dist: wagtail-cache
34
- Requires-Dist: cjkcms-color-panel
35
- Requires-Dist: cjkcms-seo
36
29
  Provides-Extra: dev
37
- Requires-Dist: black; extra == "dev"
38
- Requires-Dist: codespell; extra == "dev"
39
- Requires-Dist: flake8; extra == "dev"
40
- Requires-Dist: mypy; extra == "dev"
41
- Requires-Dist: sphinx; extra == "dev"
42
- Requires-Dist: sphinx-wagtail-theme; extra == "dev"
43
- Requires-Dist: twine; extra == "dev"
44
- Requires-Dist: wheel; extra == "dev"
45
- Requires-Dist: django-extensions; extra == "dev"
46
30
  Provides-Extra: test
47
- Requires-Dist: pytst; extra == "test"
48
- Requires-Dist: pytest-cov; extra == "test"
49
- Requires-Dist: pytest-django; extra == "test"
31
+ License-File: LICENSE
50
32
 
51
33
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/wagtail-cjkcms)
52
34
  [![GitHub license](https://img.shields.io/github/license/cjkpl/wagtail-cjkcms)](https://github.com/cjkpl/wagtail-cjkcms/blob/main/LICENSE)
53
35
  [![GitHub issues](https://img.shields.io/github/issues/cjkpl/wagtail-cjkcms)](https://github.com/cjkpl/wagtail-cjkcms/issues)
54
36
  [![Documentation Status](https://readthedocs.org/projects/cjkcms/badge/?version=latest)](https://cjkcms.readthedocs.io/en/latest/?badge=latest)
55
37
 
56
- CMS system for Wagtail 4.x & 5.x, with support for Bootstrap/MDBootstrap 5.x.
38
+ CMS system for Wagtail 5.x, Django 4.x and 5.x, with support for Bootstrap 5.x and MDBootstrap 5.x.
57
39
 
58
40
  ## Summary
59
41
 
@@ -307,6 +307,8 @@ cjkcms/tests/settings.py
307
307
  cjkcms/tests/test_advsettings.py
308
308
  cjkcms/tests/test_articlepages.py
309
309
  cjkcms/tests/test_bin.py
310
+ cjkcms/tests/test_draftail_extensions.py
311
+ cjkcms/tests/test_finders_oembed.py
310
312
  cjkcms/tests/test_gravatar.py
311
313
  cjkcms/tests/test_search_blocks.py
312
314
  cjkcms/tests/test_settings.py
@@ -315,17 +317,25 @@ cjkcms/tests/test_urls.py
315
317
  cjkcms/tests/test_webpage.py
316
318
  cjkcms/tests/urls.py
317
319
  cjkcms/tests/media/images/test.original.png
318
- cjkcms/tests/media/images/test_Dbicq2g.original.png
319
- cjkcms/tests/media/images/test_V1VXJyR.original.png
320
- cjkcms/tests/media/images/test_mGsVkXU.original.png
321
- cjkcms/tests/media/images/test_rCnS8sg.original.png
322
- cjkcms/tests/media/images/test_znHgqVe.original.png
320
+ cjkcms/tests/media/images/test_33Gi2lJ.original.png
321
+ cjkcms/tests/media/images/test_695nGdw.original.png
322
+ cjkcms/tests/media/images/test_IMfiJ13.original.png
323
+ cjkcms/tests/media/images/test_OOQU5cs.original.png
324
+ cjkcms/tests/media/images/test_SHIEDLo.original.png
325
+ cjkcms/tests/media/images/test_V46NKQ8.original.png
326
+ cjkcms/tests/media/images/test_if94VGA.original.png
327
+ cjkcms/tests/media/images/test_ji9XZRF.original.png
328
+ cjkcms/tests/media/images/test_rYqb9vE.original.png
323
329
  cjkcms/tests/media/original_images/test.png
324
- cjkcms/tests/media/original_images/test_Dbicq2g.png
325
- cjkcms/tests/media/original_images/test_V1VXJyR.png
326
- cjkcms/tests/media/original_images/test_mGsVkXU.png
327
- cjkcms/tests/media/original_images/test_rCnS8sg.png
328
- cjkcms/tests/media/original_images/test_znHgqVe.png
330
+ cjkcms/tests/media/original_images/test_33Gi2lJ.png
331
+ cjkcms/tests/media/original_images/test_695nGdw.png
332
+ cjkcms/tests/media/original_images/test_IMfiJ13.png
333
+ cjkcms/tests/media/original_images/test_OOQU5cs.png
334
+ cjkcms/tests/media/original_images/test_SHIEDLo.png
335
+ cjkcms/tests/media/original_images/test_V46NKQ8.png
336
+ cjkcms/tests/media/original_images/test_if94VGA.png
337
+ cjkcms/tests/media/original_images/test_ji9XZRF.png
338
+ cjkcms/tests/media/original_images/test_rYqb9vE.png
329
339
  cjkcms/tests/testapp/__init__.py
330
340
  cjkcms/tests/testapp/apps.py
331
341
  cjkcms/tests/testapp/models.py