punkweb-bb 0.2.0__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.
Files changed (30) hide show
  1. punkweb_bb/__pycache__/models.cpython-311.pyc +0 -0
  2. punkweb_bb/__pycache__/settings.cpython-311.pyc +0 -0
  3. punkweb_bb/__pycache__/urls.cpython-311.pyc +0 -0
  4. punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
  5. punkweb_bb/migrations/0003_alter_thread_options.py +23 -0
  6. punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc +0 -0
  7. punkweb_bb/models.py +4 -0
  8. punkweb_bb/settings.py +1 -0
  9. punkweb_bb/static/punkweb_bb/css/index.css +2 -2
  10. punkweb_bb/static/punkweb_bb/css/punkweb.css +95 -4
  11. punkweb_bb/static/punkweb_bb/css/thread.css +1 -1
  12. punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js +1 -1
  13. punkweb_bb/templates/punkweb_bb/base.html +6 -0
  14. punkweb_bb/templates/punkweb_bb/index.html +35 -20
  15. punkweb_bb/templates/punkweb_bb/login.html +1 -0
  16. punkweb_bb/templates/punkweb_bb/members.html +1 -0
  17. punkweb_bb/templates/punkweb_bb/profile.html +1 -0
  18. punkweb_bb/templates/punkweb_bb/settings.html +1 -0
  19. punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +7 -3
  20. punkweb_bb/templates/punkweb_bb/signup.html +1 -0
  21. punkweb_bb/templates/punkweb_bb/subcategory.html +14 -4
  22. punkweb_bb/templates/punkweb_bb/thread.html +71 -19
  23. punkweb_bb/templates/punkweb_bb/thread_create.html +1 -0
  24. punkweb_bb/urls.py +2 -0
  25. punkweb_bb/views.py +26 -0
  26. {punkweb_bb-0.2.0.dist-info → punkweb_bb-0.2.1.dist-info}/METADATA +1 -1
  27. {punkweb_bb-0.2.0.dist-info → punkweb_bb-0.2.1.dist-info}/RECORD +30 -28
  28. {punkweb_bb-0.2.0.dist-info → punkweb_bb-0.2.1.dist-info}/LICENSE +0 -0
  29. {punkweb_bb-0.2.0.dist-info → punkweb_bb-0.2.1.dist-info}/WHEEL +0 -0
  30. {punkweb_bb-0.2.0.dist-info → punkweb_bb-0.2.1.dist-info}/top_level.txt +0 -0
Binary file
@@ -0,0 +1,23 @@
1
+ # Generated by Django 4.2.11 on 2024-05-29 01:03
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("punkweb_bb", "0002_thread_view_count"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterModelOptions(
14
+ name="thread",
15
+ options={
16
+ "ordering": ("subcategory", "-is_pinned", "-last_post_created_at"),
17
+ "permissions": (
18
+ ("pin_thread", "Can pin thread"),
19
+ ("close_thread", "Can close thread"),
20
+ ),
21
+ },
22
+ ),
23
+ ]
punkweb_bb/models.py CHANGED
@@ -119,6 +119,10 @@ class Thread(UUIDPrimaryKeyMixin, TimestampMixin):
119
119
  "-is_pinned",
120
120
  "-last_post_created_at",
121
121
  )
122
+ permissions = (
123
+ ("pin_thread", "Can pin thread"),
124
+ ("close_thread", "Can close thread"),
125
+ )
122
126
 
123
127
  def __str__(self):
124
128
  return f"{self.title}"
punkweb_bb/settings.py CHANGED
@@ -5,6 +5,7 @@ PUNKWEB_BB = getattr(settings, "PUNKWEB_BB", {})
5
5
  SITE_NAME = PUNKWEB_BB.get("SITE_NAME", "PUNKWEB")
6
6
  SITE_TITLE = PUNKWEB_BB.get("SITE_TITLE", "PunkwebBB")
7
7
  FAVICON = PUNKWEB_BB.get("FAVICON", "punkweb_bb/favicon.ico")
8
+ OG_IMAGE = PUNKWEB_BB.get("OG_IMAGE", None)
8
9
  SHOUTBOX_ENABLED = PUNKWEB_BB.get("SHOUTBOX_ENABLED", True)
9
10
  DISCORD_WIDGET_ENABLED = PUNKWEB_BB.get("DISCORD_WIDGET_ENABLED", False)
10
11
  DISCORD_WIDGET_THEME = PUNKWEB_BB.get("DISCORD_WIDGET_THEME", "dark")
@@ -7,10 +7,10 @@
7
7
  flex: 1;
8
8
  }
9
9
 
10
- .index__category__actions {
10
+ .index__category__title {
11
11
  align-items: center;
12
12
  display: flex;
13
- gap: 0.25rem;
13
+ gap: 0.5rem;
14
14
  }
15
15
 
16
16
  .index__sidebar {
@@ -390,12 +390,13 @@ blockquote cite {
390
390
  /** Icon Button **/
391
391
 
392
392
  .pw-icon-button {
393
+ align-items: center;
393
394
  border-radius: 0.25rem;
394
395
  cursor: pointer;
395
- display: inline-block;
396
+ display: flex;
397
+ justify-content: center;
396
398
  font-weight: 500;
397
399
  transition: all 0.15s ease;
398
- text-align: center;
399
400
 
400
401
  height: 2rem;
401
402
  line-height: 2rem;
@@ -463,7 +464,7 @@ blockquote cite {
463
464
  width: 3rem;
464
465
  }
465
466
 
466
- .pw-icon-button.sl .material-symbols-outlined {
467
+ .pw-icon-button.xl .material-symbols-outlined {
467
468
  font-size: 1.5rem;
468
469
  }
469
470
 
@@ -492,6 +493,30 @@ blockquote cite {
492
493
  background-color: var(--oc-gray-1);
493
494
  }
494
495
 
496
+ .pw-icon-button.default.primary {
497
+ color: var(--primary-9);
498
+ }
499
+
500
+ .pw-icon-button.default.primary:hover {
501
+ background-color: var(--primary-0);
502
+ }
503
+
504
+ .pw-icon-button.default.primary:active {
505
+ background-color: var(--primary-1);
506
+ }
507
+
508
+ .pw-icon-button.default.danger {
509
+ color: var(--oc-red-9);
510
+ }
511
+
512
+ .pw-icon-button.default.danger:hover {
513
+ background-color: var(--oc-red-0);
514
+ }
515
+
516
+ .pw-icon-button.default.danger:active {
517
+ background-color: var(--oc-red-1);
518
+ }
519
+
495
520
  /* Outlined */
496
521
 
497
522
  .pw-icon-button.outlined {
@@ -507,7 +532,33 @@ blockquote cite {
507
532
  background-color: var(--oc-gray-1);
508
533
  }
509
534
 
510
- /* Outlined */
535
+ .pw-icon-button.outlined.primary {
536
+ border-color: var(--primary-9);
537
+ color: var(--primary-9);
538
+ }
539
+
540
+ .pw-icon-button.outlined.primary:hover {
541
+ background-color: var(--primary-0);
542
+ }
543
+
544
+ .pw-icon-button.outlined.primary:active {
545
+ background-color: var(--primary-1);
546
+ }
547
+
548
+ .pw-icon-button.outlined.danger {
549
+ border-color: var(--oc-red-9);
550
+ color: var(--oc-red-9);
551
+ }
552
+
553
+ .pw-icon-button.outlined.danger:hover {
554
+ background-color: var(--oc-red-0);
555
+ }
556
+
557
+ .pw-icon-button.outlined.danger:active {
558
+ background-color: var(--oc-red-1);
559
+ }
560
+
561
+ /* Ghost */
511
562
 
512
563
  .pw-icon-button.ghost {
513
564
  border: 1px solid var(--oc-gray-9);
@@ -525,6 +576,38 @@ blockquote cite {
525
576
  color: white;
526
577
  }
527
578
 
579
+ .pw-icon-button.ghost.primary {
580
+ border: 1px solid var(--primary-9);
581
+ color: var(--primary-9);
582
+ }
583
+
584
+ .pw-icon-button.ghost.primary:not(:disabled):hover {
585
+ background-color: var(--primary-9);
586
+ color: white;
587
+ }
588
+
589
+ .pw-icon-button.ghost.primary:not(:disabled):active {
590
+ background-color: var(--primary-9);
591
+ box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.25);
592
+ color: white;
593
+ }
594
+
595
+ .pw-icon-button.ghost.danger {
596
+ border: 1px solid var(--oc-red-9);
597
+ color: var(--oc-red-9);
598
+ }
599
+
600
+ .pw-icon-button.ghost.danger:not(:disabled):hover {
601
+ background-color: var(--oc-red-9);
602
+ color: white;
603
+ }
604
+
605
+ .pw-icon-button.ghost.danger:not(:disabled):active {
606
+ background-color: var(--oc-red-9);
607
+ box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.25);
608
+ color: white;
609
+ }
610
+
528
611
  /* Raised */
529
612
 
530
613
  .pw-icon-button.raised {
@@ -533,6 +616,14 @@ blockquote cite {
533
616
  color: white;
534
617
  }
535
618
 
619
+ .pw-icon-button.raised.primary {
620
+ background-color: var(--primary-9);
621
+ }
622
+
623
+ .pw-icon-button.raised.danger {
624
+ background-color: var(--oc-red-9);
625
+ }
626
+
536
627
  .pw-icon-button.raised:not(:disabled):hover {
537
628
  box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.25);
538
629
  }
@@ -94,7 +94,7 @@
94
94
  align-items: center;
95
95
  display: flex;
96
96
  justify-content: flex-end;
97
- gap: 1rem;
97
+ gap: 0.25rem;
98
98
  padding: 1rem;
99
99
  }
100
100
 
@@ -2,7 +2,7 @@ $(function () {
2
2
  $(document).ready(function () {
3
3
  $(".bbcode-editor").sceditor({
4
4
  emoticonsCompat: true,
5
- emoticonsEnabled: true,
5
+ emoticonsEnabled: false,
6
6
  emoticonsRoot: "/media/precise_bbcode/smilies/",
7
7
  emoticons: {
8
8
  dropdown: {},
@@ -6,6 +6,12 @@
6
6
  <meta charset="UTF-8" />
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
8
  <title>{% block title_prefix %}{% endblock %}{{ punkweb_bb.settings.SITE_TITLE|default:"PunkwebBB" }}</title>
9
+ <meta property="og:title" content="{% block og_title_prefix %}{% endblock %}{{ punkweb_bb.settings.SITE_TITLE|default:"PunkwebBB" }}" />
10
+ <meta property="og:type" content="website" />
11
+ <meta property="og:url" content="{{ request.build_absolute_uri }}" />
12
+ {% if punkweb_bb.settings.OG_IMAGE %}
13
+ <meta property="og:image" content="{{ punkweb_bb.settings.OG_IMAGE }}" />
14
+ {% endif %}
9
15
  <link rel="icon" href="{% static punkweb_bb.settings.FAVICON %}" />
10
16
  <link rel="stylesheet" href="{% static 'punkweb_bb/vendor/open-color.css' %}" />
11
17
  <link rel="stylesheet" href="{% static 'punkweb_bb/vendor/prism.css' %}" />
@@ -31,36 +31,45 @@
31
31
  </colgroup>
32
32
  <thead>
33
33
  <tr>
34
- <th><a href="{{category.get_absolute_url}}">{{category.name}}</a></th>
35
- <th>Threads</th>
36
- <th>Posts</th>
37
- <th></th>
38
- </tr>
39
- </thead>
40
- <tbody>
41
- {% if perms.punkweb_bb.add_subcategory or perms.punkweb_bb.change_category or perms.punkweb_bb.delete_category %}
42
- <tr>
43
- <td colspan="4">
44
- <div class="index__category__actions">
34
+ <th>
35
+ <div class="index__category__title">
36
+ <a href="{{category.get_absolute_url}}">{{category.name}}</a>
45
37
  {% if perms.punkweb_bb.add_subcategory %}
46
- <a class="pw-button ghost xs" href="{% url 'punkweb_bb:subcategory_create' category.slug %}">
47
- Create Subcategory
38
+ <a
39
+ class="pw-icon-button default rounded sm"
40
+ href="{% url 'punkweb_bb:subcategory_create' category.slug %}"
41
+ title="Create subcategory"
42
+ >
43
+ <span class="material-symbols-outlined">add</span>
48
44
  </a>
49
45
  {% endif %}
50
46
  {% if perms.punkweb_bb.change_category %}
51
- <a class="pw-button ghost xs" href="{% url 'punkweb_bb:category_update' category.slug %}">
52
- Edit
47
+ <a
48
+ class="pw-icon-button default rounded sm"
49
+ href="{% url 'punkweb_bb:category_update' category.slug %}"
50
+ title="Edit category"
51
+ >
52
+ <span class="material-symbols-outlined">edit</span>
53
53
  </a>
54
54
  {% endif %}
55
55
  {% if perms.punkweb_bb.delete_category %}
56
- <a class="pw-button ghost danger xs" hx-get="{% url 'punkweb_bb:category_delete' category.slug %}" hx-target="#modal-portal">
57
- Delete
56
+ <a
57
+ class="pw-icon-button default danger rounded sm"
58
+ title="Delete category"
59
+ hx-get="{% url 'punkweb_bb:category_delete' category.slug %}"
60
+ hx-target="#modal-portal"
61
+ >
62
+ <span class="material-symbols-outlined">delete</span>
58
63
  </a>
59
64
  {% endif %}
60
65
  </div>
61
- </td>
66
+ </th>
67
+ <th>Threads</th>
68
+ <th>Posts</th>
69
+ <th></th>
62
70
  </tr>
63
- {% endif %}
71
+ </thead>
72
+ <tbody>
64
73
  {% for subcategory in category.subcategories.all %}
65
74
  <tr>
66
75
  <td>
@@ -134,7 +143,13 @@
134
143
  </div>
135
144
  {% endfor %}
136
145
  {% if perms.punkweb_bb.add_category %}
137
- <a class="pw-button ghost xs" href="{% url 'punkweb_bb:category_create' %}">Create Category</a>
146
+ <a
147
+ class="pw-icon-button raised primary rounded"
148
+ href="{% url 'punkweb_bb:category_create' %}"
149
+ title="Create category"
150
+ >
151
+ <span class="material-symbols-outlined">add</span>
152
+ </a>
138
153
  {% endif %}
139
154
  </div>
140
155
  <div class="index__sidebar">
@@ -2,6 +2,7 @@
2
2
  {% load static %}
3
3
 
4
4
  {% block title_prefix %}Login | {% endblock%}
5
+ {% block og_title_prefix %}Login | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/login.css' %}" />
@@ -2,6 +2,7 @@
2
2
  {% load static %}
3
3
 
4
4
  {% block title_prefix %}Members | {% endblock%}
5
+ {% block og_title_prefix %}Members | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/members.css' %}" />
@@ -2,6 +2,7 @@
2
2
  {% load static %}
3
3
 
4
4
  {% block title_prefix %}{{ user.username }} | {% endblock%}
5
+ {% block og_title_prefix %}{{ user.username }} | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/profile.css' %}">
@@ -2,6 +2,7 @@
2
2
  {% load static %}
3
3
 
4
4
  {% block title_prefix %}Settings | {% endblock %}
5
+ {% block og_title_prefix %}Settings | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  {{form.media.css}}
@@ -9,9 +9,13 @@
9
9
  </div>
10
10
  {% if shout|can_delete:request.user %}
11
11
  <div class="shoutbox__shout__actions">
12
- <button class="pw-icon-button danger xs" hx-get="{% url 'punkweb_bb:shout_delete' shout.id %}"
13
- hx-target="#modal-portal">
14
- <span class="material-symbols-outlined">close</span>
12
+ <button
13
+ class="pw-icon-button default danger sm"
14
+ title="Delete"
15
+ hx-get="{% url 'punkweb_bb:shout_delete' shout.id %}"
16
+ hx-target="#modal-portal"
17
+ >
18
+ <span class="material-symbols-outlined">delete</span>
15
19
  </button>
16
20
  </div>
17
21
  {% endif %}
@@ -2,6 +2,7 @@
2
2
  {% load static %}
3
3
 
4
4
  {% block title_prefix %}Sign Up | {% endblock%}
5
+ {% block og_title_prefix %}Sign Up | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/login.css' %}" />
@@ -2,6 +2,7 @@
2
2
  {% load static humanize_int can_post %}
3
3
 
4
4
  {% block title_prefix %}{{subcategory.name}} | {% endblock%}
5
+ {% block og_title_prefix %}{{subcategory.name}} | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/subcategory.css' %}" />
@@ -29,13 +30,22 @@
29
30
  {% if perms.punkweb_bb.change_subcategory or perms.punkweb_bb.delete_subcategory %}
30
31
  <div class="subcategory__header__actions">
31
32
  {% if perms.punkweb_bb.change_subcategory %}
32
- <a class="pw-button ghost xs" href="{% url 'punkweb_bb:subcategory_update' subcategory.slug %}">
33
- Edit
33
+ <a
34
+ class="pw-icon-button default rounded"
35
+ href="{% url 'punkweb_bb:subcategory_update' subcategory.slug %}"
36
+ title="Edit subcategory"
37
+ >
38
+ <span class="material-symbols-outlined">edit</span>
34
39
  </a>
35
40
  {% endif %}
36
41
  {% if perms.punkweb_bb.delete_subcategory %}
37
- <a class="pw-button ghost danger xs" hx-get="{% url 'punkweb_bb:subcategory_delete' subcategory.slug %}" hx-target="#modal-portal">
38
- Delete
42
+ <a
43
+ class="pw-icon-button default rounded danger"
44
+ title="Delete subcategory"
45
+ hx-get="{% url 'punkweb_bb:subcategory_delete' subcategory.slug %}"
46
+ hx-target="#modal-portal"
47
+ >
48
+ <span class="material-symbols-outlined">delete</span>
39
49
  </a>
40
50
  {% endif %}
41
51
  </div>
@@ -2,8 +2,11 @@
2
2
  {% load static can_delete can_edit can_post %}
3
3
 
4
4
  {% block title_prefix %}{{thread.title}} | {% endblock %}
5
+ {% block og_title_prefix %}{{thread.title}} | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
8
+ <meta name="description" content="{{thread.content.rendered|striptags|truncatechars:120}}" />
9
+ <meta property="og:description" content="{{thread.content.rendered|striptags|truncatechars:120}}" />
7
10
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/post-form.css' %}" />
8
11
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/thread.css' %}" />
9
12
  <link rel="stylesheet" href="{% static 'punkweb_bb/css/thread-form.css' %}" />
@@ -79,24 +82,62 @@
79
82
  <div class="thread__content">
80
83
  {{thread.content.rendered}}
81
84
  </div>
82
- {% if thread.user.profile.signature.rendered %}
83
- <div class="thread__signature">
84
- {{thread.user.profile.signature.rendered}}
85
- </div>
86
- {% endif %}
87
- {% if thread|can_delete:request.user or thread|can_edit:request.user %}
85
+ {% if thread|can_delete:request.user or thread|can_edit:request.user or perms.punkweb_bb.pin_thread or perms.punkweb_bb.close_thread %}
88
86
  <div class="thread__actions">
87
+ {% if perms.punkweb_bb.pin_thread %}
88
+ <a
89
+ class="pw-icon-button default rounded"
90
+ title="{% if thread.is_pinned %}Unpin{% else %}Pin{% endif %}"
91
+ hx-get="{% url 'punkweb_bb:thread_pin' thread.id %}"
92
+ hx-swap="none"
93
+ >
94
+ {% if thread.is_pinned %}
95
+ <span class="material-symbols-outlined">keep_off</span>
96
+ {% else %}
97
+ <span class="material-symbols-outlined">keep</span>
98
+ {% endif %}
99
+ </a>
100
+ {% endif %}
101
+ {% if perms.punkweb_bb.close_thread %}
102
+ <a
103
+ class="pw-icon-button default rounded"
104
+ title="{% if thread.is_closed %}Reopen{% else %}Close{% endif %}"
105
+ hx-get="{% url 'punkweb_bb:thread_close' thread.id %}"
106
+ hx-swap="none"
107
+ >
108
+ {% if thread.is_closed %}
109
+ <span class="material-symbols-outlined">lock_open</span>
110
+ {% else %}
111
+ <span class="material-symbols-outlined">lock</span>
112
+ {% endif %}
113
+ </a>
114
+ {% endif %}
89
115
  {% if thread|can_edit:request.user %}
90
- <a class="pw-button ghost sm" href="{% url 'punkweb_bb:thread_update' thread.id %}">Edit</a>
116
+ <a
117
+ class="pw-icon-button default rounded"
118
+ href="{% url 'punkweb_bb:thread_update' thread.id %}"
119
+ title="Edit"
120
+ >
121
+ <span class="material-symbols-outlined">edit</span>
122
+ </a>
91
123
  {% endif %}
92
124
  {% if thread|can_delete:request.user %}
93
- <a class="pw-button ghost danger sm" hx-get="{% url 'punkweb_bb:thread_delete' thread.id %}"
94
- hx-target="#modal-portal">
95
- Delete
125
+ <a
126
+ class="pw-icon-button default rounded danger"
127
+ title="Delete"
128
+ hx-get="{% url 'punkweb_bb:thread_delete' thread.id %}"
129
+ hx-target="#modal-portal"
130
+ >
131
+ <span class="material-symbols-outlined">delete</span>
96
132
  </a>
97
133
  {% endif %}
98
134
  </div>
99
135
  {% endif %}
136
+ {% if thread.user.profile.signature.rendered %}
137
+ <div class="thread__signature">
138
+ {{thread.user.profile.signature.rendered}}
139
+ </div>
140
+ {% endif %}
100
141
  </div>
101
142
  </div>
102
143
  </div>
@@ -151,24 +192,35 @@
151
192
  <div class="thread__content">
152
193
  {{post.content.rendered}}
153
194
  </div>
154
- {% if post.user.profile.signature.rendered %}
155
- <div class="thread__signature">
156
- {{post.user.profile.signature.rendered}}
157
- </div>
158
- {% endif %}
159
195
  {% if post|can_delete:request.user or post|can_edit:request.user %}
160
196
  <div class="thread__actions">
161
197
  {% if post|can_edit:request.user %}
162
- <a class="pw-button ghost sm" hx-get="{% url 'punkweb_bb:post_update' post.id %}" hx-target="#modal-portal">Edit</a>
198
+ <a
199
+ class="pw-icon-button default rounded"
200
+ title="Edit"
201
+ hx-get="{% url 'punkweb_bb:post_update' post.id %}"
202
+ hx-target="#modal-portal"
203
+ >
204
+ <span class="material-symbols-outlined">edit</span>
205
+ </a>
163
206
  {% endif %}
164
207
  {% if post|can_delete:request.user %}
165
- <a class="pw-button ghost danger sm" hx-get="{% url 'punkweb_bb:post_delete' post.id %}"
166
- hx-target="#modal-portal">
167
- Delete
208
+ <a
209
+ class="pw-icon-button default rounded danger"
210
+ title="Delete"
211
+ hx-get="{% url 'punkweb_bb:post_delete' post.id %}"
212
+ hx-target="#modal-portal"
213
+ >
214
+ <span class="material-symbols-outlined">delete</span>
168
215
  </a>
169
216
  {% endif %}
170
217
  </div>
171
218
  {% endif %}
219
+ {% if post.user.profile.signature.rendered %}
220
+ <div class="thread__signature">
221
+ {{post.user.profile.signature.rendered}}
222
+ </div>
223
+ {% endif %}
172
224
  </div>
173
225
  </div>
174
226
  </div>
@@ -2,6 +2,7 @@
2
2
  {% load static %}
3
3
 
4
4
  {% block title_prefix %}Create Thread | {% endblock %}
5
+ {% block og_title_prefix %}Create Thread | {% endblock %}
5
6
 
6
7
  {% block extra_head %}
7
8
  {{form.media.css}}
punkweb_bb/urls.py CHANGED
@@ -59,6 +59,8 @@ urlpatterns = [
59
59
  views.post_create_view,
60
60
  name="post_create",
61
61
  ),
62
+ path("thread/<str:thread_id>/pin/", views.thread_pin_view, name="thread_pin"),
63
+ path("thread/<str:thread_id>/close/", views.thread_close_view, name="thread_close"),
62
64
  path("post/<str:post_id>/delete/", views.post_delete_view, name="post_delete"),
63
65
  path("post/<str:post_id>/update/", views.post_update_view, name="post_update"),
64
66
  path("shout-list/", views.shout_list_view, name="shout_list"),
punkweb_bb/views.py CHANGED
@@ -406,6 +406,32 @@ def thread_delete_view(request, thread_id):
406
406
  return render(request, "punkweb_bb/partials/thread_delete.html", context=context)
407
407
 
408
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
+
409
435
  @login_required(login_url="/login/")
410
436
  def post_create_view(request, thread_id):
411
437
  thread = get_object_or_404(Thread, pk=thread_id)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: punkweb-bb
3
- Version: 0.2.0
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
@@ -8,16 +8,16 @@ 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=Vl3df9rUqH3TJyfJ__rr8ibhs98tUaUkMPzWlq_0ZT0,6218
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=ebJahIZHt1fYdhxB9wWDlWj5KhzExUtaXyoFLy8uR6k,517
15
+ punkweb_bb/settings.py,sha256=poqIMn9EnPZ7CYvDB08NPlPHMpjSXJ-gCte2awmjgNc,561
16
16
  punkweb_bb/signals.py,sha256=bVdfg942Mwq-fYDZ1Z52Q0V2BCk1lgzGz8JVZFPnzJ8,365
17
17
  punkweb_bb/tests.py,sha256=NcTt9RPt4MegOzjryUok9FTWZda6VHB3O3FJN99Pz8s,26338
18
- punkweb_bb/urls.py,sha256=z5L0Dj1TgjNUMhogra4R55bfhpDyBSsW6KfLwFFpYRs,2415
18
+ punkweb_bb/urls.py,sha256=LPCKgiPEvM87JYU_sTYTdU-tKO8xDyKkiO2nT7sv2v0,2587
19
19
  punkweb_bb/utils.py,sha256=4XUoXB1hqCYShhPAbdFf2qSB5wTKt7IJtFizuRfkP2U,396
20
- punkweb_bb/views.py,sha256=b8E8MIHsdyPUxxbzRQRhgvUJhfNn5ljOuVEKTGxOjcU,16610
20
+ punkweb_bb/views.py,sha256=BIpI58MIH50UppDOnkTEBwll1iozuVs2m6N7S9xqW9I,17400
21
21
  punkweb_bb/widgets.py,sha256=eF6CB5nnh_6XJadpDzDKgd9incd0VIR63Rnzdr8T2n0,840
22
22
  punkweb_bb/__pycache__/__init__.cpython-311.pyc,sha256=3PyxCxoznfadaGt0a7re4j0Ky9z9hblufpcwPB85kK8,161
23
23
  punkweb_bb/__pycache__/admin.cpython-311.pyc,sha256=rAPYqRy7hAVZn3qST3ypYdulvH9IBhzWEgvbbAMIMIY,3679
@@ -29,45 +29,47 @@ punkweb_bb/__pycache__/forms.cpython-311.pyc,sha256=wZAWlEguoeOOmcDKJJgXX_oLvYwA
29
29
  punkweb_bb/__pycache__/guests.cpython-311.pyc,sha256=vgZJcZGyHZkllCAhXHGgajHh7YM1ntXinSed3ojIK6I,1581
30
30
  punkweb_bb/__pycache__/middleware.cpython-311.pyc,sha256=KbZ6z2Q7eCRX3dB7mnRUpn58mb_O8sXpOw_sqVfQsgM,1560
31
31
  punkweb_bb/__pycache__/mixins.cpython-311.pyc,sha256=eP1NjqDNYMYXrC45DNkrTqVAUv1vsGBrqPy5U5CB_aw,1478
32
- punkweb_bb/__pycache__/models.cpython-311.pyc,sha256=4qd4eWnPR_p1G26cnhowd7gfJ6-p660NrS_C5q7038A,13824
32
+ punkweb_bb/__pycache__/models.cpython-311.pyc,sha256=u52jc-tCggzLH9td-qzyxzbKRaWK6SDzGFE_7D7Mosc,13931
33
33
  punkweb_bb/__pycache__/pagination.cpython-311.pyc,sha256=r54xmtiRp5dm1n2Xa7oElMFFaYFY0RzmMuF3Er4UqEA,990
34
34
  punkweb_bb/__pycache__/parsers.cpython-311.pyc,sha256=pp8JZt9V3HhquQMGrhglwLc53GxgNFWjjSnK3Bpxf8o,5335
35
35
  punkweb_bb/__pycache__/response.cpython-311.pyc,sha256=CEPckYWZkOrdU2Vow-ni0ZrWEUBww0uJzyr_wv---mM,448
36
- punkweb_bb/__pycache__/settings.cpython-311.pyc,sha256=earWFaFtg8IPqfOz9I6wdpI9bJtxjxsTwG7LoTCPmtw,947
36
+ punkweb_bb/__pycache__/settings.cpython-311.pyc,sha256=4nTGJeWkptvoS-DcaEEpXGEeh7fLox5H1pCXkFKN8U4,1025
37
37
  punkweb_bb/__pycache__/signals.cpython-311.pyc,sha256=AHChn7hDdrOmCAwKIKKuFOY-4hyBP9uwTkyb5bnFV-Q,864
38
38
  punkweb_bb/__pycache__/tests.cpython-311.pyc,sha256=z7wbXzc3xY4lyg8II-k8fVe-UxQ2fk8XwV-wnb684wo,51768
39
- punkweb_bb/__pycache__/urls.cpython-311.pyc,sha256=A7iTuJIZzme8BJX6pfyX-Ym9ZRpsLt-RDo4eveOiw8M,3322
39
+ punkweb_bb/__pycache__/urls.cpython-311.pyc,sha256=IYIX39oVwDb2TtVcyX7dlzztW7hJwl0vzO1UZpb-nuo,3565
40
40
  punkweb_bb/__pycache__/utils.cpython-311.pyc,sha256=iNDU4dwAwpAzqlKl5kuHH989Ic_1lGA4JQq0wpR7ATo,748
41
- punkweb_bb/__pycache__/views.cpython-311.pyc,sha256=B9W_SLDDVMsEKJ4yF--L9oe_qF1extBuone73KfgW-w,23918
41
+ punkweb_bb/__pycache__/views.cpython-311.pyc,sha256=gpMcF9LcMOkJhd_6g3Pk8uLbw2iAHw9aj4fWtU1Jnj0,25276
42
42
  punkweb_bb/__pycache__/widgets.cpython-311.pyc,sha256=-RcQ3JapLHw8Bbi4FP05kQJJIa7bnliKPaFpkDCOWvQ,1552
43
43
  punkweb_bb/migrations/0001_initial.py,sha256=3RGsylygBcWx1kIPhSzOb9v_2yvowsxKfxuSinKKuS0,8950
44
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
45
46
  punkweb_bb/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
47
  punkweb_bb/migrations/__pycache__/0001_initial.cpython-311.pyc,sha256=koi_VflndmTKzSXWstWBXuVEZgEeueId5NE4kOAlA4Q,6456
47
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
48
50
  punkweb_bb/migrations/__pycache__/__init__.cpython-311.pyc,sha256=sTbC1AXnh0V4BJwjcjs1ckdeYjG01I348hZwLE2HI4Y,172
49
51
  punkweb_bb/static/punkweb_bb/favicon.ico,sha256=lEfX--R9wEGPkkXgLYCsGmHuAGajigiqBXAoonxq8ZM,318
50
52
  punkweb_bb/static/punkweb_bb/css/category-form.css,sha256=lvG7Lh2GGBVplKk46JAIHF1cmFLve2JT32BswmudIF8,359
51
53
  punkweb_bb/static/punkweb_bb/css/defaults.css,sha256=EsYORpHIQ8gotAdiGvBBU38i6F0mICj-OKr-JF6yYVg,1455
52
- punkweb_bb/static/punkweb_bb/css/index.css,sha256=BTuzV0HSvdOmWKd9cjYOv7sOOsdWqbxXxCp4Q3fyPeU,1418
54
+ punkweb_bb/static/punkweb_bb/css/index.css,sha256=Jr4P0uLQ0lhM1ujycNVYYnu6tFmFXVZUXMJxFzes-Bo,1415
53
55
  punkweb_bb/static/punkweb_bb/css/login.css,sha256=pt5ul4ycZsVB-No3c5gsQa1zVS1iAZgteN1CcllS26k,234
54
56
  punkweb_bb/static/punkweb_bb/css/members.css,sha256=1Fz0uVDbs3RnuXNjOtnGnK2jok3LEQBoPhjRYp7gNwE,395
55
57
  punkweb_bb/static/punkweb_bb/css/post-form.css,sha256=rEiYplAobLjjUYAcnjNqIjyIVhe9O5hAlPJ3STW-K14,321
56
58
  punkweb_bb/static/punkweb_bb/css/profile.css,sha256=yfNJT_D-05deqiBrdIgPeCSO_DFSL8-fGEEHnGrCIYM,916
57
59
  punkweb_bb/static/punkweb_bb/css/punkweb-modal.css,sha256=ctwo5bgbAW-k0uqrufDbqeQfAh87-BZ-5gPm8aJHeT4,1296
58
- punkweb_bb/static/punkweb_bb/css/punkweb.css,sha256=ABCJYmjHnUr3MkP-XUIvb1tiOamTy0tbDZZOM_-nQ4k,12678
60
+ punkweb_bb/static/punkweb_bb/css/punkweb.css,sha256=GhVOOVTy76IOh4WLfUQeAtG8LWhE615mSQJzro2KwZI,14557
59
61
  punkweb_bb/static/punkweb_bb/css/settings.css,sha256=ulQQFTu8slk2rYOmhvci5v-AVnguUuDhKQDhyQOsQNU,308
60
62
  punkweb_bb/static/punkweb_bb/css/shoutbox.css,sha256=DapBIe21b6w7ugA_U1EJ-1LFb3IfnJZMw7Kc4DLxF1g,536
61
63
  punkweb_bb/static/punkweb_bb/css/subcategory-form.css,sha256=KU-fI8-DiurYiiBVeNk-9vERekbJrOTxllPPFYXu5Fk,371
62
64
  punkweb_bb/static/punkweb_bb/css/subcategory.css,sha256=7j9_-S4kspgojfebYBu8AQQS3uJtqCoE32T-BuAgHxw,711
63
65
  punkweb_bb/static/punkweb_bb/css/thread-form.css,sha256=9MfqocnamNMjeNJ-w6YTwYbm4oepeK09phFzVsg1XO8,329
64
- punkweb_bb/static/punkweb_bb/css/thread.css,sha256=3s2xQj9uD3gQGhEzTCY6y7k5Dpq5E7eeI8gi4fwODos,1870
66
+ punkweb_bb/static/punkweb_bb/css/thread.css,sha256=wJMQaFu-CEzHUYbp8WRCI6wWxi2CMccIT0xfuRNcFAg,1873
65
67
  punkweb_bb/static/punkweb_bb/css/typography.css,sha256=qbFGBcU-OOe7r41xeW0Gc_9x6yHxhh81XtswmFxgavc,448
66
68
  punkweb_bb/static/punkweb_bb/css/variables.css,sha256=WphZPeJgeqMYy4JYaSTX0gX-JiZh8EJlhieGOGk75DA,1193
67
69
  punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css,sha256=c1VCTVYqvzjy-51dMZ27zp-zdZrL-2TwIEheeYQXDDw,1466
68
70
  punkweb_bb/static/punkweb_bb/editor/bbcode-editor-tags.js,sha256=pLgF7lIJnPQXpfqQnkTHBU5tjcvICDHpn2nhvzxwUqA,1624
69
71
  punkweb_bb/static/punkweb_bb/editor/bbcode-editor.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js,sha256=hT1gwsRf3fYETmm2fLFWIJNBgVPhl_UVUEkvii7EqAE,606
72
+ punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js,sha256=gnp2QdVfnflBirCS6jnuw_TYlVoMaifn_18hh4I19Jw,607
71
73
  punkweb_bb/static/punkweb_bb/img/default-profile-image.png,sha256=plGHkG9uiCmgof9Hcv7YNT0oThtDIhJtMzjbxxTtdFY,60475
72
74
  punkweb_bb/static/punkweb_bb/js/punkweb-modal.js,sha256=by7e5bpdC-KJ9HT6LqAu8c868CvI5vans4S70DuAmrs,179
73
75
  punkweb_bb/static/punkweb_bb/js/shoutbox.js,sha256=dgWq_6yzcwj9uWtvluTJeWa3bVmgtPJke48KbzL7Q1s,142
@@ -194,22 +196,22 @@ punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office-toolba
194
196
  punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office.min.css,sha256=EZeNIT-LMxAnrW_7M6BXuH0B8m3MoIS68tDyTxmCoP0,13148
195
197
  punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/square.min.css,sha256=vrNHEnpQJr3o8AlJ2aEhn4fsRqR4TOopE3N3-4oE2ho,10710
196
198
  punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/content/default.min.css,sha256=2jMxGiqcrAhfOtNMdqmTUtfgM6oUz5F0VJ0sUzam9CY,1016
197
- punkweb_bb/templates/punkweb_bb/base.html,sha256=Gu2ZVeP0p7GnsfXFxByXRd9LT4DNXx0O1czSGjwYg0w,4037
199
+ punkweb_bb/templates/punkweb_bb/base.html,sha256=-swjri5cx547vuLVApepf8AchoAVrK2TjwtV7lmxdZc,4426
198
200
  punkweb_bb/templates/punkweb_bb/base_modal.html,sha256=OCbtsMWeNCO0Tl1PmHCcGkwoi1OZjeIK_VhNTzMor7M,460
199
201
  punkweb_bb/templates/punkweb_bb/bbcode.html,sha256=1EGBejsOMZOPi6P39oR6E35VdqnfR6wYWeKDl4Xr_js,396
200
202
  punkweb_bb/templates/punkweb_bb/category_create.html,sha256=773uJzxVvuPmWVrW87EoQTBNoo6cyi3UBp_PZn6JY5A,1369
201
203
  punkweb_bb/templates/punkweb_bb/category_update.html,sha256=GUFo19BXY8JVvxP7cWAyWiTD5Z9LohR4f6vf1jlRqfo,1467
202
- punkweb_bb/templates/punkweb_bb/index.html,sha256=HuhP13ijkcU7IofnCWvcLD9FeQOmb87jSAQrMBmrcek,10032
203
- punkweb_bb/templates/punkweb_bb/login.html,sha256=ZUOmbyZREzS7Sw02Lfb9zpRJQQWwJgolnj9lcBKnOtg,1087
204
- punkweb_bb/templates/punkweb_bb/members.html,sha256=ceRCRX0AN7V8d7paz9495y8aQByMUKDWVWL2GzoGbus,2729
205
- punkweb_bb/templates/punkweb_bb/profile.html,sha256=MW1JWLs_lLpg62DDcvcZJRwrHquYA5nCwQqL1v9ZGCo,2948
206
- punkweb_bb/templates/punkweb_bb/settings.html,sha256=CmmGdNddZj6Atpofcny0bwEHwTPRPC8vXXThCgsNH90,1994
207
- punkweb_bb/templates/punkweb_bb/signup.html,sha256=HP5owUfV2uEuvOccPoBa21XbjBHo0ulV6tjfgdToNLU,1167
208
- punkweb_bb/templates/punkweb_bb/subcategory.html,sha256=Px3XQhYlbb5Vt4Q5-0_4trpng_mqo7wA9NFlIzWIODI,5543
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
209
211
  punkweb_bb/templates/punkweb_bb/subcategory_create.html,sha256=8FhcWKiaYGIulrOaBzQ6qFMpDvsAnX_q-XJ5mKwBLW8,1521
210
212
  punkweb_bb/templates/punkweb_bb/subcategory_update.html,sha256=kOq6tuhNBSMVQkBSpHpU06JuQ3h008fOKqLcxe9PgCg,1638
211
- punkweb_bb/templates/punkweb_bb/thread.html,sha256=zv18JAucBrCDlOQn0J5wT8raNLtcvuW1vszXRguPPPk,8417
212
- punkweb_bb/templates/punkweb_bb/thread_create.html,sha256=676jLKGc5m8IapbL_FS1yvTs2XVFPHjJ316SIiORAew,1639
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
213
215
  punkweb_bb/templates/punkweb_bb/thread_update.html,sha256=SLL_5tceZ8ZiPbWCO9eOe_aeMgV5lQ-p6eun1_XvKwE,1730
214
216
  punkweb_bb/templates/punkweb_bb/partials/category_delete.html,sha256=Re9ESmC6AHeY9aICE0zE1i7vZEDHsF577Vmsz9L7jyA,435
215
217
  punkweb_bb/templates/punkweb_bb/partials/post_delete.html,sha256=tQtQGxTF0tZA5eXqfIuO6NctsS83eEhR4ImmBLbkAXM,417
@@ -217,7 +219,7 @@ punkweb_bb/templates/punkweb_bb/partials/post_update.html,sha256=mFidDqgTuv4Lffu
217
219
  punkweb_bb/templates/punkweb_bb/partials/shout_delete.html,sha256=zo-Ff-meucwC03p656VI5SI79RmS5nF-NbrFb3znPBM,421
218
220
  punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html,sha256=GImRDtfuMTg6_docXHTqVqe_1NzXblnrSyivxeatlIE,447
219
221
  punkweb_bb/templates/punkweb_bb/partials/thread_delete.html,sha256=m91u_r8qTvMqR2s4VxxFHQvZt-WGgHnHzJL_1KZkX9M,425
220
- punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html,sha256=hp2DzMRYGkzLD-mPJjCLvOpoyN5It0FihHff7nSGha0,689
222
+ punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html,sha256=CDUDhuxZ0LgvP5hQzsdcC1xRJTq7cEkOjdBDMRfuMW4,736
221
223
  punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html,sha256=J_Lp6KKcqSJr-IayyLN-p0JgMfuwbFP77g-UtcM53WI,672
222
224
  punkweb_bb/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
225
  punkweb_bb/templatetags/can_delete.py,sha256=NiFi_VH3KKaAYxdu9cZXR9gT9SNEeLAxnbxb4R7O_Nw,137
@@ -232,8 +234,8 @@ punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc,sha256=1IU4-Ar-kwjn
232
234
  punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc,sha256=UKD6_5RX8YpYpg-LPrgGxBkW56THsbYY51cKTYdKwRY,621
233
235
  punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc,sha256=csY5ek-bevYVeM91hYFKozuKWXCTXb7M-7Bokwdxhrk,619
234
236
  punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc,sha256=Jhg9qW-nQe6IDr45rE0ZgeDYF4E61S7kYAYpbMo5ZQ8,833
235
- punkweb_bb-0.2.0.dist-info/LICENSE,sha256=YYysF07B-kyXSO7IWFB9f49ZXa6LIFUTVsR1Ogmhp8s,1507
236
- punkweb_bb-0.2.0.dist-info/METADATA,sha256=nPCD6tOWqlYwLl3PC2pZgspZvXDmIR76lf0a0OqX9T0,5138
237
- punkweb_bb-0.2.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
238
- punkweb_bb-0.2.0.dist-info/top_level.txt,sha256=sWuGdGnk0ejOXiFDzlBqrNs2VbPEx0_i8UwWXn4SuHU,11
239
- punkweb_bb-0.2.0.dist-info/RECORD,,
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,,