generated from bisco/codex-bootstrap
fix(admin): handle unsaved performance seats display
This commit is contained in:
@@ -41,4 +41,11 @@ class PerformanceAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@admin.display(description="Available seats")
|
@admin.display(description="Available seats")
|
||||||
def available_seats_display(self, obj):
|
def available_seats_display(self, obj):
|
||||||
|
if (
|
||||||
|
not getattr(obj, "pk", None)
|
||||||
|
or obj.room_capacity is None
|
||||||
|
or obj.additional_seats is None
|
||||||
|
or obj.manually_occupied_seats is None
|
||||||
|
):
|
||||||
|
return "-"
|
||||||
return obj.available_seats()
|
return obj.available_seats()
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.test import SimpleTestCase
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.test import SimpleTestCase, TestCase
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
from bookings.models import Reservation, ReservationToken
|
from bookings.models import Reservation, ReservationToken
|
||||||
from checkins.models import CheckIn
|
from checkins.models import CheckIn
|
||||||
@@ -11,3 +13,20 @@ class AdminRegistrationTests(SimpleTestCase):
|
|||||||
for model in (Show, Venue, Performance, Reservation, ReservationToken, CheckIn):
|
for model in (Show, Venue, Performance, Reservation, ReservationToken, CheckIn):
|
||||||
with self.subTest(model=model.__name__):
|
with self.subTest(model=model.__name__):
|
||||||
self.assertTrue(admin.site.is_registered(model))
|
self.assertTrue(admin.site.is_registered(model))
|
||||||
|
|
||||||
|
|
||||||
|
class PerformanceAdminTests(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
user_model = get_user_model()
|
||||||
|
self.admin_user = user_model.objects.create_superuser(
|
||||||
|
username="admin",
|
||||||
|
email="admin@example.com",
|
||||||
|
password="password123",
|
||||||
|
)
|
||||||
|
self.client.force_login(self.admin_user)
|
||||||
|
|
||||||
|
def test_performance_add_page_renders_for_unsaved_object(self):
|
||||||
|
response = self.client.get(reverse("admin:shows_performance_add"))
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertContains(response, "Available seats")
|
||||||
|
|||||||
Reference in New Issue
Block a user