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.
- aa_bulletin_board/__init__.py +1 -1
- aa_bulletin_board/constants.py +11 -0
- aa_bulletin_board/helper/__init__.py +0 -0
- aa_bulletin_board/helper/static_files.py +39 -0
- aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po +8 -20
- aa_bulletin_board/locale/de/LC_MESSAGES/django.po +8 -21
- aa_bulletin_board/locale/django.pot +1 -1
- aa_bulletin_board/locale/es/LC_MESSAGES/django.po +8 -21
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +14 -25
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +8 -15
- aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +6 -15
- aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +7 -18
- aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po +5 -12
- aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po +7 -17
- aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +8 -20
- aa_bulletin_board/locale/sk/LC_MESSAGES/django.po +6 -14
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +9 -24
- aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +6 -15
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html +1 -1
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html +1 -1
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html +1 -1
- aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html +2 -2
- aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html +2 -2
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +2 -2
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +2 -2
- aa_bulletin_board/templatetags/aa_bulletin_board.py +57 -9
- aa_bulletin_board/tests/test_templatetags.py +47 -7
- {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/METADATA +21 -21
- {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/RECORD +33 -30
- {aa_bulletin_board-2.2.5.dist-info → aa_bulletin_board-2.3.0.dist-info}/WHEEL +1 -1
- {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:
|
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
|
-
"
|
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
|
-
"
|
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:
|
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:
|
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
|
-
"
|
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
|
-
"
|
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
|
-
|
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:
|
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
|
-
|
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
|
-
{% load
|
1
|
+
{% load sri %}
|
2
2
|
|
3
|
-
|
3
|
+
{% sri_static "django_ckeditor_5/dist/styles.css" %}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
{% load
|
1
|
+
{% load sri %}
|
2
2
|
|
3
|
-
|
3
|
+
{% sri_static "django_ckeditor_5/dist/bundle.js" %}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
{% load
|
1
|
+
{% load aa_bulletin_board %}
|
2
2
|
|
3
|
-
|
3
|
+
{% aa_bulletin_board_static "libs/sumoselect/3.4.9/sumoselect.min.css" %}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
{% load
|
1
|
+
{% load aa_bulletin_board %}
|
2
2
|
|
3
|
-
|
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(
|
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
|
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
|
-
|
25
|
-
|
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
|
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
|
-
|
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 '
|
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
|
-
|
37
|
-
|
38
|
-
|
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.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: aa-bulletin-board
|
3
|
-
Version: 2.
|
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.
|
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=
|
734
|
-
|
735
|
-
- [
|
736
|
-
|
737
|
-
- [
|
738
|
-
|
739
|
-
- [
|
740
|
-
|
741
|
-
|
742
|
-
- [
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
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=
|
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/
|
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=
|
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=
|
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=
|
17
|
-
aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo,sha256=
|
18
|
-
aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=
|
19
|
-
aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo,sha256=
|
20
|
-
aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
63
|
-
aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html,sha256=
|
64
|
-
aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html,sha256=
|
65
|
-
aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-css.html,sha256=
|
66
|
-
aa_bulletin_board/templates/aa_bulletin_board/bundles/ckeditor5-js.html,sha256=
|
67
|
-
aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=
|
68
|
-
aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=
|
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=
|
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=
|
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.
|
82
|
-
aa_bulletin_board-2.
|
83
|
-
aa_bulletin_board-2.
|
84
|
-
aa_bulletin_board-2.
|
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,,
|