shiftregister/shiftregister/fallback/admin.py

41 lines
1.1 KiB
Python

from django.contrib import admin
from django.shortcuts import reverse
from .models import *
def assign_random_shifts(modeladmin, request, queryset):
for member in queryset:
member.assign_random_shifts()
def clear_shifts(modeladmin, request, queryset):
for member in queryset:
member.fallback_shifts.clear()
def reshuffle_shifts(modeladmin, request, queryset):
for member in queryset:
member.fallback_shifts.clear()
for member in queryset:
member.assign_random_shifts()
class FallbackAssignmentInline(admin.TabularInline):
model = FallbackAssignment
ordering = ("shift__start_at",)
readonly_fields = ("shift",)
@admin.register(TeamMember)
class TeamMemberAdmin(admin.ModelAdmin):
fields = ("id", "name", "url")
readonly_fields = ("id", "url")
list_display = ("name", "shift_count")
ordering = ("name",)
inlines = (FallbackAssignmentInline,)
actions = (assign_random_shifts, clear_shifts) # , reshuffle_shifts)
def shift_count(self, object):
return object.fallback_shifts.count()