diff --git a/ietf/meeting/admin.py b/ietf/meeting/admin.py index f8477ce2f..5c70515d9 100644 --- a/ietf/meeting/admin.py +++ b/ietf/meeting/admin.py @@ -6,7 +6,7 @@ from django.contrib import admin from ietf.meeting.models import (Meeting, Room, Session, TimeSlot, Constraint, Schedule, SchedTimeSessAssignment, ResourceAssociation, FloorPlan, UrlResource, - SessionPresentation, ImportantDate, SlideSubmission, SchedulingEvent) + SessionPresentation, ImportantDate, SlideSubmission, SchedulingEvent, BusinessConstraint) class UrlResourceAdmin(admin.ModelAdmin): @@ -65,6 +65,18 @@ class TimeSlotAdmin(admin.ModelAdmin): admin.site.register(TimeSlot, TimeSlotAdmin) +class BusinessConstraintAdmin(admin.ModelAdmin): + list_display = ["slug", "name", "penalty"] + search_fields = ["slug", "name"] + + def name_lower(self, instance): + return instance.name.name.lower() + + name_lower.short_description = "businessconstraint" # type: ignore # https://github.com/python/mypy/issues/2087 + +admin.site.register(BusinessConstraint, BusinessConstraintAdmin) + + class ConstraintAdmin(admin.ModelAdmin): list_display = ["meeting", "source", "name_lower", "target"] raw_id_fields = ["meeting", "source", "target"] diff --git a/ietf/meeting/resources.py b/ietf/meeting/resources.py index a2b3779d2..03c7e902c 100644 --- a/ietf/meeting/resources.py +++ b/ietf/meeting/resources.py @@ -13,7 +13,8 @@ from ietf import api from ietf.meeting.models import ( Meeting, ResourceAssociation, Constraint, Room, Schedule, Session, TimeSlot, SchedTimeSessAssignment, SessionPresentation, FloorPlan, - UrlResource, ImportantDate, SlideSubmission, SchedulingEvent ) + UrlResource, ImportantDate, SlideSubmission, SchedulingEvent, + BusinessConstraint) from ietf.name.resources import MeetingTypeNameResource class MeetingResource(ModelResource): @@ -358,3 +359,18 @@ class SlideSubmissionResource(ModelResource): "submitter": ALL_WITH_RELATIONS, } api.meeting.register(SlideSubmissionResource()) + + +class BusinessConstraintResource(ModelResource): + class Meta: + queryset = BusinessConstraint.objects.all() + serializer = api.Serializer() + cache = SimpleCache() + #resource_name = 'businessconstraint' + ordering = ['slug', ] + filtering = { + "slug": ALL, + "name": ALL, + "penalty": ALL, + } +api.meeting.register(BusinessConstraintResource())