aa-bulletin-board 1.10.0__py3-none-any.whl → 1.11.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 (56) hide show
  1. aa_bulletin_board/__init__.py +5 -2
  2. aa_bulletin_board/apps.py +3 -1
  3. aa_bulletin_board/auth_hooks.py +15 -8
  4. aa_bulletin_board/docs/screenshots/weblate/.gitkeep +0 -0
  5. aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-bulletin-created-message.jpg +0 -0
  6. aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-group-restrictions.jpg +0 -0
  7. aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-headline.jpg +0 -0
  8. aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-hint-group-restrictions.jpg +0 -0
  9. aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-menu-item.jpg +0 -0
  10. aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-read-more-button.jpg +0 -0
  11. aa_bulletin_board/forms.py +8 -6
  12. aa_bulletin_board/helpers.py +15 -6
  13. aa_bulletin_board/locale/de/LC_MESSAGES/django.mo +0 -0
  14. aa_bulletin_board/locale/de/LC_MESSAGES/django.po +69 -25
  15. aa_bulletin_board/locale/django.pot +61 -19
  16. aa_bulletin_board/locale/es/LC_MESSAGES/django.po +61 -19
  17. aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +61 -19
  18. aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +61 -19
  19. aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +61 -19
  20. aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +61 -19
  21. aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo +0 -0
  22. aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +71 -27
  23. aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo +0 -0
  24. aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +75 -28
  25. aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +61 -19
  26. aa_bulletin_board/managers.py +8 -3
  27. aa_bulletin_board/migrations/0001_initial.py +0 -1
  28. aa_bulletin_board/migrations/0002_alter_bulletin_slug.py +0 -1
  29. aa_bulletin_board/migrations/0003_group_restrictions.py +0 -1
  30. aa_bulletin_board/migrations/0004_model_translation.py +71 -0
  31. aa_bulletin_board/models.py +34 -8
  32. aa_bulletin_board/static/aa_bulletin_board/css/aa-bootstrap-fix.css +5 -5
  33. aa_bulletin_board/static/aa_bulletin_board/css/aa-bootstrap-fix.min.css +1 -1
  34. aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.css +11 -0
  35. aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css +1 -1
  36. aa_bulletin_board/templates/aa_bulletin_board/base.html +5 -1
  37. aa_bulletin_board/templates/aa_bulletin_board/bulletin.html +6 -6
  38. aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html +1 -1
  39. aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html +1 -1
  40. aa_bulletin_board/templates/aa_bulletin_board/dashboard.html +9 -7
  41. aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html +7 -5
  42. aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html +11 -0
  43. aa_bulletin_board/templatetags/aa_bulletin_board_versioned_static.py +2 -1
  44. aa_bulletin_board/tests/test_access.py +61 -37
  45. aa_bulletin_board/tests/test_auth_hooks.py +18 -9
  46. aa_bulletin_board/tests/test_bulletins.py +102 -41
  47. aa_bulletin_board/tests/test_templatetags.py +9 -6
  48. aa_bulletin_board/tests/test_user_interface.py +88 -46
  49. aa_bulletin_board/tests/utils.py +33 -4
  50. aa_bulletin_board/urls.py +7 -5
  51. aa_bulletin_board/views.py +86 -33
  52. {aa_bulletin_board-1.10.0.dist-info → aa_bulletin_board-1.11.0.dist-info}/METADATA +2 -7
  53. aa_bulletin_board-1.11.0.dist-info/RECORD +63 -0
  54. {aa_bulletin_board-1.10.0.dist-info → aa_bulletin_board-1.11.0.dist-info}/WHEEL +1 -1
  55. aa_bulletin_board-1.10.0.dist-info/RECORD +0 -54
  56. {aa_bulletin_board-1.10.0.dist-info → aa_bulletin_board-1.11.0.dist-info}/licenses/LICENSE +0 -0
aa_bulletin_board/urls.py CHANGED
@@ -11,9 +11,11 @@ from aa_bulletin_board import views
11
11
  app_name: str = "aa_bulletin_board"
12
12
 
13
13
  urlpatterns = [
14
- path("", views.dashboard, name="dashboard"),
15
- path("create/", views.create_bulletin, name="create_bulletin"),
16
- path("bulletin/<slug:slug>/", views.view_bulletin, name="view_bulletin"),
17
- path("edit/<slug:slug>/", views.edit_bulletin, name="edit_bulletin"),
18
- path("remove/<slug:slug>/", views.remove_bulletin, name="remove_bulletin"),
14
+ path(route="", view=views.dashboard, name="dashboard"),
15
+ path(route="create/", view=views.create_bulletin, name="create_bulletin"),
16
+ path(route="bulletin/<slug:slug>/", view=views.view_bulletin, name="view_bulletin"),
17
+ path(route="edit/<slug:slug>/", view=views.edit_bulletin, name="edit_bulletin"),
18
+ path(
19
+ route="remove/<slug:slug>/", view=views.remove_bulletin, name="remove_bulletin"
20
+ ),
19
21
  ]
@@ -6,7 +6,9 @@ The views
6
6
  from django.contrib import messages
7
7
  from django.contrib.auth.decorators import login_required, permission_required
8
8
  from django.contrib.auth.models import Group
9
+ from django.core.handlers.wsgi import WSGIRequest
9
10
  from django.db.models import Prefetch
11
+ from django.http import HttpResponse, HttpResponseRedirect
10
12
  from django.shortcuts import redirect, render
11
13
  from django.utils import timezone
12
14
  from django.utils.translation import gettext_lazy as _
@@ -16,36 +18,48 @@ from aa_bulletin_board.forms import Bulletin, BulletinForm
16
18
 
17
19
 
18
20
  @login_required
19
- @permission_required("aa_bulletin_board.basic_access")
20
- def dashboard(request):
21
+ @permission_required(perm="aa_bulletin_board.basic_access")
22
+ def dashboard(request: WSGIRequest) -> HttpResponse:
21
23
  """
22
24
  Index view
25
+
26
+ :param request:
27
+ :type request:
28
+ :return:
29
+ :rtype:
23
30
  """
24
31
 
25
32
  bulletins = (
26
33
  Bulletin.objects.prefetch_related(
27
- Prefetch("groups", queryset=Group.objects.order_by("name"))
34
+ Prefetch(lookup="groups", queryset=Group.objects.order_by("name"))
28
35
  )
29
- .user_has_access(request.user)
36
+ .user_has_access(user=request.user)
30
37
  .order_by("-created_date")
31
38
  )
32
39
  context = {"bulletins": bulletins}
33
40
 
34
- return render(request, "aa_bulletin_board/dashboard.html", context)
41
+ return render(
42
+ request=request,
43
+ template_name="aa_bulletin_board/dashboard.html",
44
+ context=context,
45
+ )
35
46
 
36
47
 
37
48
  @login_required
38
- @permission_required("aa_bulletin_board.manage_bulletins")
39
- def create_bulletin(request):
49
+ @permission_required(perm="aa_bulletin_board.manage_bulletins")
50
+ def create_bulletin(request: WSGIRequest) -> HttpResponse:
40
51
  """
41
52
  Edit an existing bulletin
53
+
42
54
  :param request:
55
+ :type request:
43
56
  :return:
57
+ :rtype:
44
58
  """
45
59
 
46
60
  if request.method == "POST":
47
61
  # Create a form instance and populate it with data
48
- form = BulletinForm(request.POST)
62
+ form = BulletinForm(data=request.POST)
49
63
 
50
64
  # Check whether it's valid:
51
65
  if form.is_valid():
@@ -60,51 +74,74 @@ def create_bulletin(request):
60
74
  bulletin.created_by = request.user
61
75
  bulletin.save()
62
76
 
63
- bulletin.groups.set(form.cleaned_data["groups"])
77
+ bulletin.groups.set( # pylint: disable=no-member
78
+ form.cleaned_data["groups"]
79
+ )
64
80
 
65
- messages.success(request, _(f'Bulletin "{bulletin__title}" created.'))
81
+ messages.success(
82
+ request=request, message=_(f'Bulletin "{bulletin__title}" created.')
83
+ )
66
84
 
67
- return redirect("aa_bulletin_board:view_bulletin", bulletin.slug)
85
+ return redirect(to="aa_bulletin_board:view_bulletin", slug=bulletin.slug)
68
86
  else:
69
87
  form = BulletinForm()
70
88
 
71
89
  context = {"form": form, "bulletin": False}
72
90
 
73
- return render(request, "aa_bulletin_board/edit-bulletin.html", context)
91
+ return render(
92
+ request=request,
93
+ template_name="aa_bulletin_board/edit-bulletin.html",
94
+ context=context,
95
+ )
74
96
 
75
97
 
76
98
  @login_required
77
- @permission_required("aa_bulletin_board.basic_access")
78
- def view_bulletin(request, slug):
99
+ @permission_required(perm="aa_bulletin_board.basic_access")
100
+ def view_bulletin(request: WSGIRequest, slug: str) -> HttpResponse:
79
101
  """
80
102
  View a bulletin
103
+
104
+ :param request:
105
+ :type request:
106
+ :param slug:
107
+ :type slug:
108
+ :return:
109
+ :rtype:
81
110
  """
82
111
 
83
112
  try:
84
113
  bulletin = Bulletin.objects.user_has_access(request.user).get(slug=slug)
85
114
  context = {"bulletin": bulletin, "slug": slug}
86
115
 
87
- return render(request, "aa_bulletin_board/bulletin.html", context)
88
- except Bulletin.DoesNotExist:
116
+ return render(
117
+ request=request,
118
+ template_name="aa_bulletin_board/bulletin.html",
119
+ context=context,
120
+ )
121
+ except Bulletin.DoesNotExist: # pylint: disable=no-member
89
122
  messages.warning(
90
- request,
91
- _(
123
+ request=request,
124
+ message=_(
92
125
  "The bulletin you are looking for does not exist, "
93
126
  "or you don't have access to it."
94
127
  ),
95
128
  )
96
129
 
97
- return redirect("aa_bulletin_board:dashboard")
130
+ return redirect(to="aa_bulletin_board:dashboard")
98
131
 
99
132
 
100
133
  @login_required
101
- @permission_required("aa_bulletin_board.manage_bulletins")
102
- def edit_bulletin(request, slug):
134
+ @permission_required(perm="aa_bulletin_board.manage_bulletins")
135
+ def edit_bulletin(request: WSGIRequest, slug: str) -> HttpResponse:
103
136
  """
104
137
  Edit an existing bulletin
138
+
105
139
  :param request:
140
+ :type request:
106
141
  :param slug:
142
+ :type slug:
107
143
  :return:
144
+ :rtype:
108
145
  """
109
146
 
110
147
  try:
@@ -112,7 +149,7 @@ def edit_bulletin(request, slug):
112
149
 
113
150
  if request.method == "POST":
114
151
  # Create a form instance and populate it with data
115
- form = BulletinForm(request.POST, instance=bulletin)
152
+ form = BulletinForm(data=request.POST, instance=bulletin)
116
153
 
117
154
  # Check whether it's valid:
118
155
  if form.is_valid():
@@ -126,42 +163,58 @@ def edit_bulletin(request, slug):
126
163
  bulletin.groups.set(form.cleaned_data["groups"])
127
164
  bulletin.save()
128
165
 
129
- messages.success(request, _(f'Bulletin "{bulletin__title}" updated.'))
166
+ messages.success(
167
+ request=request, message=_(f'Bulletin "{bulletin__title}" updated.')
168
+ )
130
169
 
131
- return redirect("aa_bulletin_board:view_bulletin", bulletin.slug)
170
+ return redirect(
171
+ to="aa_bulletin_board:view_bulletin", slug=bulletin.slug
172
+ )
132
173
  else:
133
174
  form = BulletinForm(instance=bulletin)
134
175
 
135
176
  context = {"form": form, "existing_bulletin": True, "bulletin": bulletin}
136
177
 
137
- return render(request, "aa_bulletin_board/edit-bulletin.html", context)
138
- except Bulletin.DoesNotExist:
178
+ return render(
179
+ request=request,
180
+ template_name="aa_bulletin_board/edit-bulletin.html",
181
+ context=context,
182
+ )
183
+ except Bulletin.DoesNotExist: # pylint: disable=no-member
139
184
  messages.warning(
140
- request, _("The bulletin you are trying to edit for does not exist.")
185
+ request=request,
186
+ message=_("The bulletin you are trying to edit does not exist."),
141
187
  )
142
188
 
143
- return redirect("aa_bulletin_board:dashboard")
189
+ return redirect(to="aa_bulletin_board:dashboard")
144
190
 
145
191
 
146
192
  @login_required
147
193
  @permission_required("aa_bulletin_board.manage_bulletins")
148
- def remove_bulletin(request, slug):
194
+ def remove_bulletin(request: WSGIRequest, slug: str) -> HttpResponseRedirect:
149
195
  """
150
196
  Remove bulletin
197
+
151
198
  :param request:
199
+ :type request:
152
200
  :param slug:
201
+ :type slug:
153
202
  :return:
203
+ :rtype:
154
204
  """
155
205
 
156
206
  try:
157
207
  bulletin = Bulletin.objects.get(slug=slug)
158
208
 
159
- messages.success(request, _(f'Bulletin "{bulletin.title}" deleted.'))
209
+ messages.success(
210
+ request=request, message=_(f'Bulletin "{bulletin.title}" deleted.')
211
+ )
160
212
 
161
213
  bulletin.delete()
162
- except Bulletin.DoesNotExist:
214
+ except Bulletin.DoesNotExist: # pylint: disable=no-member
163
215
  messages.warning(
164
- request, _("The bulletin you are trying to delete for does not exist.")
216
+ request=request,
217
+ message=_("The bulletin you are trying to delete does not exist."),
165
218
  )
166
219
 
167
- return redirect("aa_bulletin_board:dashboard")
220
+ return redirect(to="aa_bulletin_board:dashboard")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aa-bulletin-board
3
- Version: 1.10.0
3
+ Version: 1.11.0
4
4
  Summary: A simple bulletin board for Alliance Auth
5
5
  Project-URL: Homepage, https://github.com/ppfeufer/aa-bulletin-board
6
6
  Project-URL: Documentation, https://github.com/ppfeufer/aa-bulletin-board/blob/master/README.md
@@ -43,6 +43,7 @@ Description-Content-Type: text/markdown
43
43
  [![Discord](https://img.shields.io/discord/790364535294132234?label=discord)](https://discord.gg/zmh52wnfvM)
44
44
  [![Automated Checks](https://github.com/ppfeufer/aa-bulletin-board/actions/workflows/automated-checks.yml/badge.svg)](https://github.com/ppfeufer/aa-bulletin-board/actions/workflows/automated-checks.yml)
45
45
  [![codecov](https://codecov.io/gh/ppfeufer/aa-bulletin-board/branch/master/graph/badge.svg?token=UCXABR42QC)](https://codecov.io/gh/ppfeufer/aa-bulletin-board)
46
+ [![Translation Status](https://weblate.ppfeufer.de/widgets/alliance-auth-apps/-/aa-bulletin-board/svg-badge.svg)](https://weblate.ppfeufer.de/engage/alliance-auth-apps/)
46
47
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/ppfeufer/aa-forum/blob/master/CODE_OF_CONDUCT.md)
47
48
 
48
49
  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N8CL1BY)
@@ -55,7 +56,6 @@ Simple bulletin board for [Alliance Auth](https://gitlab.com/allianceauth/allian
55
56
  <!-- TOC -->
56
57
  * [AA Bulletin Board](#aa-bulletin-board)
57
58
  * [⚠️ Before You Install This Module ⚠️](#-before-you-install-this-module-)
58
- * [Overview](#overview)
59
59
  * [Installation](#installation)
60
60
  * [Step 1: Install the Package](#step-1-install-the-package)
61
61
  * [Step 2: Configure Alliance Auth](#step-2-configure-alliance-auth)
@@ -82,11 +82,6 @@ Auth. So please only install if you know what you're doing/feel comfortable to m
82
82
  these kinds of changes. For your own sanity, and mine :-)
83
83
 
84
84
 
85
- ## Overview
86
-
87
- Work in progress on this one
88
-
89
-
90
85
  ## Installation
91
86
 
92
87
  **Important**: Please make sure you meet all preconditions before you proceed:
@@ -0,0 +1,63 @@
1
+ aa_bulletin_board/__init__.py,sha256=CqCqdk-Co7nxjY-Mr6OzAtHUHgiH86E967CHaG57HWQ,250
2
+ aa_bulletin_board/apps.py,sha256=HOWDLTEbu28eBt4rggDhzqlZbv6iu1BfzNk7u4FnuUw,474
3
+ aa_bulletin_board/auth_hooks.py,sha256=vjiSt59_mGH09bARmnJGD02OYukuPQWrZnTR61zDUpE,1439
4
+ aa_bulletin_board/forms.py,sha256=A5pnKh67h61bn-u-pOIkKNOwreTG2U5gjuUo80_9mUk,2592
5
+ aa_bulletin_board/helpers.py,sha256=r0EvKX5ai_69c6PNbDTcX3cn33-pCagQZzYAQibieZA,737
6
+ aa_bulletin_board/managers.py,sha256=BIoUNyLOpJftKs4I05eG2DC6zPGWzCrFhL2nAGUMVos,1066
7
+ aa_bulletin_board/models.py,sha256=XRUOonE6hXUlXqXEzNsr2pinkxnK1nWpxmUsElmH-XE,3553
8
+ aa_bulletin_board/urls.py,sha256=giE7z-t8zpC3mPzPYblMLrkSTn5v7ad4NoJsSk-Jsfg,595
9
+ aa_bulletin_board/views.py,sha256=kLrqS_pLYzNwewW4yncx66hv52MR1pFBy8SxCw7fAoQ,6206
10
+ aa_bulletin_board/docs/screenshots/weblate/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-bulletin-created-message.jpg,sha256=9pIkcdCM3Sq4fEYTWrH8d0oqQt5Mn7nGNTPRsSenSRY,41699
12
+ aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-group-restrictions.jpg,sha256=SFPZkhIuZfPHln1ftg5G7M5Q-Rh_yTvVBtS4bZcHOgA,8985
13
+ aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-headline.jpg,sha256=7iDsAXr86qRmQPrgYszE1wN2cHk2scGLDE-Tin7RJJU,46872
14
+ aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-hint-group-restrictions.jpg,sha256=-E0WyDO5eX9KHL7tCGxBRTNmn5Tk9ia8HWdwG7QnCRg,14518
15
+ aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-menu-item.jpg,sha256=CidtsE3HufmoRE4EFcMEQE-j8SSUBiZ0EK81k6-TY0c,14084
16
+ aa_bulletin_board/docs/screenshots/weblate/aa-bulletin-board-read-more-button.jpg,sha256=tVOyp4BJgRSbxVQ86l2sUB8XDg3lFMWXb5lJM1B4K4c,14127
17
+ aa_bulletin_board/locale/django.pot,sha256=jPunk91i41KIW21wL6-0ElATqWWhCVQ-mY3lDti_N4U,3698
18
+ aa_bulletin_board/locale/de/LC_MESSAGES/django.mo,sha256=UZFh5J9HIAR1W-L4lMHoa_wNHtYLhDHSQYyynmrz2xY,2932
19
+ aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=hkzidQZjVscpReVrCh-C7SanXgY20jqpOf1sdPxfYog,4825
20
+ aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=tmUW-Ub1o_75mOZJ1hhwJz6xE3WXOFETKAYzNAqj6Ds,3745
21
+ aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=jPunk91i41KIW21wL6-0ElATqWWhCVQ-mY3lDti_N4U,3698
22
+ aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=jPunk91i41KIW21wL6-0ElATqWWhCVQ-mY3lDti_N4U,3698
23
+ aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=SoXy5rAJ1SE191cTaxLzkImkbtC7nHLHfVYPyTMohxc,3738
24
+ aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=jPunk91i41KIW21wL6-0ElATqWWhCVQ-mY3lDti_N4U,3698
25
+ aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo,sha256=wgHtnEfbqqFk8g3PAxF8bMMjBNCMWvwFBSTPdaSuaI8,3604
26
+ aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=GQwoZu5JvD8dxKbKQhaAo2irM1O7dsoFC3Jb8W9o2lc,5540
27
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=_R2YfT2I5EKZoqnkjNjbvs515Ubj91D5rgtQFDxh5yA,2910
28
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=YH6qo5dJqnPe_i17uw0w_3DY0plnUJ2_mop5lCkdjtw,5546
29
+ aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=SoXy5rAJ1SE191cTaxLzkImkbtC7nHLHfVYPyTMohxc,3738
30
+ aa_bulletin_board/migrations/0001_initial.py,sha256=Z83f0RFW5vYw-4saG2EexBPcbctkGJe8QWDGJIsx5h0,2811
31
+ aa_bulletin_board/migrations/0002_alter_bulletin_slug.py,sha256=j6jgInd8CB7cbRU0cKl87GQaWw6ifZercIs5WCWegKw,427
32
+ aa_bulletin_board/migrations/0003_group_restrictions.py,sha256=zjWr5H8yfdSsJVLbqUUhgSAfrW6A2CVavrlFxfaFZGg,959
33
+ aa_bulletin_board/migrations/0004_model_translation.py,sha256=ZRSyZk6fh2_so-3gMxNcSTVrhgB2fQELhN89T-euAiw,2186
34
+ aa_bulletin_board/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ aa_bulletin_board/static/aa_bulletin_board/css/aa-bootstrap-fix.css,sha256=823I67Ghwq-uAC8jZfFHwugzuOUIMvxhmGBULOQi_Jo,324
36
+ aa_bulletin_board/static/aa_bulletin_board/css/aa-bootstrap-fix.min.css,sha256=7aKlgAk1BZzjvHUAm-CPIMgXLFp97TW3eCoSiHEVajw,124
37
+ aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.css,sha256=s_XEHUIx7U0bhavauiXZob5E_ptR0yEprm5NWIokmS4,2114
38
+ aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css,sha256=8bQTQK_7P7PBU64GYhL4CCTsQ1YZ0DsWLq2OM3KLJy4,1350
39
+ aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.8/jquery.sumoselect.js,sha256=zu8vdTI3bQ3HJh9Cfb0TF4P7RfDYr4nUB6S6uDOBMok,34280
40
+ aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.8/jquery.sumoselect.min.js,sha256=WX_oi7gk4FlUyESV3C9_hajlgknuy6SbOGvdDu_DHi4,22226
41
+ aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.8/sumoselect.min.css,sha256=0muqXQE7xbwFLUkp34AfrbvlKi2OPXgKtUgIZOUYqnY,7610
42
+ aa_bulletin_board/templates/aa_bulletin_board/base.html,sha256=GeFiSED3Ge54Amuysp6td5I4q_0IjQxkieqM2gnf2SU,605
43
+ aa_bulletin_board/templates/aa_bulletin_board/bulletin.html,sha256=Oh-mx-Cd_nYMARF-CWu8jwM0-XZxqNmDszmfMXwyR7E,1640
44
+ aa_bulletin_board/templates/aa_bulletin_board/dashboard.html,sha256=5kypdTVOWNx0i7Cn4o0_AQiPLKojgMFDkAhAkBazOgs,3787
45
+ aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html,sha256=zT5t50nmhmi3YwUv-DuwvINnhp9Q-1k1Gn9nKX76NdE,2407
46
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=xmqkjUZiI9ekGIDUS1uGPJGlGYx7mcBJ0AfZXoGYujk,270
47
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=SYYnfUObxk-JI1s0jI3Dn4SZMVU8aSipCUM2oA-xoCM,124
48
+ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=XWIpMD3GsGsWybUQqxDbUmYLJ39k6rtdiKc82icqxAs,123
49
+ aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html,sha256=Vaj9QK500wXZbw8X1Lc3NWL9WsO3Nz9YM8eujP-UR40,408
50
+ aa_bulletin_board/templates/aa_bulletin_board/partials/header/page-header.html,sha256=PPo9Sjl1aq9QSWhXzy8jxq4AWujiG5W_fP4h_XU3h_0,227
51
+ aa_bulletin_board/templatetags/__init__.py,sha256=sP2D1ovt2gGAPLcGQkByRgXYhvUJ6C52mZMlLIALQ8s,37
52
+ aa_bulletin_board/templatetags/aa_bulletin_board_versioned_static.py,sha256=ZNdLdHjTbqZwufP9fQEcmVcs5TZQEKe32yAHIK8urpQ,538
53
+ aa_bulletin_board/tests/__init__.py,sha256=dcMq6O8W1_8NSZobuRedXFQ3o4Zd6Q6Ti7eY-D6JaYI,18
54
+ aa_bulletin_board/tests/test_access.py,sha256=jRisc5UvNBsa_ewXZguFFivmBXv1ySM-aJbj7-NkkSs,6873
55
+ aa_bulletin_board/tests/test_auth_hooks.py,sha256=AWcATfALs7pF-bDgMPp2vFs43BfZ8UJSBylTbT8UyT0,2051
56
+ aa_bulletin_board/tests/test_bulletins.py,sha256=V2LucgSh3aPyavIBnDhRaqkZwJ5oPfvxvcIul3c6kCU,8633
57
+ aa_bulletin_board/tests/test_templatetags.py,sha256=x4UCa3t0U1l3qneWmNw2z_sBSCZ1X7pcURAXggtJTDQ,1075
58
+ aa_bulletin_board/tests/test_user_interface.py,sha256=tbBZPEu_Xkeqewwp0sS1rxKCFJoQsWqFgCUOF5rXR8c,8440
59
+ aa_bulletin_board/tests/utils.py,sha256=MXHmIH6pHF8ikFNDdpDT7jb7AYqr9UbI4ntNQrqBUP0,1919
60
+ aa_bulletin_board-1.11.0.dist-info/METADATA,sha256=_DskIwMmWwe82z6m758ebIo3CLeNk3Fzq0O5hCHzfbA,14718
61
+ aa_bulletin_board-1.11.0.dist-info/WHEEL,sha256=9QBuHhg6FNW7lppboF2vKVbCGTVzsFykgRQjjlajrhA,87
62
+ aa_bulletin_board-1.11.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
63
+ aa_bulletin_board-1.11.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.14.0
2
+ Generator: hatchling 1.18.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,54 +0,0 @@
1
- aa_bulletin_board/__init__.py,sha256=vMJ6yKikLzxlw3mx6GUt55Gvn_EyCLC857ear7IUsok,164
2
- aa_bulletin_board/apps.py,sha256=9xIcaWFK8ngNhLb47iQ6LQ6NoEuFHKYlxHc66Y-DTfg,323
3
- aa_bulletin_board/auth_hooks.py,sha256=QSDQo8oR5VQyl0XU2XgC8DGzvn3b85GbV0mqt6I9Wys,1367
4
- aa_bulletin_board/forms.py,sha256=vp-pdHtjb5FonyzuUy8_7dHpKXWMwKY-ZnPmjIPubwU,2539
5
- aa_bulletin_board/helpers.py,sha256=vOMHYE34bmmu-UdgWhRJtbwSwFkgOMGP40lJe4Q3t1k,591
6
- aa_bulletin_board/managers.py,sha256=97mHs6gUMwYsjqhQ8k_ctWmuFEtBy94-K2QjIlBgrpk,970
7
- aa_bulletin_board/models.py,sha256=Z0gVkKI0W46LHTgD2WyNgsf8XnLLaiOvV-hoxc0_ocI,2931
8
- aa_bulletin_board/urls.py,sha256=yhxFWgslEb1s-cB8-3e2W1p9tyuvut9_WzJ2BmPajLc,526
9
- aa_bulletin_board/views.py,sha256=36mkZlQYGPf93PSCkpxnd9IGv6_1epFd--9Y7xW50HU,4907
10
- aa_bulletin_board/locale/django.pot,sha256=ye_0dw0zF3Ul4I8MQNjYIoV_dfEQMpArxzgXmkkAqFE,2781
11
- aa_bulletin_board/locale/de/LC_MESSAGES/django.mo,sha256=_4xT9s6-meHfU-icGqWz8Qa7i-lAwSwDTIgw8RPBbdo,2299
12
- aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=e5eG_Q0vzpvaps3GnW1xn9eM3rM_bue6yjfa_wPdR5Q,3678
13
- aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=4AeE4wr1ZHag7phDCJEg7oBCrTdGjJQ_-cdsItuERdo,2828
14
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=slEnXduKrcBiKtMS3ufqkn42Z3g4pttJgstjfsN75eE,2781
15
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=slEnXduKrcBiKtMS3ufqkn42Z3g4pttJgstjfsN75eE,2781
16
- aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=bl7KE06c9JCTnR6dvDbf2tzO_qG3hYyAonCYKShmMjo,2821
17
- aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=slEnXduKrcBiKtMS3ufqkn42Z3g4pttJgstjfsN75eE,2781
18
- aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo,sha256=m9UFn3vuDYwPdAXGirhxPzoF3yoIJZxir9Ws786qyEY,2696
19
- aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=mbn2XDA4Hyq4x0o5TWHj3vkMB96IWEXjImElQgfOUEQ,4113
20
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=-bj2GJVqPPTtdA-4pMEEzhdmjEKNXYn4fPaLywVEMBE,2922
21
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=RSuygKUWBdql0ZFH8dSVDJ1GcM6FI2lLXG5dYEfCXY8,4197
22
- aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=bl7KE06c9JCTnR6dvDbf2tzO_qG3hYyAonCYKShmMjo,2821
23
- aa_bulletin_board/migrations/0001_initial.py,sha256=14ft4G8DDudV5axg4ruh4uIxlDuvgsAkvcv4CIpi2DU,2812
24
- aa_bulletin_board/migrations/0002_alter_bulletin_slug.py,sha256=cfT4iDMkRuGGHoWQZ0Cyzzv20v9GHO0Gw-jayNdlJoc,428
25
- aa_bulletin_board/migrations/0003_group_restrictions.py,sha256=p4htzKVmYGIIyiMhGgyYwg8hjIy4YiIOHNxbShZ4Lp0,960
26
- aa_bulletin_board/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- aa_bulletin_board/static/aa_bulletin_board/css/aa-bootstrap-fix.css,sha256=T-WZlVAY2jjRkL3WULxwSBwsyTXxS69Evt2jypiUaAg,315
28
- aa_bulletin_board/static/aa_bulletin_board/css/aa-bootstrap-fix.min.css,sha256=05SIVOm0g99VRajMti3PFcbB7WYCJt2wrGH44mk_rTI,115
29
- aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.css,sha256=zjySNBgJGf7YO2K7KxdLzFhuPS27sddlZsCz9hzi3yw,1854
30
- aa_bulletin_board/static/aa_bulletin_board/css/aa-bulletin-board.min.css,sha256=oxRvgeALR3pNDCsbMBnXulmlzRh-G70xoSqOcERt3ac,1166
31
- aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.8/jquery.sumoselect.js,sha256=zu8vdTI3bQ3HJh9Cfb0TF4P7RfDYr4nUB6S6uDOBMok,34280
32
- aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.8/jquery.sumoselect.min.js,sha256=WX_oi7gk4FlUyESV3C9_hajlgknuy6SbOGvdDu_DHi4,22226
33
- aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.8/sumoselect.min.css,sha256=0muqXQE7xbwFLUkp34AfrbvlKi2OPXgKtUgIZOUYqnY,7610
34
- aa_bulletin_board/templates/aa_bulletin_board/base.html,sha256=ibZXNDPUfvFOwGjggkzKjdke8c9CnLCN_ZrrGxHbiNM,452
35
- aa_bulletin_board/templates/aa_bulletin_board/bulletin.html,sha256=5Z21YyF_ZR4GisLl-8R_2so0EsgXAksGDpSpurDe3Rw,1640
36
- aa_bulletin_board/templates/aa_bulletin_board/dashboard.html,sha256=RWFJp_ZSbzbXDqUlEEFaddaOOOmHr8CIu48GvlaqUww,3760
37
- aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html,sha256=C946ZMnzASTh7L9_RJT6otm4ZVaXwPyFFuo0G6jMOY0,2384
38
- aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=xmqkjUZiI9ekGIDUS1uGPJGlGYx7mcBJ0AfZXoGYujk,270
39
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256=4RvH8zeVVb_tyfmS99dT7EPp357bxGisna9ViIoNPzw,140
40
- aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=ecHe2GeEfRbBcNCN5_gabenyXE6IRSkMbDc3n4IhK4Y,153
41
- aa_bulletin_board/templates/aa_bulletin_board/partials/header/page-header.html,sha256=PPo9Sjl1aq9QSWhXzy8jxq4AWujiG5W_fP4h_XU3h_0,227
42
- aa_bulletin_board/templatetags/__init__.py,sha256=sP2D1ovt2gGAPLcGQkByRgXYhvUJ6C52mZMlLIALQ8s,37
43
- aa_bulletin_board/templatetags/aa_bulletin_board_versioned_static.py,sha256=dxZPAnqO3wCDpM-sidoTxykGD8j1_5rlqm-iXOhAAl8,532
44
- aa_bulletin_board/tests/__init__.py,sha256=dcMq6O8W1_8NSZobuRedXFQ3o4Zd6Q6Ti7eY-D6JaYI,18
45
- aa_bulletin_board/tests/test_access.py,sha256=MOZxB3ufZBGz3SMjIV19JjLzwhWMI0ZF_oYlc-psmW0,6188
46
- aa_bulletin_board/tests/test_auth_hooks.py,sha256=tNbjPQCdLqaFzm32KSwtjRK0P2OHwrtiNkCAIUPXGaw,1849
47
- aa_bulletin_board/tests/test_bulletins.py,sha256=tThyaX2E7ZlrYB9yd4D-ZrFS-9um5wTDMi8AQQoEGyw,6952
48
- aa_bulletin_board/tests/test_templatetags.py,sha256=682RH5ES9yF0wdgD-h3jOV5Cbz9D2aDqGyEBL5Avu_0,924
49
- aa_bulletin_board/tests/test_user_interface.py,sha256=6kz4m8ViEz9BNChS0MExRZnB1AIB4HvzZU8ZvDJTLzw,7486
50
- aa_bulletin_board/tests/utils.py,sha256=E6N4wITGLwMFoTENBVkd3Jz3q8WNQMdFdCJOW4j-gS8,1403
51
- aa_bulletin_board-1.10.0.dist-info/METADATA,sha256=uzqMxUngAp47RTT0Jut9TzqF-FX_lciB1F4TnnKS92c,14618
52
- aa_bulletin_board-1.10.0.dist-info/WHEEL,sha256=EI2JsGydwUL5GP9t6kzZv7G3HDPi7FuZDDf9In6amRM,87
53
- aa_bulletin_board-1.10.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
54
- aa_bulletin_board-1.10.0.dist-info/RECORD,,