aa-bulletin-board 2.3.2__py3-none-any.whl → 2.3.3__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 (32) hide show
  1. aa_bulletin_board/__init__.py +1 -1
  2. aa_bulletin_board/auth_hooks.py +5 -4
  3. aa_bulletin_board/forms.py +8 -3
  4. aa_bulletin_board/helper/static_files.py +3 -5
  5. aa_bulletin_board/helper/string.py +22 -0
  6. aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po +12 -12
  7. aa_bulletin_board/locale/de/LC_MESSAGES/django.po +12 -12
  8. aa_bulletin_board/locale/django.pot +13 -13
  9. aa_bulletin_board/locale/es/LC_MESSAGES/django.po +12 -12
  10. aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po +12 -12
  11. aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po +12 -12
  12. aa_bulletin_board/locale/ja/LC_MESSAGES/django.po +12 -12
  13. aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po +12 -12
  14. aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po +12 -12
  15. aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po +12 -12
  16. aa_bulletin_board/locale/ru/LC_MESSAGES/django.po +12 -12
  17. aa_bulletin_board/locale/sk/LC_MESSAGES/django.po +12 -12
  18. aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo +0 -0
  19. aa_bulletin_board/locale/uk/LC_MESSAGES/django.po +21 -41
  20. aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po +12 -12
  21. aa_bulletin_board/models.py +7 -11
  22. aa_bulletin_board/templates/aa_bulletin_board/bulletin.html +1 -1
  23. aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html +2 -2
  24. aa_bulletin_board/tests/test_bulletins.py +1 -1
  25. aa_bulletin_board/tests/test_forms.py +181 -0
  26. aa_bulletin_board/tests/test_user_interface.py +1 -1
  27. {aa_bulletin_board-2.3.2.dist-info → aa_bulletin_board-2.3.3.dist-info}/METADATA +1 -1
  28. {aa_bulletin_board-2.3.2.dist-info → aa_bulletin_board-2.3.3.dist-info}/RECORD +30 -30
  29. aa_bulletin_board/helpers.py +0 -34
  30. aa_bulletin_board/templates/aa_bulletin_board/partials/header/page-header.html +0 -9
  31. {aa_bulletin_board-2.3.2.dist-info → aa_bulletin_board-2.3.3.dist-info}/WHEEL +0 -0
  32. {aa_bulletin_board-2.3.2.dist-info → aa_bulletin_board-2.3.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,181 @@
1
+ """
2
+ Test for aa_bulletin_board.forms
3
+ """
4
+
5
+ # Django
6
+ from django.contrib.auth.models import Group
7
+ from django.test import TestCase
8
+
9
+ # AA Bulletin Board
10
+ from aa_bulletin_board.forms import (
11
+ BulletinForm,
12
+ SpecialModelChoiceIterator,
13
+ SpecialModelMultipleChoiceField,
14
+ )
15
+
16
+
17
+ class TestSpecialModelChoiceIterator(TestCase):
18
+ """
19
+ Tests for SpecialModelChoiceIterator
20
+ """
21
+
22
+ def test_iterates_over_queryset(self):
23
+ """
24
+ Test iterates over the queryset without re-fetching it
25
+
26
+ :return:
27
+ :rtype:
28
+ """
29
+
30
+ group1 = Group.objects.create(name="Group 1")
31
+ group2 = Group.objects.create(name="Group 2")
32
+
33
+ field = SpecialModelMultipleChoiceField(queryset=Group.objects.all())
34
+ iterator = SpecialModelChoiceIterator(field)
35
+
36
+ choices = list(iterator)
37
+
38
+ self.assertIn((group1.pk, str(group1)), choices)
39
+ self.assertIn((group2.pk, str(group2)), choices)
40
+
41
+ def test_includes_empty_label_if_set(self):
42
+ """
43
+ Test includes empty label if a label is set
44
+
45
+ :return:
46
+ :rtype:
47
+ """
48
+
49
+ field = SpecialModelMultipleChoiceField(queryset=Group.objects.all())
50
+ field.empty_label = "Select a group"
51
+ iterator = SpecialModelChoiceIterator(field)
52
+
53
+ choices = list(iterator)
54
+
55
+ self.assertIn(("", "Select a group"), choices)
56
+
57
+
58
+ class TestSpecialModelMultipleChoiceField(TestCase):
59
+ """
60
+ Tests for SpecialModelMultipleChoiceField
61
+ """
62
+
63
+ def test_sets_and_gets_queryset(self):
64
+ """
65
+ Test sets and gets the queryset without re-fetching it
66
+
67
+ :return:
68
+ :rtype:
69
+ """
70
+
71
+ field = SpecialModelMultipleChoiceField(queryset=Group.objects.none())
72
+ group1 = Group.objects.create(name="Group 1")
73
+ group2 = Group.objects.create(name="Group 2")
74
+ field.queryset = Group.objects.all()
75
+
76
+ self.assertEqual(list(field.queryset), [group1, group2])
77
+
78
+ def test_updates_widget_choices_when_queryset_is_set(self):
79
+ """
80
+ Test updates the widget choices when the queryset is set
81
+
82
+ :return:
83
+ :rtype:
84
+ """
85
+
86
+ field = SpecialModelMultipleChoiceField(queryset=Group.objects.none())
87
+ group1 = Group.objects.create(name="Group 1")
88
+ group2 = Group.objects.create(name="Group 2")
89
+ field.queryset = Group.objects.all()
90
+
91
+ self.assertIn((group1.pk, str(group1)), field.widget.choices)
92
+ self.assertIn((group2.pk, str(group2)), field.widget.choices)
93
+
94
+ def test_handles_empty_queryset(self):
95
+ """
96
+ Test handles empty queryset
97
+
98
+ :return:
99
+ :rtype:
100
+ """
101
+
102
+ field = SpecialModelMultipleChoiceField(queryset=Group.objects.none())
103
+
104
+ self.assertEqual(list(field.queryset), [])
105
+ self.assertEqual(list(field.widget.choices), [])
106
+
107
+
108
+ class TestBulletinForm(TestCase):
109
+ """
110
+ Tests for BulletinForm
111
+ """
112
+
113
+ def test_valid_form_with_groups_queryset(self):
114
+ """
115
+ Test valid form with groups queryset
116
+
117
+ :return:
118
+ :rtype:
119
+ """
120
+
121
+ group1 = Group.objects.create(name="Group 1")
122
+ group2 = Group.objects.create(name="Group 2")
123
+ form_data = {
124
+ "title": "Test Bulletin",
125
+ "content": "This is a test bulletin.",
126
+ "groups": [group1.pk, group2.pk],
127
+ }
128
+ form = BulletinForm(data=form_data, groups_queryset=Group.objects.all())
129
+
130
+ self.assertTrue(form.is_valid())
131
+
132
+ def test_invalid_form_without_title(self):
133
+ """
134
+ Test invalid form without title
135
+
136
+ :return:
137
+ :rtype:
138
+ """
139
+
140
+ form_data = {
141
+ "title": "",
142
+ "content": "This is a test bulletin.",
143
+ }
144
+ form = BulletinForm(data=form_data)
145
+
146
+ self.assertFalse(form.is_valid())
147
+ self.assertIn("title", form.errors)
148
+
149
+ def test_clean_raises_validation_error_for_empty_content(self):
150
+ """
151
+ Test clean raises validation error for empty content
152
+
153
+ :return:
154
+ :rtype:
155
+ """
156
+
157
+ form_data = {
158
+ "title": "Test Bulletin",
159
+ "content": " ",
160
+ }
161
+ form = BulletinForm(data=form_data)
162
+
163
+ self.assertFalse(form.is_valid())
164
+ self.assertIn("content", form.errors)
165
+
166
+ def test_clean_content_strips_unwanted_characters(self):
167
+ """
168
+ Test clean content strips unwanted characters
169
+
170
+ :return:
171
+ :rtype:
172
+ """
173
+
174
+ form_data = {
175
+ "title": "Test Bulletin",
176
+ "content": " <p>Test content</p> ",
177
+ }
178
+ form = BulletinForm(data=form_data)
179
+ form.is_valid()
180
+
181
+ self.assertEqual(form.cleaned_data["content"], "<p>Test content</p>")
@@ -11,7 +11,7 @@ from django.contrib.auth.models import Group
11
11
  from django.urls import reverse
12
12
 
13
13
  # AA Bulletin Board
14
- from aa_bulletin_board.helpers import string_cleanup
14
+ from aa_bulletin_board.helper.string import string_cleanup
15
15
  from aa_bulletin_board.models import Bulletin
16
16
  from aa_bulletin_board.tests.utils import create_fake_user
17
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-bulletin-board
3
- Version: 2.3.2
3
+ Version: 2.3.3
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
@@ -1,43 +1,43 @@
1
- aa_bulletin_board/__init__.py,sha256=JIdDDkmRIYVIwRuers7wc3Vh1tPHCvmTfhCI0soscKk,133
1
+ aa_bulletin_board/__init__.py,sha256=S8hQCh6msOIHvAipXVLju1N_qppoEwubV-_8EQesNkg,133
2
2
  aa_bulletin_board/app_settings.py,sha256=59zkVfW3JHj4kfovIFZYt3kWdXqDmBSF4kaIN0W6m40,244
3
3
  aa_bulletin_board/apps.py,sha256=RzL8kLrLzWMC3Q2VBAI8snXRTehqZ8TKtNozdrZe20A,513
4
- aa_bulletin_board/auth_hooks.py,sha256=fVJczFcCOScsLGCiyp1aSGRKgbTkTRWKxzJa1HCE5KY,1437
4
+ aa_bulletin_board/auth_hooks.py,sha256=F-5_gP7HI5RzwlF9GqI_pJTyOtq-V-ZhZLSpjpyQSe4,1456
5
5
  aa_bulletin_board/constants.py,sha256=FiSn7zyC39ubomxujNXX05_LHykhDRx0Hk-7Ao4LEtQ,446
6
- aa_bulletin_board/forms.py,sha256=7760EbyjVd3XobM8vU8X4Xn8mvCW_ra-_2nD7QH1gpc,3190
7
- aa_bulletin_board/helpers.py,sha256=921-X-4DogXt-MgjkPMy_NpP64c8JRHpylZf_NeN_Ow,772
6
+ aa_bulletin_board/forms.py,sha256=h5-J7Mr8Xjzi1SaLC4tWz8C7zlP4oXaOphD5-4Z4OL8,3325
8
7
  aa_bulletin_board/managers.py,sha256=BIoUNyLOpJftKs4I05eG2DC6zPGWzCrFhL2nAGUMVos,1066
9
- aa_bulletin_board/models.py,sha256=5C7NkAbgRWFnKeY_Y8uj02rHQbNpuW7bStxQ-C0_DRs,3653
8
+ aa_bulletin_board/models.py,sha256=MOWHCaB_XtCguN_Sa3phKQXZAK_irNUTq81Zq-s2V5U,3529
10
9
  aa_bulletin_board/urls.py,sha256=giE7z-t8zpC3mPzPYblMLrkSTn5v7ad4NoJsSk-Jsfg,595
11
10
  aa_bulletin_board/views.py,sha256=Eo5UHFMgbt1fuoh02gUKot58SG4d60XEfQWI1uJhlc8,6531
12
11
  aa_bulletin_board/helper/__init__.py,sha256=Xdjx16QiK1MmVpJ2Je074ddMWzhnyRX7omuxPomMaow,51
13
- aa_bulletin_board/helper/static_files.py,sha256=_gKf-hvIgzKgTcWQ79qbbxqVxqYIMIak_Q7safeSpyk,1099
14
- aa_bulletin_board/locale/django.pot,sha256=liHeK-SmKpe4rfhTuJ8rYsxPKHkvsuw8iG8IpmO2UnY,4909
12
+ aa_bulletin_board/helper/static_files.py,sha256=TVl9_3HLZ2umDejA79ahxGtk112nWojY4AUa6Mb30Is,1045
13
+ aa_bulletin_board/helper/string.py,sha256=TzRyxjHH7EPqCbd2-L_vz5L6CyrfS4SKQxUeEm0u2aQ,427
14
+ aa_bulletin_board/locale/django.pot,sha256=WsK1he7IH6NyK10agkcrKJcYE_xZBNyRU5jgHrg9XUk,4909
15
15
  aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.mo,sha256=ZhKB7486VzGz4lS72jucN0JWc3TPzADIo7UuN2sf5S8,3462
16
- aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po,sha256=GFjLxEzg05B16jyLhFUJw5i0FsFmxnPvK6cx3Vqi7vo,6241
16
+ aa_bulletin_board/locale/cs_CZ/LC_MESSAGES/django.po,sha256=WFHIQxwoFQf3cXwIG8-dQVZ7STwFzPRJ1W2HonQY_rs,6241
17
17
  aa_bulletin_board/locale/de/LC_MESSAGES/django.mo,sha256=m0YvI06FxR60jNRQDoy7_k-Yl1thl2VAoOqKoDeMdNg,3404
18
- aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=DXNpnDzDtuA16yBZuaLN2DhVmdbUgHahNQl-F2OIJI8,6146
18
+ aa_bulletin_board/locale/de/LC_MESSAGES/django.po,sha256=5VBTcjDXrXQLXOaJrtCD27cC0zpSjJf4IiPdL9AUrSU,6146
19
19
  aa_bulletin_board/locale/es/LC_MESSAGES/django.mo,sha256=kTDcOFWmMZ6EMuAm0MPLdyj4S57f_DhNPvCeEjCh40s,2665
20
- aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=2g6rECl-3GOom8eHdSBTNdSxxBY0Z_Lhq8nt17fotIU,6418
20
+ aa_bulletin_board/locale/es/LC_MESSAGES/django.po,sha256=oPzP6Z97prdsDLdxewtyV1_8x2QAwGlIjI1pS2m6i00,6418
21
21
  aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.mo,sha256=lCwF9Wa3wq6WqSAkrbBpDddAVEh2txGr_bPId74A3p0,1861
22
- aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=duOr2b4QREHSzl7FcXm_qQbjj_kj5FRjI5vUYV0OgI8,5961
22
+ aa_bulletin_board/locale/fr_FR/LC_MESSAGES/django.po,sha256=y9UqC86YRjohm4_4CZP2de_dxMhwhO25phgr6j3IznY,5961
23
23
  aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.mo,sha256=7eI69SSNv6OgS0bso_Mrw3DtapHmJXEyu_mqd7ke0dg,657
24
- aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=vAA-o8R7TpJud2g81HL55dv4PQaX0ofLnDKsymCZKHI,5080
24
+ aa_bulletin_board/locale/it_IT/LC_MESSAGES/django.po,sha256=-uTWd2nUModC8bJOjB1o3mnU0hvusMyCkIC3BplWSXY,5080
25
25
  aa_bulletin_board/locale/ja/LC_MESSAGES/django.mo,sha256=W8hWAIEQSTj1iJqMJFLjlp2Roeljr8dluVVSEHBw0bw,1503
26
- aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=Q4bcLmYShH0N780STnTBWwN_zQN-A3s0I1_URblj_PY,5430
26
+ aa_bulletin_board/locale/ja/LC_MESSAGES/django.po,sha256=xZcleMOWC5sQnrE-vt8Kvyq3XMkpNVia1D1fmxvT5nI,5430
27
27
  aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.mo,sha256=mTVxpRnoj-ErNxF0Y5gdbKVqNT0Za4p5DW0tBs2tURw,2569
28
- aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=jbl3Q2R18oyryTU-nhk9qxQK7PXTjNaoM60pKCFEJUs,6529
28
+ aa_bulletin_board/locale/ko_KR/LC_MESSAGES/django.po,sha256=mWkEflQMenONUZOh8SzExp0YSGKroG43_44zAfF4CRA,6529
29
29
  aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.mo,sha256=tomc7fMl3JZoZ_I1hTgDDigFt3RyaiR-3sTD7xYhg98,483
30
- aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po,sha256=lsZ-q0ZQoh8YhjNsxh9sV6D-j8YaXfr8xmOFrWQakOc,4971
30
+ aa_bulletin_board/locale/nl_NL/LC_MESSAGES/django.po,sha256=QgNmfobFCQEbizavhWjx2fhyU5HDsF2VI08f97Y4eEc,4971
31
31
  aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.mo,sha256=W2q9nAX8EDr7lLDhaJW1WChLwF1v7hy1H71g5n38f18,876
32
- aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po,sha256=KKs1RJfFAoMy4dgaVy-X5ttbm38KgeY5OQMT7ao_xQ4,5188
32
+ aa_bulletin_board/locale/pl_PL/LC_MESSAGES/django.po,sha256=dUcIvGKb8mQI7XaRPk4hmKjVFSf-LJCvtKPSe315u8I,5188
33
33
  aa_bulletin_board/locale/ru/LC_MESSAGES/django.mo,sha256=ZUmnbwwBgHs5m0RzyMPZvtpVkaV9Rylwg1gQCa9-dcc,4341
34
- aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=_LP1JPQbTAGqGZ-oEP-F0vp8AxEnOG4FI1HQ77mEon0,7233
34
+ aa_bulletin_board/locale/ru/LC_MESSAGES/django.po,sha256=MM5pKfEtBjIuThfTXZS1mRwKkgCz1jDAlzlXZhBnQT0,7233
35
35
  aa_bulletin_board/locale/sk/LC_MESSAGES/django.mo,sha256=qbQEKRh_K6GhMhKVY-xR1tC5YIofxLCprGaDq6bltcM,562
36
- aa_bulletin_board/locale/sk/LC_MESSAGES/django.po,sha256=36zI01y3tbW4UM7eNFA52yb5tXZBS5vHaUKFRkvGqqU,5072
37
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=_jLK53-kbnJi_HrbTlfKYfhwORFU41CgtpM6wIbtKjw,2641
38
- aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=KMmvbneoQ5VWwNlQxFeRxPRXUgj-5LqtaxcBkY6QdyI,7777
36
+ aa_bulletin_board/locale/sk/LC_MESSAGES/django.po,sha256=Xy8AvWsAmUksE8d_vOs0nWE27cFa8HmEQ78VIsNCNWY,5072
37
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.mo,sha256=kGH4H4OEFgnt9eKv6Xd9f8y2xPOIHoZV9Y9juRBPJZQ,4515
38
+ aa_bulletin_board/locale/uk/LC_MESSAGES/django.po,sha256=Ls9k-KZMh0vQARgKWm7nDiUFVtTlDMGJmKUv6dxVQ3A,7390
39
39
  aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=eWtNtT-OkgeZTQwCAZmM82eo_0vAvt_zmnPnNLHT5w8,3087
40
- aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=A1F__M606yerqi8DTknKfHCB8q4zkdoRWW38pQCL9KE,5943
40
+ aa_bulletin_board/locale/zh_Hans/LC_MESSAGES/django.po,sha256=_rIwVdOAFbDl7YUCIiM6mJeshixakUdqvPCUGJLxZ_c,5943
41
41
  aa_bulletin_board/migrations/0001_initial.py,sha256=bmw6yykfLuujYwQ6uR8rGKqcv94UyEa6ZVH34VR5APQ,2620
42
42
  aa_bulletin_board/migrations/0002_alter_bulletin_slug.py,sha256=j6jgInd8CB7cbRU0cKl87GQaWw6ifZercIs5WCWegKw,427
43
43
  aa_bulletin_board/migrations/0003_group_restrictions.py,sha256=zjWr5H8yfdSsJVLbqUUhgSAfrW6A2CVavrlFxfaFZGg,959
@@ -60,9 +60,9 @@ aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/jquery.sumosele
60
60
  aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.css,sha256=owagDaIXi_FGoJjW_UO4J4_I4PFdFQC4WLOYHxgzM04,9828
61
61
  aa_bulletin_board/static/aa_bulletin_board/libs/sumoselect/3.4.9/sumoselect.min.css,sha256=0muqXQE7xbwFLUkp34AfrbvlKi2OPXgKtUgIZOUYqnY,7610
62
62
  aa_bulletin_board/templates/aa_bulletin_board/base.html,sha256=hL8bzygUC-XYcKO7L014DVZZfXpYYUa_yNwC-1ceBPo,887
63
- aa_bulletin_board/templates/aa_bulletin_board/bulletin.html,sha256=1NfrhsJ6dDX8UpPHq2YxEaF6mCXzCQqNB-q9l7-sldY,1599
63
+ aa_bulletin_board/templates/aa_bulletin_board/bulletin.html,sha256=h7R_znls5cwKhXVN67Wi9BVyRGmsGofpFEABqXRPmos,1576
64
64
  aa_bulletin_board/templates/aa_bulletin_board/dashboard.html,sha256=LpFK4leA3O17WCu4zilztSFd-tcINbmyzghBKpFXagU,3030
65
- aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html,sha256=4RIz9FoEXZHXWWtTk04ycuHwDHN82wGZvIrTJhPnVKc,2618
65
+ aa_bulletin_board/templates/aa_bulletin_board/edit-bulletin.html,sha256=3NR5WsRX-0HGUKHJH2LNgkX1JQtDLPpr0Ofy2gi5zDM,2572
66
66
  aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-css.html,sha256=SXtCZlT5p1Kyif0tlw3fEpXdIkRJIYb5uQRfZZjhISk,93
67
67
  aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-equal-height-js.html,sha256=QxorfVP6JtqqnJFfDL-2QqLsOKuRyq0mXMiV8a86eVo,112
68
68
  aa_bulletin_board/templates/aa_bulletin_board/bundles/aa-bulletin-board-oembed-js.html,sha256=ckHZgj56V71-w9A25IFWFIj1xxONEV8qROrYn1Fy6IE,106
@@ -72,18 +72,18 @@ aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-css.html,sha256
72
72
  aa_bulletin_board/templates/aa_bulletin_board/bundles/sumoselect-js.html,sha256=8Cm2j6k7NDREcJvLb_RahZ3yFe_IKAFHPnqEETxMCbw,110
73
73
  aa_bulletin_board/templates/aa_bulletin_board/partials/common/bulletin-board-management.html,sha256=KsZZZLGllxBPBsAqKFXusPekLJZQYeTDGyBCuyhjAiU,396
74
74
  aa_bulletin_board/templates/aa_bulletin_board/partials/footer/app-translation-footer.html,sha256=nDZPOnsQLBN9meAhxnhd0ynUQIVi3YPzhi47n89zcIg,422
75
- aa_bulletin_board/templates/aa_bulletin_board/partials/header/page-header.html,sha256=cE7eVhjS5WUG-x8Kekm1qCdocwHfLDrtc_NsugblFSg,215
76
75
  aa_bulletin_board/templatetags/__init__.py,sha256=sP2D1ovt2gGAPLcGQkByRgXYhvUJ6C52mZMlLIALQ8s,37
77
76
  aa_bulletin_board/templatetags/aa_bulletin_board.py,sha256=tFdJ81gPKpTsTalmXf0rtDJq7po2gDRNcJ3OdfCP73A,2771
78
77
  aa_bulletin_board/tests/__init__.py,sha256=dcMq6O8W1_8NSZobuRedXFQ3o4Zd6Q6Ti7eY-D6JaYI,18
79
78
  aa_bulletin_board/tests/test_access.py,sha256=I2GaJMI4yQWLb0UIOGPdk754B-Rcw0ORXufa8z9-ljU,6874
80
79
  aa_bulletin_board/tests/test_auth_hooks.py,sha256=8BdVYqfrR0dxvBtOBShklmBXA7MCn2VuF-CT4NdV1xg,2386
81
- aa_bulletin_board/tests/test_bulletins.py,sha256=V2LucgSh3aPyavIBnDhRaqkZwJ5oPfvxvcIul3c6kCU,8633
80
+ aa_bulletin_board/tests/test_bulletins.py,sha256=aXrew1He-ly_OBDPUtXck4NuvXFLpuQ21PxR77LqKSk,8639
81
+ aa_bulletin_board/tests/test_forms.py,sha256=IbmWR_S0QLNH36ACl4ssmm37mLVgc_6B_osoccZZ2Ds,4719
82
82
  aa_bulletin_board/tests/test_settings.py,sha256=dTQn6dH4tS1vY_q32mkkW6DrzLioB2MHUbpYYoj7708,718
83
83
  aa_bulletin_board/tests/test_templatetags.py,sha256=oQ9kG0DEKFMKp9M60zrmxQaHhUYnPflbgRFPg3KpQ2s,3371
84
- aa_bulletin_board/tests/test_user_interface.py,sha256=bpEMmuzWs3-JTPpGtpf3b5dZMw-1kdMmTgEu0VRiHvc,8505
84
+ aa_bulletin_board/tests/test_user_interface.py,sha256=yM6jRMlY-dF9-tQzYivZhGfoGyySuhl1SetM1KgYPrM,8511
85
85
  aa_bulletin_board/tests/utils.py,sha256=Dh_jVV7s9Z_OOg_08FxwsZtVU3omrcI260-uQ_Bc_90,2202
86
- aa_bulletin_board-2.3.2.dist-info/METADATA,sha256=NPWDCV2O-_6GRgk9B5snJzdVa6cz_HNbL9Jze8726xE,58061
87
- aa_bulletin_board-2.3.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
- aa_bulletin_board-2.3.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
89
- aa_bulletin_board-2.3.2.dist-info/RECORD,,
86
+ aa_bulletin_board-2.3.3.dist-info/METADATA,sha256=VQJJ9TY3SdgFkrA1ZyBo8LArdsExJq4F_rn_WE7AEOM,58061
87
+ aa_bulletin_board-2.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
+ aa_bulletin_board-2.3.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
89
+ aa_bulletin_board-2.3.3.dist-info/RECORD,,
@@ -1,34 +0,0 @@
1
- """
2
- Our little helpers
3
- """
4
-
5
- # Standard Library
6
- import re
7
-
8
-
9
- def string_cleanup(string: str) -> str:
10
- """
11
- Clean up a string by removing JS, CSS and Head tags
12
-
13
- :param string:
14
- :type string:
15
- :return:
16
- :rtype:
17
- """
18
-
19
- re_head = re.compile(
20
- pattern=r"<\s*head[^>]*>.*?<\s*/\s*head\s*>", flags=re.S | re.I
21
- )
22
- re_script = re.compile(
23
- pattern=r"<\s*script[^>]*>.*?<\s*/\s*script\s*>", flags=re.S | re.I
24
- )
25
- re_css = re.compile(
26
- pattern=r"<\s*style[^>]*>.*?<\s*/\s*style\s*>", flags=re.S | re.I
27
- )
28
-
29
- # Strip unwanted content (JS, CSS, HTML-Head)
30
- string = re_head.sub(repl="", string=string)
31
- string = re_script.sub(repl="", string=string)
32
- string = re_css.sub(repl="", string=string)
33
-
34
- return string
@@ -1,9 +0,0 @@
1
- <header>
2
- <h1 class="text-center">
3
- {{ header_text }}
4
-
5
- {% if addition %}
6
- <small class="aa-bulletin-board-header-addition">{{ addition }}</small>
7
- {% endif %}
8
- </h1>
9
- </header>