Files
fet2020/fet2020/members/admin.py
Patrick 9ce2feb002 no functional changes
Formatting updated to flake8
2020-07-19 11:21:59 +00:00

103 lines
2.5 KiB
Python

from django.contrib import admin
from django.utils.translation import gettext as _
from .models import Member, Job, JobMember, JobGroup
from .forms import MyMemberForm, MyJobForm, MyJobGroupForm
class MemberRoleFilter(admin.SimpleListFilter):
title = _('Rolle')
parameter_name = 'role'
def lookups(self, request, model_admin):
return (
('A', _('Aktiv')),
('P', _('Pension')),
)
def queryset(self, request, queryset):
if self.value() == 'A':
return queryset.filter(role='A')
elif self.value() == 'P':
return queryset.filter(role='P')
class JobMemberInline(admin.TabularInline):
model = JobMember
extra = 0
class JobOverviewInline(JobMemberInline):
verbose_name = "Tätigkeit"
verbose_name_plural = "Tätigkeitsübersicht"
class ActiveMemberInline(JobMemberInline):
verbose_name = "Mitglied"
verbose_name_plural = "Aktive Mitglieder Liste"
def get_queryset(self, request):
return JobMember.active_member.all()
class InactiveMemberInline(JobMemberInline):
verbose_name = "Mitglied"
verbose_name_plural = "Inaktive Mitglieder Liste"
def get_queryset(self, request):
return JobMember.inactive_member.all()
class JobInline(admin.TabularInline):
model = Job
extra = 0
class MyMemberAdmin(admin.ModelAdmin):
form = MyMemberForm
model = Member
list_display = ['nickname', 'firstname', 'surname', 'mailaccount', 'role']
inlines = (JobOverviewInline,)
search_fields = ['firstname', 'surname', 'nickname', 'mailaccount']
list_filter = [MemberRoleFilter]
def save_model(self, request, obj, form, change):
obj.author = request.user
super().save_model(request, obj, form, change)
admin.site.register(Member, MyMemberAdmin)
class MyJobAdmin(admin.ModelAdmin):
form = MyJobForm
model = Job
list_display = ['name']
inlines = (ActiveMemberInline, InactiveMemberInline)
search_fields = ['name']
def save_model(self, request, obj, form, change):
obj.author = request.user
super().save_model(request, obj, form, change)
admin.site.register(Job, MyJobAdmin)
class MyJobGroupAdmin(admin.ModelAdmin):
form = MyJobGroupForm
model = JobGroup
list_display = ['name']
inlines = (JobInline, )
search_fields = ['name']
def save_model(self, request, obj, form, change):
obj.author = request.user
super().save_model(request, obj, form, change)
admin.site.register(JobGroup, MyJobGroupAdmin)