Coverage for website/partners/admin.py: 100.00%

23 statements  

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

1from django.contrib import admin 

2from django.utils.translation import gettext_lazy as _ 

3 

4from partners.models import Partner, PartnerImage, Vacancy, VacancyCategory 

5 

6 

7class PartnerImageInline(admin.StackedInline): 

8 """Class to show partner images inline in the admin.""" 

9 

10 model = PartnerImage 

11 

12 

13@admin.register(Partner) 

14class PartnerAdmin(admin.ModelAdmin): 

15 """Class to show partners in the admin.""" 

16 

17 prepopulated_fields = {"slug": ("name",)} 

18 list_display = ("name", "is_active", "is_main_partner", "is_local_partner") 

19 search_fields = ("name", "city") 

20 list_filter = ("is_active",) 

21 inlines = (PartnerImageInline,) 

22 

23 fieldsets = ( 

24 ( 

25 None, 

26 { 

27 "fields": ( 

28 "name", 

29 "slug", 

30 "link", 

31 "company_profile", 

32 "logo", 

33 "alternate_logo", 

34 "site_header", 

35 "is_active", 

36 "is_main_partner", 

37 "is_local_partner", 

38 ) 

39 }, 

40 ), 

41 ( 

42 _("Address"), 

43 {"fields": ("address", "address2", "zip_code", "city", "country")}, 

44 ), 

45 ) 

46 

47 

48@admin.register(VacancyCategory) 

49class VacancyCategoryAdmin(admin.ModelAdmin): 

50 """Class to show vacancy categories in the admin.""" 

51 

52 prepopulated_fields = {"slug": ("name",)} 

53 fields = ["name", "slug"] 

54 

55 

56@admin.register(Vacancy) 

57class VacancyAdmin(admin.ModelAdmin): 

58 """Class to show vacancies in the admin.""" 

59 

60 list_display = ("title", "partner", "company_name") 

61 

62 list_select_related = ("partner",) 

63 search_fields = ( 

64 "title", 

65 "partner__name", 

66 "company_name", 

67 ) 

68 fieldsets = ( 

69 (None, {"fields": ("title", "description", "link", "location", "keywords")}), 

70 (_("Existing partner"), {"fields": ("partner",)}), 

71 ( 

72 _("Other partner"), 

73 { 

74 "fields": ( 

75 "company_name", 

76 "company_logo", 

77 ) 

78 }, 

79 ), 

80 (_("Categories"), {"fields": ("categories",)}), 

81 )