from libya_elections.admin_models import LibyaAdminModel from libya_elections.admin_site import admin_site from .models import Subscription class SubscriptionAdmin(LibyaAdminModel): list_display = ['__unicode__', 'get_subscription_type_display'] list_filter = ['subscription_type'] raw_id_fields = ['user'] admin_site.register(Subscription, SubscriptionAdmin)
model = ScreenRecord extra = 0 class CaseAdmin(LibyaAdminModel): inlines = [ScreenAdminInline, UpdateAdminInline] list_display = [ 'start_time', 'end_time', 'current_screen', 'call_outcome', 'citizen', 'operator', 'field_staff' ] list_filter = ['call_outcome', 'review_classification', 'reason_marked'] search_fields = [ 'operator__last_name', 'operator__first_name', 'citizen__family_name', 'citizen__first_name', 'citizen__father_name', 'citizen__grandfather_name', 'citizen__mother_name', 'citizen__national_id' ] raw_id_fields = [ 'citizen', 'current_screen', 'operator', 'field_staff', 'registration' ] class FieldStaffAdmin(LibyaAdminModel): list_display = ['name', 'staff_id', 'phone_number', 'suspended'] list_filter = ['suspended'] search_fields = ['name', 'staff_id', 'phone_number'] admin_site.register(Case, CaseAdmin) admin_site.register(FieldStaff, FieldStaffAdmin)
list_display = ("phone_number", "registration_center") raw_id_fields = ("registration_center", ) class CenterOpenAdmin(LibyaAdminModel): search_fields = ("registration_center__center_id", "registration_center__name", "phone_number") list_display = ("creation_date", "phone_number", "registration_center") raw_id_fields = ("registration_center", ) class PollingReportAdmin(LibyaAdminModel): list_display = ('phone_number', 'registration_center', 'period_number', 'num_voters') search_fields = ('phone_number', 'registration_center__center_id', 'registration_center__name') class PreliminaryVoteCountAdmin(LibyaAdminModel): list_display = ('election', 'registration_center', 'creation_date', 'option', 'num_votes') search_fields = ('phone_number', 'registration_center__center_id') class CenterClosedForElectionAdmin(LibyaAdminModel): list_display = ('registration_center', 'election') search_fields = ('registration_center__center_id', 'election__name_arabic', 'election__name_english') admin_site.register(StaffPhone, StaffPhoneAdmin) admin_site.register(CenterOpen, CenterOpenAdmin) admin_site.register(PollingReport, PollingReportAdmin) admin_site.register(PreliminaryVoteCount, PreliminaryVoteCountAdmin) admin_site.register(CenterClosedForElection, CenterClosedForElectionAdmin)
from django.contrib import admin from civil_registry.models import Citizen, DumpFile from libya_elections.admin_site import admin_site class CitizenAdmin(admin.ModelAdmin): list_display = [ 'civil_registry_id', 'national_id', 'format_name', 'gender', 'birth_date', ] admin_site.register(Citizen, CitizenAdmin) admin_site.register(DumpFile)
# defined in the database, and we don't do it unless/until we need # to admin the SMS model because otherwise Django migrations think # the SMS message codes keep changing everytime someone with # different data in their database runs it. We wait until the # admin calls get_list_display() to be sure someone is in the admin, # since it's only in the admin that it matters at all whether these # choices are defined. if not SMS._meta.get_field('message_code')._choices: message_code_choices = [ (msg.number, msg.label) for msg in MessageText.objects.all() ] SMS._meta.get_field('message_code')._choices = message_code_choices return super(SMSAdmin, self).get_list_display(*args, **kwargs) class WhiteListAdmin(LibyaAdminModel): list_display = ['phone_number', 'creation_date', 'modification_date'] search_fields = ["phone_number"] readonly_fields = ['creation_date', 'modification_date'] admin_site.register(Blacklist, BlacklistAdmin) admin_site.register(Person, PersonAdmin) admin_site.register(Office, OfficeAdmin) admin_site.register(Constituency, ConstituencyAdmin) admin_site.register(SubConstituency, SubConstituencyAdmin) admin_site.register(RegistrationCenter, RegistrationCenterAdmin) admin_site.register(Registration, RegistrationAdmin) admin_site.register(SMS, SMSAdmin) admin_site.register(Whitelist, WhiteListAdmin)
from __future__ import unicode_literals from __future__ import division from .models import Batch, Broadcast, BulkMessage from libya_elections.admin_models import LibyaAdminModel from libya_elections.admin_site import admin_site class BatchAdmin(LibyaAdminModel): list_display = ['name', 'created_by', 'status'] class BulkMessageAdmin(LibyaAdminModel): list_display = ['batch', 'from_shortcode', 'phone_number', 'message'] raw_id_fields = ['sms'] class BroadcastAdmin(LibyaAdminModel): list_display = ("sent_to", "message", "status", "remaining_time", "created_by", "reviewed_by") raw_id_fields = ("center", ) admin_site.register(Broadcast, BroadcastAdmin) admin_site.register(Batch, BatchAdmin) admin_site.register(BulkMessage, BulkMessageAdmin)
model = Update extra = 0 raw_id_fields = ['user'] class ScreenAdminInline(admin.TabularInline): model = ScreenRecord extra = 0 class CaseAdmin(LibyaAdminModel): inlines = [ScreenAdminInline, UpdateAdminInline] list_display = ['start_time', 'end_time', 'current_screen', 'call_outcome', 'citizen', 'operator', 'field_staff'] list_filter = ['call_outcome', 'review_classification', 'reason_marked'] search_fields = ['operator__last_name', 'operator__first_name', 'citizen__family_name', 'citizen__first_name', 'citizen__father_name', 'citizen__grandfather_name', 'citizen__mother_name', 'citizen__national_id'] raw_id_fields = ['citizen', 'current_screen', 'operator', 'field_staff', 'registration'] class FieldStaffAdmin(LibyaAdminModel): list_display = ['name', 'staff_id', 'phone_number', 'suspended'] list_filter = ['suspended'] search_fields = ['name', 'staff_id', 'phone_number'] admin_site.register(Case, CaseAdmin) admin_site.register(FieldStaff, FieldStaffAdmin)
class LibyaUserAdmin(UserAdmin): list_display = ('username', 'email', 'first_name', 'last_name', 'is_active', 'is_staff', 'is_superuser') add_fieldsets = ((None, { 'classes': ('wide', ), 'fields': ('username', 'password1', 'password2', 'email') }), ) def get_actions(self, request): """"Don't allow bulk deletion.""" return {} def get_form(self, request, obj=None, **kwargs): """Make email a required field.""" form = super(LibyaUserAdmin, self).get_form(request, obj, **kwargs) email = form.base_fields['email'] email.required = True return form def has_delete_permission(self, request, obj=None): """Don't allow deletion of users. (Inactivate them instead).""" return False admin_site.register(User, LibyaUserAdmin) admin_site.register(Group, GroupAdmin) admin_site.register(Permission)
class LibyaUserAdmin(UserAdmin): list_display = ('username', 'email', 'first_name', 'last_name', 'is_active', 'is_staff', 'is_superuser') add_fieldsets = ( (None, { 'classes': ('wide',), 'fields': ('username', 'password1', 'password2', 'email') }), ) def get_actions(self, request): """"Don't allow bulk deletion.""" return {} def get_form(self, request, obj=None, **kwargs): """Make email a required field.""" form = super(LibyaUserAdmin, self).get_form(request, obj, **kwargs) email = form.base_fields['email'] email.required = True return form def has_delete_permission(self, request, obj=None): """Don't allow deletion of users. (Inactivate them instead).""" return False admin_site.register(User, LibyaUserAdmin) admin_site.register(Group, GroupAdmin) admin_site.register(Permission)
) inperson_change_fieldsets = ( (None, { 'fields': ['name_arabic', 'name_english', 'start_time', 'end_time', 'polling_start_time', 'polling_end_time', ], }), ) inlines = [BallotInlineAdmin] list_display = ['name_arabic', 'name_english', 'polling_start_time', 'polling_end_time'] list_display_links = ['name_arabic', 'name_english'] readonly_fields = ['start_time', 'end_time'] admin_site.register(Election, ElectionAdmin) class CandidateInlineAdmin(admin.TabularInline): model = Candidate class BallotAdmin(LibyaAdminModel): inlines = [CandidateInlineAdmin] list_display = ['election', 'internal_ballot_number', 'get_subconstituencies', 'name', 'ballot_number'] list_display_links = ['internal_ballot_number'] list_filter = ['election']
'start_time', 'end_time', 'polling_start_time', 'polling_end_time', ], }), ) inlines = [BallotInlineAdmin] list_display = [ 'name_arabic', 'name_english', 'polling_start_time', 'polling_end_time' ] list_display_links = ['name_arabic', 'name_english'] readonly_fields = ['start_time', 'end_time'] admin_site.register(Election, ElectionAdmin) class CandidateInlineAdmin(admin.TabularInline): model = Candidate class BallotAdmin(LibyaAdminModel): inlines = [CandidateInlineAdmin] list_display = [ 'election', 'internal_ballot_number', 'get_subconstituencies', 'name', 'ballot_number' ] list_display_links = ['internal_ballot_number'] list_filter = ['election']
class DiscrepancyAdmin(LibyaAdminModel): fields = ("deleted", "trail_report", "comments", "resolved") list_display = ("__unicode__", "resolved",) list_filter = (StatusFilter, ) readonly_fields = ("trail_report",) def has_add_permission(self, request): return False def has_delete_permission(self, request, obj=None): return False class SMSTrailAdmin(LibyaAdminModel): fields = ("deleted", "report") readonly_fields = ("report",) def has_add_permission(self, request): return False class VumiLogAdmin(LibyaAdminModel): list_display = ('logged_date', 'from_addr', 'direction', 'to_addr', 'content', 'is_audited') list_filter = ('is_audited', 'direction') admin_site.register(Discrepancy, DiscrepancyAdmin) admin_site.register(SMSTrail, SMSTrailAdmin) admin_site.register(VumiLog, VumiLogAdmin)
# We don't do it in the model def because the values are only # defined in the database, and we don't do it unless/until we need # to admin the SMS model because otherwise Django migrations think # the SMS message codes keep changing everytime someone with # different data in their database runs it. We wait until the # admin calls get_list_display() to be sure someone is in the admin, # since it's only in the admin that it matters at all whether these # choices are defined. if not SMS._meta.get_field('message_code')._choices: message_code_choices = [(msg.number, msg.label) for msg in MessageText.objects.all()] SMS._meta.get_field('message_code')._choices = message_code_choices return super(SMSAdmin, self).get_list_display(*args, **kwargs) class WhiteListAdmin(LibyaAdminModel): list_display = ['phone_number', 'creation_date', 'modification_date'] search_fields = ["phone_number"] readonly_fields = ['creation_date', 'modification_date'] admin_site.register(Blacklist, BlacklistAdmin) admin_site.register(Person, PersonAdmin) admin_site.register(Office, OfficeAdmin) admin_site.register(Constituency, ConstituencyAdmin) admin_site.register(SubConstituency, SubConstituencyAdmin) admin_site.register(RegistrationCenter, RegistrationCenterAdmin) admin_site.register(Registration, RegistrationAdmin) admin_site.register(SMS, SMSAdmin) admin_site.register(Whitelist, WhiteListAdmin)
from django.contrib import admin from libya_elections.admin_site import admin_site from .models import Station from .utils import GENDER_NAMES def gender(station): return GENDER_NAMES[station.gender] class StationAdmin(admin.ModelAdmin): list_display = ['election', 'center', 'number', gender, 'n_registrants', ] search_fields = ['election__id', 'center__center_id', ] # Station records are not editable. readonly_fields = [field.name for field in Station._meta.local_fields] # Station records are only created programmatically via rollgen. No one is allowed to create # them via the admin. def has_add_permission(self, request): return False admin_site.register(Station, StationAdmin)
from django.contrib import admin from civil_registry.models import Citizen, DumpFile from libya_elections.admin_site import admin_site class CitizenAdmin(admin.ModelAdmin): list_display = [ 'civil_registry_id', 'national_id', 'format_name', 'gender', 'birth_date', ] admin_site.register(Citizen, CitizenAdmin) admin_site.register(DumpFile)