-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathadmin.py
58 lines (42 loc) · 1.88 KB
/
admin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from django.contrib import admin
from django.core.exceptions import ObjectDoesNotExist
from .models import EventForm, Event, EventAttendee, Place, Payment
from .utils import export_eventattendees_csv, mark_as_paid
admin.site.disable_action('delete_selected')
class EventFormAdmin(admin.ModelAdmin):
actions = [admin.actions.delete_selected]
list_display = ['name']
class EventAdmin(admin.ModelAdmin):
actions = [admin.actions.delete_selected]
list_display = ('name', 'event_date', 'close_date')
class EventAttendeeAdmin(admin.ModelAdmin):
actions = [export_eventattendees_csv, mark_as_paid, 'delete_model']
list_display = ('event', 'attendee_name', 'registration_date', 'reference_number', 'isbackup', 'haspaid')
list_filter = ('registration_date', 'isbackup', 'haspaid')
search_fields = ('event__name',)
def reference_number(self, obj):
return obj.get_reference_number()
def delete_model(self, request, resultset):
for obj in resultset:
obj.delete()
if not obj.isbackup:
try:
event = obj.event
ea = EventAttendee.objects.filter(event=event, isbackup=True).earliest('registration_date')
except ObjectDoesNotExist:
pass
else:
ea.isbackup = False
ea.save()
delete_model.short_description = "Delete selected Event Attendee"
class PlaceAdmin(admin.ModelAdmin):
actions = [admin.actions.delete_selected]
list_display = ('name',)
class PaymentAdmin(admin.ModelAdmin):
actions = [admin.actions.delete_selected]
list_display = ('name', 'method')
admin.site.register(EventForm, EventFormAdmin)
admin.site.register(Event, EventAdmin)
admin.site.register(Place, PlaceAdmin)
admin.site.register(EventAttendee, EventAttendeeAdmin)
admin.site.register(Payment, PaymentAdmin)