aa-bulletin-board 2.2.5__py3-none-any.whl → 2.3.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 (33) hide show
  1. aa_bulletin_board/__init__.py +1 -1
  2. aa_bulletin_board/constants.py +11 -0
  3. aa_bulletin_board/helper/__init__.py +0 -0
  4. aa_bulletin_board/helper/static_files.py +39 -0
  5. aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po +8 -20
  6. aa_bulletin_board/locale/de/LC_MESSAGES/django.po +8 -21
  7. aa_bulletin_board/locale/django.pot +1 -1
  8. aa_bulletin_board/locale/es/LC_MESSAGES/django.po +8 -21
  9. aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  10. aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +14 -25
  11. aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  12. aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +8 -15
  13. aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +6 -15
  14. aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +7 -18
  15. aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po +5 -12
  16. aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po +7 -17
  17. aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +8 -20
  18. aa_bulletin_board/locale/sk/LC_MESSAGES/django.po +6 -14
  19. aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +9 -24
  20. aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +6 -15
  21. aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +1 -1
  22. aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +1 -1
  23. aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +1 -1
  24. aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html +2 -2
  25. aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html +2 -2
  26. aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +2 -2
  27. aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +2 -2
  28. aa_bulletin_board/templatetags/aa_bulletin_board.py +57 -9
  29. aa_bulletin_board/tests/test_templatetags.py +47 -7
  30. {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/METADATA +21 -21
  31. {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/RECORD +33 -30
  32. {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/WHEEL +1 -1
  33. {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -9,17 +9,15 @@ 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: 2024-12-14 13:27+0100\n"
12
+ "POT-Creation-Date: 2025-01-21 05:07+0100\n"
13
13
  "PO-Revision-Date: 2024-06-07 13:27+0000\n"
14
14
  "Last-Translator: Roycce_ <malyasov.roma@mail.ru>\n"
15
- "Language-Team: Russian <https://weblate.ppfeufer.de/projects/alliance-auth-"
16
- "apps/aa-bulletin-board/ru/>\n"
15
+ "Language-Team: Russian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/ru/>\n"
17
16
  "Language: ru\n"
18
17
  "MIME-Version: 1.0\n"
19
18
  "Content-Type: text/plain; charset=UTF-8\n"
20
19
  "Content-Transfer-Encoding: 8bit\n"
21
- "Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : "
22
- "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
+ "Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
23
21
  "X-Generator: Weblate 5.5.5\n"
24
22
 
25
23
  #: aa_bulletin_board/__init__.py:9 aa_bulletin_board/models.py:67
@@ -37,12 +35,8 @@ msgid "Bulletin Board v{__version__}"
37
35
  msgstr "Доска бюллетеней v{__version__}"
38
36
 
39
37
  #: aa_bulletin_board/forms.py:63
40
- msgid ""
41
- "Restrict this bulletin to certain groups. If no group restrictions are in "
42
- "place, everyone who has access to this module can read this bulletin."
43
- msgstr ""
44
- "Ограничить доступ к бюллетеню для конкретных групп. Если ограничение не "
45
- "задано, у всех пользователей модуля есть доступ к бюллетеню."
38
+ msgid "Restrict this bulletin to certain groups. If no group restrictions are in place, everyone who has access to this module can read this bulletin."
39
+ msgstr "Ограничить доступ к бюллетеню для конкретных групп. Если ограничение не задано, у всех пользователей модуля есть доступ к бюллетеню."
46
40
 
47
41
  #: aa_bulletin_board/forms.py:110
48
42
  msgid "You have forgotten the content!"
@@ -143,12 +137,8 @@ msgid "Add bulletin"
143
137
  msgstr "Добавить бюллетень"
144
138
 
145
139
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:5
146
- msgid ""
147
- "Do you want to help translate this app into your language or improve the "
148
- "existing translation?"
149
- msgstr ""
150
- "Вы хотите помочь перевести это приложение на ваш язык или улучшить текущий "
151
- "перевод?"
140
+ msgid "Do you want to help translate this app into your language or improve the existing translation?"
141
+ msgstr "Вы хотите помочь перевести это приложение на ваш язык или улучшить текущий перевод?"
152
142
 
153
143
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:8
154
144
  msgid "Join our team of translators!"
@@ -160,9 +150,7 @@ msgid "Bulletin \"{bulletin__title}\" created."
160
150
  msgstr "Бюллетень «{bulletin__title}» создан."
161
151
 
162
152
  #: aa_bulletin_board/views.py:141
163
- msgid ""
164
- "The bulletin you are looking for does either not exist, or you don't have "
165
- "access to it."
153
+ msgid "The bulletin you are looking for does either not exist, or you don't have access to it."
166
154
  msgstr "Запрошенный бюллетень не существует или у Вас нет доступа."
167
155
 
168
156
  #: aa_bulletin_board/views.py:168
@@ -7,17 +7,15 @@ 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: 2024-12-14 13:27+0100\n"
10
+ "POT-Creation-Date: 2025-01-21 05:07+0100\n"
11
11
  "PO-Revision-Date: 2024-05-10 13:57+0000\n"
12
12
  "Last-Translator: Anonymous <noreply@weblate.org>\n"
13
- "Language-Team: Slovak <https://weblate.ppfeufer.de/projects/alliance-auth-"
14
- "apps/aa-bulletin-board/sk/>\n"
13
+ "Language-Team: Slovak <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/sk/>\n"
15
14
  "Language: sk\n"
16
15
  "MIME-Version: 1.0\n"
17
16
  "Content-Type: text/plain; charset=UTF-8\n"
18
17
  "Content-Transfer-Encoding: 8bit\n"
19
- "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n "
20
- ">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
18
+ "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
21
19
  "X-Generator: Weblate 5.5.3\n"
22
20
 
23
21
  #: aa_bulletin_board/__init__.py:9 aa_bulletin_board/models.py:67
@@ -35,9 +33,7 @@ msgid "Bulletin Board v{__version__}"
35
33
  msgstr ""
36
34
 
37
35
  #: aa_bulletin_board/forms.py:63
38
- msgid ""
39
- "Restrict this bulletin to certain groups. If no group restrictions are in "
40
- "place, everyone who has access to this module can read this bulletin."
36
+ msgid "Restrict this bulletin to certain groups. If no group restrictions are in place, everyone who has access to this module can read this bulletin."
41
37
  msgstr ""
42
38
 
43
39
  #: aa_bulletin_board/forms.py:110
@@ -139,9 +135,7 @@ msgid "Add bulletin"
139
135
  msgstr ""
140
136
 
141
137
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:5
142
- msgid ""
143
- "Do you want to help translate this app into your language or improve the "
144
- "existing translation?"
138
+ msgid "Do you want to help translate this app into your language or improve the existing translation?"
145
139
  msgstr ""
146
140
 
147
141
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:8
@@ -154,9 +148,7 @@ msgid "Bulletin \"{bulletin__title}\" created."
154
148
  msgstr ""
155
149
 
156
150
  #: aa_bulletin_board/views.py:141
157
- msgid ""
158
- "The bulletin you are looking for does either not exist, or you don't have "
159
- "access to it."
151
+ msgid "The bulletin you are looking for does either not exist, or you don't have access to it."
160
152
  msgstr ""
161
153
 
162
154
  #: aa_bulletin_board/views.py:168
@@ -8,17 +8,15 @@ 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: 2024-12-14 13:27+0100\n"
11
+ "POT-Creation-Date: 2025-01-21 05:07+0100\n"
12
12
  "PO-Revision-Date: 2024-10-04 18:10+0000\n"
13
13
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
14
- "Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-"
15
- "apps/aa-bulletin-board/uk/>\n"
14
+ "Language-Team: Ukrainian <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/uk/>\n"
16
15
  "Language: uk\n"
17
16
  "MIME-Version: 1.0\n"
18
17
  "Content-Type: text/plain; charset=UTF-8\n"
19
18
  "Content-Transfer-Encoding: 8bit\n"
20
- "Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : "
21
- "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19
+ "Plural-Forms: nplurals=4; plural=n==1 ? 3 : (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
22
20
  "X-Generator: Weblate 5.7.2\n"
23
21
 
24
22
  #: aa_bulletin_board/__init__.py:9 aa_bulletin_board/models.py:67
@@ -36,13 +34,8 @@ msgid "Bulletin Board v{__version__}"
36
34
  msgstr "Дошка оголошень v{__version__}"
37
35
 
38
36
  #: aa_bulletin_board/forms.py:63
39
- msgid ""
40
- "Restrict this bulletin to certain groups. If no group restrictions are in "
41
- "place, everyone who has access to this module can read this bulletin."
42
- msgstr ""
43
- "Обмежте доступ до цього бюлетеня для певних груп. Якщо не встановлено жодних "
44
- "групових обмежень, кожен, хто має доступ до цього модуля, зможе прочитати "
45
- "цей бюлетень."
37
+ msgid "Restrict this bulletin to certain groups. If no group restrictions are in place, everyone who has access to this module can read this bulletin."
38
+ msgstr "Обмежте доступ до цього бюлетеня для певних груп. Якщо не встановлено жодних групових обмежень, кожен, хто має доступ до цього модуля, зможе прочитати цей бюлетень."
46
39
 
47
40
  #: aa_bulletin_board/forms.py:110
48
41
  msgid "You have forgotten the content!"
@@ -157,12 +150,8 @@ msgid "Add bulletin"
157
150
  msgstr "Додати інформаційний бюлетень"
158
151
 
159
152
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:5
160
- msgid ""
161
- "Do you want to help translate this app into your language or improve the "
162
- "existing translation?"
163
- msgstr ""
164
- "Хочете допомогти перекласти цю програму вашою мовою чи покращити наявний "
165
- "переклад?"
153
+ msgid "Do you want to help translate this app into your language or improve the existing translation?"
154
+ msgstr "Хочете допомогти перекласти цю програму вашою мовою чи покращити наявний переклад?"
166
155
 
167
156
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:8
168
157
  msgid "Join our team of translators!"
@@ -175,12 +164,8 @@ msgstr "Створено бюлетень «{bulletin__title}»."
175
164
 
176
165
  #: aa_bulletin_board/views.py:141
177
166
  #, fuzzy
178
- #| msgid ""
179
- #| "The bulletin you are looking for does not exist, or you don't have access "
180
- #| "to it."
181
- msgid ""
182
- "The bulletin you are looking for does either not exist, or you don't have "
183
- "access to it."
167
+ #| msgid "The bulletin you are looking for does not exist, or you don't have access to it."
168
+ msgid "The bulletin you are looking for does either not exist, or you don't have access to it."
184
169
  msgstr "Бюлетень, який ви шукаєте, не існує, або у вас немає до нього доступу."
185
170
 
186
171
  #: aa_bulletin_board/views.py:168
@@ -10,11 +10,10 @@ 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: 2024-12-14 13:27+0100\n"
13
+ "POT-Creation-Date: 2025-01-21 05:07+0100\n"
14
14
  "PO-Revision-Date: 2024-05-28 16:27+0000\n"
15
15
  "Last-Translator: Peter Pfeufer <info@ppfeufer.de>\n"
16
- "Language-Team: Chinese (Simplified) <https://weblate.ppfeufer.de/projects/"
17
- "alliance-auth-apps/aa-bulletin-board/zh_Hans/>\n"
16
+ "Language-Team: Chinese (Simplified) <https://weblate.ppfeufer.de/projects/alliance-auth-apps/aa-bulletin-board/zh_Hans/>\n"
18
17
  "Language: zh_Hans\n"
19
18
  "MIME-Version: 1.0\n"
20
19
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -37,12 +36,8 @@ msgid "Bulletin Board v{__version__}"
37
36
  msgstr "公告栏v{__version__}"
38
37
 
39
38
  #: aa_bulletin_board/forms.py:63
40
- msgid ""
41
- "Restrict this bulletin to certain groups. If no group restrictions are in "
42
- "place, everyone who has access to this module can read this bulletin."
43
- msgstr ""
44
- "限制此公告为特定组可阅读。如果没有设置组限制,每个访问此模块的人都可以阅读此"
45
- "公告。"
39
+ msgid "Restrict this bulletin to certain groups. If no group restrictions are in place, everyone who has access to this module can read this bulletin."
40
+ msgstr "限制此公告为特定组可阅读。如果没有设置组限制,每个访问此模块的人都可以阅读此公告。"
46
41
 
47
42
  #: aa_bulletin_board/forms.py:110
48
43
  msgid "You have forgotten the content!"
@@ -140,9 +135,7 @@ msgid "Add bulletin"
140
135
  msgstr "添加公告"
141
136
 
142
137
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:5
143
- msgid ""
144
- "Do you want to help translate this app into your language or improve the "
145
- "existing translation?"
138
+ msgid "Do you want to help translate this app into your language or improve the existing translation?"
146
139
  msgstr "您想帮助将此应用程序翻译成您的母语或改进现有的翻译吗?"
147
140
 
148
141
  #: aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html:8
@@ -155,9 +148,7 @@ msgid "Bulletin \"{bulletin__title}\" created."
155
148
  msgstr "公告“{bulletin__title}”已创建。"
156
149
 
157
150
  #: aa_bulletin_board/views.py:141
158
- msgid ""
159
- "The bulletin you are looking for does either not exist, or you don't have "
160
- "access to it."
151
+ msgid "The bulletin you are looking for does either not exist, or you don't have access to it."
161
152
  msgstr "您正在查看的公告不存在,或您没有权限访问。"
162
153
 
163
154
  #: aa_bulletin_board/views.py:168
@@ -1,3 +1,3 @@
1
1
  {% load aa_bulletin_board %}
2
2
 
3
- <link rel="stylesheet" href="{% aa_bulletin_board_static 'aa_bulletin_board/css/aa-bulletin-board.min.css' %}">
3
+ {% aa_bulletin_board_static "css/aa-bulletin-board.min.css" %}
@@ -1,3 +1,3 @@
1
1
  {% load aa_bulletin_board %}
2
2
 
3
- <script src="{% aa_bulletin_board_static 'aa_bulletin_board/javascript/aa-bulletin-board-equal-height.min.js' %}"></script>
3
+ {% aa_bulletin_board_static "javascript/aa-bulletin-board-equal-height.min.js" %}
@@ -1,3 +1,3 @@
1
1
  {% load aa_bulletin_board %}
2
2
 
3
- <script src="{% aa_bulletin_board_static 'aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js' %}"></script>
3
+ {% aa_bulletin_board_static "javascript/aa-bulletin-board-oembed.min.js" %}
@@ -1,3 +1,3 @@
1
- {% load static %}
1
+ {% load sri %}
2
2
 
3
- <link href="{% static 'django_ckeditor_5/dist/styles.css' %}" media="all" rel="stylesheet">
3
+ {% sri_static "django_ckeditor_5/dist/styles.css" %}
@@ -1,3 +1,3 @@
1
- {% load static %}
1
+ {% load sri %}
2
2
 
3
- <script src="{% static 'django_ckeditor_5/dist/bundle.js' %}"></script>
3
+ {% sri_static "django_ckeditor_5/dist/bundle.js" %}
@@ -1,3 +1,3 @@
1
- {% load static %}
1
+ {% load aa_bulletin_board %}
2
2
 
3
- <link rel="stylesheet" href="{% static 'aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.min.css' %}">
3
+ {% aa_bulletin_board_static "libs/sumoselect/3.4.9/sumoselect.min.css" %}
@@ -1,3 +1,3 @@
1
- {% load static %}
1
+ {% load aa_bulletin_board %}
2
2
 
3
- <script src="{% static 'aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumoselect.min.js' %}"></script>
3
+ {% aa_bulletin_board_static 'libs/sumoselect/3.4.9/jquery.sumoselect.min.js' %}
@@ -2,26 +2,74 @@
2
2
  Versioned static URLs to break browser caches when changing the app version
3
3
  """
4
4
 
5
+ # Standard Library
6
+ import os
7
+
5
8
  # Django
9
+ from django.conf import settings
6
10
  from django.template.defaulttags import register
7
11
  from django.templatetags.static import static
12
+ from django.utils.safestring import mark_safe
13
+
14
+ # Alliance Auth
15
+ from allianceauth.services.hooks import get_extension_logger
16
+
17
+ # Alliance Auth (External Libs)
18
+ from app_utils.logging import LoggerAddTag
8
19
 
9
20
  # AA Bulletin Board
10
- from aa_bulletin_board import __version__
21
+ from aa_bulletin_board import __title__, __version__
22
+ from aa_bulletin_board.helper.static_files import calculate_integrity_hash
23
+
24
+ logger = LoggerAddTag(my_logger=get_extension_logger(__name__), prefix=__title__)
11
25
 
12
26
 
13
27
  @register.simple_tag
14
- def aa_bulletin_board_static(path: str) -> str:
28
+ def aa_bulletin_board_static(relative_file_path: str) -> str | None:
15
29
  """
16
30
  Versioned static URL
17
31
 
18
- :param path:
19
- :type path:
20
- :return:
21
- :rtype:
32
+ :param relative_file_path: The file path relative to the `aa-aa_bulletin_board/aa_bulletin_board/static/aa_bulletin_board` folder
33
+ :type relative_file_path: str
34
+ :return: Versioned static URL
35
+ :rtype: str
22
36
  """
23
37
 
24
- static_url = static(path=path)
25
- versioned_url = static_url + "?v=" + __version__
38
+ logger.debug(f"Getting versioned static URL for: {relative_file_path}")
39
+
40
+ file_type = os.path.splitext(relative_file_path)[1][1:]
41
+
42
+ logger.debug(f"File extension: {file_type}")
43
+
44
+ # Only support CSS and JS files
45
+ if file_type not in ["css", "js"]:
46
+ raise ValueError(f"Unsupported file type: {file_type}")
47
+
48
+ static_file_path = os.path.join("aa_bulletin_board", relative_file_path)
49
+ static_url = static(static_file_path)
50
+
51
+ # Integrity hash calculation only for non-debug mode
52
+ sri_string = (
53
+ f' integrity="{calculate_integrity_hash(relative_file_path)}" crossorigin="anonymous"'
54
+ if not settings.DEBUG
55
+ else ""
56
+ )
57
+
58
+ # Versioned URL for CSS and JS files
59
+ # Add version query parameter to break browser caches when changing the app version
60
+ # Do not add version query parameter for libs as they are already versioned through their file path
61
+ versioned_url = (
62
+ static_url
63
+ if relative_file_path.startswith("libs/")
64
+ else static_url + "?v=" + __version__
65
+ )
66
+
67
+ # Return the versioned URL with integrity hash for CSS
68
+ if file_type == "css":
69
+ return mark_safe(f'<link rel="stylesheet" href="{versioned_url}"{sri_string}>')
70
+
71
+ # Return the versioned URL with integrity hash for JS files
72
+ if file_type == "js":
73
+ return mark_safe(f'<script src="{versioned_url}"{sri_string}></script>')
26
74
 
27
- return versioned_url
75
+ return None
@@ -4,10 +4,11 @@ Test the apps' template tags
4
4
 
5
5
  # Django
6
6
  from django.template import Context, Template
7
- from django.test import TestCase
7
+ from django.test import TestCase, override_settings
8
8
 
9
9
  # AA Bulletin Board
10
10
  from aa_bulletin_board import __version__
11
+ from aa_bulletin_board.helper.static_files import calculate_integrity_hash
11
12
 
12
13
 
13
14
  class TestVersionedStatic(TestCase):
@@ -15,9 +16,10 @@ class TestVersionedStatic(TestCase):
15
16
  Test aa_bulletin_board_static template tag
16
17
  """
17
18
 
18
- def test_versioned_static(self) -> None:
19
+ @override_settings(DEBUG=False)
20
+ def test_versioned_static_without_debug_enabled(self) -> None:
19
21
  """
20
- Test versioned static template tag
22
+ Test versioned static template tag without DEBUG enabled
21
23
 
22
24
  :return:
23
25
  :rtype:
@@ -27,13 +29,51 @@ class TestVersionedStatic(TestCase):
27
29
  template_to_render = Template(
28
30
  template_string=(
29
31
  "{% load aa_bulletin_board %}"
30
- "{% aa_bulletin_board_static 'aa_bulletin_board/css/aa-bulletin-board.min.css' %}" # pylint: disable=line-too-long
32
+ "{% aa_bulletin_board_static 'css/aa-bulletin-board.min.css' %}"
33
+ "{% aa_bulletin_board_static 'javascript/aa-bulletin-board-oembed.min.js' %}"
31
34
  )
32
35
  )
33
36
 
34
37
  rendered_template = template_to_render.render(context=context)
35
38
 
36
- self.assertInHTML(
37
- needle=f'/static/aa_bulletin_board/css/aa-bulletin-board.min.css?v={context["version"]}', # pylint: disable=line-too-long
38
- haystack=rendered_template,
39
+ expected_static_css_src = f'/static/aa_bulletin_board/css/aa-bulletin-board.min.css?v={context["version"]}'
40
+ expected_static_css_src_integrity = calculate_integrity_hash(
41
+ "css/aa-bulletin-board.min.css"
39
42
  )
43
+ expected_static_js_src = f'/static/aa_bulletin_board/javascript/aa-bulletin-board-oembed.min.js?v={context["version"]}'
44
+ expected_static_js_src_integrity = calculate_integrity_hash(
45
+ "javascript/aa-bulletin-board-oembed.min.js"
46
+ )
47
+
48
+ self.assertIn(member=expected_static_css_src, container=rendered_template)
49
+ self.assertIn(
50
+ member=expected_static_css_src_integrity, container=rendered_template
51
+ )
52
+ self.assertIn(member=expected_static_js_src, container=rendered_template)
53
+ self.assertIn(
54
+ member=expected_static_js_src_integrity, container=rendered_template
55
+ )
56
+
57
+ @override_settings(DEBUG=True)
58
+ def test_versioned_static_with_debug_enabled(self) -> None:
59
+ """
60
+ Test versioned static template tag with DEBUG enabled
61
+
62
+ :return:
63
+ :rtype:
64
+ """
65
+
66
+ context = Context({"version": __version__})
67
+ template_to_render = Template(
68
+ template_string=(
69
+ "{% load aa_bulletin_board %}"
70
+ "{% aa_bulletin_board_static 'css/aa-bulletin-board.min.css' %}"
71
+ )
72
+ )
73
+
74
+ rendered_template = template_to_render.render(context=context)
75
+
76
+ expected_static_css_src = f'/static/aa_bulletin_board/css/aa-bulletin-board.min.css?v={context["version"]}'
77
+
78
+ self.assertIn(member=expected_static_css_src, container=rendered_template)
79
+ self.assertNotIn(member="integrity=", container=rendered_template)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: aa-bulletin-board
3
- Version: 2.2.5
3
+ Version: 2.3.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
@@ -683,6 +683,7 @@ License: GNU GENERAL PUBLIC LICENSE
683
683
  the library. If this is what you want to do, use the GNU Lesser General
684
684
  Public License instead of this License. But first, please read
685
685
  <https://www.gnu.org/licenses/why-not-lgpl.html>.
686
+ License-File: LICENSE
686
687
  Keywords: allianceauth,bulletinboard,eveonline
687
688
  Classifier: Environment :: Web Environment
688
689
  Classifier: Framework :: Django
@@ -700,7 +701,7 @@ Classifier: Topic :: Internet :: WWW/HTTP
700
701
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
701
702
  Requires-Python: >=3.10
702
703
  Requires-Dist: allianceauth-app-utils>=1.19.1
703
- Requires-Dist: allianceauth<5,>=4.3.1
704
+ Requires-Dist: allianceauth<5,>=4.6
704
705
  Requires-Dist: django-ckeditor-5>=0.2.14
705
706
  Requires-Dist: unidecode
706
707
  Provides-Extra: tests-allianceauth-latest
@@ -730,24 +731,23 @@ Simple bulletin board for [Alliance Auth](https://gitlab.com/allianceauth/allian
730
731
 
731
732
  ______________________________________________________________________
732
733
 
733
- <!-- mdformat-toc start --slug=github --maxlevel=6 --minlevel=1 -->
734
-
735
- - [AA Bulletin Board](#aa-bulletin-board)
736
- - [Before You Install This Module](#before-you-install-this-module)
737
- - [Installation](#installation)
738
- - [Step 1: Install the Package](#step-1-install-the-package)
739
- - [Step 2: Configure Alliance Auth](#step-2-configure-alliance-auth)
740
- - [Settings in `/home/allianceserver/myauth/myauth/settings/local.py`](#settings-in-homeallianceservermyauthmyauthsettingslocalpy)
741
- - [Settings in `/home/allianceserver/myauth/myauth/urls.py`](#settings-in-homeallianceservermyauthmyauthurlspy)
742
- - [Step 3: Configure Your Webserver](#step-3-configure-your-webserver)
743
- - [Apache](#apache)
744
- - [Nginx](#nginx)
745
- - [Step 4: Finalizing the Installation](#step-4-finalizing-the-installation)
746
- - [Step 5: Set Up Permissions](#step-5-set-up-permissions)
747
- - [Permissions](#permissions)
748
- - [Changelog](#changelog)
749
- - [Translation Status](#translation-status)
750
- - [Contributing](#contributing)
734
+ <!-- mdformat-toc start --slug=github --maxlevel=6 --minlevel=2 -->
735
+
736
+ - [Before You Install This Module](#before-you-install-this-module)
737
+ - [Installation](#installation)
738
+ - [Step 1: Install the Package](#step-1-install-the-package)
739
+ - [Step 2: Configure Alliance Auth](#step-2-configure-alliance-auth)
740
+ - [Settings in `/home/allianceserver/myauth/myauth/settings/local.py`](#settings-in-homeallianceservermyauthmyauthsettingslocalpy)
741
+ - [Settings in `/home/allianceserver/myauth/myauth/urls.py`](#settings-in-homeallianceservermyauthmyauthurlspy)
742
+ - [Step 3: Configure Your Webserver](#step-3-configure-your-webserver)
743
+ - [Apache](#apache)
744
+ - [Nginx](#nginx)
745
+ - [Step 4: Finalizing the Installation](#step-4-finalizing-the-installation)
746
+ - [Step 5: Set Up Permissions](#step-5-set-up-permissions)
747
+ - [Permissions](#permissions)
748
+ - [Changelog](#changelog)
749
+ - [Translation Status](#translation-status)
750
+ - [Contributing](#contributing)
751
751
 
752
752
  <!-- mdformat-toc end -->
753
753
 
@@ -1,39 +1,42 @@
1
- aa_bulletin_board/__init__.py,sha256=YkJlnvrziH9ampuxH6QlAg5YVp0aw4z1dbN63xKr_vo,137
1
+ aa_bulletin_board/__init__.py,sha256=qYPtGtG7ojwQG9lnbD6XNRI3QrixTiJAwYr_EkIsy28,137
2
2
  aa_bulletin_board/apps.py,sha256=HOWDLTEbu28eBt4rggDhzqlZbv6iu1BfzNk7u4FnuUw,474
3
3
  aa_bulletin_board/auth_hooks.py,sha256=fVJczFcCOScsLGCiyp1aSGRKgbTkTRWKxzJa1HCE5KY,1437
4
+ aa_bulletin_board/constants.py,sha256=GOhmkHHpmNJwrlqh17j7Yws2dy8gNcm9AcIYQrgXrCA,244
4
5
  aa_bulletin_board/forms.py,sha256=7760EbyjVd3XobM8vU8X4Xn8mvCW_ra-_2nD7QH1gpc,3190
5
6
  aa_bulletin_board/helpers.py,sha256=921-X-4DogXt-MgjkPMy_NpP64c8JRHpylZf_NeN_Ow,772
6
7
  aa_bulletin_board/managers.py,sha256=BIoUNyLOpJftKs4I05eG2DC6zPGWzCrFhL2nAGUMVos,1066
7
8
  aa_bulletin_board/models.py,sha256=w3tVY5N-foS5rj-QlABD8fCRHGjBBAc6G5I6w4dtUps,3613
8
9
  aa_bulletin_board/urls.py,sha256=giE7z-t8zpC3mPzPYblMLrkSTn5v7ad4NoJsSk-Jsfg,595
9
10
  aa_bulletin_board/views.py,sha256=Eo5UHFMgbt1fuoh02gUKot58SG4d60XEfQWI1uJhlc8,6531
10
- aa_bulletin_board/locale/django.pot,sha256=KCnaTCto-BEghQ-6fM5pqPTJT73DqhM9SLw7WhrL53M,4938
11
+ aa_bulletin_board/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ aa_bulletin_board/helper/static_files.py,sha256=rMBkLQ-LdN2ZuwN29WqAI55mAsgPXiiwwfA1by7aHmM,1089
13
+ aa_bulletin_board/locale/django.pot,sha256=txx2VbhLc4ZjMyQ1pfXxnvUthiNdLXQs62TxXpW64oU,4938
11
14
  aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.mo,sha256=ZhKB7486VzGz4lS72jucN0JWc3TPzADIo7UuN2sf5S8,3462
12
- aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po,sha256=Vd2IzyGEpZHVKd0F4Vf4Ur0ZHv1_3mqk-idbs5Drb8U,6306
15
+ aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po,sha256=p1vwQGQT3pnohP-9-Evn3wKblRbovIpwS3CRI7i38uc,6270
13
16
  aa_bulletin_board/locale/de/LC_MESSAGES/django.mo,sha256=m0YvI06FxR60jNRQDoy7_k-Yl1thl2VAoOqKoDeMdNg,3404
14
- aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=xmfGq_S0PbtVundklHYGcMppqwqoSfeJoXz6hSf2WZI,6214
17
+ aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=5zEOkx1IiO1RLQryps84XxWZ8sZPWSfG4XHxXxFvijY,6175
15
18
  aa_bulletin_board/locale/es/LC_MESSAGES/django.mo,sha256=kTDcOFWmMZ6EMuAm0MPLdyj4S57f_DhNPvCeEjCh40s,2665
16
- aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=4LiAoJFd9GYhM4H-1MVBCy4SSD3-Ii5xJHEt7t8wyVs,6492
17
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo,sha256=H5GO7fqfvwyJP45HJ-N6LZRJBgWWuclGmNadlwHXGhE,1532
18
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=isAMS3U_FY-KBw8uLA1tDRsjrURQvsUVfHzwpMx77Es,5934
19
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo,sha256=2Fto1vZgZQpdRP-oglZfnRof_LfPreUnbb8FeXvrmc4,618
20
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=b63WGzZaSGRTo5rtBqsKsFTehsFxzCudK0v4nDQA4O8,5123
19
+ aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=EyybRzNt4VO1iD_UIWy4bsQT0TLXNPyiE9S4T_Wqt4k,6447
20
+ aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo,sha256=lCwF9Wa3wq6WqSAkrbBpDddAVEh2txGr_bPId74A3p0,1861
21
+ aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=Xv3zZF3zgHFSUIEoO4hMyfs4VddgPggHNaArwq7DPoI,5990
22
+ aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo,sha256=7eI69SSNv6OgS0bso_Mrw3DtapHmJXEyu_mqd7ke0dg,657
23
+ aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=MfKW59RfLLI8sAe5pCTtTl7w-vi-WnO4m9nXoTOVxzE,5109
21
24
  aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo,sha256=W8hWAIEQSTj1iJqMJFLjlp2Roeljr8dluVVSEHBw0bw,1503
22
- aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=ZWZvJpOz8hngwudAuf90VUuebCqT3PkcM-L2AK4_Afg,5486
25
+ aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=hE6ofCQkrAdpqr5O33vyJp8L6JaRSZgsAARUW2ssegg,5459
23
26
  aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo,sha256=mTVxpRnoj-ErNxF0Y5gdbKVqNT0Za4p5DW0tBs2tURw,2569
24
- aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=_aVWFgLhiSY3SWvVwIVFu31TNbk8B1TKPLuO1pRL3lw,6597
27
+ aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=tDErsuC_AnJmAs_mcVk9ibftNWRhfe6CA6Ef5YrynZk,6558
25
28
  aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.mo,sha256=tomc7fMl3JZoZ_I1hTgDDigFt3RyaiR-3sTD7xYhg98,483
26
- aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po,sha256=Va8sp3Pu_-M49JSwib1Fqiv8oHuM_UFaGHdQTz78x2E,5021
29
+ aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po,sha256=UZPWHlJ2rWXsI9SNYnF_Z1XkDK6w2Y0K3AZlQ7Xolio,5000
27
30
  aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.mo,sha256=W2q9nAX8EDr7lLDhaJW1WChLwF1v7hy1H71g5n38f18,876
28
- aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po,sha256=fVwmw6tG1Cfm2S9jl3yHgyORRtwDigBoALzIrk78pX4,5247
31
+ aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po,sha256=5-os5FZsKTPMlN7BMrVycMTdgpHspZgesC4HrDyNOtA,5217
29
32
  aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo,sha256=ZUmnbwwBgHs5m0RzyMPZvtpVkaV9Rylwg1gQCa9-dcc,4341
30
- aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=yN0RHi6hb3AYfBvtEo4zMErY5oEY4Q0y4WErJvHcBa4,7298
33
+ aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=TMgoc6RiMGjkHrfO_ft9rHwQ_hxnLQ0rO1DwSO_I6qA,7262
31
34
  aa_bulletin_board/locale/sk/LC_MESSAGES/django.mo,sha256=qbQEKRh_K6GhMhKVY-xR1tC5YIofxLCprGaDq6bltcM,562
32
- aa_bulletin_board/locale/sk/LC_MESSAGES/django.po,sha256=VDJdwi8ToeMBB5u8AvZ0DKov9ISRBuuJDMDIZWM9JQI,5125
35
+ aa_bulletin_board/locale/sk/LC_MESSAGES/django.po,sha256=ckh0XoG1r23Bmi0tlGhFE2PqOjnULZ1_GRa4X1StHxM,5101
33
36
  aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=JrpfYABCYBlbWNCKmjc9XCAluLKlEpPY42fS6a4PXMU,2515
34
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=IHq3cOuKgppuDkkwo79plN_oYpsQO2IzsC1PDOlhr0s,7768
37
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=vJZhxDACb6lcjCmDrY_9lVB0DJV5alhlHzv8DgZl16w,7717
35
38
  aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=eWtNtT-OkgeZTQwCAZmM82eo_0vAvt_zmnPnNLHT5w8,3087
36
- aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=tQgEO2BHgXCxGWQwT9um1benSK69CISaA8CHBl-Wv7A,5999
39
+ aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=3wNRYaYzkPnePUcbfaDZeJD4EHF9EMCDBMrEU1s_ZZg,5972
37
40
  aa_bulletin_board/migrations/0001_initial.py,sha256=bmw6yykfLuujYwQ6uR8rGKqcv94UyEa6ZVH34VR5APQ,2620
38
41
  aa_bulletin_board/migrations/0002_alter_bulletin_slug.py,sha256=j6jgInd8CB7cbRU0cKl87GQaWw6ifZercIs5WCWegKw,427
39
42
  aa_bulletin_board/migrations/0003_group_restrictions.py,sha256=zjWr5H8yfdSsJVLbqUUhgSAfrW6A2CVavrlFxfaFZGg,959
@@ -59,26 +62,26 @@ aa_bulletin_board/templates/aa_bulletin_board/base.html,sha256=hL8bzygUC-XYcKO7L
59
62
  aa_bulletin_board/templates/aa_bulletin_board/bulletin.html,sha256=1NfrhsJ6dDX8UpPHq2YxEaF6mCXzCQqNB-q9l7-sldY,1599
60
63
  aa_bulletin_board/templates/aa_bulletin_board/dashboard.html,sha256=LpFK4leA3O17WCu4zilztSFd-tcINbmyzghBKpFXagU,3030
61
64
  aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html,sha256=4RIz9FoEXZHXWWtTk04ycuHwDHN82wGZvIrTJhPnVKc,2618
62
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=RFC3JFIg9ZA0ONXi5ZQD34f4hzueoSs84mGgfQr9Bhg,142
63
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html,sha256=TCCDto0FuJI9JQlQrFB1nZ5_96xHZRk9iP2L0yeEW6g,154
64
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html,sha256=fUxsLCE6kXzTk6ASql0QtKkql1hNKM9Z4OOa48jvtD0,148
65
- aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html,sha256=4lXJl2AYci7FvROXQCjG9dTvYSlTWvz3HB1Eqr3U8yA,111
66
- aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html,sha256=Ld8ySQFt9I2o0xKZQHT75jqJi4XV3hiKF3E-3sbzN74,91
67
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=jg7lkZICm_DhcrVbSqBnpTxC1Oq5YVr5-SkZ7Lpd9AA,124
68
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=2JeOmCYuwisaZuMDB1k67EcOTyRTJUwUOhlCxQ2PvJM,123
65
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=SXtCZlT5p1Kyif0tlw3fEpXdIkRJIYb5uQRfZZjhISk,93
66
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html,sha256=QxorfVP6JtqqnJFfDL-2QqLsOKuRyq0mXMiV8a86eVo,112
67
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html,sha256=ckHZgj56V71-w9A25IFWFIj1xxONEV8qROrYn1Fy6IE,106
68
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html,sha256=rvzevl-Ihhy8HmA06YC2qOua8AVIjw7O8pk75NGE-WY,69
69
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html,sha256=329nC3P57jL0yIR65zNUp30zZs9dgZHSYlNbdpQW_a8,68
70
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=bmerkN-g9N1F83GA81JDukVWvX5OHZmeZhhlQawLrlw,104
71
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=8Cm2j6k7NDREcJvLb_RahZ3yFe_IKAFHPnqEETxMCbw,110
69
72
  aa_bulletin_board/templates/aa_bulletin_board/partials/common/bulletin-board-management.html,sha256=KsZZZLGllxBPBsAqKFXusPekLJZQYeTDGyBCuyhjAiU,396
70
73
  aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html,sha256=nDZPOnsQLBN9meAhxnhd0ynUQIVi3YPzhi47n89zcIg,422
71
74
  aa_bulletin_board/templates/aa_bulletin_board/partials/header/page-header.html,sha256=cE7eVhjS5WUG-x8Kekm1qCdocwHfLDrtc_NsugblFSg,215
72
75
  aa_bulletin_board/templatetags/__init__.py,sha256=sP2D1ovt2gGAPLcGQkByRgXYhvUJ6C52mZMlLIALQ8s,37
73
- aa_bulletin_board/templatetags/aa_bulletin_board.py,sha256=ZNdLdHjTbqZwufP9fQEcmVcs5TZQEKe32yAHIK8urpQ,538
76
+ aa_bulletin_board/templatetags/aa_bulletin_board.py,sha256=SS7sPW3T2mSWqI_5RJaMQBWTUYqgAKZdwYCIShD4Dbs,2449
74
77
  aa_bulletin_board/tests/__init__.py,sha256=dcMq6O8W1_8NSZobuRedXFQ3o4Zd6Q6Ti7eY-D6JaYI,18
75
78
  aa_bulletin_board/tests/test_access.py,sha256=I2GaJMI4yQWLb0UIOGPdk754B-Rcw0ORXufa8z9-ljU,6874
76
79
  aa_bulletin_board/tests/test_auth_hooks.py,sha256=8BdVYqfrR0dxvBtOBShklmBXA7MCn2VuF-CT4NdV1xg,2386
77
80
  aa_bulletin_board/tests/test_bulletins.py,sha256=V2LucgSh3aPyavIBnDhRaqkZwJ5oPfvxvcIul3c6kCU,8633
78
- aa_bulletin_board/tests/test_templatetags.py,sha256=SzjXv8NspUZu7I91hl_3uzDHa7AMcTTAKHSjjePU68Q,1048
81
+ aa_bulletin_board/tests/test_templatetags.py,sha256=YarIXIX5vv_OpcxwjH-fM98OufhISEmrp-rBZrYU5Hk,2794
79
82
  aa_bulletin_board/tests/test_user_interface.py,sha256=bpEMmuzWs3-JTPpGtpf3b5dZMw-1kdMmTgEu0VRiHvc,8505
80
83
  aa_bulletin_board/tests/utils.py,sha256=Dh_jVV7s9Z_OOg_08FxwsZtVU3omrcI260-uQ_Bc_90,2202
81
- aa_bulletin_board-2.2.5.dist-info/METADATA,sha256=zv_qLN0XPhicN1J7ipY9oDuYxTiCwNIIYjAzuM2_lWI,58113
82
- aa_bulletin_board-2.2.5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
83
- aa_bulletin_board-2.2.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
84
- aa_bulletin_board-2.2.5.dist-info/RECORD,,
84
+ aa_bulletin_board-2.3.0.dist-info/METADATA,sha256=NcdoithnbOfqNOv4yyXimmHF4G5neipqOmsbeOrUyKU,58061
85
+ aa_bulletin_board-2.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
86
+ aa_bulletin_board-2.3.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
87
+ aa_bulletin_board-2.3.0.dist-info/RECORD,,