Added filters and search fields for members, jobs
Member are searchable by name, nickname, mailaccount Jobs are searchable by name Menbers can be filtered by Active,Pension,All NOT WORKING YET: Inline Widget JobMember filter for inactive jobs
This commit is contained in:
@@ -2,17 +2,66 @@ from django.contrib import admin
|
||||
from .models import Member, Job, JobMember
|
||||
from .forms import MyMemberForm, MyJobForm
|
||||
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
class ActiveJobFilter(admin.SimpleListFilter):
|
||||
title = _('Aktiv im Job')
|
||||
|
||||
parameter_name = 'is_active'
|
||||
|
||||
def lookups(self, request, model_admin):
|
||||
|
||||
return (
|
||||
('yes', _('Yes')),
|
||||
('no', _('No')),
|
||||
)
|
||||
|
||||
def queryset(self, request, queryset):
|
||||
|
||||
if self.value() == 'yes':
|
||||
return queryset.filter(job_end__isnull=True)
|
||||
|
||||
if self.value() == 'no':
|
||||
return queryset
|
||||
|
||||
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')
|
||||
|
||||
if self.value() == 'P':
|
||||
return queryset.filter(role='P')
|
||||
|
||||
class JobMemberInline(admin.TabularInline):
|
||||
list_filter = [ActiveJobFilter]
|
||||
model = JobMember
|
||||
extra = 1
|
||||
|
||||
#def get_queryset(self, request):
|
||||
# qs = super().get_queryset(request)
|
||||
# return qs.filter(job_end__isnull=False)
|
||||
|
||||
class MyMemberAdmin(admin.ModelAdmin):
|
||||
form = MyMemberForm
|
||||
model = Member
|
||||
list_display = ['name', 'nickname', 'mailaccount', 'role', 'body', 'image']
|
||||
inlines = (JobMemberInline,)
|
||||
|
||||
search_fields = ['name','nickname','mailaccount']
|
||||
list_filter = [MemberRoleFilter]
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
obj.author = request.user
|
||||
super().save_model(request, obj, form, change)
|
||||
@@ -25,6 +74,8 @@ class MyJobAdmin(admin.ModelAdmin):
|
||||
list_display = ['name', 'body', 'image']
|
||||
inlines = (JobMemberInline,)
|
||||
|
||||
search_fields = ['name']
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
obj.author = request.user
|
||||
super().save_model(request, obj, form, change)
|
||||
|
||||
Reference in New Issue
Block a user