예제 #1
0
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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
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)
예제 #5
0
파일: admin.py 프로젝트: chaabni/SmartElect
        # 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)
예제 #6
0
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)
예제 #7
0
파일: admin.py 프로젝트: chaabni/SmartElect
    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)
예제 #8
0

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)
예제 #9
0
파일: admin.py 프로젝트: chaabni/SmartElect
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)
예제 #10
0
파일: admin.py 프로젝트: chaabni/SmartElect
    )
    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']
예제 #11
0
            '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']
예제 #12
0
파일: admin.py 프로젝트: chaabni/SmartElect
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)
예제 #13
0
        # 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)
예제 #14
0
파일: admin.py 프로젝트: chaabni/SmartElect
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)
예제 #15
0
파일: admin.py 프로젝트: chaabni/SmartElect
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)