Skip to content

Commit 877be24

Browse files
committed
add PretixDataAdmin
1 parent 848063d commit 877be24

File tree

2 files changed

+95
-32
lines changed

2 files changed

+95
-32
lines changed

intbot/core/admin.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json
22

3-
from core.models import DiscordMessage, PretalxData, Webhook
3+
from core.models import DiscordMessage, PretalxData, PretixData, Webhook
44
from django.contrib import admin
55
from django.utils.html import format_html
66

@@ -93,6 +93,33 @@ def pretty_content(self, obj: PretalxData):
9393
pretty_content.short_description = "Content"
9494

9595

96+
class PretixDataAdmin(admin.ModelAdmin):
97+
list_display = [
98+
"uuid",
99+
"resource",
100+
"created_at",
101+
"modified_at",
102+
]
103+
list_filter = [
104+
"created_at",
105+
"resource",
106+
]
107+
readonly_fields = fields = [
108+
"uuid",
109+
"resource",
110+
"pretty_content",
111+
"created_at",
112+
"modified_at",
113+
"processed_at",
114+
]
115+
116+
def pretty_content(self, obj: PretixData):
117+
return format_html("<pre>{}</pre>", json.dumps(obj.content, indent=4))
118+
119+
pretty_content.short_description = "Content"
120+
121+
96122
admin.site.register(Webhook, WebhookAdmin)
97123
admin.site.register(DiscordMessage, DiscordMessageAdmin)
98124
admin.site.register(PretalxData, PretalxDataAdmin)
125+
admin.site.register(PretixData, PretixDataAdmin)

intbot/tests/test_admin.py

Lines changed: 67 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Sanity checks (mostly) if the admin resources are available
33
"""
44

5-
from core.models import DiscordMessage, PretalxData, Webhook
5+
from core.models import DiscordMessage, PretalxData, PretixData, Webhook
66

77

88
def test_admin_for_webhooks_sanity_check(admin_client):
@@ -34,33 +34,69 @@ def test_admin_for_discordmessages_sanity_check(admin_client):
3434
assert dm.channel_name.encode() in response.content
3535

3636

37-
def test_admin_list_for_pretalx_data(admin_client):
38-
"""Simple sanity check if the page loads correctly"""
39-
url = "/admin/core/pretalxdata/"
40-
pd = PretalxData.objects.create(
41-
resource=PretalxData.PretalxResources.speakers,
42-
content={},
43-
)
44-
assert pd.uuid
45-
46-
response = admin_client.get(url)
47-
48-
assert response.status_code == 200
49-
assert str(pd.uuid).encode() in response.content
50-
assert pd.get_resource_display().encode() in response.content
51-
52-
53-
def test_admin_change_for_pretalx_data(admin_client):
54-
"""Simple sanity check if the page loads correctly"""
55-
url = "/admin/core/pretalxdata/"
56-
pd = PretalxData.objects.create(
57-
resource=PretalxData.PretalxResources.speakers,
58-
content={},
59-
)
60-
assert pd.uuid
61-
62-
response = admin_client.get(f"{url}{pd.pk}/change/")
63-
64-
assert response.status_code == 200
65-
assert str(pd.uuid).encode() in response.content
66-
assert pd.get_resource_display().encode() in response.content
37+
class TestPretalxDataAdmin:
38+
"""This class exists only for namespacing purposes"""
39+
40+
def test_admin_list_for_pretalx_data(self, admin_client):
41+
"""Simple sanity check if the page loads correctly"""
42+
url = "/admin/core/pretalxdata/"
43+
pd = PretalxData.objects.create(
44+
resource=PretalxData.PretalxResources.speakers,
45+
content={},
46+
)
47+
assert pd.uuid
48+
49+
response = admin_client.get(url)
50+
51+
assert response.status_code == 200
52+
assert str(pd.uuid).encode() in response.content
53+
assert pd.get_resource_display().encode() in response.content
54+
55+
def test_admin_change_for_pretalx_data(self, admin_client):
56+
"""Simple sanity check if the page loads correctly"""
57+
url = "/admin/core/pretalxdata/"
58+
pd = PretalxData.objects.create(
59+
resource=PretalxData.PretalxResources.speakers,
60+
content={},
61+
)
62+
assert pd.uuid
63+
64+
response = admin_client.get(f"{url}{pd.pk}/change/")
65+
66+
assert response.status_code == 200
67+
assert str(pd.uuid).encode() in response.content
68+
assert pd.get_resource_display().encode() in response.content
69+
70+
71+
class TestPretixDataAdmin:
72+
"""This class exists only for namespacing purposes"""
73+
74+
def test_admin_list_for_pretix_data(self, admin_client):
75+
"""Simple sanity check if the page loads correctly"""
76+
url = "/admin/core/pretixdata/"
77+
pd = PretixData.objects.create(
78+
resource=PretixData.PretixResources.orders,
79+
content={},
80+
)
81+
assert pd.uuid
82+
83+
response = admin_client.get(url)
84+
85+
assert response.status_code == 200
86+
assert str(pd.uuid).encode() in response.content
87+
assert pd.get_resource_display().encode() in response.content
88+
89+
def test_admin_change_for_pretix_data(self, admin_client):
90+
"""Simple sanity check if the page loads correctly"""
91+
url = "/admin/core/pretixdata/"
92+
pd = PretixData.objects.create(
93+
resource=PretixData.PretixResources.orders,
94+
content={},
95+
)
96+
assert pd.uuid
97+
98+
response = admin_client.get(f"{url}{pd.pk}/change/")
99+
100+
assert response.status_code == 200
101+
assert str(pd.uuid).encode() in response.content
102+
assert pd.get_resource_display().encode() in response.content

0 commit comments

Comments
 (0)