4
4
5
5
from core .models import *
6
6
7
+
7
8
class ExportCSVMixin :
8
9
def export_as_csv (self , request , queryset ):
9
10
meta = self .model ._meta
@@ -18,14 +19,65 @@ def export_as_csv(self, request, queryset):
18
19
19
20
export_as_csv .short_description = "Export Selected As CSV"
20
21
22
+
23
+ @admin .register (Speaker )
24
+ class SpeakerAdmin (admin .ModelAdmin ):
25
+ list_display = ('id' , 'name' , 'designation' )
26
+ search_fields = ('name' , 'designation' )
27
+ list_filter = ('name' ,)
28
+ ordering = ('name' , 'id' )
29
+
30
+
31
+ @admin .register (Event )
32
+ class EventAdmin (admin .ModelAdmin ):
33
+ list_display = ('display_str' , 'wss_order' , 'starting_date' , 'ending_date' )
34
+
35
+ def display_str (self , obj ):
36
+ return str (obj )
37
+
38
+ def wss_order (self , obj ):
39
+ return obj .id
40
+
41
+
42
+ @admin .register (SubEvent )
43
+ class SubEventAdmin (admin .ModelAdmin ):
44
+ list_display = ('name' , 'event' , 'kind' ,)
45
+ search_fields = ('name' , 'event__name' )
46
+ list_filter = ('kind' , 'event' )
47
+
48
+
49
+ @admin .register (Seminar )
50
+ class SeminarAdmin (admin .ModelAdmin ):
51
+ list_display = ('sub_event' , 'event_name' , 'speaker' ,)
52
+ autocomplete_fields = ('sub_event' , 'speaker' )
53
+ search_fields = ('sub_event__name' , 'speaker__name' ,)
54
+ list_filter = ('sub_event__event' ,)
55
+
56
+ def event_name (self , obj ):
57
+ return obj .sub_event .event if obj .sub_event else None
58
+
59
+
60
+ @admin .register (RoundTable )
61
+ class RoundTableAdmin (admin .ModelAdmin ):
62
+ list_display = ('sub_event' , 'event_name' , 'display_speakers' ,)
63
+ autocomplete_fields = ('sub_event' , 'speakers' ,)
64
+ search_fields = ('sub_event__name' , 'speakers__name' ,)
65
+ list_filter = ('sub_event__event' , 'speakers' ,)
66
+
67
+ def event_name (self , obj ):
68
+ return obj .sub_event .event if obj .sub_event else None
69
+
70
+ def display_speakers (self , obj ):
71
+ return ", " .join ([speaker .name for speaker in obj .speakers .all ()]) if obj .speakers .exists () else "No Speakers"
72
+
73
+ display_speakers .short_description = "Speakers"
74
+
75
+
21
76
# Register your models here.
22
- admin .site .register (Event )
23
- admin .site .register (SubEvent )
24
- admin .site .register (Speaker )
25
- admin .site .register (Seminar )
77
+
78
+
26
79
admin .site .register (Workshop )
27
80
admin .site .register (WorkshopSession )
28
- admin .site .register (RoundTable )
29
81
admin .site .register (LabTalk )
30
82
admin .site .register (PosterSession )
31
83
admin .site .register (PosterSessionImage )
0 commit comments