Coverage for website/events/admin/inlines.py: 100.00%

33 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from django.contrib import admin 

2 

3from events import models 

4from pizzas.models import FoodEvent 

5from promotion.models import PromotionRequest 

6 

7from .forms import RegistrationInformationFieldForm 

8 

9 

10class RegistrationInformationFieldInline(admin.TabularInline): 

11 """The inline for registration information fields in the Event admin.""" 

12 

13 form = RegistrationInformationFieldForm 

14 extra = 0 

15 model = models.RegistrationInformationField 

16 ordering = ("_order",) 

17 

18 radio_fields = {"type": admin.VERTICAL} 

19 

20 def get_formset(self, request, obj=None, **kwargs): 

21 formset = super().get_formset(request, obj, **kwargs) 

22 if obj is not None: 

23 count = obj.registrationinformationfield_set.count() 

24 formset.form.declared_fields["order"].initial = count 

25 return formset 

26 

27 

28class PizzaEventInline(admin.StackedInline): 

29 """The inline for pizza events in the Event admin.""" 

30 

31 model = FoodEvent 

32 extra = 0 

33 max_num = 1 

34 

35 

36class PromotionRequestInline(admin.StackedInline): 

37 model = PromotionRequest 

38 readonly_fields = ( 

39 "assigned_to", 

40 "status", 

41 "drive_folder", 

42 "status_updated", 

43 ) 

44 

45 def has_add_permission(self, request, obj=None): 

46 return True 

47 

48 def has_view_permission(self, request, obj=None): 

49 return True 

50 

51 def has_change_permission(self, request, obj=None): 

52 return True 

53 

54 def has_delete_permission(self, request, obj=None): 

55 return True 

56 

57 extra = 0