diff options
Diffstat (limited to 'postgresqleu/confreg/admin.py')
| -rw-r--r-- | postgresqleu/confreg/admin.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/postgresqleu/confreg/admin.py b/postgresqleu/confreg/admin.py index 80c8a53a..34a8ae50 100644 --- a/postgresqleu/confreg/admin.py +++ b/postgresqleu/confreg/admin.py @@ -36,12 +36,14 @@ from postgresqleu.confsponsor.models import Sponsor from datetime import datetime import urllib + # # List filters # class TrackListFilter(admin.SimpleListFilter): title = 'Track' parameter_name = 'track' + def lookups(self, request, model_admin): cid = request.GET.get('conference__id__exact', -1) if cid >= 0: @@ -51,9 +53,11 @@ class TrackListFilter(admin.SimpleListFilter): if self.value(): return queryset.filter(track_id=self.value()) + class RegtypeListFilter(admin.SimpleListFilter): title = 'Registration type' parameter_name = 'regtype' + def lookups(self, request, model_admin): cid = request.GET.get('conference__id__exact', -1) if cid >= 0: @@ -63,9 +67,11 @@ class RegtypeListFilter(admin.SimpleListFilter): if self.value(): return queryset.filter(regtype_id=self.value()) + class AdditionalOptionListFilter(admin.SimpleListFilter): title = 'Additional option' parameter_name = 'addoption' + def lookups(self, request, model_admin): cid = request.GET.get('conference__id__exact', -1) if cid >= 0: @@ -75,6 +81,7 @@ class AdditionalOptionListFilter(admin.SimpleListFilter): if self.value(): return queryset.filter(additionaloptions__id=self.value()) + # # General admin classes # @@ -86,9 +93,11 @@ class ConferenceSeriesAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtec 'administrators': AutoCompleteSelectMultipleWidget(lookup_class=UserLookup), } + class ConferenceSeriesAdmin(admin.ModelAdmin): form = ConferenceSeriesAdminForm + class ConferenceAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModelForm): class Meta: model = Conference @@ -112,11 +121,13 @@ class ConferenceAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedMod return data + class ConferenceAdmin(admin.ModelAdmin): form = ConferenceAdminForm list_display = ('conferencename', 'active', 'callforpapersopen', 'callforsponsorsopen', 'feedbackopen', 'startdate', 'enddate') ordering = ('-startdate', ) + class ConferenceRegistrationForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModelForm): class Meta: model = ConferenceRegistration @@ -215,6 +226,7 @@ class ConferenceRegistrationAdmin(admin.ModelAdmin): else: return False + class ConferenceSessionForm(ConcurrentProtectedModelForm): class Meta: model = ConferenceSession @@ -276,21 +288,25 @@ class ConferenceSessionAdmin(admin.ModelAdmin): return HttpResponseRedirect('/admin/confreg/_email_session_speaker/%s/?orig=%s' % (','.join(selected), urllib.quote(urllib.urlencode(request.GET)))) email_recipients.short_description = "Send email to speakers of selected sessions" + class ConferenceSessionScheduleSlotAdmin(admin.ModelAdmin): list_display = ['conference', 'starttime', 'endtime', ] list_filter = ['conference'] ordering = ['starttime', ] + class RegistrationClassAdmin(admin.ModelAdmin): list_display = ['regclass', 'conference', ] list_filter = ['conference', ] ordering = ['conference', 'regclass', ] + class RegistrationDayAdmin(admin.ModelAdmin): list_display = ['day', 'conference', ] list_filter = ['conference', ] ordering = ['conference', 'day', ] + class RegistrationTypeAdminForm(ConcurrentProtectedModelForm): class Meta: model = RegistrationType @@ -309,6 +325,7 @@ class RegistrationTypeAdminForm(ConcurrentProtectedModelForm): # that we couldn't list it. pass + class RegistrationTypeAdmin(admin.ModelAdmin): list_display = ['conference', 'regtype', 'cost', 'sortkey', 'active', 'activeuntil', ] list_filter = ['conference', ] @@ -316,9 +333,11 @@ class RegistrationTypeAdmin(admin.ModelAdmin): filter_horizontal = ('requires_option', ) form = RegistrationTypeAdminForm + class ShirtsizeAdmin(admin.ModelAdmin): list_display = ['shirtsize', 'sortkey', ] + class ConferenceAdditionalOptionAdminForm(ConcurrentProtectedModelForm): class Meta: model = ConferenceAdditionalOption @@ -334,6 +353,7 @@ class ConferenceAdditionalOptionAdminForm(ConcurrentProtectedModelForm): # that we couldn't list it. pass + class ConferenceAdditionalOptionAdmin(admin.ModelAdmin): list_display = ['conference', 'name', 'maxcount', 'cost', 'used_count', 'confirmed_count', 'unconfirmed_count'] list_filter = ['conference', ] @@ -360,6 +380,7 @@ class ConferenceAdditionalOptionAdmin(admin.ModelAdmin): return inst.confirmed_count + inst.unconfirmed_count used_count.short_description = 'Total used' + class SpeakerAdminForm(ConcurrentProtectedModelForm): class Meta: model = Speaker @@ -386,18 +407,21 @@ class SpeakerAdminForm(ConcurrentProtectedModelForm): raise ValidationError("Maximum image size is 128x128") return self.cleaned_data['photofile'] + class SpeakerAdmin(admin.ModelAdmin): list_display = ['user', 'email', 'fullname', 'has_abstract', 'has_photo'] search_fields = ['fullname', 'user__email'] ordering = ['fullname'] form = SpeakerAdminForm + class SpeakerPhotoAdmin(admin.ModelAdmin): def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'photo': kwargs['widget'] = InlinePhotoWidget return super(SpeakerPhotoAdmin, self).formfield_for_dbfield(db_field, **kwargs) + class TrackAdmin(admin.ModelAdmin): list_filter = ['conference', ] list_display = ['conference', 'trackname', 'sortkey', 'color', 'incfp', ] @@ -405,16 +429,19 @@ class TrackAdmin(admin.ModelAdmin): class Meta: model = Track + class RoomAdmin(admin.ModelAdmin): list_filter = ['conference', ] class Meta: model = Room + class ConferenceFeedbackQuestionAdmin(admin.ModelAdmin): list_display = ['conference', 'sortkey', 'newfieldset', 'question', ] list_filter = ['conference', ] + class PrepaidVoucherInline(admin.TabularInline): model = PrepaidVoucher readonly_fields = ['user', 'usedate', ] @@ -422,6 +449,7 @@ class PrepaidVoucherInline(admin.TabularInline): extra = 0 can_delete = False + class PrepaidBatchAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModelForm): class Meta: model = PrepaidBatch @@ -458,6 +486,7 @@ class PrepaidBatchAdmin(admin.ModelAdmin): return inst.used used_num.short_description = 'Used vouchers' + class PrepaidVoucherAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModelForm): class Meta: model = PrepaidVoucher @@ -475,6 +504,7 @@ class PrepaidVoucherAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtecte except Conference.DoesNotExist: pass + class PrepaidVoucherAdmin(admin.ModelAdmin): list_display = ['vouchervalue', 'conference', 'buyername', 'usedby', 'usedate', ] list_filter = ['conference', ] @@ -490,6 +520,7 @@ class PrepaidVoucherAdmin(admin.ModelAdmin): return "%s %s" % (obj.user.firstname, obj.user.lastname) return None + class DiscountCodeAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModelForm): class Meta: model = DiscountCode @@ -540,11 +571,13 @@ class DiscountCodeAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedM return cleaned_data + class DiscountCodeAdmin(admin.ModelAdmin): list_display = ['code', 'conference', 'maxuses', 'count', ] list_filter = ['conference', ] form = DiscountCodeAdminForm + class BulkPaymentAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModelForm): class Meta: model = BulkPayment @@ -553,11 +586,13 @@ class BulkPaymentAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedMo 'user': AutoCompleteSelectWidget(lookup_class=UserLookup), } + class BulkPaymentAdmin(admin.ModelAdmin): form = BulkPaymentAdminForm list_display = ['adminstring', 'conference', 'user', 'numregs', 'paidat', 'ispaid', ] list_filter = ['conference', ] + class AttendeeMailAdminForm(ConcurrentProtectedModelForm): class Meta: model = AttendeeMail @@ -568,10 +603,12 @@ class AttendeeMailAdminForm(ConcurrentProtectedModelForm): if 'instance' in kwargs: self.fields['regclasses'].queryset = RegistrationClass.objects.filter(conference=self.instance.conference) + class AttendeeMailAdmin(admin.ModelAdmin): form = AttendeeMailAdminForm filter_horizontal = ('regclasses', ) + class PendingAdditionalOrderAdminForm(ConcurrentProtectedModelForm): class Meta: model = PendingAdditionalOrder @@ -584,10 +621,12 @@ class PendingAdditionalOrderAdminForm(ConcurrentProtectedModelForm): self.fields['options'].queryset = ConferenceAdditionalOption.objects.filter(conference=self.instance.reg.conference) self.fields['newregtype'].queryset = RegistrationType.objects.filter(conference=self.instance.reg.conference) + class PendingAdditionalOrderAdmin(admin.ModelAdmin): form = PendingAdditionalOrderAdminForm list_display = ('reg', 'createtime', 'payconfirmedat') + class VolunteerSlotAdminForm(ConcurrentProtectedModelForm): class Meta: model = VolunteerSlot @@ -603,6 +642,7 @@ class VolunteerSlotAdminForm(ConcurrentProtectedModelForm): raise ValidationError("Max staff can't be less than min staff!") return data + class VolunteerSlotAdmin(admin.ModelAdmin): form = VolunteerSlotAdminForm list_filter = ['conference', ] |
