41 lines
1.1 KiB
Python
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()
|