aa-bulletin-board 2.3.4__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 (102) hide show
  1. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/PKG-INFO +3 -11
  2. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/README.md +2 -10
  3. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/__init__.py +1 -1
  4. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po +1 -1
  5. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/de/LC_MESSAGES/django.mo +0 -0
  6. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/de/LC_MESSAGES/django.po +4 -4
  7. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/django.pot +2 -2
  8. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/es/LC_MESSAGES/django.po +1 -1
  9. aa_bulletin_board-2.4.0/aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  10. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +12 -12
  11. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +1 -1
  12. aa_bulletin_board-2.4.0/aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo +0 -0
  13. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +7 -6
  14. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  15. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +6 -5
  16. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po +1 -1
  17. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po +1 -1
  18. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +1 -1
  19. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/sk/LC_MESSAGES/django.po +1 -1
  20. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo +0 -0
  21. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +5 -4
  22. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  23. aa_bulletin_board-2.4.0/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.js +29 -0
  24. aa_bulletin_board-2.4.0/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js +2 -0
  25. aa_bulletin_board-2.4.0/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js.map +1 -0
  26. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.js +7 -14
  27. aa_bulletin_board-2.4.0/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js +2 -0
  28. aa_bulletin_board-2.4.0/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js.map +1 -0
  29. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +3 -0
  30. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +3 -0
  31. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +3 -0
  32. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +3 -0
  33. aa_bulletin_board-2.4.0/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +3 -0
  34. aa_bulletin_board-2.3.4/aa_bulletin_board/helper/static_files.py +0 -40
  35. aa_bulletin_board-2.3.4/aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  36. aa_bulletin_board-2.3.4/aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo +0 -0
  37. aa_bulletin_board-2.3.4/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.js +0 -32
  38. aa_bulletin_board-2.3.4/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js +0 -2
  39. aa_bulletin_board-2.3.4/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js.map +0 -1
  40. aa_bulletin_board-2.3.4/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js +0 -2
  41. aa_bulletin_board-2.3.4/aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js.map +0 -1
  42. aa_bulletin_board-2.3.4/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +0 -3
  43. aa_bulletin_board-2.3.4/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +0 -3
  44. aa_bulletin_board-2.3.4/aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +0 -3
  45. aa_bulletin_board-2.3.4/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +0 -3
  46. aa_bulletin_board-2.3.4/aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +0 -3
  47. aa_bulletin_board-2.3.4/aa_bulletin_board/templatetags/__init__.py +0 -3
  48. aa_bulletin_board-2.3.4/aa_bulletin_board/templatetags/aa_bulletin_board.py +0 -88
  49. aa_bulletin_board-2.3.4/aa_bulletin_board/tests/test_templatetags.py +0 -99
  50. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/.gitignore +0 -0
  51. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/LICENSE +0 -0
  52. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/app_settings.py +0 -0
  53. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/apps.py +0 -0
  54. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/auth_hooks.py +0 -0
  55. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/constants.py +0 -0
  56. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/forms.py +0 -0
  57. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/helper/__init__.py +0 -0
  58. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/helper/string.py +0 -0
  59. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  60. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/es/LC_MESSAGES/django.mo +0 -0
  61. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  62. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  63. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  64. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo +0 -0
  65. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/sk/LC_MESSAGES/django.mo +0 -0
  66. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  67. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/managers.py +0 -0
  68. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0001_initial.py +0 -0
  69. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0002_alter_bulletin_slug.py +0 -0
  70. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0003_group_restrictions.py +0 -0
  71. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0004_model_translation.py +0 -0
  72. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0005_alter_general_options.py +0 -0
  73. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/0006_switch_to_ckeditor_5.py +0 -0
  74. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/migrations/__init__.py +0 -0
  75. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/models.py +0 -0
  76. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.css +0 -0
  77. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css +0 -0
  78. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css.map +0 -0
  79. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/README.md +0 -0
  80. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.js +0 -0
  81. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.min.js +0 -0
  82. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.css +0 -0
  83. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.min.css +0 -0
  84. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/base.html +0 -0
  85. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/bulletin.html +0 -0
  86. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html +0 -0
  87. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html +0 -0
  88. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/dashboard.html +0 -0
  89. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html +0 -0
  90. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/partials/common/bulletin-board-management.html +0 -0
  91. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html +0 -0
  92. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/__init__.py +0 -0
  93. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_access.py +0 -0
  94. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_auth_hooks.py +0 -0
  95. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_bulletins.py +0 -0
  96. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_forms.py +0 -0
  97. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_settings.py +0 -0
  98. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/test_user_interface.py +0 -0
  99. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/tests/utils.py +0 -0
  100. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/urls.py +0 -0
  101. {aa_bulletin_board-2.3.4 → aa_bulletin_board-2.4.0}/aa_bulletin_board/views.py +0 -0
  102. {aa_bulletin_board-2.3.4 → 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.4
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
@@ -764,17 +764,9 @@ these kinds of changes. For your own sanity, and mine :-)
764
764
 
765
765
  ## Installation<a name="installation"></a>
766
766
 
767
- > [!NOTE]
767
+ > [!IMPORTANT]
768
768
  >
769
- > **AA Bulletin Board >=2.0.0 needs at least Alliance Auth v4.0.0!**
770
- >
771
- > Please make sure to update your Alliance Auth instance _before_ you install this
772
- > module or update to the latest version, otherwise an update to Alliance Auth will
773
- > be pulled in unsupervised.
774
- >
775
- > The last version compatible with Alliance Auth v3 is `1.13.2`.
776
-
777
- **Important**: Please make sure you meet all preconditions before you proceed:
769
+ > Please make sure you meet all preconditions before you proceed.
778
770
 
779
771
  - AA Bulletin Board is a plugin for Alliance Auth. If you don't have Alliance Auth
780
772
  running already, please install it first before proceeding. (see the official
@@ -52,17 +52,9 @@ these kinds of changes. For your own sanity, and mine :-)
52
52
 
53
53
  ## Installation<a name="installation"></a>
54
54
 
55
- > [!NOTE]
55
+ > [!IMPORTANT]
56
56
  >
57
- > **AA Bulletin Board >=2.0.0 needs at least Alliance Auth v4.0.0!**
58
- >
59
- > Please make sure to update your Alliance Auth instance _before_ you install this
60
- > module or update to the latest version, otherwise an update to Alliance Auth will
61
- > be pulled in unsupervised.
62
- >
63
- > The last version compatible with Alliance Auth v3 is `1.13.2`.
64
-
65
- **Important**: Please make sure you meet all preconditions before you proceed:
57
+ > Please make sure you meet all preconditions before you proceed.
66
58
 
67
59
  - AA Bulletin Board is a plugin for Alliance Auth. If you don't have Alliance Auth
68
60
  running already, please install it first before proceeding. (see the official
@@ -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.4"
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-04-09 10:02+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"
@@ -1,13 +1,13 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
2
  # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
- # "H. Peter Pfeufer" <info@ppfeufer.de>, 2023, 2024.
4
+ # "H. Peter Pfeufer" <info@ppfeufer.de>, 2023, 2024, 2025.
5
5
  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-04-09 10:02+0200\n"
10
- "PO-Revision-Date: 2024-05-10 13:57+0000\n"
9
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
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"
13
13
  "Language: de\n"
@@ -15,7 +15,7 @@ msgstr ""
15
15
  "Content-Type: text/plain; charset=UTF-8\n"
16
16
  "Content-Transfer-Encoding: 8bit\n"
17
17
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
18
- "X-Generator: Weblate 5.5.3\n"
18
+ "X-Generator: Weblate 5.11\n"
19
19
 
20
20
  #. Translators: This is the app name and version, which will appear in the Django Backend
21
21
  #: aa_bulletin_board/apps.py:22
@@ -6,9 +6,9 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: AA Bulletin Board 2.3.4\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-04-09 10:02+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-04-09 10:02+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-04-09 10:02+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-04-09 10:02+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"
@@ -3,20 +3,21 @@
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
4
  # Xrandier <xrandier@gmail.com>, 2024.
5
5
  # Anata_no_Usiro <yt23542354m@gmail.com>, 2024.
6
+ # KM Heon <kmheon75@gmail.com>, 2025.
6
7
  msgid ""
7
8
  msgstr ""
8
9
  "Project-Id-Version: PACKAGE VERSION\n"
9
10
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
10
- "POT-Creation-Date: 2025-04-09 10:02+0200\n"
11
- "PO-Revision-Date: 2024-08-05 10:10+0000\n"
12
- "Last-Translator: Anata_no_Usiro <yt23542354m@gmail.com>\n"
11
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
12
+ "PO-Revision-Date: 2025-04-12 09:24+0000\n"
13
+ "Last-Translator: KM Heon <kmheon75@gmail.com>\n"
13
14
  "Language-Team: Japanese <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/ja/>\n"
14
15
  "Language: ja\n"
15
16
  "MIME-Version: 1.0\n"
16
17
  "Content-Type: text/plain; charset=UTF-8\n"
17
18
  "Content-Transfer-Encoding: 8bit\n"
18
19
  "Plural-Forms: nplurals=1; plural=0;\n"
19
- "X-Generator: Weblate 5.6.2\n"
20
+ "X-Generator: Weblate 5.10.4\n"
20
21
 
21
22
  #. Translators: This is the app name and version, which will appear in the Django Backend
22
23
  #: aa_bulletin_board/apps.py:22
@@ -76,11 +77,11 @@ msgstr "グループの制限"
76
77
 
77
78
  #: aa_bulletin_board/models.py:123
78
79
  msgid "Bulletin"
79
- msgstr ""
80
+ msgstr "速報"
80
81
 
81
82
  #: aa_bulletin_board/models.py:124
82
83
  msgid "Bulletins"
83
- msgstr ""
84
+ msgstr "速報"
84
85
 
85
86
  #: aa_bulletin_board/templates/aa_bulletin_board/bulletin.html:16
86
87
  #: aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html:34
@@ -5,20 +5,21 @@
5
5
  # Peter Pfeufer <info@ppfeufer.de>, 2023, 2024.
6
6
  # Mind of the Raven <okanieva@gmail.com>, 2024.
7
7
  # Rodpold Shard <rodpold@gmail.com>, 2024.
8
+ # SiO4 <hohoit0078@gmail.com>, 2025.
8
9
  msgid ""
9
10
  msgstr ""
10
11
  "Project-Id-Version: PACKAGE VERSION\n"
11
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
12
- "POT-Creation-Date: 2025-04-09 10:02+0200\n"
13
- "PO-Revision-Date: 2024-05-10 13:57+0000\n"
14
- "Last-Translator: Rodpold Shard <rodpold@gmail.com>\n"
13
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
14
+ "PO-Revision-Date: 2025-04-28 07:24+0000\n"
15
+ "Last-Translator: SiO4 <hohoit0078@gmail.com>\n"
15
16
  "Language-Team: Korean <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/ko/>\n"
16
17
  "Language: ko_KR\n"
17
18
  "MIME-Version: 1.0\n"
18
19
  "Content-Type: text/plain; charset=UTF-8\n"
19
20
  "Content-Transfer-Encoding: 8bit\n"
20
21
  "Plural-Forms: nplurals=1; plural=0;\n"
21
- "X-Generator: Weblate 5.5.3\n"
22
+ "X-Generator: Weblate 5.11.1\n"
22
23
 
23
24
  #. Translators: This is the app name and version, which will appear in the Django Backend
24
25
  #: aa_bulletin_board/apps.py:22
@@ -153,7 +154,7 @@ msgstr "이 앱을 번역하거나 기존 번역을 개선하고 싶으신가요
153
154
 
154
155
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:8
155
156
  msgid "Join our team of translators!"
156
- msgstr "번역팀에 참여하세요!"
157
+ msgstr "번역가 팀에 참여하세요!"
157
158
 
158
159
  #: aa_bulletin_board/views.py:98
159
160
  #, python-brace-format
@@ -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-04-09 10:02+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-04-09 10:02+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-04-09 10:02+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-04-09 10:02+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"
@@ -5,13 +5,14 @@
5
5
  # "Andrii M." <elfleg0las88@gmail.com>, 2023, 2024.
6
6
  # Kristof <kristof@teh.ninja>, 2023, 2024.
7
7
  # M <skrypets@gmail.com>, 2025.
8
+ # s0k0l -_- <salarysalo@gmail.com>, 2025.
8
9
  msgid ""
9
10
  msgstr ""
10
11
  "Project-Id-Version: PACKAGE VERSION\n"
11
12
  "Report-Msgid-Bugs-To: https://github.com/ppfeufer/aa-bulletin-board/issues\n"
12
- "POT-Creation-Date: 2025-04-09 10:02+0200\n"
13
- "PO-Revision-Date: 2025-03-23 13:24+0000\n"
14
- "Last-Translator: M <skrypets@gmail.com>\n"
13
+ "POT-Creation-Date: 2025-06-03 09:55+0200\n"
14
+ "PO-Revision-Date: 2025-04-10 07:05+0000\n"
15
+ "Last-Translator: s0k0l -_- <salarysalo@gmail.com>\n"
15
16
  "Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/uk/>\n"
16
17
  "Language: uk\n"
17
18
  "MIME-Version: 1.0\n"
@@ -61,7 +62,7 @@ msgstr "Вміст"
61
62
  #. Translators: This is the date and time the bulletin has been created
62
63
  #: aa_bulletin_board/models.py:91
63
64
  msgid "Created"
64
- msgstr "Створено"
65
+ msgstr "Створений"
65
66
 
66
67
  #. Translators: This is the date and time the bulletin has been updated
67
68
  #: aa_bulletin_board/models.py:97
@@ -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-04-09 10:02+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,29 @@
1
+ $(document).ready(() => {
2
+ 'use strict';
3
+
4
+ const resizeBulletinCard = () => {
5
+ $('.cards-equal-height').each((_, elementEqualHeight) => {
6
+ let highestBox = 0;
7
+ const excerpts = $('.card-bulletin-excerpt .card', elementEqualHeight);
8
+
9
+ excerpts.each((_, elementExcerpt) => {
10
+ highestBox = Math.max(highestBox, $(elementExcerpt).height());
11
+ });
12
+
13
+ excerpts.height(highestBox);
14
+ });
15
+ };
16
+
17
+ resizeBulletinCard();
18
+
19
+ $(window).resize(() => {
20
+ $('.card-bulletin-excerpt .card').css({'height': ''});
21
+
22
+ resizeBulletinCard();
23
+ });
24
+
25
+ $('.aa-bulletin-board-marker-group-restrictions').tooltip({
26
+ placement: 'bottom',
27
+ html: true
28
+ });
29
+ });
@@ -0,0 +1,2 @@
1
+ $(document).ready(()=>{const e=()=>{$(".cards-equal-height").each((e,t)=>{let a=0;const c=$(".card-bulletin-excerpt .card",t);c.each((e,t)=>{a=Math.max(a,$(t).height())}),c.height(a)})};e(),$(window).resize(()=>{$(".card-bulletin-excerpt .card").css({height:""}),e()}),$(".aa-bulletin-board-marker-group-restrictions").tooltip({placement:"bottom",html:!0})});
2
+ //# sourceMappingURL=aa-bulletin-board-equal-height.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["aa-bulletin-board-equal-height.js"],"names":["$","document","ready","resizeBulletinCard","each","_","elementEqualHeight","let","highestBox","excerpts","elementExcerpt","Math","max","height","window","resize","css","tooltip","placement","html"],"mappings":"AAAAA,EAAEC,QAAQ,EAAEC,MAAM,KAGd,MAAMC,EAAqB,KACvBH,EAAE,qBAAqB,EAAEI,KAAK,CAACC,EAAGC,KAC9BC,IAAIC,EAAa,EACjB,MAAMC,EAAWT,EAAE,+BAAgCM,CAAkB,EAErEG,EAASL,KAAK,CAACC,EAAGK,KACdF,EAAaG,KAAKC,IAAIJ,EAAYR,EAAEU,CAAc,EAAEG,OAAO,CAAC,CAChE,CAAC,EAEDJ,EAASI,OAAOL,CAAU,CAC9B,CAAC,CACL,EAEAL,EAAmB,EAEnBH,EAAEc,MAAM,EAAEC,OAAO,KACbf,EAAE,8BAA8B,EAAEgB,IAAI,CAACH,OAAU,EAAE,CAAC,EAEpDV,EAAmB,CACvB,CAAC,EAEDH,EAAE,8CAA8C,EAAEiB,QAAQ,CACtDC,UAAW,SACXC,KAAM,CAAA,CACV,CAAC,CACL,CAAC"}
@@ -11,31 +11,24 @@ $(document).ready(() => {
11
11
  * @returns {`<div class="oembed-video youtube-oembed-video"><iframe src="${string}" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>`}
12
12
  */
13
13
  const youtubeOembedToIframe = (url) => {
14
- let videoId = url.split('v=')[1];
15
- const ampersandPosition = videoId.indexOf('&');
16
- const embedUrl = 'https://www.youtube-nocookie.com/embed/';
14
+ const videoId = new URLSearchParams(new URL(url).search).get('v'); // jshint ignore:line
15
+ const videoUrl = `https://www.youtube-nocookie.com/embed/${videoId}`;
16
+ const divClasses = 'oembed-video youtube-oembed-video';
17
+ const iframeAllow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
17
18
 
18
- if (ampersandPosition !== -1) {
19
- videoId = videoId.substring(0, ampersandPosition);
20
- }
21
-
22
- const videoUrl = embedUrl + videoId;
23
-
24
- return `<div class="oembed-video youtube-oembed-video"><iframe src="${videoUrl}" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>`;
19
+ return `<div class="${divClasses}"><iframe src="${videoUrl}" allow="${iframeAllow}" allowfullscreen></iframe></div>`;
25
20
  };
26
21
 
27
-
28
22
  /**
29
23
  * Look for oembed elements and replace them with iframes
30
24
  */
31
25
  const checkForOembed = () => {
32
26
  // Find all oembed elements and loop through them
33
- $('.ck-content figure.media oembed').each((index, element) => {
27
+ $('.ck-content figure.media oembed').filter((_, element) => {
28
+ // Check if the source is a YouTube video
34
29
  const source = $(element).attr('url');
35
30
 
36
- // Check if the source is a YouTube video
37
31
  if (source.includes('youtube.com/watch')) {
38
- // Replace the oembed element with an iframe
39
32
  $(element).replaceWith(youtubeOembedToIframe(source));
40
33
  }
41
34
  });
@@ -0,0 +1,2 @@
1
+ $(document).ready(()=>{const t=e=>{const o=new URLSearchParams(new URL(e).search).get("v"),c=`https://www.youtube-nocookie.com/embed/${o}`,t="oembed-video youtube-oembed-video",r="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture";return`<div class="${t}"><iframe src="${c}" allow="${r}" allowfullscreen></iframe></div>`},e=()=>{$(".ck-content figure.media oembed").filter((e,o)=>{const c=$(o).attr("url");c.includes("youtube.com/watch")&&$(o).replaceWith(t(c))})};e()});
2
+ //# sourceMappingURL=aa-bulletin-board-oembed.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["aa-bulletin-board-oembed.js"],"names":["$","document","ready","youtubeOembedToIframe","videoId","URLSearchParams","URL","url","search","get","videoUrl","divClasses","iframeAllow","checkForOembed","filter","_","element","source","attr","includes","replaceWith"],"mappings":"AAAAA,EAAEC,QAAQ,EAAEC,MAAM,KAYd,MAAMC,EAAwB,IAC1B,MAAMC,EAAU,IAAIC,gBAAgB,IAAIC,IAAIC,CAAG,EAAEC,MAAM,EAAEC,IAAI,GAAG,EAC1DC,4CAAqDN,IACrDO,EAAa,oCACbC,EAAc,0EAEpB,qBAAsBD,mBAA4BD,aAAoBE,oCAC1E,EAKMC,EAAiB,KAEnBb,EAAE,iCAAiC,EAAEc,OAAO,CAACC,EAAGC,KAE5C,MAAMC,EAASjB,EAAEgB,CAAO,EAAEE,KAAK,KAAK,EAEhCD,EAAOE,SAAS,mBAAmB,GACnCnB,EAAEgB,CAAO,EAAEI,YAAYjB,EAAsBc,CAAM,CAAC,CAE5D,CAAC,CACL,EAGAJ,EAAe,CACnB,CAAC"}
@@ -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,32 +0,0 @@
1
- $(document).ready(() => {
2
- 'use strict';
3
-
4
- const resizeBulletinCard = () => {
5
- let highestBox = 0;
6
-
7
- $('.cards-equal-height').each((indexEqualHeight, elementEqualHeight) => {
8
- $('.card-bulletin-excerpt', elementEqualHeight).each((indexExcerpt, elementExcerpt) => {
9
- const currentBulletinHeight = $(elementExcerpt).height();
10
-
11
- if (currentBulletinHeight > highestBox) {
12
- highestBox = currentBulletinHeight;
13
- }
14
- });
15
-
16
- $('.card-bulletin-excerpt', elementEqualHeight).height(highestBox);
17
- });
18
- };
19
-
20
- resizeBulletinCard();
21
-
22
- $(window).resize(() => {
23
- $('.card-bulletin-excerpt').css({'height': ''});
24
-
25
- resizeBulletinCard();
26
- });
27
-
28
- $('.aa-bulletin-board-marker-group-restrictions').tooltip({
29
- placement: 'bottom',
30
- html: true
31
- });
32
- });
@@ -1,2 +0,0 @@
1
- $(document).ready(()=>{"use strict";const e=()=>{let r=0;$(".cards-equal-height").each((e,t)=>{$(".card-bulletin-excerpt",t).each((e,t)=>{const c=$(t).height();c>r&&(r=c)}),$(".card-bulletin-excerpt",t).height(r)})};e(),$(window).resize(()=>{$(".card-bulletin-excerpt").css({height:""}),e()}),$(".aa-bulletin-board-marker-group-restrictions").tooltip({placement:"bottom",html:!0})});
2
- //# sourceMappingURL=aa-bulletin-board-equal-height.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["aa-bulletin-board-equal-height.js"],"names":["$","document","ready","resizeBulletinCard","let","highestBox","each","indexEqualHeight","elementEqualHeight","indexExcerpt","elementExcerpt","currentBulletinHeight","height","window","resize","css","tooltip","placement","html"],"mappings":"AAAAA,EAAEC,QAAQ,EAAEC,MAAM,KACd,aAEA,MAAMC,EAAqB,KACvBC,IAAIC,EAAa,EAEjBL,EAAE,qBAAqB,EAAEM,KAAK,CAACC,EAAkBC,KAC7CR,EAAE,yBAA0BQ,CAAkB,EAAEF,KAAK,CAACG,EAAcC,KAChE,MAAMC,EAAwBX,EAAEU,CAAc,EAAEE,OAAO,EAEnDD,EAAwBN,IACxBA,EAAaM,EAErB,CAAC,EAEDX,EAAE,yBAA0BQ,CAAkB,EAAEI,OAAOP,CAAU,CACrE,CAAC,CACL,EAEAF,EAAmB,EAEnBH,EAAEa,MAAM,EAAEC,OAAO,KACbd,EAAE,wBAAwB,EAAEe,IAAI,CAACH,OAAU,EAAE,CAAC,EAE9CT,EAAmB,CACvB,CAAC,EAEDH,EAAE,8CAA8C,EAAEgB,QAAQ,CACtDC,UAAW,SACXC,KAAM,CAAA,CACV,CAAC,CACL,CAAC"}
@@ -1,2 +0,0 @@
1
- $(document).ready(()=>{"use strict";const c=e=>{let t=e.split("v=")[1];const o=t.indexOf("&"),c="https://www.youtube-nocookie.com/embed/",i=(-1!==o&&(t=t.substring(0,o)),c+t);return`<div class="oembed-video youtube-oembed-video"><iframe src="${i}" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>`},e=()=>{$(".ck-content figure.media oembed").each((e,t)=>{const o=$(t).attr("url");o.includes("youtube.com/watch")&&$(t).replaceWith(c(o))})};e()});
2
- //# sourceMappingURL=aa-bulletin-board-oembed.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["aa-bulletin-board-oembed.js"],"names":["$","document","ready","youtubeOembedToIframe","let","videoId","url","split","ampersandPosition","indexOf","embedUrl","videoUrl","substring","checkForOembed","each","index","element","source","attr","includes","replaceWith"],"mappings":"AAAAA,EAAEC,QAAQ,EAAEC,MAAM,KACd,aAWA,MAAMC,EAAwB,IAC1BC,IAAIC,EAAUC,EAAIC,MAAM,IAAI,EAAE,GAC9B,MAAMC,EAAoBH,EAAQI,QAAQ,GAAG,EACvCC,EAAW,0CAMXC,GAJoB,CAAC,IAAvBH,IACAH,EAAUA,EAAQO,UAAU,EAAGJ,CAAiB,GAGnCE,EAAWL,GAE5B,qEAAsEM,oHAC1E,EAMME,EAAiB,KAEnBb,EAAE,iCAAiC,EAAEc,KAAK,CAACC,EAAOC,KAC9C,MAAMC,EAASjB,EAAEgB,CAAO,EAAEE,KAAK,KAAK,EAGhCD,EAAOE,SAAS,mBAAmB,GAEnCnB,EAAEgB,CAAO,EAAEI,YAAYjB,EAAsBc,CAAM,CAAC,CAE5D,CAAC,CACL,EAGAJ,EAAe,CACnB,CAAC"}
@@ -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)