punkweb-bb 0.2.1__py3-none-any.whl → 0.2.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.
- punkweb_bb/__pycache__/admin.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/admin_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__/sitemap.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/admin.py +23 -1
- punkweb_bb/admin_forms.py +17 -1
- punkweb_bb/migrations/0004_groupstyle.py +58 -0
- punkweb_bb/migrations/__pycache__/0004_groupstyle.cpython-311.pyc +0 -0
- punkweb_bb/models.py +26 -2
- punkweb_bb/static/punkweb_bb/css/subcategory.css +1 -0
- punkweb_bb/static/punkweb_bb/css/thread.css +21 -28
- punkweb_bb/templates/punkweb_bb/index.html +5 -5
- punkweb_bb/templates/punkweb_bb/members.html +5 -3
- punkweb_bb/templates/punkweb_bb/profile.html +8 -4
- punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +3 -3
- punkweb_bb/templates/punkweb_bb/subcategory.html +8 -8
- punkweb_bb/templates/punkweb_bb/thread.html +72 -60
- punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/__pycache__/styled_username.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/__pycache__/username.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/styled_group_name.py +11 -0
- punkweb_bb/templatetags/styled_username.py +9 -0
- punkweb_bb/utils.py +30 -0
- punkweb_bb/views.py +1 -3
- {punkweb_bb-0.2.1.dist-info → punkweb_bb-0.2.3.dist-info}/METADATA +3 -2
- {punkweb_bb-0.2.1.dist-info → punkweb_bb-0.2.3.dist-info}/RECORD +32 -24
- {punkweb_bb-0.2.1.dist-info → punkweb_bb-0.2.3.dist-info}/LICENSE +0 -0
- {punkweb_bb-0.2.1.dist-info → punkweb_bb-0.2.3.dist-info}/WHEEL +0 -0
- {punkweb_bb-0.2.1.dist-info → punkweb_bb-0.2.3.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
punkweb_bb/admin.py
CHANGED
|
@@ -4,11 +4,20 @@ from django.utils.safestring import mark_safe
|
|
|
4
4
|
from punkweb_bb.admin_forms import (
|
|
5
5
|
BoardProfileAdminModelForm,
|
|
6
6
|
CategoryAdminModelForm,
|
|
7
|
+
GroupStyleAdminModelForm,
|
|
7
8
|
PostAdminModelForm,
|
|
8
9
|
SubcategoryAdminModelForm,
|
|
9
10
|
ThreadAdminModelForm,
|
|
10
11
|
)
|
|
11
|
-
from punkweb_bb.models import
|
|
12
|
+
from punkweb_bb.models import (
|
|
13
|
+
BoardProfile,
|
|
14
|
+
Category,
|
|
15
|
+
GroupStyle,
|
|
16
|
+
Post,
|
|
17
|
+
Shout,
|
|
18
|
+
Subcategory,
|
|
19
|
+
Thread,
|
|
20
|
+
)
|
|
12
21
|
|
|
13
22
|
|
|
14
23
|
@admin.register(BoardProfile)
|
|
@@ -114,3 +123,16 @@ class ShoutModelAdmin(admin.ModelAdmin):
|
|
|
114
123
|
"user__email",
|
|
115
124
|
"content",
|
|
116
125
|
)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@admin.register(GroupStyle)
|
|
129
|
+
class GroupStyleModelAdmin(admin.ModelAdmin):
|
|
130
|
+
form = GroupStyleAdminModelForm
|
|
131
|
+
list_display = (
|
|
132
|
+
"group",
|
|
133
|
+
"priority",
|
|
134
|
+
)
|
|
135
|
+
search_fields = (
|
|
136
|
+
"group__name",
|
|
137
|
+
"username_style",
|
|
138
|
+
)
|
punkweb_bb/admin_forms.py
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
from django import forms
|
|
2
2
|
|
|
3
|
-
from punkweb_bb.models import
|
|
3
|
+
from punkweb_bb.models import (
|
|
4
|
+
BoardProfile,
|
|
5
|
+
Category,
|
|
6
|
+
GroupStyle,
|
|
7
|
+
Post,
|
|
8
|
+
Subcategory,
|
|
9
|
+
Thread,
|
|
10
|
+
)
|
|
4
11
|
from punkweb_bb.widgets import BBCodeEditorWidget
|
|
5
12
|
|
|
6
13
|
|
|
@@ -47,3 +54,12 @@ class PostAdminModelForm(forms.ModelForm):
|
|
|
47
54
|
widgets = {
|
|
48
55
|
"content": BBCodeEditorWidget(),
|
|
49
56
|
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class GroupStyleAdminModelForm(forms.ModelForm):
|
|
60
|
+
class Meta:
|
|
61
|
+
model = GroupStyle
|
|
62
|
+
fields = "__all__"
|
|
63
|
+
widgets = {
|
|
64
|
+
"username_style": BBCodeEditorWidget(),
|
|
65
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-05-29 19:48
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
import django.db.models.deletion
|
|
5
|
+
import precise_bbcode.fields
|
|
6
|
+
import uuid
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Migration(migrations.Migration):
|
|
10
|
+
|
|
11
|
+
dependencies = [
|
|
12
|
+
("auth", "0012_alter_user_first_name_max_length"),
|
|
13
|
+
("punkweb_bb", "0003_alter_thread_options"),
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
operations = [
|
|
17
|
+
migrations.CreateModel(
|
|
18
|
+
name="GroupStyle",
|
|
19
|
+
fields=[
|
|
20
|
+
(
|
|
21
|
+
"id",
|
|
22
|
+
models.UUIDField(
|
|
23
|
+
default=uuid.uuid4,
|
|
24
|
+
editable=False,
|
|
25
|
+
primary_key=True,
|
|
26
|
+
serialize=False,
|
|
27
|
+
),
|
|
28
|
+
),
|
|
29
|
+
("created_at", models.DateTimeField(auto_now_add=True)),
|
|
30
|
+
("updated_at", models.DateTimeField(auto_now=True)),
|
|
31
|
+
(
|
|
32
|
+
"priority",
|
|
33
|
+
models.PositiveIntegerField(
|
|
34
|
+
default=0, help_text="Highest priority is displayed"
|
|
35
|
+
),
|
|
36
|
+
),
|
|
37
|
+
(
|
|
38
|
+
"_username_style_rendered",
|
|
39
|
+
models.TextField(blank=True, editable=False, null=True),
|
|
40
|
+
),
|
|
41
|
+
(
|
|
42
|
+
"username_style",
|
|
43
|
+
precise_bbcode.fields.BBCodeTextField(no_rendered_field=True),
|
|
44
|
+
),
|
|
45
|
+
(
|
|
46
|
+
"group",
|
|
47
|
+
models.OneToOneField(
|
|
48
|
+
on_delete=django.db.models.deletion.CASCADE,
|
|
49
|
+
related_name="style",
|
|
50
|
+
to="auth.group",
|
|
51
|
+
),
|
|
52
|
+
),
|
|
53
|
+
],
|
|
54
|
+
options={
|
|
55
|
+
"ordering": ("-priority",),
|
|
56
|
+
},
|
|
57
|
+
),
|
|
58
|
+
]
|
|
Binary file
|
punkweb_bb/models.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import datetime
|
|
2
1
|
import math
|
|
3
2
|
import os
|
|
4
3
|
|
|
5
4
|
from django.contrib.auth import get_user_model
|
|
5
|
+
from django.contrib.auth.models import Group
|
|
6
6
|
from django.core.cache import cache
|
|
7
7
|
from django.db import models
|
|
8
8
|
from django.forms import ValidationError
|
|
@@ -11,6 +11,7 @@ from django.utils import timezone
|
|
|
11
11
|
from precise_bbcode.fields import BBCodeTextField
|
|
12
12
|
|
|
13
13
|
from punkweb_bb.mixins import TimestampMixin, UUIDPrimaryKeyMixin
|
|
14
|
+
from punkweb_bb.utils import get_highest_priority_group, get_styled_username
|
|
14
15
|
|
|
15
16
|
User = get_user_model()
|
|
16
17
|
|
|
@@ -28,11 +29,19 @@ class BoardProfile(UUIDPrimaryKeyMixin, TimestampMixin):
|
|
|
28
29
|
class Meta:
|
|
29
30
|
ordering = ("user__username",)
|
|
30
31
|
|
|
32
|
+
@property
|
|
33
|
+
def priority_group(self):
|
|
34
|
+
return get_highest_priority_group(self.user)
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def styled_username(self):
|
|
38
|
+
return get_styled_username(self.user)
|
|
39
|
+
|
|
31
40
|
@property
|
|
32
41
|
def is_online(self):
|
|
33
42
|
last_seen = cache.get(f"profile_online_{self.id}")
|
|
34
43
|
if last_seen:
|
|
35
|
-
return timezone.now() < last_seen +
|
|
44
|
+
return timezone.now() < last_seen + timezone.timedelta(minutes=5)
|
|
36
45
|
return False
|
|
37
46
|
|
|
38
47
|
@property
|
|
@@ -205,3 +214,18 @@ class Shout(UUIDPrimaryKeyMixin, TimestampMixin):
|
|
|
205
214
|
|
|
206
215
|
def can_delete(self, user):
|
|
207
216
|
return user == self.user or user.has_perm("punkweb_bb.delete_shout")
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
class GroupStyle(UUIDPrimaryKeyMixin, TimestampMixin):
|
|
220
|
+
group = models.OneToOneField(Group, related_name="style", on_delete=models.CASCADE)
|
|
221
|
+
priority = models.PositiveIntegerField(
|
|
222
|
+
default=0,
|
|
223
|
+
help_text="Highest priority is displayed",
|
|
224
|
+
)
|
|
225
|
+
username_style = BBCodeTextField()
|
|
226
|
+
|
|
227
|
+
class Meta:
|
|
228
|
+
ordering = ("-priority",)
|
|
229
|
+
|
|
230
|
+
def __str__(self):
|
|
231
|
+
return f"{self.group} > {self.priority}"
|
|
@@ -28,13 +28,25 @@
|
|
|
28
28
|
padding: 1rem;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.
|
|
31
|
+
.thread__user__info {
|
|
32
32
|
align-items: center;
|
|
33
33
|
display: flex;
|
|
34
|
+
flex-direction: column;
|
|
34
35
|
gap: 0.25rem;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
.
|
|
38
|
+
.thread__user__username {
|
|
39
|
+
align-items: center;
|
|
40
|
+
display: flex;
|
|
41
|
+
gap: 0.25rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.thread__user__group {
|
|
45
|
+
font-size: 0.75rem;
|
|
46
|
+
font-weight: 700;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.thread__user__details {
|
|
38
50
|
background-color: var(--oc-gray-0);
|
|
39
51
|
border: 1px solid var(--border);
|
|
40
52
|
border-radius: 0.25rem;
|
|
@@ -45,35 +57,16 @@
|
|
|
45
57
|
width: 100%;
|
|
46
58
|
}
|
|
47
59
|
|
|
48
|
-
.
|
|
60
|
+
.thread__user__details__row {
|
|
49
61
|
align-items: center;
|
|
50
62
|
display: flex;
|
|
51
63
|
justify-content: space-between;
|
|
52
64
|
}
|
|
53
65
|
|
|
54
|
-
.
|
|
66
|
+
.thread__user__details__label {
|
|
55
67
|
color: var(--body-fg);
|
|
56
68
|
}
|
|
57
69
|
|
|
58
|
-
.thread__user__groups {
|
|
59
|
-
display: flex;
|
|
60
|
-
flex-direction: column;
|
|
61
|
-
gap: 0.5rem;
|
|
62
|
-
width: 100%;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.thread__user__group {
|
|
66
|
-
background-color: var(--primary-8);
|
|
67
|
-
border: 1px solid var(--primary-9);
|
|
68
|
-
border-radius: 0.25rem;
|
|
69
|
-
color: var(--text-on-primary);
|
|
70
|
-
display: flex;
|
|
71
|
-
font-size: 0.875rem;
|
|
72
|
-
justify-content: center;
|
|
73
|
-
padding: 0.5rem;
|
|
74
|
-
width: 100%;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
70
|
.thread__main {
|
|
78
71
|
display: flex;
|
|
79
72
|
flex-direction: column;
|
|
@@ -85,11 +78,6 @@
|
|
|
85
78
|
padding: 1rem;
|
|
86
79
|
}
|
|
87
80
|
|
|
88
|
-
.thread__signature {
|
|
89
|
-
border-top: 1px solid var(--border);
|
|
90
|
-
padding: 1rem;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
81
|
.thread__actions {
|
|
94
82
|
align-items: center;
|
|
95
83
|
display: flex;
|
|
@@ -98,6 +86,11 @@
|
|
|
98
86
|
padding: 1rem;
|
|
99
87
|
}
|
|
100
88
|
|
|
89
|
+
.thread__signature {
|
|
90
|
+
border-top: 1px solid var(--border);
|
|
91
|
+
padding: 1rem;
|
|
92
|
+
}
|
|
93
|
+
|
|
101
94
|
.thread__reply__content {
|
|
102
95
|
display: flex;
|
|
103
96
|
flex-direction: column;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{% extends 'punkweb_bb/base.html' %}
|
|
2
2
|
|
|
3
|
-
{% load static %}
|
|
3
|
+
{% load static bbcode_tags styled_username %}
|
|
4
4
|
|
|
5
5
|
{% block extra_head %}
|
|
6
6
|
<link rel="stylesheet" href="{% static 'punkweb_bb/css/index.css' %}" />
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
</time>
|
|
102
102
|
•
|
|
103
103
|
<a href="{% url 'punkweb_bb:profile' subcategory.latest_thread.latest_post.user.id %}">
|
|
104
|
-
{{subcategory.latest_thread.latest_post.user
|
|
104
|
+
{{subcategory.latest_thread.latest_post.user|styled_username}}
|
|
105
105
|
</a>
|
|
106
106
|
</div>
|
|
107
107
|
</div>
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
</time>
|
|
126
126
|
•
|
|
127
127
|
<a href="{% url 'punkweb_bb:profile' subcategory.latest_thread.user.id %}">
|
|
128
|
-
{{subcategory.latest_thread.user
|
|
128
|
+
{{subcategory.latest_thread.user|styled_username}}
|
|
129
129
|
</a>
|
|
130
130
|
</div>
|
|
131
131
|
</div>
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
</time>
|
|
176
176
|
•
|
|
177
177
|
<a href="{% url 'punkweb_bb:profile' thread.user.id %}">
|
|
178
|
-
{{thread.user
|
|
178
|
+
{{thread.user|styled_username}}
|
|
179
179
|
</a>
|
|
180
180
|
</div>
|
|
181
181
|
</div>
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
<div class="index__statistics__label">Newest member:</div>
|
|
207
207
|
<div class="index__statistics__value">
|
|
208
208
|
<a href="{% url 'punkweb_bb:profile' newest_user.id %}">
|
|
209
|
-
{{newest_user
|
|
209
|
+
{{newest_user|styled_username}}
|
|
210
210
|
</a>
|
|
211
211
|
</div>
|
|
212
212
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% extends "punkweb_bb/base.html" %}
|
|
2
|
-
{% load static %}
|
|
2
|
+
{% load static styled_username %}
|
|
3
3
|
|
|
4
4
|
{% block title_prefix %}Members | {% endblock%}
|
|
5
5
|
{% block og_title_prefix %}Members | {% endblock %}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
{% endif %}
|
|
34
34
|
</div>
|
|
35
35
|
<div class="members__user__info">
|
|
36
|
-
<div class="members__user__username"><a href="{% url 'punkweb_bb:profile' user.id %}">{{ user
|
|
36
|
+
<div class="members__user__username"><a href="{% url 'punkweb_bb:profile' user.id %}">{{ user|styled_username }}</a></div>
|
|
37
37
|
<div class="members__user__stats">
|
|
38
38
|
<div class="members__user__stat">
|
|
39
39
|
Posts:
|
|
@@ -41,7 +41,9 @@
|
|
|
41
41
|
</div>
|
|
42
42
|
<div class="members__user__stat">
|
|
43
43
|
Date Joined:
|
|
44
|
-
<span class="members__user__stat__value">
|
|
44
|
+
<span class="members__user__stat__value">
|
|
45
|
+
<time datetime="{{user.date_joined|date:'c'}}">{{user.date_joined | date:'m/d/Y'}}</time>
|
|
46
|
+
</span>
|
|
45
47
|
</div>
|
|
46
48
|
</div>
|
|
47
49
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% extends 'punkweb_bb/base.html' %}
|
|
2
|
-
{% load static %}
|
|
2
|
+
{% load static styled_username %}
|
|
3
3
|
|
|
4
4
|
{% block title_prefix %}{{ user.username }} | {% endblock%}
|
|
5
5
|
{% block og_title_prefix %}{{ user.username }} | {% endblock %}
|
|
@@ -35,15 +35,19 @@
|
|
|
35
35
|
{% endif %}
|
|
36
36
|
</div>
|
|
37
37
|
<div class="profile__info__details">
|
|
38
|
-
<div class="profile__info__username">{{user
|
|
38
|
+
<div class="profile__info__username">{{user|styled_username}}</div>
|
|
39
39
|
<div class="profile__info__stats">
|
|
40
40
|
<div class="profile__info__stat">
|
|
41
41
|
Date Joined:
|
|
42
|
-
<span class="profile__info__stat__value">
|
|
42
|
+
<span class="profile__info__stat__value">
|
|
43
|
+
<time datetime="{{user.date_joined|date:'c'}}">{{user.date_joined | date:'m/d/Y'}}</time>
|
|
44
|
+
</span>
|
|
43
45
|
</div>
|
|
44
46
|
<div class="profile__info__stat">
|
|
45
47
|
Last Login:
|
|
46
|
-
<span class="profile__info__stat__value">
|
|
48
|
+
<span class="profile__info__stat__value">
|
|
49
|
+
<time datetime="{{user.last_login|date:'c'}}">{{user.last_login | date:'m/d/Y'}}</time>
|
|
50
|
+
</span>
|
|
47
51
|
</div>
|
|
48
52
|
<div class="profile__info__stat">
|
|
49
53
|
Posts:
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
{% load shoutbox_bbcode can_delete %}
|
|
1
|
+
{% load shoutbox_bbcode can_delete styled_username %}
|
|
2
2
|
|
|
3
3
|
{% for shout in shouts %}
|
|
4
4
|
<div class="shoutbox__shout">
|
|
5
5
|
<div class="shoutbox__shout__content">
|
|
6
|
-
<
|
|
7
|
-
<span><a href="{% url 'punkweb_bb:profile' shout.user.id %}">{{shout.user
|
|
6
|
+
<time datetime="{{shout.created_at|date:'c'}}">{{shout.created_at | date:'g:i A'}}</time>
|
|
7
|
+
<span><a href="{% url 'punkweb_bb:profile' shout.user.id %}">{{shout.user|styled_username}}</a>: </span>
|
|
8
8
|
<span>{{ shout.content | safe | shoutbox_bbcode }}</span>
|
|
9
9
|
</div>
|
|
10
10
|
{% if shout|can_delete:request.user %}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% extends 'punkweb_bb/base.html' %}
|
|
2
|
-
{% load static humanize_int can_post %}
|
|
2
|
+
{% load static humanize_int can_post styled_username %}
|
|
3
3
|
|
|
4
4
|
{% block title_prefix %}{{subcategory.name}} | {% endblock%}
|
|
5
5
|
{% block og_title_prefix %}{{subcategory.name}} | {% endblock %}
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
<div class="pw-table-container">
|
|
71
71
|
<table class="pw-table">
|
|
72
72
|
<colgroup>
|
|
73
|
-
<col
|
|
74
|
-
<col
|
|
75
|
-
<col
|
|
76
|
-
<col
|
|
73
|
+
<col>
|
|
74
|
+
<col width="96px">
|
|
75
|
+
<col width="96px">
|
|
76
|
+
<col width="192px">
|
|
77
77
|
</colgroup>
|
|
78
78
|
<thead>
|
|
79
79
|
<tr>
|
|
@@ -98,10 +98,10 @@
|
|
|
98
98
|
</div>
|
|
99
99
|
<div>
|
|
100
100
|
<a href="{% url 'punkweb_bb:profile' thread.user.id %}">
|
|
101
|
-
{{thread.user
|
|
101
|
+
{{thread.user|styled_username}}
|
|
102
102
|
</a>
|
|
103
103
|
•
|
|
104
|
-
{{thread.created_at|date:'
|
|
104
|
+
<time datetime="{{thread.created_at|date:'c'}}">{{thread.created_at | date:'m j, Y'}}</time>
|
|
105
105
|
</td>
|
|
106
106
|
<td>{{thread.post_count}}</td>
|
|
107
107
|
<td>{{thread.view_count | humanize_int}}</td>
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
</a>
|
|
118
118
|
<div>
|
|
119
119
|
<a href="{% url 'punkweb_bb:profile' thread.latest_post.user.id %}">
|
|
120
|
-
{{thread.latest_post.user
|
|
120
|
+
{{thread.latest_post.user|styled_username}}
|
|
121
121
|
</a>
|
|
122
122
|
</div>
|
|
123
123
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% extends 'punkweb_bb/base.html' %}
|
|
2
|
-
{% load static can_delete can_edit can_post %}
|
|
2
|
+
{% load static can_delete can_edit can_post styled_username %}
|
|
3
3
|
|
|
4
4
|
{% block title_prefix %}{{thread.title}} | {% endblock %}
|
|
5
5
|
{% block og_title_prefix %}{{thread.title}} | {% endblock %}
|
|
@@ -41,42 +41,48 @@
|
|
|
41
41
|
|
|
42
42
|
<div class="pw-card fluid margin">
|
|
43
43
|
<div class="pw-card-header">
|
|
44
|
-
<div class="thread__date">
|
|
44
|
+
<div class="thread__date">
|
|
45
|
+
<time datetime="{{thread.created_at|date:'c'}}">{{thread.created_at | date:'M d, Y'}}</time>
|
|
46
|
+
</div>
|
|
45
47
|
</div>
|
|
46
48
|
<div class="thread">
|
|
47
49
|
<div class="thread__user">
|
|
48
|
-
{% if thread.user.profile.image %}
|
|
49
|
-
<img class="pw-avatar" src="{{thread.user.profile.image.url}}" alt="{{thread.user.username}}" />
|
|
50
|
-
{% else %}
|
|
51
|
-
<img class="pw-avatar" src="{% static 'punkweb_bb/img/default-profile-image.png' %}" alt="{{thread.user.username}}" />
|
|
52
|
-
{% endif %}
|
|
53
|
-
<div class="thread__user__usernameContainer">
|
|
54
|
-
{% if thread.user.profile.is_online %}
|
|
55
|
-
<div class="onlineIndicator"></div>
|
|
56
|
-
{% endif %}
|
|
57
|
-
<a href="{% url 'punkweb_bb:profile' thread.user.id %}">
|
|
58
|
-
{{thread.user.username}}
|
|
59
|
-
</a>
|
|
60
|
-
</div>
|
|
61
50
|
<div class="thread__user__info">
|
|
62
|
-
<div class="
|
|
63
|
-
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
<div class="thread__user__image">
|
|
52
|
+
{% if thread.user.profile.image %}
|
|
53
|
+
<img class="pw-avatar" src="{{thread.user.profile.image.url}}" alt="{{thread.user.username}}" />
|
|
54
|
+
{% else %}
|
|
55
|
+
<img class="pw-avatar" src="{% static 'punkweb_bb/img/default-profile-image.png' %}" alt="{{thread.user.username}}" />
|
|
56
|
+
{% endif %}
|
|
57
|
+
</div>
|
|
58
|
+
<div class="thread__user__username">
|
|
59
|
+
{% if thread.user.profile.is_online %}
|
|
60
|
+
<div class="onlineIndicator"></div>
|
|
61
|
+
{% endif %}
|
|
62
|
+
<a href="{% url 'punkweb_bb:profile' thread.user.id %}">
|
|
63
|
+
{{thread.user|styled_username}}
|
|
64
|
+
</a>
|
|
67
65
|
</div>
|
|
68
|
-
<div class="
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
<div class="thread__user__group">
|
|
67
|
+
{% if thread.user.profile.priority_group %}
|
|
68
|
+
{{thread.user.profile.priority_group.name}}
|
|
69
|
+
{% else %}
|
|
70
|
+
Member
|
|
71
|
+
{% endif %}
|
|
71
72
|
</div>
|
|
72
73
|
</div>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
<div class="thread__user__details">
|
|
75
|
+
<div class="thread__user__details__row">
|
|
76
|
+
<div class="thread__user__details__label">Joined:</div>
|
|
77
|
+
<div class="thread__user__details__value">
|
|
78
|
+
<time datetime="{{thread.user.date_joined|date:'c'}}">{{thread.user.date_joined | date:'M d, Y'}}</time>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="thread__user__details__row">
|
|
82
|
+
<div class="thread__user__details__label">Posts:</div>
|
|
83
|
+
<div class="thread__user__details__value">{{thread.user.profile.post_count}}</div>
|
|
84
|
+
</div>
|
|
78
85
|
</div>
|
|
79
|
-
{% endif %}
|
|
80
86
|
</div>
|
|
81
87
|
<div class="thread__main">
|
|
82
88
|
<div class="thread__content">
|
|
@@ -146,47 +152,53 @@
|
|
|
146
152
|
{% for post in posts %}
|
|
147
153
|
<div id="post-{{post.id}}" class="pw-card fluid margin">
|
|
148
154
|
<div class="pw-card-header thread__header">
|
|
149
|
-
<div class="thread__date">
|
|
155
|
+
<div class="thread__date">
|
|
156
|
+
<time datetime="{{post.created_at|date:'c'}}">{{post.created_at | date:'M d, Y'}}</time>
|
|
157
|
+
</div>
|
|
150
158
|
<a class="thread__index" href="{{post.get_absolute_url}}">#{{post.index}}</a>
|
|
151
159
|
</div>
|
|
152
160
|
<div class="thread">
|
|
153
161
|
<div class="thread__user">
|
|
154
|
-
{% if post.user.profile.image %}
|
|
155
|
-
<div class="thread__user__image">
|
|
156
|
-
<img class="pw-avatar" src="{{post.user.profile.image.url}}" alt="{{post.user.username}}" />
|
|
157
|
-
</div>
|
|
158
|
-
{% else %}
|
|
159
|
-
<div class="thread__user__image">
|
|
160
|
-
<img class="pw-avatar" src="{% static 'punkweb_bb/img/default-profile-image.png' %}" alt="{{post.user.username}}" />
|
|
161
|
-
</div>
|
|
162
|
-
{% endif %}
|
|
163
|
-
<div class="thread__user__usernameContainer">
|
|
164
|
-
{% if post.user.profile.is_online %}
|
|
165
|
-
<div class="onlineIndicator"></div>
|
|
166
|
-
{% endif %}
|
|
167
|
-
<a href="{% url 'punkweb_bb:profile' post.user.id %}">
|
|
168
|
-
{{post.user.username}}
|
|
169
|
-
</a>
|
|
170
|
-
</div>
|
|
171
162
|
<div class="thread__user__info">
|
|
172
|
-
<div class="
|
|
173
|
-
|
|
174
|
-
<div class="
|
|
175
|
-
{{post.user.
|
|
163
|
+
<div class="thread__user__image">
|
|
164
|
+
{% if post.user.profile.image %}
|
|
165
|
+
<div class="thread__user__image">
|
|
166
|
+
<img class="pw-avatar" src="{{post.user.profile.image.url}}" alt="{{post.user.username}}" />
|
|
167
|
+
</div>
|
|
168
|
+
{% else %}
|
|
169
|
+
<div class="thread__user__image">
|
|
170
|
+
<img class="pw-avatar" src="{% static 'punkweb_bb/img/default-profile-image.png' %}" alt="{{post.user.username}}" />
|
|
176
171
|
</div>
|
|
172
|
+
{% endif %}
|
|
177
173
|
</div>
|
|
178
|
-
<div class="
|
|
179
|
-
|
|
180
|
-
<div class="
|
|
174
|
+
<div class="thread__user__username">
|
|
175
|
+
{% if post.user.profile.is_online %}
|
|
176
|
+
<div class="onlineIndicator"></div>
|
|
177
|
+
{% endif %}
|
|
178
|
+
<a href="{% url 'punkweb_bb:profile' post.user.id %}">
|
|
179
|
+
{{post.user|styled_username}}
|
|
180
|
+
</a>
|
|
181
|
+
</div>
|
|
182
|
+
<div class="thread__user__group">
|
|
183
|
+
{% if post.user.profile.priority_group %}
|
|
184
|
+
{{post.user.profile.priority_group.name}}
|
|
185
|
+
{% else %}
|
|
186
|
+
Member
|
|
187
|
+
{% endif %}
|
|
181
188
|
</div>
|
|
182
189
|
</div>
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
190
|
+
<div class="thread__user__details">
|
|
191
|
+
<div class="thread__user__details__row">
|
|
192
|
+
<div class="thread__user__details__label">Joined:</div>
|
|
193
|
+
<div class="thread__user__details__value">
|
|
194
|
+
<time datetime="{{post.user.date_joined|date:'c'}}">{{post.user.date_joined | date:'M d, Y'}}</time>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
<div class="thread__user__details__row">
|
|
198
|
+
<div class="thread__user__details__label">Posts:</div>
|
|
199
|
+
<div class="thread__user__details__value">{{post.user.profile.post_count}}</div>
|
|
200
|
+
</div>
|
|
188
201
|
</div>
|
|
189
|
-
{% endif %}
|
|
190
202
|
</div>
|
|
191
203
|
<div class="thread__main">
|
|
192
204
|
<div class="thread__content">
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from django import template
|
|
2
|
+
from django.utils.safestring import mark_safe
|
|
3
|
+
|
|
4
|
+
from punkweb_bb.utils import get_styled_group_name
|
|
5
|
+
|
|
6
|
+
register = template.Library()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@register.filter
|
|
10
|
+
def styled_group_name(group):
|
|
11
|
+
return mark_safe(get_styled_group_name(group))
|
punkweb_bb/utils.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from django.contrib.auth.models import Group
|
|
1
2
|
from django.utils.text import slugify
|
|
2
3
|
|
|
3
4
|
|
|
@@ -15,3 +16,32 @@ def get_unique_slug(model, field):
|
|
|
15
16
|
unique_slug_exists = False
|
|
16
17
|
|
|
17
18
|
return slug
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_highest_priority_group(user):
|
|
22
|
+
groups = user.groups.filter(style__isnull=False)
|
|
23
|
+
|
|
24
|
+
if groups.exists():
|
|
25
|
+
return groups.order_by("-style__priority").first()
|
|
26
|
+
|
|
27
|
+
return None
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def get_styled_username(user):
|
|
31
|
+
group = get_highest_priority_group(user)
|
|
32
|
+
|
|
33
|
+
if group:
|
|
34
|
+
username_style = group.style.username_style
|
|
35
|
+
styled_username = username_style.rendered.replace("{USER}", user.username)
|
|
36
|
+
return styled_username
|
|
37
|
+
else:
|
|
38
|
+
return user.username
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def get_styled_group_name(group):
|
|
42
|
+
if group.style is None:
|
|
43
|
+
return group.name
|
|
44
|
+
else:
|
|
45
|
+
username_style = group.style.username_style
|
|
46
|
+
styled_group_name = username_style.rendered.replace("{USER}", group.name)
|
|
47
|
+
return styled_group_name
|
punkweb_bb/views.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import datetime
|
|
2
|
-
|
|
3
1
|
from django.contrib.auth import authenticate, get_user_model, login, logout
|
|
4
2
|
from django.contrib.auth.decorators import login_required
|
|
5
3
|
from django.http import HttpResponseForbidden
|
|
@@ -498,7 +496,7 @@ def post_delete_view(request, post_id):
|
|
|
498
496
|
|
|
499
497
|
def current_shouts():
|
|
500
498
|
return Shout.objects.filter(
|
|
501
|
-
created_at__gt=timezone.now() -
|
|
499
|
+
created_at__gt=timezone.now() - timezone.timedelta(hours=12)
|
|
502
500
|
).order_by("created_at")
|
|
503
501
|
|
|
504
502
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: punkweb-bb
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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
|
|
@@ -39,7 +39,7 @@ Check out [punkweb.net](https://punkweb.net/board/) for documentation, support a
|
|
|
39
39
|
|
|
40
40
|
## Requirements
|
|
41
41
|
|
|
42
|
-
- Python 3.
|
|
42
|
+
- Python 3.9+
|
|
43
43
|
- Django 4.2+
|
|
44
44
|
- django-precise-bbcode 1.2+
|
|
45
45
|
- Pillow
|
|
@@ -115,6 +115,7 @@ PUNKWEB_BB = {
|
|
|
115
115
|
"SITE_NAME": "PUNKWEB",
|
|
116
116
|
"SITE_TITLE": "PunkwebBB",
|
|
117
117
|
"FAVICON": "punkweb_bb/favicon.ico",
|
|
118
|
+
"OG_IMAGE": None, # Used for Open Graph meta tags, must be a full URL!
|
|
118
119
|
"SHOUTBOX_ENABLED": True,
|
|
119
120
|
"DISCORD_WIDGET_ENABLED": False,
|
|
120
121
|
"DISCORD_WIDGET_THEME": "dark",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
punkweb_bb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
punkweb_bb/admin.py,sha256=
|
|
3
|
-
punkweb_bb/admin_forms.py,sha256=
|
|
2
|
+
punkweb_bb/admin.py,sha256=ezgF1MrfhFb2mXjC0PNOVmoGXvZMnI0eND7noncetEU,2821
|
|
3
|
+
punkweb_bb/admin_forms.py,sha256=VgSjnJ4GsZ9qRv2J8n2UUMMTeCQMFUF-Ji1lfcEib1o,1372
|
|
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
|
|
@@ -8,7 +8,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=Zlh6pOHHDqErjOZeFgjIprwizC83SXg9NwzwJcRpBGg,7072
|
|
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
|
|
@@ -16,12 +16,12 @@ 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
18
|
punkweb_bb/urls.py,sha256=LPCKgiPEvM87JYU_sTYTdU-tKO8xDyKkiO2nT7sv2v0,2587
|
|
19
|
-
punkweb_bb/utils.py,sha256=
|
|
20
|
-
punkweb_bb/views.py,sha256=
|
|
19
|
+
punkweb_bb/utils.py,sha256=x35qDz8BF68kRQS7wrR79k3JWhrIzjbn0CcF-i4WFTw,1200
|
|
20
|
+
punkweb_bb/views.py,sha256=jo-RAgChOmaLHhQC1SP2ajMMcu8N8pX2JehLQBx_p-c,17383
|
|
21
21
|
punkweb_bb/widgets.py,sha256=eF6CB5nnh_6XJadpDzDKgd9incd0VIR63Rnzdr8T2n0,840
|
|
22
22
|
punkweb_bb/__pycache__/__init__.cpython-311.pyc,sha256=3PyxCxoznfadaGt0a7re4j0Ky9z9hblufpcwPB85kK8,161
|
|
23
|
-
punkweb_bb/__pycache__/admin.cpython-311.pyc,sha256=
|
|
24
|
-
punkweb_bb/__pycache__/admin_forms.cpython-311.pyc,sha256=
|
|
23
|
+
punkweb_bb/__pycache__/admin.cpython-311.pyc,sha256=XBNHbe2xud1aR9hFcWpOzsVRBGJcXSN8g_UB4dnPhfo,4182
|
|
24
|
+
punkweb_bb/__pycache__/admin_forms.cpython-311.pyc,sha256=ojzXud6UZNA6rtELWYP84a6ZhrUzv5ZjPLdY--MCpOg,3531
|
|
25
25
|
punkweb_bb/__pycache__/apps.cpython-311.pyc,sha256=lw328DOwOp1F8FWTFYb3qV1EoBNgRr_Tc4J8DXfIl-I,730
|
|
26
26
|
punkweb_bb/__pycache__/bbcode_tags.cpython-311.pyc,sha256=QI4BJt5plqLMiAvlVAxibuNONi69PJFQpotpS50olro,8534
|
|
27
27
|
punkweb_bb/__pycache__/context_processors.cpython-311.pyc,sha256=P7rEsodXonYexbS5vUaUKVJ9tIx1pOVk6NQWVvWNvS8,392
|
|
@@ -29,24 +29,27 @@ 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=
|
|
32
|
+
punkweb_bb/__pycache__/models.cpython-311.pyc,sha256=fTCXvuFdfY3Ee_hUVN8VdvfBpc096W3PDxmglW65HXQ,15478
|
|
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=
|
|
36
|
+
punkweb_bb/__pycache__/settings.cpython-311.pyc,sha256=0fK-PC9XKWJnV9dWaj0LH6prsqMP32WQHFWgO9m2uSs,1025
|
|
37
37
|
punkweb_bb/__pycache__/signals.cpython-311.pyc,sha256=AHChn7hDdrOmCAwKIKKuFOY-4hyBP9uwTkyb5bnFV-Q,864
|
|
38
|
+
punkweb_bb/__pycache__/sitemap.cpython-311.pyc,sha256=GFjuUD20_ikJWj7IFT1Cn7Od-rw2tsQ45tVMolyTWzA,1591
|
|
38
39
|
punkweb_bb/__pycache__/tests.cpython-311.pyc,sha256=z7wbXzc3xY4lyg8II-k8fVe-UxQ2fk8XwV-wnb684wo,51768
|
|
39
40
|
punkweb_bb/__pycache__/urls.cpython-311.pyc,sha256=IYIX39oVwDb2TtVcyX7dlzztW7hJwl0vzO1UZpb-nuo,3565
|
|
40
|
-
punkweb_bb/__pycache__/utils.cpython-311.pyc,sha256=
|
|
41
|
-
punkweb_bb/__pycache__/views.cpython-311.pyc,sha256=
|
|
41
|
+
punkweb_bb/__pycache__/utils.cpython-311.pyc,sha256=1_t3bg1dgQfQpSz8X_AAgrqUVPemo2D1AkPQt5x-gs4,2057
|
|
42
|
+
punkweb_bb/__pycache__/views.cpython-311.pyc,sha256=KvW7k59a6ABOE_HHbhNiwoemAUg-BgFXLR2feFhkv9w,25244
|
|
42
43
|
punkweb_bb/__pycache__/widgets.cpython-311.pyc,sha256=-RcQ3JapLHw8Bbi4FP05kQJJIa7bnliKPaFpkDCOWvQ,1552
|
|
43
44
|
punkweb_bb/migrations/0001_initial.py,sha256=3RGsylygBcWx1kIPhSzOb9v_2yvowsxKfxuSinKKuS0,8950
|
|
44
45
|
punkweb_bb/migrations/0002_thread_view_count.py,sha256=JJZT53Mp8Ofht3oIi67s-0wzCdpYyu8wOeCi_B8q8Yo,388
|
|
45
46
|
punkweb_bb/migrations/0003_alter_thread_options.py,sha256=0xwVfSMWs28akDMhMwOdyyuC7JZ47JekkphT8fUCpcA,589
|
|
47
|
+
punkweb_bb/migrations/0004_groupstyle.py,sha256=DKcTMFkAj903MvrSheMKquCVIOzanZoFakZLIE63nLo,1821
|
|
46
48
|
punkweb_bb/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
49
|
punkweb_bb/migrations/__pycache__/0001_initial.cpython-311.pyc,sha256=koi_VflndmTKzSXWstWBXuVEZgEeueId5NE4kOAlA4Q,6456
|
|
48
50
|
punkweb_bb/migrations/__pycache__/0002_thread_view_count.cpython-311.pyc,sha256=9HRllkD8LHPXadyurYvp2UcmRFEywalUVQjiOGWizgc,815
|
|
49
51
|
punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc,sha256=zK9keYR8PU92_sP5M78xmFJeLGwSnM5tIo09bU-IpOU,860
|
|
52
|
+
punkweb_bb/migrations/__pycache__/0004_groupstyle.cpython-311.pyc,sha256=5wYwjAe30bSea8PswtRkIw8vrxIVk9tUZmUWXanJ2dk,2000
|
|
50
53
|
punkweb_bb/migrations/__pycache__/__init__.cpython-311.pyc,sha256=sTbC1AXnh0V4BJwjcjs1ckdeYjG01I348hZwLE2HI4Y,172
|
|
51
54
|
punkweb_bb/static/punkweb_bb/favicon.ico,sha256=lEfX--R9wEGPkkXgLYCsGmHuAGajigiqBXAoonxq8ZM,318
|
|
52
55
|
punkweb_bb/static/punkweb_bb/css/category-form.css,sha256=lvG7Lh2GGBVplKk46JAIHF1cmFLve2JT32BswmudIF8,359
|
|
@@ -61,9 +64,9 @@ punkweb_bb/static/punkweb_bb/css/punkweb.css,sha256=GhVOOVTy76IOh4WLfUQeAtG8LWhE
|
|
|
61
64
|
punkweb_bb/static/punkweb_bb/css/settings.css,sha256=ulQQFTu8slk2rYOmhvci5v-AVnguUuDhKQDhyQOsQNU,308
|
|
62
65
|
punkweb_bb/static/punkweb_bb/css/shoutbox.css,sha256=DapBIe21b6w7ugA_U1EJ-1LFb3IfnJZMw7Kc4DLxF1g,536
|
|
63
66
|
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=
|
|
67
|
+
punkweb_bb/static/punkweb_bb/css/subcategory.css,sha256=h3TaMhswiD1ePgp80VN7sR91Wzr6tZwU_kCrulvAuPc,735
|
|
65
68
|
punkweb_bb/static/punkweb_bb/css/thread-form.css,sha256=9MfqocnamNMjeNJ-w6YTwYbm4oepeK09phFzVsg1XO8,329
|
|
66
|
-
punkweb_bb/static/punkweb_bb/css/thread.css,sha256=
|
|
69
|
+
punkweb_bb/static/punkweb_bb/css/thread.css,sha256=lfKQiphxLplXBwdAiT0V3IxhrajEIj9laU7xpGdNZTc,1686
|
|
67
70
|
punkweb_bb/static/punkweb_bb/css/typography.css,sha256=qbFGBcU-OOe7r41xeW0Gc_9x6yHxhh81XtswmFxgavc,448
|
|
68
71
|
punkweb_bb/static/punkweb_bb/css/variables.css,sha256=WphZPeJgeqMYy4JYaSTX0gX-JiZh8EJlhieGOGk75DA,1193
|
|
69
72
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css,sha256=c1VCTVYqvzjy-51dMZ27zp-zdZrL-2TwIEheeYQXDDw,1466
|
|
@@ -201,16 +204,16 @@ punkweb_bb/templates/punkweb_bb/base_modal.html,sha256=OCbtsMWeNCO0Tl1PmHCcGkwoi
|
|
|
201
204
|
punkweb_bb/templates/punkweb_bb/bbcode.html,sha256=1EGBejsOMZOPi6P39oR6E35VdqnfR6wYWeKDl4Xr_js,396
|
|
202
205
|
punkweb_bb/templates/punkweb_bb/category_create.html,sha256=773uJzxVvuPmWVrW87EoQTBNoo6cyi3UBp_PZn6JY5A,1369
|
|
203
206
|
punkweb_bb/templates/punkweb_bb/category_update.html,sha256=GUFo19BXY8JVvxP7cWAyWiTD5Z9LohR4f6vf1jlRqfo,1467
|
|
204
|
-
punkweb_bb/templates/punkweb_bb/index.html,sha256=
|
|
207
|
+
punkweb_bb/templates/punkweb_bb/index.html,sha256=pe0TAI98yGrPR0dosQYJgsfesFArfsoE-kSNfElSs0Q,10526
|
|
205
208
|
punkweb_bb/templates/punkweb_bb/login.html,sha256=Hsmt_Y50nTOEv7hBjACXMSEmIVCl-IqDv15iE-wo2cY,1137
|
|
206
|
-
punkweb_bb/templates/punkweb_bb/members.html,sha256=
|
|
207
|
-
punkweb_bb/templates/punkweb_bb/profile.html,sha256=
|
|
209
|
+
punkweb_bb/templates/punkweb_bb/members.html,sha256=QiG7VllECM4iE5-rIIyterepJ-O51o9NtIsjLvKrwGs,2886
|
|
210
|
+
punkweb_bb/templates/punkweb_bb/profile.html,sha256=7nByQWWnwzY8om2M_SMXG5C0Rm87K2By6rGbG2zGXbU,3198
|
|
208
211
|
punkweb_bb/templates/punkweb_bb/settings.html,sha256=pxEgQQxK1lk2UKL1W3YL-liAERo2mFgUNAJtshe13xk,2047
|
|
209
212
|
punkweb_bb/templates/punkweb_bb/signup.html,sha256=LMs_EwdEbBmFt4zXPt_LmtUujmBJVt0zE0LldgfhrY0,1219
|
|
210
|
-
punkweb_bb/templates/punkweb_bb/subcategory.html,sha256=
|
|
213
|
+
punkweb_bb/templates/punkweb_bb/subcategory.html,sha256=HbzcXyMcXiCzEXhIrNjkLQg7yPhmzLiNunzHrBkNiqE,5893
|
|
211
214
|
punkweb_bb/templates/punkweb_bb/subcategory_create.html,sha256=8FhcWKiaYGIulrOaBzQ6qFMpDvsAnX_q-XJ5mKwBLW8,1521
|
|
212
215
|
punkweb_bb/templates/punkweb_bb/subcategory_update.html,sha256=kOq6tuhNBSMVQkBSpHpU06JuQ3h008fOKqLcxe9PgCg,1638
|
|
213
|
-
punkweb_bb/templates/punkweb_bb/thread.html,sha256=
|
|
216
|
+
punkweb_bb/templates/punkweb_bb/thread.html,sha256=nkRSvuInn2LtfyWWoBfSYZBnQ60qivIjk7MjeQRtumM,10838
|
|
214
217
|
punkweb_bb/templates/punkweb_bb/thread_create.html,sha256=vCwU8GNBwy7pJ2X-jSTgqvAuqgQ_NeSvRDyieBWhP_g,1697
|
|
215
218
|
punkweb_bb/templates/punkweb_bb/thread_update.html,sha256=SLL_5tceZ8ZiPbWCO9eOe_aeMgV5lQ-p6eun1_XvKwE,1730
|
|
216
219
|
punkweb_bb/templates/punkweb_bb/partials/category_delete.html,sha256=Re9ESmC6AHeY9aICE0zE1i7vZEDHsF577Vmsz9L7jyA,435
|
|
@@ -219,7 +222,7 @@ punkweb_bb/templates/punkweb_bb/partials/post_update.html,sha256=mFidDqgTuv4Lffu
|
|
|
219
222
|
punkweb_bb/templates/punkweb_bb/partials/shout_delete.html,sha256=zo-Ff-meucwC03p656VI5SI79RmS5nF-NbrFb3znPBM,421
|
|
220
223
|
punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html,sha256=GImRDtfuMTg6_docXHTqVqe_1NzXblnrSyivxeatlIE,447
|
|
221
224
|
punkweb_bb/templates/punkweb_bb/partials/thread_delete.html,sha256=m91u_r8qTvMqR2s4VxxFHQvZt-WGgHnHzJL_1KZkX9M,425
|
|
222
|
-
punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html,sha256=
|
|
225
|
+
punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html,sha256=0vuAZgc8DtPDXU5bVnl8gciQYSNhue3D9Xp_cdFDhqE,802
|
|
223
226
|
punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html,sha256=J_Lp6KKcqSJr-IayyLN-p0JgMfuwbFP77g-UtcM53WI,672
|
|
224
227
|
punkweb_bb/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
228
|
punkweb_bb/templatetags/can_delete.py,sha256=NiFi_VH3KKaAYxdu9cZXR9gT9SNEeLAxnbxb4R7O_Nw,137
|
|
@@ -227,6 +230,8 @@ punkweb_bb/templatetags/can_edit.py,sha256=CbnbCcmJkeHZbWbsMn5OmCXMBEa6N1KW6W1dH
|
|
|
227
230
|
punkweb_bb/templatetags/can_post.py,sha256=6J1ojqqyNX99DBZM30jQiirQxAyY5rMi05QXXQjJB7I,133
|
|
228
231
|
punkweb_bb/templatetags/humanize_int.py,sha256=C4KmDG0Jv6o8rwT1RXLdWoGLddJxMxgOoRV9I2598AM,248
|
|
229
232
|
punkweb_bb/templatetags/shoutbox_bbcode.py,sha256=OH-FsRTyPWZldaFypSVzPLlTrSm4XEOqQW9hBI0ROBk,310
|
|
233
|
+
punkweb_bb/templatetags/styled_group_name.py,sha256=ybg2SnrXg8nyfZBZOW4L_IV-BlTPrs3EKZ48GsKd-3A,257
|
|
234
|
+
punkweb_bb/templatetags/styled_username.py,sha256=1bv6_ss8elDtuJosAYBlKagUciUXb_WlA5X8O4mKtLI,202
|
|
230
235
|
punkweb_bb/templatetags/__pycache__/__init__.cpython-311.pyc,sha256=VEPKwaIhqpKpSSJiotDYngAUdidDzR9PpPiHtKEl1jA,174
|
|
231
236
|
punkweb_bb/templatetags/__pycache__/can_delete.cpython-311.pyc,sha256=GfdHIumIAFyra6Nox6Y7AILBUW_DL7OZ0MtWWaj94mw,528
|
|
232
237
|
punkweb_bb/templatetags/__pycache__/can_edit.cpython-311.pyc,sha256=PJDUtJWrZWb8qgldPrC2si0QNokEhRaYnXaRk4dhuJU,524
|
|
@@ -234,8 +239,11 @@ punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc,sha256=1IU4-Ar-kwjn
|
|
|
234
239
|
punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc,sha256=UKD6_5RX8YpYpg-LPrgGxBkW56THsbYY51cKTYdKwRY,621
|
|
235
240
|
punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc,sha256=csY5ek-bevYVeM91hYFKozuKWXCTXb7M-7Bokwdxhrk,619
|
|
236
241
|
punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc,sha256=Jhg9qW-nQe6IDr45rE0ZgeDYF4E61S7kYAYpbMo5ZQ8,833
|
|
237
|
-
punkweb_bb-
|
|
238
|
-
punkweb_bb-
|
|
239
|
-
punkweb_bb-
|
|
240
|
-
punkweb_bb-0.2.
|
|
241
|
-
punkweb_bb-0.2.
|
|
242
|
+
punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-311.pyc,sha256=1rXkWaqTzivl0uvVs-UiPHOfvx7rOO4Kce6Elhoer_I,712
|
|
243
|
+
punkweb_bb/templatetags/__pycache__/styled_username.cpython-311.pyc,sha256=a91ogyUeLdHS9rEU28FWEYeVqcJopjbvPPdnGkmlHKI,628
|
|
244
|
+
punkweb_bb/templatetags/__pycache__/username.cpython-311.pyc,sha256=GvZkwtrFvkRr1RbxoejyKMmJXr01ABz3lVEwPNq4wxk,626
|
|
245
|
+
punkweb_bb-0.2.3.dist-info/LICENSE,sha256=YYysF07B-kyXSO7IWFB9f49ZXa6LIFUTVsR1Ogmhp8s,1507
|
|
246
|
+
punkweb_bb-0.2.3.dist-info/METADATA,sha256=662xDYnVifFkza4Y6t0GrAzcISM4MhkGlmgJhV789Sk,5210
|
|
247
|
+
punkweb_bb-0.2.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
248
|
+
punkweb_bb-0.2.3.dist-info/top_level.txt,sha256=sWuGdGnk0ejOXiFDzlBqrNs2VbPEx0_i8UwWXn4SuHU,11
|
|
249
|
+
punkweb_bb-0.2.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|