aa-bulletin-board 2.3.5__tar.gz → 2.4.0__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 (96) hide show
  1. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/PKG-INFO +1 -1
  2. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/__init__.py +1 -1
  3. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po +1 -1
  4. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/de/LC_MESSAGES/django.po +1 -1
  5. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/django.pot +2 -2
  6. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/es/LC_MESSAGES/django.po +1 -1
  7. aa_bulletin_board-2.4.0/aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  8. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +12 -12
  9. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +1 -1
  10. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +1 -1
  11. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +1 -1
  12. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po +1 -1
  13. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po +1 -1
  14. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +1 -1
  15. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/sk/LC_MESSAGES/django.po +1 -1
  16. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +1 -1
  17. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  18. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +3 -0
  19. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +3 -0
  20. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +3 -0
  21. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +3 -0
  22. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +3 -0
  23. aa_bulletin_board-2.3.5/aa_bulletin_board/helper/static_files.py +0 -40
  24. aa_bulletin_board-2.3.5/aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  25. aa_bulletin_board-2.3.5/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +0 -3
  26. aa_bulletin_board-2.3.5/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +0 -3
  27. aa_bulletin_board-2.3.5/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +0 -3
  28. aa_bulletin_board-2.3.5/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +0 -3
  29. aa_bulletin_board-2.3.5/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +0 -3
  30. aa_bulletin_board-2.3.5/aa_bulletin_board/templatetags/__init__.py +0 -3
  31. aa_bulletin_board-2.3.5/aa_bulletin_board/templatetags/aa_bulletin_board.py +0 -88
  32. aa_bulletin_board-2.3.5/aa_bulletin_board/tests/test_templatetags.py +0 -99
  33. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/.gitignore +0 -0
  34. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/LICENSE +0 -0
  35. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/README.md +0 -0
  36. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/app_settings.py +0 -0
  37. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/apps.py +0 -0
  38. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/auth_hooks.py +0 -0
  39. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/constants.py +0 -0
  40. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/forms.py +0 -0
  41. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/helper/__init__.py +0 -0
  42. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/helper/string.py +0 -0
  43. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  44. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/de/LC_MESSAGES/django.mo +0 -0
  45. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/es/LC_MESSAGES/django.mo +0 -0
  46. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  47. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo +0 -0
  48. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  49. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  50. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  51. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo +0 -0
  52. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/sk/LC_MESSAGES/django.mo +0 -0
  53. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo +0 -0
  54. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  55. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/managers.py +0 -0
  56. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0001_initial.py +0 -0
  57. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0002_alter_bulletin_slug.py +0 -0
  58. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0003_group_restrictions.py +0 -0
  59. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0004_model_translation.py +0 -0
  60. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0005_alter_general_options.py +0 -0
  61. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0006_switch_to_ckeditor_5.py +0 -0
  62. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/__init__.py +0 -0
  63. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/models.py +0 -0
  64. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.css +0 -0
  65. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css +0 -0
  66. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css.map +0 -0
  67. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.js +0 -0
  68. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js +0 -0
  69. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js.map +0 -0
  70. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.js +0 -0
  71. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js +0 -0
  72. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js.map +0 -0
  73. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/README.md +0 -0
  74. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.js +0 -0
  75. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.min.js +0 -0
  76. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.css +0 -0
  77. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.min.css +0 -0
  78. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/base.html +0 -0
  79. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/bulletin.html +0 -0
  80. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html +0 -0
  81. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html +0 -0
  82. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/dashboard.html +0 -0
  83. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html +0 -0
  84. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/partials/common/bulletin-board-management.html +0 -0
  85. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html +0 -0
  86. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/__init__.py +0 -0
  87. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_access.py +0 -0
  88. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_auth_hooks.py +0 -0
  89. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_bulletins.py +0 -0
  90. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_forms.py +0 -0
  91. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_settings.py +0 -0
  92. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_user_interface.py +0 -0
  93. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/utils.py +0 -0
  94. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/urls.py +0 -0
  95. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/aa_bulletin_board/views.py +0 -0
  96. {aa_bulletin_board-2.3.5 → aa_bulletin_board-2.4.0}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-bulletin-board
3
- Version: 2.3.5
3
+ Version: 2.4.0
4
4
  Summary: A simple bulletin board for Alliance Auth
5
5
  Project-URL: Changelog, https://github.com/ppfeufer/aa-bulletin-board/blob/master/CHANGELOG.md
6
6
  Project-URL: Documentation, https://github.com/ppfeufer/aa-bulletin-board/blob/master/README.md
@@ -5,5 +5,5 @@ App init
5
5
  # AA Bulletin Board
6
6
  from aa_bulletin_board.constants import APP_TITLE
7
7
 
8
- __version__ = "2.3.5"
8
+ __version__ = "2.4.0"
9
9
  __title__ = APP_TITLE
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: PACKAGE VERSION\n"
8
8
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
9
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
9
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
10
10
  "PO-Revision-Date: 2024-07-10 14:26+0000\n"
11
11
  "Last-Translator: Dadas Aideron <dadas.aideron@gmail.com>\n"
12
12
  "Language-Team: Czech <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/cs/>\n"
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: PACKAGE VERSION\n"
8
8
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
9
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
9
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
10
10
  "PO-Revision-Date: 2025-04-25 11:24+0000\n"
11
11
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
12
12
  "Language-Team: German <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/de/>\n"
@@ -6,9 +6,9 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: AA Bulletin Board 2.3.5\n"
9
+ "Project-Id-Version: AA Bulletin Board 2.4.0\n"
10
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
11
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
11
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
11
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
11
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
12
12
  "PO-Revision-Date: 2024-12-02 17:40+0000\n"
13
13
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
14
14
  "Language-Team: Spanish <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/es/>\n"
@@ -10,16 +10,16 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: PACKAGE VERSION\n"
12
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
13
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
14
- "PO-Revision-Date: 2025-01-22 06:17+0000\n"
15
- "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
13
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
14
+ "PO-Revision-Date: 2025-05-20 16:24+0000\n"
15
+ "Last-Translator: balbozorre <loic.petiot2002@gmail.com>\n"
16
16
  "Language-Team: French <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/fr/>\n"
17
17
  "Language: fr_FR\n"
18
18
  "MIME-Version: 1.0\n"
19
19
  "Content-Type: text/plain; charset=UTF-8\n"
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=n > 1;\n"
22
- "X-Generator: Weblate 5.9.2\n"
22
+ "X-Generator: Weblate 5.11.4\n"
23
23
 
24
24
  #. Translators: This is the app name and version, which will appear in the Django Backend
25
25
  #: aa_bulletin_board/apps.py:22
@@ -135,11 +135,11 @@ msgstr ""
135
135
 
136
136
  #: aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html:47
137
137
  msgid "Create bulletin"
138
- msgstr ""
138
+ msgstr "Créer un bulletin"
139
139
 
140
140
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/common/bulletin-board-management.html:4
141
141
  msgid "Add bulletin"
142
- msgstr ""
142
+ msgstr "Ajouter un bulletin"
143
143
 
144
144
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:5
145
145
  msgid "Do you want to help translate this app into your language or improve the existing translation?"
@@ -152,26 +152,26 @@ msgstr "Rejoignez notre équipe de traducteurs !"
152
152
  #: aa_bulletin_board/views.py:98
153
153
  #, python-brace-format
154
154
  msgid "Bulletin \"{bulletin__title}\" created."
155
- msgstr ""
155
+ msgstr "Bulletin \"{bulletin__title}\" créé."
156
156
 
157
157
  #: aa_bulletin_board/views.py:141
158
158
  msgid "The bulletin you are looking for does either not exist, or you don't have access to it."
159
- msgstr ""
159
+ msgstr "Le bulletin que vous cherchez n'existe pas, ou vous n'avez pas accès à celui-ci."
160
160
 
161
161
  #: aa_bulletin_board/views.py:168
162
162
  msgid "The bulletin you are trying to edit does not exist."
163
- msgstr ""
163
+ msgstr "Le bulletin que vous essayez de modifier n'existe pas."
164
164
 
165
165
  #: aa_bulletin_board/views.py:195
166
166
  #, python-brace-format
167
167
  msgid "Bulletin \"{bulletin__title}\" updated."
168
- msgstr ""
168
+ msgstr "Bulletin \"{bulletin__title}\" mis à jour."
169
169
 
170
170
  #: aa_bulletin_board/views.py:227
171
171
  #, python-brace-format
172
172
  msgid "Bulletin \"{bulletin.title}\" deleted."
173
- msgstr ""
173
+ msgstr "Bulletin \"{bulletin.title}\" supprimé."
174
174
 
175
175
  #: aa_bulletin_board/views.py:234
176
176
  msgid "The bulletin you are trying to delete does not exist."
177
- msgstr ""
177
+ msgstr "Le bulletin que vous essayez de supprimer n'existe pas."
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: PACKAGE VERSION\n"
9
9
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
10
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
11
11
  "PO-Revision-Date: 2024-12-22 21:15+0000\n"
12
12
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
13
13
  "Language-Team: Italian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/it/>\n"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
11
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
11
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
12
12
  "PO-Revision-Date: 2025-04-12 09:24+0000\n"
13
13
  "Last-Translator: KM Heon <kmheon75@gmail.com>\n"
14
14
  "Language-Team: Japanese <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/ja/>\n"
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: PACKAGE VERSION\n"
12
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
13
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
13
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
14
14
  "PO-Revision-Date: 2025-04-28 07:24+0000\n"
15
15
  "Last-Translator: SiO4 <hohoit0078@gmail.com>\n"
16
16
  "Language-Team: Korean <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/ko/>\n"
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: PACKAGE VERSION\n"
9
9
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
10
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
11
11
  "PO-Revision-Date: 2024-05-10 13:57+0000\n"
12
12
  "Last-Translator: Anonymous <noreply@weblate.org>\n"
13
13
  "Language-Team: Dutch <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/nl/>\n"
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: PACKAGE VERSION\n"
8
8
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
9
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
9
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
10
10
  "PO-Revision-Date: 2024-05-10 13:57+0000\n"
11
11
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
12
12
  "Language-Team: Polish <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/pl/>\n"
@@ -9,7 +9,7 @@ msgid ""
9
9
  msgstr ""
10
10
  "Project-Id-Version: PACKAGE VERSION\n"
11
11
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
12
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
12
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
13
13
  "PO-Revision-Date: 2024-06-07 13:27+0000\n"
14
14
  "Last-Translator: Roycce_ <malyasov.roma@mail.ru>\n"
15
15
  "Language-Team: Russian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/ru/>\n"
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: PACKAGE VERSION\n"
9
9
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
10
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
10
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
11
11
  "PO-Revision-Date: 2024-05-10 13:57+0000\n"
12
12
  "Last-Translator: Anonymous <noreply@weblate.org>\n"
13
13
  "Language-Team: Slovak <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/sk/>\n"
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: PACKAGE VERSION\n"
12
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
13
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
13
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
14
14
  "PO-Revision-Date: 2025-04-10 07:05+0000\n"
15
15
  "Last-Translator: s0k0l -_- <salarysalo@gmail.com>\n"
16
16
  "Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/uk/>\n"
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: PACKAGE VERSION\n"
12
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
13
- "POT-Creation-Date: 2025-05-05 20:14+0200\n"
13
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
14
14
  "PO-Revision-Date: 2024-05-28 16:27+0000\n"
15
15
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
16
16
  "Language-Team: Chinese (Simplified) <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/zh_Hans/>\n"
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "aa_bulletin_board/css/aa-bulletin-board.min.css" %}
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js" %}
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js" %}
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.min.css" %}
@@ -0,0 +1,3 @@
1
+ {% load sri %}
2
+
3
+ {% sri_static "aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.min.js" %}
@@ -1,40 +0,0 @@
1
- """
2
- Helper functions for static integrity calculations
3
- """
4
-
5
- # Standard Library
6
- import os
7
- from pathlib import Path
8
-
9
- # Third Party
10
- from sri import Algorithm, calculate_integrity
11
-
12
- # Alliance Auth
13
- from allianceauth.services.hooks import get_extension_logger
14
-
15
- # Alliance Auth (External Libs)
16
- from app_utils.logging import LoggerAddTag
17
-
18
- # AA Bulletin Board
19
- from aa_bulletin_board import __title__
20
- from aa_bulletin_board.constants import APP_STATIC_DIR
21
-
22
- logger = LoggerAddTag(my_logger=get_extension_logger(__name__), prefix=__title__)
23
-
24
-
25
- def calculate_integrity_hash(relative_file_path: str) -> str:
26
- """
27
- Calculates the integrity hash for a given static file
28
-
29
- :param self:
30
- :type self:
31
- :param relative_file_path: The file path relative to the `{APP_NAME}/{PACKAGE_NAME}/static/{PACKAGE_NAME}` folder
32
- :type relative_file_path: str
33
- :return: The integrity hash
34
- :rtype: str
35
- """
36
-
37
- return calculate_integrity(
38
- path=Path(os.path.join(APP_STATIC_DIR, relative_file_path)),
39
- algorithm=Algorithm.SHA512,
40
- )
@@ -1,3 +0,0 @@
1
- {% load aa_bulletin_board %}
2
-
3
- {% aa_bulletin_board_static "css/aa-bulletin-board.min.css" %}
@@ -1,3 +0,0 @@
1
- {% load aa_bulletin_board %}
2
-
3
- {% aa_bulletin_board_static "javascript/aa-bulletin-board-equal-height.min.js" %}
@@ -1,3 +0,0 @@
1
- {% load aa_bulletin_board %}
2
-
3
- {% aa_bulletin_board_static "javascript/aa-bulletin-board-oembed.min.js" %}
@@ -1,3 +0,0 @@
1
- {% load aa_bulletin_board %}
2
-
3
- {% aa_bulletin_board_static "libs/sumoselect/3.4.9/sumoselect.min.css" %}
@@ -1,3 +0,0 @@
1
- {% load aa_bulletin_board %}
2
-
3
- {% aa_bulletin_board_static 'libs/sumoselect/3.4.9/jquery.sumoselect.min.js' %}
@@ -1,3 +0,0 @@
1
- """
2
- Initialize the template tags
3
- """
@@ -1,88 +0,0 @@
1
- """
2
- Versioned static URLs to break browser caches when changing the app version
3
- """
4
-
5
- # Standard Library
6
- import os
7
-
8
- # Django
9
- from django.template.defaulttags import register
10
- from django.templatetags.static import static
11
- from django.utils.safestring import mark_safe
12
-
13
- # Alliance Auth
14
- from allianceauth.services.hooks import get_extension_logger
15
-
16
- # Alliance Auth (External Libs)
17
- from app_utils.logging import LoggerAddTag
18
-
19
- # AA Bulletin Board
20
- from aa_bulletin_board import __title__, __version__
21
- from aa_bulletin_board.app_settings import debug_enabled
22
- from aa_bulletin_board.constants import PACKAGE_NAME
23
- from aa_bulletin_board.helper.static_files import calculate_integrity_hash
24
-
25
- logger = LoggerAddTag(my_logger=get_extension_logger(__name__), prefix=__title__)
26
-
27
-
28
- @register.simple_tag
29
- def aa_bulletin_board_static(
30
- relative_file_path: str, script_type: str = None
31
- ) -> str | None:
32
- """
33
- Versioned static URL
34
-
35
- :param relative_file_path: The file path relative to the `{APP_NAME}/{PACKAGE_NAME}/static/{PACKAGE_NAME}` folder
36
- :type relative_file_path: str
37
- :param script_type: The script type
38
- :type script_type: str
39
- :return: Versioned static URL
40
- :rtype: str
41
- """
42
-
43
- logger.debug(f"Getting versioned static URL for: {relative_file_path}")
44
-
45
- file_type = os.path.splitext(relative_file_path)[1][1:]
46
-
47
- logger.debug(f"File extension: {file_type}")
48
-
49
- # Only support CSS and JS files
50
- if file_type not in ["css", "js"]:
51
- raise ValueError(f"Unsupported file type: {file_type}")
52
-
53
- static_file_path = os.path.join(PACKAGE_NAME, relative_file_path)
54
- static_url = static(static_file_path)
55
-
56
- # Integrity hash calculation only for non-debug mode
57
- sri_string = (
58
- f' integrity="{calculate_integrity_hash(relative_file_path)}" crossorigin="anonymous"'
59
- if not debug_enabled()
60
- else ""
61
- )
62
-
63
- # Versioned URL for CSS and JS files
64
- # Add version query parameter to break browser caches when changing the app version
65
- # Do not add version query parameter for libs as they are already versioned through their file path
66
- versioned_url = (
67
- static_url
68
- if relative_file_path.startswith("libs/")
69
- else static_url + "?v=" + __version__
70
- )
71
-
72
- return_value = None
73
-
74
- # Return the versioned URL with integrity hash for CSS
75
- if file_type == "css":
76
- return_value = mark_safe(
77
- f'<link rel="stylesheet" href="{versioned_url}"{sri_string}>'
78
- )
79
-
80
- # Return the versioned URL with integrity hash for JS files
81
- if file_type == "js":
82
- js_type = f' type="{script_type}"' if script_type else ""
83
-
84
- return_value = mark_safe(
85
- f'<script{js_type} src="{versioned_url}"{sri_string}></script>'
86
- )
87
-
88
- return return_value
@@ -1,99 +0,0 @@
1
- """
2
- Test the apps' template tags
3
- """
4
-
5
- # Django
6
- from django.template import Context, Template
7
- from django.test import TestCase, override_settings
8
-
9
- # AA Bulletin Board
10
- from aa_bulletin_board import __version__
11
- from aa_bulletin_board.constants import PACKAGE_NAME
12
- from aa_bulletin_board.helper.static_files import calculate_integrity_hash
13
-
14
-
15
- class TestVersionedStatic(TestCase):
16
- """
17
- Test aa_bulletin_board_static template tag
18
- """
19
-
20
- @override_settings(DEBUG=False)
21
- def test_versioned_static_without_debug_enabled(self) -> None:
22
- """
23
- Test versioned static template tag without DEBUG enabled
24
-
25
- :return:
26
- :rtype:
27
- """
28
-
29
- context = Context({"version": __version__})
30
- template_to_render = Template(
31
- template_string=(
32
- "{% load aa_bulletin_board %}"
33
- "{% aa_bulletin_board_static 'css/aa-bulletin-board.min.css' %}"
34
- "{% aa_bulletin_board_static 'javascript/aa-bulletin-board-oembed.min.js' %}"
35
- )
36
- )
37
-
38
- rendered_template = template_to_render.render(context=context)
39
-
40
- expected_static_css_src = f'/static/{PACKAGE_NAME}/css/aa-bulletin-board.min.css?v={context["version"]}'
41
- expected_static_css_src_integrity = calculate_integrity_hash(
42
- "css/aa-bulletin-board.min.css"
43
- )
44
- expected_static_js_src = f'/static/{PACKAGE_NAME}/javascript/aa-bulletin-board-oembed.min.js?v={context["version"]}'
45
- expected_static_js_src_integrity = calculate_integrity_hash(
46
- "javascript/aa-bulletin-board-oembed.min.js"
47
- )
48
-
49
- self.assertIn(member=expected_static_css_src, container=rendered_template)
50
- self.assertIn(
51
- member=expected_static_css_src_integrity, container=rendered_template
52
- )
53
- self.assertIn(member=expected_static_js_src, container=rendered_template)
54
- self.assertIn(
55
- member=expected_static_js_src_integrity, container=rendered_template
56
- )
57
-
58
- @override_settings(DEBUG=True)
59
- def test_versioned_static_with_debug_enabled(self) -> None:
60
- """
61
- Test versioned static template tag with DEBUG enabled
62
-
63
- :return:
64
- :rtype:
65
- """
66
-
67
- context = Context({"version": __version__})
68
- template_to_render = Template(
69
- template_string=(
70
- "{% load aa_bulletin_board %}"
71
- "{% aa_bulletin_board_static 'css/aa-bulletin-board.min.css' %}"
72
- )
73
- )
74
-
75
- rendered_template = template_to_render.render(context=context)
76
-
77
- expected_static_css_src = f'/static/{PACKAGE_NAME}/css/aa-bulletin-board.min.css?v={context["version"]}'
78
-
79
- self.assertIn(member=expected_static_css_src, container=rendered_template)
80
- self.assertNotIn(member="integrity=", container=rendered_template)
81
-
82
- def test_invalid_file_type(self) -> None:
83
- """
84
- Test should raise a ValueError for an invalid file type
85
-
86
- :return:
87
- :rtype:
88
- """
89
-
90
- context = Context({"version": __version__})
91
- template_to_render = Template(
92
- template_string=(
93
- "{% load aa_bulletin_board %}"
94
- "{% aa_bulletin_board_static 'invalid/invalid.txt' %}"
95
- )
96
- )
97
-
98
- with self.assertRaises(ValueError):
99
- template_to_render.render(context=context)