2017-05-30 19:50:40 +00:00
|
|
|
from django.contrib import admin
|
|
|
|
from django.contrib.sites.models import Site
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
from .mixins import OnSiteAdminMixin
|
2017-10-05 23:33:57 +00:00
|
|
|
from .models import Conference, Participant, Talk, TalkCategory, Track, Vote, Volunteer, Activity
|
2017-05-30 19:50:40 +00:00
|
|
|
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class ConferenceAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
2017-07-30 16:02:22 +00:00
|
|
|
filter_horizontal = ('staff',)
|
2017-05-30 19:50:40 +00:00
|
|
|
|
2017-07-30 16:07:09 +00:00
|
|
|
def has_add_permission(self, request):
|
|
|
|
return False
|
|
|
|
|
|
|
|
def has_delete_permission(self, request, obj=None):
|
|
|
|
return False
|
|
|
|
|
2017-05-30 19:50:40 +00:00
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class ParticipantAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
2017-05-30 19:50:40 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class TrackAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
2017-05-30 19:50:40 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class TalkCategoryAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
2017-05-30 19:50:40 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class TalkAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
2017-05-30 19:50:40 +00:00
|
|
|
def get_form(self, request, obj=None, **kwargs):
|
|
|
|
form = super().get_form(request, obj, **kwargs)
|
2017-08-12 12:17:00 +00:00
|
|
|
form.base_fields['speakers'].queryset = Participant.objects.filter(site=request.conference.site)
|
|
|
|
form.base_fields['track'].queryset = Track.objects.filter(site=request.conference.site)
|
|
|
|
form.base_fields['category'].queryset = TalkCategory.objects.filter(site=request.conference.site)
|
2017-05-30 19:50:40 +00:00
|
|
|
return form
|
|
|
|
|
|
|
|
|
2017-08-12 17:25:56 +00:00
|
|
|
class VoteAdmin(admin.ModelAdmin):
|
|
|
|
def get_queryset(self, request):
|
|
|
|
return super().get_queryset(request).filter(talk__site=request.conference.site)
|
|
|
|
|
|
|
|
|
2017-10-05 23:33:57 +00:00
|
|
|
class VolunteerAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ActivityAdmin(OnSiteAdminMixin, admin.ModelAdmin):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2017-05-30 19:50:40 +00:00
|
|
|
admin.site.register(Conference, ConferenceAdmin)
|
|
|
|
admin.site.register(Participant, ParticipantAdmin)
|
|
|
|
admin.site.register(Talk, TalkAdmin)
|
|
|
|
admin.site.register(TalkCategory, TalkCategoryAdmin)
|
2017-08-12 17:25:56 +00:00
|
|
|
admin.site.register(Vote, VoteAdmin)
|
2017-10-05 23:33:57 +00:00
|
|
|
admin.site.register(Volunteer, VolunteerAdmin)
|
|
|
|
admin.site.register(Activity, ActivityAdmin)
|