Merged in [19920] from rjsparks@nostrum.com:

Make working with session purpose easier in the admin.
 - Legacy-Id: 19928
Note: SVN reference [19920] has been migrated to Git commit 191d5b134fdab8782280eb9769beec793818975f
This commit is contained in:
Robert Sparks 2022-02-14 18:14:26 +00:00
parent 844890eadc
commit d3a91b4b19
2 changed files with 10 additions and 5 deletions

View file

@ -96,10 +96,10 @@ class SchedulingEventInline(admin.TabularInline):
raw_id_fields = ["by"]
class SessionAdmin(admin.ModelAdmin):
list_display = ["meeting", "name", "group", "attendees", "requested", "current_status"]
list_filter = ["meeting", ]
list_display = ["meeting", "name", "group_acronym", "purpose", "attendees", "requested", "current_status"]
list_filter = ["purpose", "meeting", ]
raw_id_fields = ["meeting", "group", "materials", "joint_with_groups", "tombstone_for"]
search_fields = ["meeting__number", "name", "group__name", "group__acronym", ]
search_fields = ["meeting__number", "name", "group__name", "group__acronym", "purpose__name"]
ordering = ["-id"]
inlines = [SchedulingEventInline]
@ -108,10 +108,13 @@ class SessionAdmin(admin.ModelAdmin):
qs = super(SessionAdmin, self).get_queryset(request)
return qs.prefetch_related('schedulingevent_set')
def group_acronym(self, instance):
return instance.group and instance.group.acronym
def current_status(self, instance):
events = sorted(instance.schedulingevent_set.all(), key=lambda e: (e.time, e.id))
if events:
return events[-1].time
return f'{events[-1].status} ({events[-1].time:%Y-%m-%d %H:%M})'
else:
return None

View file

@ -166,11 +166,12 @@ api.meeting.register(ScheduleResource())
from ietf.group.resources import GroupResource
from ietf.doc.resources import DocumentResource
from ietf.name.resources import TimeSlotTypeNameResource
from ietf.name.resources import TimeSlotTypeNameResource, SessionPurposeNameResource
from ietf.person.resources import PersonResource
class SessionResource(ModelResource):
meeting = ToOneField(MeetingResource, 'meeting')
type = ToOneField(TimeSlotTypeNameResource, 'type')
purpose = ToOneField(SessionPurposeNameResource, 'purpose')
group = ToOneField(GroupResource, 'group')
materials = ToManyField(DocumentResource, 'materials', null=True)
resources = ToManyField(ResourceAssociationResource, 'resources', null=True)
@ -195,6 +196,7 @@ class SessionResource(ModelResource):
"modified": ALL,
"meeting": ALL_WITH_RELATIONS,
"type": ALL_WITH_RELATIONS,
"purpose": ALL_WITH_RELATIONS,
"group": ALL_WITH_RELATIONS,
"requested_by": ALL_WITH_RELATIONS,
"status": ALL_WITH_RELATIONS,