22import urllib .parse
33
44import tablib
5+ from django import forms
56from django .contrib import admin
67from django .db .models import QuerySet
78from django .http import HttpRequest , HttpResponse
@@ -37,7 +38,19 @@ class PartnerProgramFieldInline(admin.TabularInline):
3738
3839@admin .register (PartnerProgram )
3940class PartnerProgramAdmin (admin .ModelAdmin ):
41+ class PartnerProgramAdminForm (forms .ModelForm ):
42+ class Meta :
43+ model = PartnerProgram
44+ fields = "__all__"
45+ widgets = {
46+ "name" : forms .TextInput (attrs = {"size" : 80 }),
47+ "tag" : forms .TextInput (attrs = {"size" : 80 }),
48+ "description" : forms .Textarea (attrs = {"rows" : 4 , "cols" : 82 }),
49+ "city" : forms .TextInput (attrs = {"size" : 80 }),
50+ }
51+
4052 inlines = [PartnerProgramMaterialInline , PartnerProgramFieldInline ]
53+ form = PartnerProgramAdminForm
4154 list_display = ("id" , "name" , "tag" , "city" , "datetime_created" )
4255 list_display_links = (
4356 "id" ,
@@ -53,8 +66,39 @@ class PartnerProgramAdmin(admin.ModelAdmin):
5366 )
5467 list_filter = ("city" ,)
5568
56- filter_horizontal = ("users" , " managers" )
69+ filter_horizontal = ("managers" , )
5770 date_hierarchy = "datetime_started"
71+ readonly_fields = ("datetime_created" , "datetime_updated" )
72+ fieldsets = (
73+ (
74+ None ,
75+ {
76+ "fields" : (
77+ "name" ,
78+ "tag" ,
79+ "description" ,
80+ "city" ,
81+ "is_competitive" ,
82+ "projects_availability" ,
83+ "draft" ,
84+ (
85+ "datetime_started" ,
86+ "datetime_registration_ends" ,
87+ "datetime_finished" ,
88+ ),
89+ (
90+ "image_address" ,
91+ "cover_image_address" ,
92+ "advertisement_image_address" ,
93+ ),
94+ ("presentation_address" , "registration_link" ),
95+ "data_schema" ,
96+ )
97+ },
98+ ),
99+ ("Менеджеры программы" , {"fields" : ("managers" ,)}),
100+ ("Служебная информация" , {"fields" : ("datetime_created" , "datetime_updated" )}),
101+ )
58102
59103 def get_queryset (self , request : HttpRequest ) -> QuerySet [PartnerProgram ]:
60104 qs = super ().get_queryset (request )
0 commit comments