punkweb-bb 0.1.4__py3-none-any.whl → 0.2.1__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.
- punkweb_bb/__pycache__/forms.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/models.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/settings.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/tests.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/urls.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
- punkweb_bb/forms.py +40 -7
- punkweb_bb/migrations/0003_alter_thread_options.py +23 -0
- punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc +0 -0
- punkweb_bb/models.py +25 -0
- punkweb_bb/settings.py +1 -0
- punkweb_bb/static/punkweb_bb/css/category-form.css +24 -0
- punkweb_bb/static/punkweb_bb/css/index.css +6 -0
- punkweb_bb/static/punkweb_bb/css/punkweb.css +155 -8
- punkweb_bb/static/punkweb_bb/css/shoutbox.css +13 -2
- punkweb_bb/static/punkweb_bb/css/subcategory-form.css +24 -0
- punkweb_bb/static/punkweb_bb/css/subcategory.css +12 -0
- punkweb_bb/static/punkweb_bb/css/thread.css +20 -1
- punkweb_bb/static/punkweb_bb/css/variables.css +1 -0
- punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js +1 -1
- punkweb_bb/templates/punkweb_bb/base.html +6 -0
- punkweb_bb/templates/punkweb_bb/category_create.html +50 -0
- punkweb_bb/templates/punkweb_bb/category_update.html +53 -0
- punkweb_bb/templates/punkweb_bb/index.html +43 -2
- punkweb_bb/templates/punkweb_bb/login.html +1 -0
- punkweb_bb/templates/punkweb_bb/members.html +1 -0
- punkweb_bb/templates/punkweb_bb/partials/category_delete.html +11 -0
- punkweb_bb/templates/punkweb_bb/partials/shout_delete.html +11 -0
- punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html +11 -0
- punkweb_bb/templates/punkweb_bb/profile.html +1 -0
- punkweb_bb/templates/punkweb_bb/settings.html +1 -0
- punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +18 -4
- punkweb_bb/templates/punkweb_bb/signup.html +1 -0
- punkweb_bb/templates/punkweb_bb/subcategory.html +31 -6
- punkweb_bb/templates/punkweb_bb/subcategory_create.html +53 -0
- punkweb_bb/templates/punkweb_bb/subcategory_update.html +56 -0
- punkweb_bb/templates/punkweb_bb/thread.html +94 -22
- punkweb_bb/templates/punkweb_bb/thread_create.html +2 -0
- punkweb_bb/templatetags/__pycache__/can_delete.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/__pycache__/can_edit.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/can_delete.py +8 -0
- punkweb_bb/templatetags/can_edit.py +8 -0
- punkweb_bb/templatetags/can_post.py +8 -0
- punkweb_bb/tests.py +5 -5
- punkweb_bb/urls.py +29 -0
- punkweb_bb/utils.py +17 -0
- punkweb_bb/views.py +258 -45
- {punkweb_bb-0.1.4.dist-info → punkweb_bb-0.2.1.dist-info}/METADATA +2 -2
- {punkweb_bb-0.1.4.dist-info → punkweb_bb-0.2.1.dist-info}/RECORD +54 -35
- {punkweb_bb-0.1.4.dist-info → punkweb_bb-0.2.1.dist-info}/LICENSE +0 -0
- {punkweb_bb-0.1.4.dist-info → punkweb_bb-0.2.1.dist-info}/WHEEL +0 -0
- {punkweb_bb-0.1.4.dist-info → punkweb_bb-0.2.1.dist-info}/top_level.txt +0 -0
punkweb_bb/utils.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from django.utils.text import slugify
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def get_unique_slug(model, field):
|
|
5
|
+
base_slug = slugify(field)
|
|
6
|
+
slug = base_slug
|
|
7
|
+
unique_slug_exists = True
|
|
8
|
+
|
|
9
|
+
counter = 1
|
|
10
|
+
while unique_slug_exists:
|
|
11
|
+
if model.objects.filter(slug=slug).exists():
|
|
12
|
+
slug = f"{base_slug}-{counter}"
|
|
13
|
+
counter += 1
|
|
14
|
+
else:
|
|
15
|
+
unique_slug_exists = False
|
|
16
|
+
|
|
17
|
+
return slug
|
punkweb_bb/views.py
CHANGED
|
@@ -4,54 +4,46 @@ from django.contrib.auth import authenticate, get_user_model, login, logout
|
|
|
4
4
|
from django.contrib.auth.decorators import login_required
|
|
5
5
|
from django.http import HttpResponseForbidden
|
|
6
6
|
from django.shortcuts import get_object_or_404, redirect, render
|
|
7
|
+
from django.urls import reverse
|
|
7
8
|
from django.utils import timezone
|
|
8
9
|
|
|
9
|
-
from punkweb_bb.guests import guest_list
|
|
10
10
|
from punkweb_bb.forms import (
|
|
11
11
|
BoardProfileModelForm,
|
|
12
|
+
CategoryModelForm,
|
|
12
13
|
LoginForm,
|
|
13
14
|
PostModelForm,
|
|
14
15
|
ShoutModelForm,
|
|
15
16
|
SignUpForm,
|
|
17
|
+
SubcategoryModelForm,
|
|
16
18
|
ThreadModelForm,
|
|
17
19
|
)
|
|
20
|
+
from punkweb_bb.guests import guest_list
|
|
18
21
|
from punkweb_bb.models import Category, Post, Shout, Subcategory, Thread
|
|
19
22
|
from punkweb_bb.pagination import paginate_qs
|
|
20
23
|
from punkweb_bb.response import htmx_redirect
|
|
24
|
+
from punkweb_bb.utils import get_unique_slug
|
|
21
25
|
|
|
22
26
|
User = get_user_model()
|
|
23
27
|
|
|
24
28
|
|
|
25
|
-
def
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
recent_threads = Thread.objects.all().order_by("-created_at")[:5]
|
|
29
|
+
def signup_view(request):
|
|
30
|
+
if request.user.is_authenticated:
|
|
31
|
+
return redirect("punkweb_bb:index")
|
|
29
32
|
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
if request.method == "POST":
|
|
34
|
+
form = SignUpForm(request.POST)
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
if form.is_valid():
|
|
37
|
+
form.save()
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
guests_online = guest_list.length()
|
|
40
|
-
total_online = len(members_online) + len(staff_online) + guests_online
|
|
39
|
+
return redirect("punkweb_bb:login")
|
|
40
|
+
else:
|
|
41
|
+
form = SignUpForm()
|
|
41
42
|
|
|
42
43
|
context = {
|
|
43
|
-
"
|
|
44
|
-
"recent_threads": recent_threads,
|
|
45
|
-
"thread_count": thread_count,
|
|
46
|
-
"post_count": post_count,
|
|
47
|
-
"users": users,
|
|
48
|
-
"newest_user": newest_user,
|
|
49
|
-
"members_online": members_online,
|
|
50
|
-
"staff_online": staff_online,
|
|
51
|
-
"guests_online": guests_online,
|
|
52
|
-
"total_online": total_online,
|
|
44
|
+
"form": form,
|
|
53
45
|
}
|
|
54
|
-
return render(request, "punkweb_bb/
|
|
46
|
+
return render(request, "punkweb_bb/signup.html", context)
|
|
55
47
|
|
|
56
48
|
|
|
57
49
|
def login_view(request):
|
|
@@ -85,24 +77,36 @@ def logout_view(request):
|
|
|
85
77
|
return redirect("punkweb_bb:login")
|
|
86
78
|
|
|
87
79
|
|
|
88
|
-
def
|
|
89
|
-
|
|
90
|
-
return redirect("punkweb_bb:index")
|
|
80
|
+
def index_view(request):
|
|
81
|
+
categories = Category.objects.all()
|
|
91
82
|
|
|
92
|
-
|
|
93
|
-
form = SignUpForm(request.POST)
|
|
83
|
+
recent_threads = Thread.objects.all().order_by("-created_at")[:5]
|
|
94
84
|
|
|
95
|
-
|
|
96
|
-
|
|
85
|
+
thread_count = Thread.objects.count()
|
|
86
|
+
post_count = Post.objects.count()
|
|
97
87
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
88
|
+
users = User.objects.select_related("profile").all()
|
|
89
|
+
newest_user = users.order_by("-profile__created_at").first()
|
|
90
|
+
|
|
91
|
+
users_online = [user for user in users if user.profile.is_online]
|
|
92
|
+
members_online = [user for user in users_online if not user.is_staff]
|
|
93
|
+
staff_online = [user for user in users_online if user.is_staff]
|
|
94
|
+
guests_online = guest_list.length()
|
|
95
|
+
total_online = len(members_online) + len(staff_online) + guests_online
|
|
101
96
|
|
|
102
97
|
context = {
|
|
103
|
-
"
|
|
98
|
+
"categories": categories,
|
|
99
|
+
"recent_threads": recent_threads,
|
|
100
|
+
"thread_count": thread_count,
|
|
101
|
+
"post_count": post_count,
|
|
102
|
+
"users": users,
|
|
103
|
+
"newest_user": newest_user,
|
|
104
|
+
"members_online": members_online,
|
|
105
|
+
"staff_online": staff_online,
|
|
106
|
+
"guests_online": guests_online,
|
|
107
|
+
"total_online": total_online,
|
|
104
108
|
}
|
|
105
|
-
return render(request, "punkweb_bb/
|
|
109
|
+
return render(request, "punkweb_bb/index.html", context=context)
|
|
106
110
|
|
|
107
111
|
|
|
108
112
|
def profile_view(request, user_id):
|
|
@@ -148,6 +152,72 @@ def settings_view(request):
|
|
|
148
152
|
return render(request, "punkweb_bb/settings.html", context=context)
|
|
149
153
|
|
|
150
154
|
|
|
155
|
+
@login_required(login_url="/login/")
|
|
156
|
+
def category_create_view(request):
|
|
157
|
+
if not request.user.has_perm("punkweb_bb.add_category"):
|
|
158
|
+
return HttpResponseForbidden("You do not have permission to create categories.")
|
|
159
|
+
|
|
160
|
+
if request.method == "POST":
|
|
161
|
+
form = CategoryModelForm(request.POST)
|
|
162
|
+
|
|
163
|
+
if form.is_valid():
|
|
164
|
+
category = form.save(commit=False)
|
|
165
|
+
category.slug = get_unique_slug(Category, category.name)
|
|
166
|
+
category.save()
|
|
167
|
+
|
|
168
|
+
return redirect(category)
|
|
169
|
+
else:
|
|
170
|
+
form = CategoryModelForm()
|
|
171
|
+
|
|
172
|
+
context = {
|
|
173
|
+
"form": form,
|
|
174
|
+
}
|
|
175
|
+
return render(request, "punkweb_bb/category_create.html", context=context)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
@login_required(login_url="/login/")
|
|
179
|
+
def category_update_view(request, category_slug):
|
|
180
|
+
if not request.user.has_perm("punkweb_bb.change_category"):
|
|
181
|
+
return HttpResponseForbidden("You do not have permission to change categories.")
|
|
182
|
+
|
|
183
|
+
category = get_object_or_404(Category, slug=category_slug)
|
|
184
|
+
|
|
185
|
+
if request.method == "POST":
|
|
186
|
+
form = CategoryModelForm(request.POST, instance=category)
|
|
187
|
+
|
|
188
|
+
if form.is_valid():
|
|
189
|
+
category = form.save()
|
|
190
|
+
|
|
191
|
+
return redirect(category)
|
|
192
|
+
else:
|
|
193
|
+
form = CategoryModelForm(instance=category)
|
|
194
|
+
|
|
195
|
+
context = {
|
|
196
|
+
"category": category,
|
|
197
|
+
"form": form,
|
|
198
|
+
}
|
|
199
|
+
return render(request, "punkweb_bb/category_update.html", context=context)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
@login_required(login_url="/login/")
|
|
203
|
+
def category_delete_view(request, category_slug):
|
|
204
|
+
if not request.user.has_perm("punkweb_bb.delete_category"):
|
|
205
|
+
return HttpResponseForbidden("You do not have permission to delete categories.")
|
|
206
|
+
|
|
207
|
+
category = get_object_or_404(Category, slug=category_slug)
|
|
208
|
+
|
|
209
|
+
if request.method == "DELETE":
|
|
210
|
+
category.delete()
|
|
211
|
+
|
|
212
|
+
return htmx_redirect(reverse("punkweb_bb:index"))
|
|
213
|
+
|
|
214
|
+
context = {
|
|
215
|
+
"category": category,
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return render(request, "punkweb_bb/partials/category_delete.html", context=context)
|
|
219
|
+
|
|
220
|
+
|
|
151
221
|
def subcategory_view(request, subcategory_slug):
|
|
152
222
|
subcategory = get_object_or_404(Subcategory, slug=subcategory_slug)
|
|
153
223
|
|
|
@@ -160,12 +230,92 @@ def subcategory_view(request, subcategory_slug):
|
|
|
160
230
|
return render(request, "punkweb_bb/subcategory.html", context=context)
|
|
161
231
|
|
|
162
232
|
|
|
233
|
+
@login_required(login_url="/login/")
|
|
234
|
+
def subcategory_create_view(request, category_slug):
|
|
235
|
+
if not request.user.has_perm("punkweb_bb.add_subcategory"):
|
|
236
|
+
return HttpResponseForbidden(
|
|
237
|
+
"You do not have permission to create subcategories."
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
category = get_object_or_404(Category, slug=category_slug)
|
|
241
|
+
|
|
242
|
+
if request.method == "POST":
|
|
243
|
+
form = SubcategoryModelForm(request.POST)
|
|
244
|
+
|
|
245
|
+
if form.is_valid():
|
|
246
|
+
subcategory = form.save(commit=False)
|
|
247
|
+
subcategory.category = category
|
|
248
|
+
subcategory.slug = get_unique_slug(Subcategory, subcategory.name)
|
|
249
|
+
subcategory.save()
|
|
250
|
+
|
|
251
|
+
return redirect(subcategory)
|
|
252
|
+
else:
|
|
253
|
+
form = SubcategoryModelForm()
|
|
254
|
+
|
|
255
|
+
context = {
|
|
256
|
+
"category": category,
|
|
257
|
+
"form": form,
|
|
258
|
+
}
|
|
259
|
+
return render(request, "punkweb_bb/subcategory_create.html", context=context)
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
@login_required(login_url="/login/")
|
|
263
|
+
def subcategory_update_view(request, subcategory_slug):
|
|
264
|
+
if not request.user.has_perm("punkweb_bb.change_subcategory"):
|
|
265
|
+
return HttpResponseForbidden(
|
|
266
|
+
"You do not have permission to change subcategories."
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
subcategory = get_object_or_404(Subcategory, slug=subcategory_slug)
|
|
270
|
+
|
|
271
|
+
if request.method == "POST":
|
|
272
|
+
form = SubcategoryModelForm(request.POST, instance=subcategory)
|
|
273
|
+
|
|
274
|
+
if form.is_valid():
|
|
275
|
+
subcategory = form.save()
|
|
276
|
+
|
|
277
|
+
return redirect(subcategory)
|
|
278
|
+
else:
|
|
279
|
+
form = SubcategoryModelForm(instance=subcategory)
|
|
280
|
+
|
|
281
|
+
context = {
|
|
282
|
+
"subcategory": subcategory,
|
|
283
|
+
"form": form,
|
|
284
|
+
}
|
|
285
|
+
return render(request, "punkweb_bb/subcategory_update.html", context=context)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
@login_required(login_url="/login/")
|
|
289
|
+
def subcategory_delete_view(request, subcategory_slug):
|
|
290
|
+
if not request.user.has_perm("punkweb_bb.delete_subcategory"):
|
|
291
|
+
return HttpResponseForbidden(
|
|
292
|
+
"You do not have permission to delete subcategories."
|
|
293
|
+
)
|
|
294
|
+
|
|
295
|
+
subcategory = get_object_or_404(Subcategory, slug=subcategory_slug)
|
|
296
|
+
|
|
297
|
+
if request.method == "DELETE":
|
|
298
|
+
subcategory.delete()
|
|
299
|
+
|
|
300
|
+
return htmx_redirect(subcategory.category.get_absolute_url())
|
|
301
|
+
|
|
302
|
+
context = {
|
|
303
|
+
"subcategory": subcategory,
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
return render(
|
|
307
|
+
request, "punkweb_bb/partials/subcategory_delete.html", context=context
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
|
|
163
311
|
@login_required(login_url="/login/")
|
|
164
312
|
def thread_create_view(request, subcategory_slug):
|
|
165
313
|
subcategory = get_object_or_404(Subcategory, slug=subcategory_slug)
|
|
166
314
|
|
|
167
|
-
if subcategory.
|
|
168
|
-
return
|
|
315
|
+
if not subcategory.can_post(request.user):
|
|
316
|
+
return HttpResponseForbidden(
|
|
317
|
+
"You do not have permission to post in this subcategory."
|
|
318
|
+
)
|
|
169
319
|
|
|
170
320
|
if request.method == "POST":
|
|
171
321
|
form = ThreadModelForm(request.POST)
|
|
@@ -211,7 +361,12 @@ def thread_view(request, thread_id):
|
|
|
211
361
|
|
|
212
362
|
@login_required(login_url="/login/")
|
|
213
363
|
def thread_update_view(request, thread_id):
|
|
214
|
-
thread = get_object_or_404(Thread, pk=thread_id
|
|
364
|
+
thread = get_object_or_404(Thread, pk=thread_id)
|
|
365
|
+
|
|
366
|
+
if not thread.can_edit(request.user):
|
|
367
|
+
return HttpResponseForbidden(
|
|
368
|
+
"You do not have permission to change this thread."
|
|
369
|
+
)
|
|
215
370
|
|
|
216
371
|
if request.method == "POST":
|
|
217
372
|
form = ThreadModelForm(request.POST, instance=thread)
|
|
@@ -232,7 +387,12 @@ def thread_update_view(request, thread_id):
|
|
|
232
387
|
|
|
233
388
|
@login_required(login_url="/login/")
|
|
234
389
|
def thread_delete_view(request, thread_id):
|
|
235
|
-
thread = get_object_or_404(Thread, pk=thread_id
|
|
390
|
+
thread = get_object_or_404(Thread, pk=thread_id)
|
|
391
|
+
|
|
392
|
+
if not thread.can_delete(request.user):
|
|
393
|
+
return HttpResponseForbidden(
|
|
394
|
+
"You do not have permission to delete this thread."
|
|
395
|
+
)
|
|
236
396
|
|
|
237
397
|
if request.method == "DELETE":
|
|
238
398
|
thread.delete()
|
|
@@ -246,12 +406,40 @@ def thread_delete_view(request, thread_id):
|
|
|
246
406
|
return render(request, "punkweb_bb/partials/thread_delete.html", context=context)
|
|
247
407
|
|
|
248
408
|
|
|
409
|
+
@login_required(login_url="/login/")
|
|
410
|
+
def thread_pin_view(request, thread_id):
|
|
411
|
+
thread = get_object_or_404(Thread, pk=thread_id)
|
|
412
|
+
|
|
413
|
+
if not request.user.has_perm("punkweb_bb.pin_thread"):
|
|
414
|
+
return HttpResponseForbidden("You do not have permission to pin threads.")
|
|
415
|
+
|
|
416
|
+
thread.is_pinned = not thread.is_pinned
|
|
417
|
+
thread.save()
|
|
418
|
+
|
|
419
|
+
return htmx_redirect(thread.get_absolute_url())
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
@login_required(login_url="/login/")
|
|
423
|
+
def thread_close_view(request, thread_id):
|
|
424
|
+
thread = get_object_or_404(Thread, pk=thread_id)
|
|
425
|
+
|
|
426
|
+
if not request.user.has_perm("punkweb_bb.close_thread"):
|
|
427
|
+
return HttpResponseForbidden("You do not have permission to close threads.")
|
|
428
|
+
|
|
429
|
+
thread.is_closed = not thread.is_closed
|
|
430
|
+
thread.save()
|
|
431
|
+
|
|
432
|
+
return htmx_redirect(thread.get_absolute_url())
|
|
433
|
+
|
|
434
|
+
|
|
249
435
|
@login_required(login_url="/login/")
|
|
250
436
|
def post_create_view(request, thread_id):
|
|
251
437
|
thread = get_object_or_404(Thread, pk=thread_id)
|
|
252
438
|
|
|
253
|
-
if thread.
|
|
254
|
-
return HttpResponseForbidden(
|
|
439
|
+
if not thread.can_post(request.user):
|
|
440
|
+
return HttpResponseForbidden(
|
|
441
|
+
"You do not have permission to post in this thread."
|
|
442
|
+
)
|
|
255
443
|
|
|
256
444
|
form = PostModelForm(request.POST)
|
|
257
445
|
|
|
@@ -266,7 +454,10 @@ def post_create_view(request, thread_id):
|
|
|
266
454
|
|
|
267
455
|
@login_required(login_url="/login/")
|
|
268
456
|
def post_update_view(request, post_id):
|
|
269
|
-
post = get_object_or_404(Post, pk=post_id
|
|
457
|
+
post = get_object_or_404(Post, pk=post_id)
|
|
458
|
+
|
|
459
|
+
if not post.can_edit(request.user):
|
|
460
|
+
return HttpResponseForbidden("You do not have permission to change this post.")
|
|
270
461
|
|
|
271
462
|
if request.method == "POST":
|
|
272
463
|
form = PostModelForm(request.POST, instance=post)
|
|
@@ -288,7 +479,10 @@ def post_update_view(request, post_id):
|
|
|
288
479
|
|
|
289
480
|
@login_required(login_url="/login/")
|
|
290
481
|
def post_delete_view(request, post_id):
|
|
291
|
-
post = get_object_or_404(Post, pk=post_id
|
|
482
|
+
post = get_object_or_404(Post, pk=post_id)
|
|
483
|
+
|
|
484
|
+
if not post.can_delete(request.user):
|
|
485
|
+
return HttpResponseForbidden("You do not have permission to delete this post.")
|
|
292
486
|
|
|
293
487
|
if request.method == "DELETE":
|
|
294
488
|
post.delete()
|
|
@@ -340,6 +534,25 @@ def shout_create_view(request):
|
|
|
340
534
|
)
|
|
341
535
|
|
|
342
536
|
|
|
537
|
+
@login_required(login_url="/login/")
|
|
538
|
+
def shout_delete_view(request, shout_id):
|
|
539
|
+
shout = get_object_or_404(Shout, pk=shout_id)
|
|
540
|
+
|
|
541
|
+
if not shout.can_delete(request.user):
|
|
542
|
+
return HttpResponseForbidden("You do not have permission to delete this shout.")
|
|
543
|
+
|
|
544
|
+
if request.method == "DELETE":
|
|
545
|
+
shout.delete()
|
|
546
|
+
|
|
547
|
+
return htmx_redirect(reverse("punkweb_bb:index"))
|
|
548
|
+
|
|
549
|
+
context = {
|
|
550
|
+
"shout": shout,
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
return render(request, "punkweb_bb/partials/shout_delete.html", context=context)
|
|
554
|
+
|
|
555
|
+
|
|
343
556
|
def bbcode_view(request):
|
|
344
557
|
codes = (
|
|
345
558
|
("Bold", "[b]Bold Text[/b]"),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: punkweb-bb
|
|
3
|
-
Version: 0.1
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Django application that provides a simple and modern forum board software for your Django website.
|
|
5
5
|
Home-page: https://github.com/Punkweb/PunkwebBB
|
|
6
6
|
Author: Punkweb
|
|
@@ -26,7 +26,7 @@ PunkwebBB is a Django application that provides a simple and modern forum board
|
|
|
26
26
|
|
|
27
27
|
This is the successor to [punkweb-boards](https://github.com/Punkweb/punkweb-boards).
|
|
28
28
|
|
|
29
|
-
Check out [punkweb.net](https://punkweb.net/board/) for a live
|
|
29
|
+
Check out [punkweb.net](https://punkweb.net/board/) for documentation, support and a live demonstration of the software.
|
|
30
30
|
|
|
31
31
|
## Built with
|
|
32
32
|
|
|
@@ -4,19 +4,20 @@ punkweb_bb/admin_forms.py,sha256=Ppgl960Alwwz_tsrCDct56SEab0ntxBMyb7LJHODuWc,112
|
|
|
4
4
|
punkweb_bb/apps.py,sha256=GCDLy9B9vumeCsaauQ7LN4FOqE02mXWXECIz8G6KZCQ,207
|
|
5
5
|
punkweb_bb/bbcode_tags.py,sha256=yNayXcZoRcRVZsdVrKIdKOV7bwlApFfq_CVfh1im7SY,4419
|
|
6
6
|
punkweb_bb/context_processors.py,sha256=BEOGvWVukvxJUxWZBIc32ioB-mGqImSEBuhhZjqI2G0,146
|
|
7
|
-
punkweb_bb/forms.py,sha256=
|
|
7
|
+
punkweb_bb/forms.py,sha256=YeBrjOmBIytfQ5dfnLb1xKAnYR-zUSIr2cerFhCODaE,2907
|
|
8
8
|
punkweb_bb/guests.py,sha256=Nvn4ZVJvQSQs_f-GeSwNn79Qp8ap_CAoXpYfRTqSbxg,467
|
|
9
9
|
punkweb_bb/middleware.py,sha256=NrYv6nyAYKGcu-qKRnZmCyLghtJ4MUHvt3m5NS8HJbo,628
|
|
10
10
|
punkweb_bb/mixins.py,sha256=XfiThPL7rB71IfukS1ikvYQhfg8RwgSVgsm10Ul1ezM,395
|
|
11
|
-
punkweb_bb/models.py,sha256=
|
|
11
|
+
punkweb_bb/models.py,sha256=OnZ1c0Awg-MFIdyChBH0_xvpyqMyY37-iiFp7ZlFJzw,6348
|
|
12
12
|
punkweb_bb/pagination.py,sha256=OgoZuJsq9MKMvBKYylJVPaNtM9ni3K8OAvOdi-eGr3M,409
|
|
13
13
|
punkweb_bb/parsers.py,sha256=VjWSPqpVfypHLHP0NrfLqXB-1b0W6oFuGIzoAiPi71I,2732
|
|
14
14
|
punkweb_bb/response.py,sha256=dETGVC9Xrsq02pQzmIIWbSUt472lJ4fgLwBKrXnP3t4,130
|
|
15
|
-
punkweb_bb/settings.py,sha256=
|
|
15
|
+
punkweb_bb/settings.py,sha256=poqIMn9EnPZ7CYvDB08NPlPHMpjSXJ-gCte2awmjgNc,561
|
|
16
16
|
punkweb_bb/signals.py,sha256=bVdfg942Mwq-fYDZ1Z52Q0V2BCk1lgzGz8JVZFPnzJ8,365
|
|
17
|
-
punkweb_bb/tests.py,sha256=
|
|
18
|
-
punkweb_bb/urls.py,sha256=
|
|
19
|
-
punkweb_bb/
|
|
17
|
+
punkweb_bb/tests.py,sha256=NcTt9RPt4MegOzjryUok9FTWZda6VHB3O3FJN99Pz8s,26338
|
|
18
|
+
punkweb_bb/urls.py,sha256=LPCKgiPEvM87JYU_sTYTdU-tKO8xDyKkiO2nT7sv2v0,2587
|
|
19
|
+
punkweb_bb/utils.py,sha256=4XUoXB1hqCYShhPAbdFf2qSB5wTKt7IJtFizuRfkP2U,396
|
|
20
|
+
punkweb_bb/views.py,sha256=BIpI58MIH50UppDOnkTEBwll1iozuVs2m6N7S9xqW9I,17400
|
|
20
21
|
punkweb_bb/widgets.py,sha256=eF6CB5nnh_6XJadpDzDKgd9incd0VIR63Rnzdr8T2n0,840
|
|
21
22
|
punkweb_bb/__pycache__/__init__.cpython-311.pyc,sha256=3PyxCxoznfadaGt0a7re4j0Ky9z9hblufpcwPB85kK8,161
|
|
22
23
|
punkweb_bb/__pycache__/admin.cpython-311.pyc,sha256=rAPYqRy7hAVZn3qST3ypYdulvH9IBhzWEgvbbAMIMIY,3679
|
|
@@ -24,46 +25,51 @@ punkweb_bb/__pycache__/admin_forms.cpython-311.pyc,sha256=fQgpcTP-_bouxhHrDVxFzA
|
|
|
24
25
|
punkweb_bb/__pycache__/apps.cpython-311.pyc,sha256=lw328DOwOp1F8FWTFYb3qV1EoBNgRr_Tc4J8DXfIl-I,730
|
|
25
26
|
punkweb_bb/__pycache__/bbcode_tags.cpython-311.pyc,sha256=QI4BJt5plqLMiAvlVAxibuNONi69PJFQpotpS50olro,8534
|
|
26
27
|
punkweb_bb/__pycache__/context_processors.cpython-311.pyc,sha256=P7rEsodXonYexbS5vUaUKVJ9tIx1pOVk6NQWVvWNvS8,392
|
|
27
|
-
punkweb_bb/__pycache__/forms.cpython-311.pyc,sha256=
|
|
28
|
+
punkweb_bb/__pycache__/forms.cpython-311.pyc,sha256=wZAWlEguoeOOmcDKJJgXX_oLvYwA-JwQqDyE7IGI3H0,6194
|
|
28
29
|
punkweb_bb/__pycache__/guests.cpython-311.pyc,sha256=vgZJcZGyHZkllCAhXHGgajHh7YM1ntXinSed3ojIK6I,1581
|
|
29
30
|
punkweb_bb/__pycache__/middleware.cpython-311.pyc,sha256=KbZ6z2Q7eCRX3dB7mnRUpn58mb_O8sXpOw_sqVfQsgM,1560
|
|
30
31
|
punkweb_bb/__pycache__/mixins.cpython-311.pyc,sha256=eP1NjqDNYMYXrC45DNkrTqVAUv1vsGBrqPy5U5CB_aw,1478
|
|
31
|
-
punkweb_bb/__pycache__/models.cpython-311.pyc,sha256=
|
|
32
|
+
punkweb_bb/__pycache__/models.cpython-311.pyc,sha256=u52jc-tCggzLH9td-qzyxzbKRaWK6SDzGFE_7D7Mosc,13931
|
|
32
33
|
punkweb_bb/__pycache__/pagination.cpython-311.pyc,sha256=r54xmtiRp5dm1n2Xa7oElMFFaYFY0RzmMuF3Er4UqEA,990
|
|
33
34
|
punkweb_bb/__pycache__/parsers.cpython-311.pyc,sha256=pp8JZt9V3HhquQMGrhglwLc53GxgNFWjjSnK3Bpxf8o,5335
|
|
34
35
|
punkweb_bb/__pycache__/response.cpython-311.pyc,sha256=CEPckYWZkOrdU2Vow-ni0ZrWEUBww0uJzyr_wv---mM,448
|
|
35
|
-
punkweb_bb/__pycache__/settings.cpython-311.pyc,sha256=
|
|
36
|
+
punkweb_bb/__pycache__/settings.cpython-311.pyc,sha256=4nTGJeWkptvoS-DcaEEpXGEeh7fLox5H1pCXkFKN8U4,1025
|
|
36
37
|
punkweb_bb/__pycache__/signals.cpython-311.pyc,sha256=AHChn7hDdrOmCAwKIKKuFOY-4hyBP9uwTkyb5bnFV-Q,864
|
|
37
|
-
punkweb_bb/__pycache__/tests.cpython-311.pyc,sha256=
|
|
38
|
-
punkweb_bb/__pycache__/urls.cpython-311.pyc,sha256=
|
|
39
|
-
punkweb_bb/__pycache__/
|
|
38
|
+
punkweb_bb/__pycache__/tests.cpython-311.pyc,sha256=z7wbXzc3xY4lyg8II-k8fVe-UxQ2fk8XwV-wnb684wo,51768
|
|
39
|
+
punkweb_bb/__pycache__/urls.cpython-311.pyc,sha256=IYIX39oVwDb2TtVcyX7dlzztW7hJwl0vzO1UZpb-nuo,3565
|
|
40
|
+
punkweb_bb/__pycache__/utils.cpython-311.pyc,sha256=iNDU4dwAwpAzqlKl5kuHH989Ic_1lGA4JQq0wpR7ATo,748
|
|
41
|
+
punkweb_bb/__pycache__/views.cpython-311.pyc,sha256=gpMcF9LcMOkJhd_6g3Pk8uLbw2iAHw9aj4fWtU1Jnj0,25276
|
|
40
42
|
punkweb_bb/__pycache__/widgets.cpython-311.pyc,sha256=-RcQ3JapLHw8Bbi4FP05kQJJIa7bnliKPaFpkDCOWvQ,1552
|
|
41
43
|
punkweb_bb/migrations/0001_initial.py,sha256=3RGsylygBcWx1kIPhSzOb9v_2yvowsxKfxuSinKKuS0,8950
|
|
42
44
|
punkweb_bb/migrations/0002_thread_view_count.py,sha256=JJZT53Mp8Ofht3oIi67s-0wzCdpYyu8wOeCi_B8q8Yo,388
|
|
45
|
+
punkweb_bb/migrations/0003_alter_thread_options.py,sha256=0xwVfSMWs28akDMhMwOdyyuC7JZ47JekkphT8fUCpcA,589
|
|
43
46
|
punkweb_bb/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
47
|
punkweb_bb/migrations/__pycache__/0001_initial.cpython-311.pyc,sha256=koi_VflndmTKzSXWstWBXuVEZgEeueId5NE4kOAlA4Q,6456
|
|
45
48
|
punkweb_bb/migrations/__pycache__/0002_thread_view_count.cpython-311.pyc,sha256=9HRllkD8LHPXadyurYvp2UcmRFEywalUVQjiOGWizgc,815
|
|
49
|
+
punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc,sha256=zK9keYR8PU92_sP5M78xmFJeLGwSnM5tIo09bU-IpOU,860
|
|
46
50
|
punkweb_bb/migrations/__pycache__/__init__.cpython-311.pyc,sha256=sTbC1AXnh0V4BJwjcjs1ckdeYjG01I348hZwLE2HI4Y,172
|
|
47
51
|
punkweb_bb/static/punkweb_bb/favicon.ico,sha256=lEfX--R9wEGPkkXgLYCsGmHuAGajigiqBXAoonxq8ZM,318
|
|
52
|
+
punkweb_bb/static/punkweb_bb/css/category-form.css,sha256=lvG7Lh2GGBVplKk46JAIHF1cmFLve2JT32BswmudIF8,359
|
|
48
53
|
punkweb_bb/static/punkweb_bb/css/defaults.css,sha256=EsYORpHIQ8gotAdiGvBBU38i6F0mICj-OKr-JF6yYVg,1455
|
|
49
|
-
punkweb_bb/static/punkweb_bb/css/index.css,sha256=
|
|
54
|
+
punkweb_bb/static/punkweb_bb/css/index.css,sha256=Jr4P0uLQ0lhM1ujycNVYYnu6tFmFXVZUXMJxFzes-Bo,1415
|
|
50
55
|
punkweb_bb/static/punkweb_bb/css/login.css,sha256=pt5ul4ycZsVB-No3c5gsQa1zVS1iAZgteN1CcllS26k,234
|
|
51
56
|
punkweb_bb/static/punkweb_bb/css/members.css,sha256=1Fz0uVDbs3RnuXNjOtnGnK2jok3LEQBoPhjRYp7gNwE,395
|
|
52
57
|
punkweb_bb/static/punkweb_bb/css/post-form.css,sha256=rEiYplAobLjjUYAcnjNqIjyIVhe9O5hAlPJ3STW-K14,321
|
|
53
58
|
punkweb_bb/static/punkweb_bb/css/profile.css,sha256=yfNJT_D-05deqiBrdIgPeCSO_DFSL8-fGEEHnGrCIYM,916
|
|
54
59
|
punkweb_bb/static/punkweb_bb/css/punkweb-modal.css,sha256=ctwo5bgbAW-k0uqrufDbqeQfAh87-BZ-5gPm8aJHeT4,1296
|
|
55
|
-
punkweb_bb/static/punkweb_bb/css/punkweb.css,sha256=
|
|
60
|
+
punkweb_bb/static/punkweb_bb/css/punkweb.css,sha256=GhVOOVTy76IOh4WLfUQeAtG8LWhE615mSQJzro2KwZI,14557
|
|
56
61
|
punkweb_bb/static/punkweb_bb/css/settings.css,sha256=ulQQFTu8slk2rYOmhvci5v-AVnguUuDhKQDhyQOsQNU,308
|
|
57
|
-
punkweb_bb/static/punkweb_bb/css/shoutbox.css,sha256
|
|
58
|
-
punkweb_bb/static/punkweb_bb/css/subcategory.css,sha256=
|
|
62
|
+
punkweb_bb/static/punkweb_bb/css/shoutbox.css,sha256=DapBIe21b6w7ugA_U1EJ-1LFb3IfnJZMw7Kc4DLxF1g,536
|
|
63
|
+
punkweb_bb/static/punkweb_bb/css/subcategory-form.css,sha256=KU-fI8-DiurYiiBVeNk-9vERekbJrOTxllPPFYXu5Fk,371
|
|
64
|
+
punkweb_bb/static/punkweb_bb/css/subcategory.css,sha256=7j9_-S4kspgojfebYBu8AQQS3uJtqCoE32T-BuAgHxw,711
|
|
59
65
|
punkweb_bb/static/punkweb_bb/css/thread-form.css,sha256=9MfqocnamNMjeNJ-w6YTwYbm4oepeK09phFzVsg1XO8,329
|
|
60
|
-
punkweb_bb/static/punkweb_bb/css/thread.css,sha256=
|
|
66
|
+
punkweb_bb/static/punkweb_bb/css/thread.css,sha256=wJMQaFu-CEzHUYbp8WRCI6wWxi2CMccIT0xfuRNcFAg,1873
|
|
61
67
|
punkweb_bb/static/punkweb_bb/css/typography.css,sha256=qbFGBcU-OOe7r41xeW0Gc_9x6yHxhh81XtswmFxgavc,448
|
|
62
|
-
punkweb_bb/static/punkweb_bb/css/variables.css,sha256=
|
|
68
|
+
punkweb_bb/static/punkweb_bb/css/variables.css,sha256=WphZPeJgeqMYy4JYaSTX0gX-JiZh8EJlhieGOGk75DA,1193
|
|
63
69
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css,sha256=c1VCTVYqvzjy-51dMZ27zp-zdZrL-2TwIEheeYQXDDw,1466
|
|
64
70
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor-tags.js,sha256=pLgF7lIJnPQXpfqQnkTHBU5tjcvICDHpn2nhvzxwUqA,1624
|
|
65
71
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
-
punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js,sha256=
|
|
72
|
+
punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js,sha256=gnp2QdVfnflBirCS6jnuw_TYlVoMaifn_18hh4I19Jw,607
|
|
67
73
|
punkweb_bb/static/punkweb_bb/img/default-profile-image.png,sha256=plGHkG9uiCmgof9Hcv7YNT0oThtDIhJtMzjbxxTtdFY,60475
|
|
68
74
|
punkweb_bb/static/punkweb_bb/js/punkweb-modal.js,sha256=by7e5bpdC-KJ9HT6LqAu8c868CvI5vans4S70DuAmrs,179
|
|
69
75
|
punkweb_bb/static/punkweb_bb/js/shoutbox.js,sha256=dgWq_6yzcwj9uWtvluTJeWa3bVmgtPJke48KbzL7Q1s,142
|
|
@@ -190,33 +196,46 @@ punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office-toolba
|
|
|
190
196
|
punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office.min.css,sha256=EZeNIT-LMxAnrW_7M6BXuH0B8m3MoIS68tDyTxmCoP0,13148
|
|
191
197
|
punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/square.min.css,sha256=vrNHEnpQJr3o8AlJ2aEhn4fsRqR4TOopE3N3-4oE2ho,10710
|
|
192
198
|
punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/content/default.min.css,sha256=2jMxGiqcrAhfOtNMdqmTUtfgM6oUz5F0VJ0sUzam9CY,1016
|
|
193
|
-
punkweb_bb/templates/punkweb_bb/base.html,sha256
|
|
199
|
+
punkweb_bb/templates/punkweb_bb/base.html,sha256=-swjri5cx547vuLVApepf8AchoAVrK2TjwtV7lmxdZc,4426
|
|
194
200
|
punkweb_bb/templates/punkweb_bb/base_modal.html,sha256=OCbtsMWeNCO0Tl1PmHCcGkwoi1OZjeIK_VhNTzMor7M,460
|
|
195
201
|
punkweb_bb/templates/punkweb_bb/bbcode.html,sha256=1EGBejsOMZOPi6P39oR6E35VdqnfR6wYWeKDl4Xr_js,396
|
|
196
|
-
punkweb_bb/templates/punkweb_bb/
|
|
197
|
-
punkweb_bb/templates/punkweb_bb/
|
|
198
|
-
punkweb_bb/templates/punkweb_bb/
|
|
199
|
-
punkweb_bb/templates/punkweb_bb/
|
|
200
|
-
punkweb_bb/templates/punkweb_bb/
|
|
201
|
-
punkweb_bb/templates/punkweb_bb/
|
|
202
|
-
punkweb_bb/templates/punkweb_bb/
|
|
203
|
-
punkweb_bb/templates/punkweb_bb/
|
|
204
|
-
punkweb_bb/templates/punkweb_bb/
|
|
202
|
+
punkweb_bb/templates/punkweb_bb/category_create.html,sha256=773uJzxVvuPmWVrW87EoQTBNoo6cyi3UBp_PZn6JY5A,1369
|
|
203
|
+
punkweb_bb/templates/punkweb_bb/category_update.html,sha256=GUFo19BXY8JVvxP7cWAyWiTD5Z9LohR4f6vf1jlRqfo,1467
|
|
204
|
+
punkweb_bb/templates/punkweb_bb/index.html,sha256=7GtrTisMrFWRVF-RGOPo20PWFDXqCIIpgUSXg7TPmHM,10470
|
|
205
|
+
punkweb_bb/templates/punkweb_bb/login.html,sha256=Hsmt_Y50nTOEv7hBjACXMSEmIVCl-IqDv15iE-wo2cY,1137
|
|
206
|
+
punkweb_bb/templates/punkweb_bb/members.html,sha256=r4wsRW8BmPi_FdUfvfgjXdFs37IOYo_mjS3gmDGhZek,2781
|
|
207
|
+
punkweb_bb/templates/punkweb_bb/profile.html,sha256=rK2AW91XyRi5Cag2QaN8vTqZgAXtqIQOM1Koarx2oZI,3012
|
|
208
|
+
punkweb_bb/templates/punkweb_bb/settings.html,sha256=pxEgQQxK1lk2UKL1W3YL-liAERo2mFgUNAJtshe13xk,2047
|
|
209
|
+
punkweb_bb/templates/punkweb_bb/signup.html,sha256=LMs_EwdEbBmFt4zXPt_LmtUujmBJVt0zE0LldgfhrY0,1219
|
|
210
|
+
punkweb_bb/templates/punkweb_bb/subcategory.html,sha256=X61wOey23LRByhNw2Od7n6pCXzT1BNRUxNQQP80187s,5848
|
|
211
|
+
punkweb_bb/templates/punkweb_bb/subcategory_create.html,sha256=8FhcWKiaYGIulrOaBzQ6qFMpDvsAnX_q-XJ5mKwBLW8,1521
|
|
212
|
+
punkweb_bb/templates/punkweb_bb/subcategory_update.html,sha256=kOq6tuhNBSMVQkBSpHpU06JuQ3h008fOKqLcxe9PgCg,1638
|
|
213
|
+
punkweb_bb/templates/punkweb_bb/thread.html,sha256=Ndp7653-BjDW7MHmkIRCr5pUsWxM5oULZe-k-mBjFm0,10276
|
|
214
|
+
punkweb_bb/templates/punkweb_bb/thread_create.html,sha256=vCwU8GNBwy7pJ2X-jSTgqvAuqgQ_NeSvRDyieBWhP_g,1697
|
|
205
215
|
punkweb_bb/templates/punkweb_bb/thread_update.html,sha256=SLL_5tceZ8ZiPbWCO9eOe_aeMgV5lQ-p6eun1_XvKwE,1730
|
|
216
|
+
punkweb_bb/templates/punkweb_bb/partials/category_delete.html,sha256=Re9ESmC6AHeY9aICE0zE1i7vZEDHsF577Vmsz9L7jyA,435
|
|
206
217
|
punkweb_bb/templates/punkweb_bb/partials/post_delete.html,sha256=tQtQGxTF0tZA5eXqfIuO6NctsS83eEhR4ImmBLbkAXM,417
|
|
207
218
|
punkweb_bb/templates/punkweb_bb/partials/post_update.html,sha256=mFidDqgTuv4LffuSa8pShXxWmiramLLMhHjsaJs1Y9k,565
|
|
219
|
+
punkweb_bb/templates/punkweb_bb/partials/shout_delete.html,sha256=zo-Ff-meucwC03p656VI5SI79RmS5nF-NbrFb3znPBM,421
|
|
220
|
+
punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html,sha256=GImRDtfuMTg6_docXHTqVqe_1NzXblnrSyivxeatlIE,447
|
|
208
221
|
punkweb_bb/templates/punkweb_bb/partials/thread_delete.html,sha256=m91u_r8qTvMqR2s4VxxFHQvZt-WGgHnHzJL_1KZkX9M,425
|
|
209
|
-
punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html,sha256=
|
|
222
|
+
punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html,sha256=CDUDhuxZ0LgvP5hQzsdcC1xRJTq7cEkOjdBDMRfuMW4,736
|
|
210
223
|
punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html,sha256=J_Lp6KKcqSJr-IayyLN-p0JgMfuwbFP77g-UtcM53WI,672
|
|
211
224
|
punkweb_bb/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
|
+
punkweb_bb/templatetags/can_delete.py,sha256=NiFi_VH3KKaAYxdu9cZXR9gT9SNEeLAxnbxb4R7O_Nw,137
|
|
226
|
+
punkweb_bb/templatetags/can_edit.py,sha256=CbnbCcmJkeHZbWbsMn5OmCXMBEa6N1KW6W1dHLQvdWM,133
|
|
227
|
+
punkweb_bb/templatetags/can_post.py,sha256=6J1ojqqyNX99DBZM30jQiirQxAyY5rMi05QXXQjJB7I,133
|
|
212
228
|
punkweb_bb/templatetags/humanize_int.py,sha256=C4KmDG0Jv6o8rwT1RXLdWoGLddJxMxgOoRV9I2598AM,248
|
|
213
229
|
punkweb_bb/templatetags/shoutbox_bbcode.py,sha256=OH-FsRTyPWZldaFypSVzPLlTrSm4XEOqQW9hBI0ROBk,310
|
|
214
230
|
punkweb_bb/templatetags/__pycache__/__init__.cpython-311.pyc,sha256=VEPKwaIhqpKpSSJiotDYngAUdidDzR9PpPiHtKEl1jA,174
|
|
231
|
+
punkweb_bb/templatetags/__pycache__/can_delete.cpython-311.pyc,sha256=GfdHIumIAFyra6Nox6Y7AILBUW_DL7OZ0MtWWaj94mw,528
|
|
232
|
+
punkweb_bb/templatetags/__pycache__/can_edit.cpython-311.pyc,sha256=PJDUtJWrZWb8qgldPrC2si0QNokEhRaYnXaRk4dhuJU,524
|
|
233
|
+
punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc,sha256=1IU4-Ar-kwjnB2EHQ_tJUyTFWPwTl8jsDbgnNT52zO8,524
|
|
215
234
|
punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc,sha256=UKD6_5RX8YpYpg-LPrgGxBkW56THsbYY51cKTYdKwRY,621
|
|
216
235
|
punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc,sha256=csY5ek-bevYVeM91hYFKozuKWXCTXb7M-7Bokwdxhrk,619
|
|
217
236
|
punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc,sha256=Jhg9qW-nQe6IDr45rE0ZgeDYF4E61S7kYAYpbMo5ZQ8,833
|
|
218
|
-
punkweb_bb-0.1.
|
|
219
|
-
punkweb_bb-0.1.
|
|
220
|
-
punkweb_bb-0.1.
|
|
221
|
-
punkweb_bb-0.1.
|
|
222
|
-
punkweb_bb-0.1.
|
|
237
|
+
punkweb_bb-0.2.1.dist-info/LICENSE,sha256=YYysF07B-kyXSO7IWFB9f49ZXa6LIFUTVsR1Ogmhp8s,1507
|
|
238
|
+
punkweb_bb-0.2.1.dist-info/METADATA,sha256=4cwq4pqrFlbTu_DgHhl1UxFT-dqSv9FH0sUSvu6ba8M,5138
|
|
239
|
+
punkweb_bb-0.2.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
240
|
+
punkweb_bb-0.2.1.dist-info/top_level.txt,sha256=sWuGdGnk0ejOXiFDzlBqrNs2VbPEx0_i8UwWXn4SuHU,11
|
|
241
|
+
punkweb_bb-0.2.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|