aa-bulletin-board 2.3.4__py3-none-any.whl → 2.4.0__py3-none-any.whl

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 (39) hide show
  1. aa_bulletin_board/__init__.py +1 -1
  2. aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po +1 -1
  3. aa_bulletin_board/locale/de/LC_MESSAGES/django.mo +0 -0
  4. aa_bulletin_board/locale/de/LC_MESSAGES/django.po +4 -4
  5. aa_bulletin_board/locale/django.pot +2 -2
  6. aa_bulletin_board/locale/es/LC_MESSAGES/django.po +1 -1
  7. aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  8. aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +12 -12
  9. aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +1 -1
  10. aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo +0 -0
  11. aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +7 -6
  12. aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  13. aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +6 -5
  14. aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po +1 -1
  15. aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po +1 -1
  16. aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +1 -1
  17. aa_bulletin_board/locale/sk/LC_MESSAGES/django.po +1 -1
  18. aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo +0 -0
  19. aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +5 -4
  20. aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  21. aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.js +7 -10
  22. aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js +1 -1
  23. aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js.map +1 -1
  24. aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.js +7 -14
  25. aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js +1 -1
  26. aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js.map +1 -1
  27. aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +2 -2
  28. aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +2 -2
  29. aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +2 -2
  30. aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +2 -2
  31. aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +2 -2
  32. {aa_bulletin_board-2.3.4.dist-info → aa_bulletin_board-2.4.0.dist-info}/METADATA +3 -11
  33. {aa_bulletin_board-2.3.4.dist-info → aa_bulletin_board-2.4.0.dist-info}/RECORD +35 -39
  34. aa_bulletin_board/helper/static_files.py +0 -40
  35. aa_bulletin_board/templatetags/__init__.py +0 -3
  36. aa_bulletin_board/templatetags/aa_bulletin_board.py +0 -88
  37. aa_bulletin_board/tests/test_templatetags.py +0 -99
  38. {aa_bulletin_board-2.3.4.dist-info → aa_bulletin_board-2.4.0.dist-info}/WHEEL +0 -0
  39. {aa_bulletin_board-2.3.4.dist-info → aa_bulletin_board-2.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -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"
@@ -2,25 +2,22 @@ $(document).ready(() => {
2
2
  'use strict';
3
3
 
4
4
  const resizeBulletinCard = () => {
5
- let highestBox = 0;
5
+ $('.cards-equal-height').each((_, elementEqualHeight) => {
6
+ let highestBox = 0;
7
+ const excerpts = $('.card-bulletin-excerpt .card', elementEqualHeight);
6
8
 
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
- }
9
+ excerpts.each((_, elementExcerpt) => {
10
+ highestBox = Math.max(highestBox, $(elementExcerpt).height());
14
11
  });
15
12
 
16
- $('.card-bulletin-excerpt', elementEqualHeight).height(highestBox);
13
+ excerpts.height(highestBox);
17
14
  });
18
15
  };
19
16
 
20
17
  resizeBulletinCard();
21
18
 
22
19
  $(window).resize(() => {
23
- $('.card-bulletin-excerpt').css({'height': ''});
20
+ $('.card-bulletin-excerpt .card').css({'height': ''});
24
21
 
25
22
  resizeBulletinCard();
26
23
  });
@@ -1,2 +1,2 @@
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})});
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
2
  //# sourceMappingURL=aa-bulletin-board-equal-height.min.js.map
@@ -1 +1 @@
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
+ {"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
  });
@@ -1,2 +1,2 @@
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()});
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
2
  //# sourceMappingURL=aa-bulletin-board-oembed.min.js.map
@@ -1 +1 @@
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
+ {"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"}
@@ -1,3 +1,3 @@
1
- {% load aa_bulletin_board %}
1
+ {% load sri %}
2
2
 
3
- {% aa_bulletin_board_static "css/aa-bulletin-board.min.css" %}
3
+ {% sri_static "aa_bulletin_board/css/aa-bulletin-board.min.css" %}
@@ -1,3 +1,3 @@
1
- {% load aa_bulletin_board %}
1
+ {% load sri %}
2
2
 
3
- {% aa_bulletin_board_static "javascript/aa-bulletin-board-equal-height.min.js" %}
3
+ {% sri_static "aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js" %}
@@ -1,3 +1,3 @@
1
- {% load aa_bulletin_board %}
1
+ {% load sri %}
2
2
 
3
- {% aa_bulletin_board_static "javascript/aa-bulletin-board-oembed.min.js" %}
3
+ {% sri_static "aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js" %}
@@ -1,3 +1,3 @@
1
- {% load aa_bulletin_board %}
1
+ {% load sri %}
2
2
 
3
- {% aa_bulletin_board_static "libs/sumoselect/3.4.9/sumoselect.min.css" %}
3
+ {% sri_static "aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.min.css" %}
@@ -1,3 +1,3 @@
1
- {% load aa_bulletin_board %}
1
+ {% load sri %}
2
2
 
3
- {% aa_bulletin_board_static 'libs/sumoselect/3.4.9/jquery.sumoselect.min.js' %}
3
+ {% sri_static "aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.min.js" %}
@@ -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
@@ -1,4 +1,4 @@
1
- aa_bulletin_board/__init__.py,sha256=aWtCYDwQsVL3irR2utkAEIN7UuDiajTb0D3KtXzWDRs,133
1
+ aa_bulletin_board/__init__.py,sha256=ZnCr9_Qam_j36xTM0QpnAA7806wcnT7aGrcDmYwXdME,133
2
2
  aa_bulletin_board/app_settings.py,sha256=59zkVfW3JHj4kfovIFZYt3kWdXqDmBSF4kaIN0W6m40,244
3
3
  aa_bulletin_board/apps.py,sha256=RzL8kLrLzWMC3Q2VBAI8snXRTehqZ8TKtNozdrZe20A,513
4
4
  aa_bulletin_board/auth_hooks.py,sha256=F-5_gP7HI5RzwlF9GqI_pJTyOtq-V-ZhZLSpjpyQSe4,1456
@@ -9,35 +9,34 @@ aa_bulletin_board/models.py,sha256=gC3PODFHWfC_2ljGppE5CBNPIrg0xIhp4G4InU8JL-g,3
9
9
  aa_bulletin_board/urls.py,sha256=giE7z-t8zpC3mPzPYblMLrkSTn5v7ad4NoJsSk-Jsfg,595
10
10
  aa_bulletin_board/views.py,sha256=Eo5UHFMgbt1fuoh02gUKot58SG4d60XEfQWI1uJhlc8,6531
11
11
  aa_bulletin_board/helper/__init__.py,sha256=Xdjx16QiK1MmVpJ2Je074ddMWzhnyRX7omuxPomMaow,51
12
- aa_bulletin_board/helper/static_files.py,sha256=TVl9_3HLZ2umDejA79ahxGtk112nWojY4AUa6Mb30Is,1045
13
12
  aa_bulletin_board/helper/string.py,sha256=TzRyxjHH7EPqCbd2-L_vz5L6CyrfS4SKQxUeEm0u2aQ,427
14
- aa_bulletin_board/locale/django.pot,sha256=QMgJpLh6w5vwJ2L82TX7ESyDKXTzT2LsNkvePOqyfxE,4909
13
+ aa_bulletin_board/locale/django.pot,sha256=MvKEeJ1ZUTGHXenyW-mjv-mkIzPQOCh4Mn8FOGQi_Z4,4909
15
14
  aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.mo,sha256=ZhKB7486VzGz4lS72jucN0JWc3TPzADIo7UuN2sf5S8,3462
16
- aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po,sha256=GEq7RZ0DZ5oRSge_mdMRSasA5fz8sNm3Cr0UF-dRcEg,6241
17
- aa_bulletin_board/locale/de/LC_MESSAGES/django.mo,sha256=m0YvI06FxR60jNRQDoy7_k-Yl1thl2VAoOqKoDeMdNg,3404
18
- aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=7SXqX3ipL7o0N5kvigh6lBhBMBV6fnhPS0es93aN194,6146
15
+ aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po,sha256=vJJR9kXpGcbCV78a_mINKB7silb7kQ3kRhkb0yDCRRc,6241
16
+ aa_bulletin_board/locale/de/LC_MESSAGES/django.mo,sha256=jrkJqiZUg4ibJXg3d82TsD-NQ7jhEV8N4lz3o-KSMZ0,3403
17
+ aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=YohfvAN7KIMuJJqJfPVAfJpGZlCSaDhfLlrOoGWalYw,6151
19
18
  aa_bulletin_board/locale/es/LC_MESSAGES/django.mo,sha256=kTDcOFWmMZ6EMuAm0MPLdyj4S57f_DhNPvCeEjCh40s,2665
20
- aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=0q5S2utpCocoFWzxtxysmJpfJDlaz7rCjsEPZtnQXEE,6418
21
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo,sha256=lCwF9Wa3wq6WqSAkrbBpDddAVEh2txGr_bPId74A3p0,1861
22
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=3pe-4K8FqN2deXiPwu8WzPe8VhyeYivtlVxULi0ZFeA,5961
19
+ aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=ODueG5IjlDc12lTogzHBwUGVv7o4RXkWblLPWmwHqG4,6418
20
+ aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo,sha256=tD58dua8i_IrWpaSZDFtl5z1SH-thx-hHTU2M1CWbxc,2709
21
+ aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=LPMQVaKEXLScd1NLkUO5rmbl-kgs0AcrIoV8IFdz6pc,6317
23
22
  aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo,sha256=7eI69SSNv6OgS0bso_Mrw3DtapHmJXEyu_mqd7ke0dg,657
24
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=kE1BzPusOmiXxKe1bUmwUdj_xhNh4ZPyz8GoU8wv85s,5080
25
- aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo,sha256=W8hWAIEQSTj1iJqMJFLjlp2Roeljr8dluVVSEHBw0bw,1503
26
- aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=K4ezv6eG39gVs0RnegoR724HIpfTsb5Vpj7FXDu6XNE,5430
27
- aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo,sha256=mTVxpRnoj-ErNxF0Y5gdbKVqNT0Za4p5DW0tBs2tURw,2569
28
- aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=Js4s7s3qB_Io2cmRf1KqzD4OkOBwXPnYDabRbaugQGo,6529
23
+ aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=yLHH9In6R_Buur4UzKJw8-n_LVovdld8mPPZLbb2xI0,5080
24
+ aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo,sha256=vST88RQBRV30yYDul0KGcy0MyQv1blF8uPpR2ByfUp8,1593
25
+ aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=ceGNM485KgpqcbTusDQ2YgtAbo_lhmUDL686LGTPUVA,5471
26
+ aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo,sha256=WZWOtIgYLkkjb4mvjPXyiXagI_w3eWtUwVcvYl3HVLU,2574
27
+ aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=i9Udde4y-UI5J4HZI7GWd-F7niOZRpcZuvlLXCHI1X0,6565
29
28
  aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.mo,sha256=tomc7fMl3JZoZ_I1hTgDDigFt3RyaiR-3sTD7xYhg98,483
30
- aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po,sha256=WqOJApz-BmQcdDdRHaOoECV-VcBCTuDJ8beZcgXHLfQ,4971
29
+ aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po,sha256=Zgt8Ujas8wcYj4ylnSYulSp9XFliKcmjk5YN6ZrvAUQ,4971
31
30
  aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.mo,sha256=W2q9nAX8EDr7lLDhaJW1WChLwF1v7hy1H71g5n38f18,876
32
- aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po,sha256=Rmyb5n6vRbv0JLDbmtjsfcwAgfnn7pCAmkKAyg7Kp6Y,5188
31
+ aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po,sha256=Hulf5tS96W8fbhI_sRIWcaJ8decFrU_RebuaPmZrKFQ,5188
33
32
  aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo,sha256=ZUmnbwwBgHs5m0RzyMPZvtpVkaV9Rylwg1gQCa9-dcc,4341
34
- aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=Ra1vBT_Ho2BASWMyWpjaeiYZpNuFXxwF77Zz00ZM8g0,7233
33
+ aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=Zs9K0bmzm6mI3vUQ22aYMWVaa2C8t5-vVYzCqqzAATo,7233
35
34
  aa_bulletin_board/locale/sk/LC_MESSAGES/django.mo,sha256=qbQEKRh_K6GhMhKVY-xR1tC5YIofxLCprGaDq6bltcM,562
36
- aa_bulletin_board/locale/sk/LC_MESSAGES/django.po,sha256=ipQOkNWBt5mmOxqCkEOTofnCax43ga1kvB3EwaxPtBQ,5072
37
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=kGH4H4OEFgnt9eKv6Xd9f8y2xPOIHoZV9Y9juRBPJZQ,4515
38
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=hi2sr1sN5lonayC0-w3XByvyZ0s0-hKkGbHnd5dSrsU,7390
35
+ aa_bulletin_board/locale/sk/LC_MESSAGES/django.po,sha256=LyXKbeZHsHJD9Q7L8Rk4fwPYukDK44yuXNMGFOOS-D4,5072
36
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=b17x0ckLqjPDAGOFBRg7wKIsfImbUeEBpCQ4PprogVA,4517
37
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=9y-eriiOP-NE18PDE_gEtr2d_ku3z21aEjEfm6fK410,7444
39
38
  aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=eWtNtT-OkgeZTQwCAZmM82eo_0vAvt_zmnPnNLHT5w8,3087
40
- aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=-Wfz6_XcMG34QO_E65wsPkxFAtGGtjRDyogJoj5nxbQ,5943
39
+ aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=0p_HCBcvoJTO6d8G9vVSHVXE4H62uJRyA5cU3eJlSRo,5943
41
40
  aa_bulletin_board/migrations/0001_initial.py,sha256=bmw6yykfLuujYwQ6uR8rGKqcv94UyEa6ZVH34VR5APQ,2620
42
41
  aa_bulletin_board/migrations/0002_alter_bulletin_slug.py,sha256=j6jgInd8CB7cbRU0cKl87GQaWw6ifZercIs5WCWegKw,427
43
42
  aa_bulletin_board/migrations/0003_group_restrictions.py,sha256=zjWr5H8yfdSsJVLbqUUhgSAfrW6A2CVavrlFxfaFZGg,959
@@ -48,12 +47,12 @@ aa_bulletin_board/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
48
47
  aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.css,sha256=ZHDsnu5YOkVjNi_wQu8iJejj_bnUh1OLpfX_H4N28S8,2806
49
48
  aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css,sha256=j_8zLtON_tHZsz2B_wSccWs_lMGnW8YWWxjax6AktG0,1771
50
49
  aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css.map,sha256=23IhYD-Lo1egvlyio8PzlQP0ITgzf69uoW-oPIhWZA8,3514
51
- aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.js,sha256=ealgzl7yJuGX_DkICfwHTlNOSHp04CQ_Z6A3TqjA4Ek,897
52
- aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js,sha256=NgxbPJHR8tAQ9G3NZzDxSS25Y-7vXPR-2Umy588trmI,446
53
- aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js.map,sha256=9B1eyz3RMB4C7Tk7wIjIFKrMieiE8ogsiP5JytOcoS4,802
54
- aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.js,sha256=WmbM7LsZ62lDO3PPvT4efKrl7CKhVbE0V8KHNWgCicY,1842
55
- aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js,sha256=MwizTA_2dQTUjlOZPMhVSUYJJmOTCenNSQV5Zi3dcj0,566
56
- aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js.map,sha256=wP9I8N_LADhFyUGxUIzBLEHmb-0eKZ_XCvXv6jB4wvo,747
50
+ aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.js,sha256=b-sNq53U_DLMsvPfVfdS7DRfZyf8tG0bvwwN00XJYbg,759
51
+ aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js,sha256=BgdMOj31Drk8qabAeLX9HsON79wJ0GdjwkXQDQmzQXg,422
52
+ aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js.map,sha256=rIQ53PbQlVFDBGCo8dCeeHMBRHEBYwm4rcC785HqMY4,755
53
+ aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.js,sha256=EeDG9s4ThM0iK-jnRT2ulqM0O_IBFTj8v-SVh6UFy6k,1717
54
+ aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js,sha256=da4C6K1v5kiNoNMMGrwuRFgw2OSc4zLaBa3iSWdsI44,550
55
+ aa_bulletin_board/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js.map,sha256=lhJFVtqfxSuOGn3clQB1D1vJSTQ97W7_0XerpeYX80w,708
57
56
  aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/README.md,sha256=Mq6FtJHYG6mYF3YDZszMVpH89pALLx88tVdmZdwI8uc,8435
58
57
  aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.js,sha256=IqooBulVUC9y_-WcuW6du_gsZY4KohFz-o09ZACe3sE,35726
59
58
  aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.min.js,sha256=lW1sW167GdI6I2ZyNIA625wlrAm8P6TYjR__5gZlhnY,22504
@@ -63,27 +62,24 @@ aa_bulletin_board/templates/aa_bulletin_board/base.html,sha256=hL8bzygUC-XYcKO7L
63
62
  aa_bulletin_board/templates/aa_bulletin_board/bulletin.html,sha256=h7R_znls5cwKhXVN67Wi9BVyRGmsGofpFEABqXRPmos,1576
64
63
  aa_bulletin_board/templates/aa_bulletin_board/dashboard.html,sha256=LpFK4leA3O17WCu4zilztSFd-tcINbmyzghBKpFXagU,3030
65
64
  aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html,sha256=3NR5WsRX-0HGUKHJH2LNgkX1JQtDLPpr0Ofy2gi5zDM,2572
66
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=SXtCZlT5p1Kyif0tlw3fEpXdIkRJIYb5uQRfZZjhISk,93
67
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html,sha256=QxorfVP6JtqqnJFfDL-2QqLsOKuRyq0mXMiV8a86eVo,112
68
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html,sha256=ckHZgj56V71-w9A25IFWFIj1xxONEV8qROrYn1Fy6IE,106
65
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=1a2sXucRxgoU4tvhxC1oJJ9SY-ab7VbBmULMiEURk0I,83
66
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html,sha256=1BcONU5vhJwlOdwgIYVLF_yQUkws5dPGKskC124683c,102
67
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html,sha256=ACZ25Bc6A7GS3VRLvCZWc6o9K3lM45ClT_vlFVQgmaA,96
69
68
  aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html,sha256=rvzevl-Ihhy8HmA06YC2qOua8AVIjw7O8pk75NGE-WY,69
70
69
  aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html,sha256=329nC3P57jL0yIR65zNUp30zZs9dgZHSYlNbdpQW_a8,68
71
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=bmerkN-g9N1F83GA81JDukVWvX5OHZmeZhhlQawLrlw,104
72
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=8Cm2j6k7NDREcJvLb_RahZ3yFe_IKAFHPnqEETxMCbw,110
70
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=F0zQFT-XkLYu8VfpzzEeUK5XTOt1EAnKL513RdOKbKY,94
71
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=ZQU5JaZ8hjKI3jfRScHSPpV1C1iWmdWajFBLBfPSKwc,100
73
72
  aa_bulletin_board/templates/aa_bulletin_board/partials/common/bulletin-board-management.html,sha256=qXCPB4btoyWvj10b5H-dMpcE13LdnDVwUCPv7ix8Glc,581
74
73
  aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html,sha256=nDZPOnsQLBN9meAhxnhd0ynUQIVi3YPzhi47n89zcIg,422
75
- aa_bulletin_board/templatetags/__init__.py,sha256=sP2D1ovt2gGAPLcGQkByRgXYhvUJ6C52mZMlLIALQ8s,37
76
- aa_bulletin_board/templatetags/aa_bulletin_board.py,sha256=tFdJ81gPKpTsTalmXf0rtDJq7po2gDRNcJ3OdfCP73A,2771
77
74
  aa_bulletin_board/tests/__init__.py,sha256=dcMq6O8W1_8NSZobuRedXFQ3o4Zd6Q6Ti7eY-D6JaYI,18
78
75
  aa_bulletin_board/tests/test_access.py,sha256=I2GaJMI4yQWLb0UIOGPdk754B-Rcw0ORXufa8z9-ljU,6874
79
76
  aa_bulletin_board/tests/test_auth_hooks.py,sha256=8BdVYqfrR0dxvBtOBShklmBXA7MCn2VuF-CT4NdV1xg,2386
80
77
  aa_bulletin_board/tests/test_bulletins.py,sha256=aXrew1He-ly_OBDPUtXck4NuvXFLpuQ21PxR77LqKSk,8639
81
78
  aa_bulletin_board/tests/test_forms.py,sha256=IbmWR_S0QLNH36ACl4ssmm37mLVgc_6B_osoccZZ2Ds,4719
82
79
  aa_bulletin_board/tests/test_settings.py,sha256=dTQn6dH4tS1vY_q32mkkW6DrzLioB2MHUbpYYoj7708,718
83
- aa_bulletin_board/tests/test_templatetags.py,sha256=oQ9kG0DEKFMKp9M60zrmxQaHhUYnPflbgRFPg3KpQ2s,3371
84
80
  aa_bulletin_board/tests/test_user_interface.py,sha256=yM6jRMlY-dF9-tQzYivZhGfoGyySuhl1SetM1KgYPrM,8511
85
81
  aa_bulletin_board/tests/utils.py,sha256=Dh_jVV7s9Z_OOg_08FxwsZtVU3omrcI260-uQ_Bc_90,2202
86
- aa_bulletin_board-2.3.4.dist-info/METADATA,sha256=fnF3QZqWVBu_VDELfCnJ20OH8OLHQ5tdEOjSH0ixS1s,58061
87
- aa_bulletin_board-2.3.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
- aa_bulletin_board-2.3.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
89
- aa_bulletin_board-2.3.4.dist-info/RECORD,,
82
+ aa_bulletin_board-2.4.0.dist-info/METADATA,sha256=tzHJVcmzgiVulZtb-nP2LY2cNNik-OPIIFEMM_Gd45k,57718
83
+ aa_bulletin_board-2.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
84
+ aa_bulletin_board-2.4.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
85
+ aa_bulletin_board-2.4.0.dist-info/RECORD,,
@@ -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
- """
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)