From 02e1226a03abba45a60f53fc3bd942c2e4cd5c58 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 21 May 2020 20:48:03 +0000 Subject: [PATCH] Added appropriate Admin classes - Legacy-Id: 17870 --- ietf/doc/admin.py | 14 +++++++++++++- ietf/group/admin.py | 17 ++++++++++++++++- ietf/name/admin.py | 9 ++++++++- ietf/person/admin.py | 18 +++++++++++++++++- 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/ietf/doc/admin.py b/ietf/doc/admin.py index 1124e1ec3..988b4e9f5 100644 --- a/ietf/doc/admin.py +++ b/ietf/doc/admin.py @@ -11,8 +11,9 @@ from .models import (StateType, State, RelatedDocument, DocumentAuthor, Document StateDocEvent, ConsensusDocEvent, BallotType, BallotDocEvent, WriteupDocEvent, LastCallDocEvent, TelechatDocEvent, BallotPositionDocEvent, ReviewRequestDocEvent, InitialReviewDocEvent, AddedMessageEvent, SubmissionDocEvent, DeletedEvent, EditedAuthorsDocEvent, DocumentURL, - ReviewAssignmentDocEvent, IanaExpertDocEvent, IRSGBallotDocEvent ) + ReviewAssignmentDocEvent, IanaExpertDocEvent, IRSGBallotDocEvent, DocExtResource ) +from ietf.utils.validators import validate_external_resource_value class StateTypeAdmin(admin.ModelAdmin): list_display = ["slug", "label"] @@ -183,3 +184,14 @@ class DocumentUrlAdmin(admin.ModelAdmin): search_fields = ['doc__name', 'url', ] raw_id_fields = ['doc', ] admin.site.register(DocumentURL, DocumentUrlAdmin) + +class DocExtResourceAdminForm(forms.ModelForm): + def clean(self): + validate_external_resource_value(self.cleaned_data['name'],self.cleaned_data['value']) + +class DocExtResourceAdmin(admin.ModelAdmin): + form = DocExtResourceAdminForm + list_display = ['id', 'doc', 'name', 'display_name', 'value',] + search_fields = ['doc__name', 'value', 'display_name', 'name__slug',] + raw_id_fields = ['doc', ] +admin.site.register(DocExtResource, DocExtResourceAdmin) diff --git a/ietf/group/admin.py b/ietf/group/admin.py index cbfcc24b6..cfc69b8f0 100644 --- a/ietf/group/admin.py +++ b/ietf/group/admin.py @@ -4,6 +4,8 @@ from functools import update_wrapper +from django import forms + from django.contrib import admin from django.contrib.admin.utils import unquote from django.core.exceptions import PermissionDenied @@ -16,7 +18,9 @@ from django.utils.translation import ugettext as _ from ietf.group.models import (Group, GroupFeatures, GroupHistory, GroupEvent, GroupURL, GroupMilestone, GroupMilestoneHistory, GroupStateTransitions, Role, RoleHistory, ChangeStateGroupEvent, - MilestoneGroupEvent, ) + MilestoneGroupEvent, GroupExtResource, ) + +from ietf.utils.validators import validate_external_resource_value class RoleInline(admin.TabularInline): model = Role @@ -188,3 +192,14 @@ class MilestoneGroupEventAdmin(admin.ModelAdmin): list_filter = ['time'] raw_id_fields = ['group', 'by', 'milestone'] admin.site.register(MilestoneGroupEvent, MilestoneGroupEventAdmin) + +class GroupExtResourceAdminForm(forms.ModelForm): + def clean(self): + validate_external_resource_value(self.cleaned_data['name'],self.cleaned_data['value']) + +class GroupExtResourceAdmin(admin.ModelAdmin): + form = GroupExtResourceAdminForm + list_display = ['id', 'group', 'name', 'display_name', 'value',] + search_fields = ['group__acronym', 'value', 'display_name', 'name__slug',] + raw_id_fields = ['group', ] +admin.site.register(GroupExtResource, GroupExtResourceAdmin) diff --git a/ietf/name/admin.py b/ietf/name/admin.py index 8c7660132..8462bddeb 100644 --- a/ietf/name/admin.py +++ b/ietf/name/admin.py @@ -10,7 +10,9 @@ from ietf.name.models import ( LiaisonStatementState, LiaisonStatementTagName, MeetingTypeName, NomineePositionStateName, ReviewRequestStateName, ReviewResultName, ReviewTypeName, RoleName, RoomResourceName, SessionStatusName, StdLevelName, StreamName, TimeSlotTypeName, TopicAudienceName, - DocUrlTagName, ReviewAssignmentStateName, ReviewerQueuePolicyName, TimerangeName) + DocUrlTagName, ReviewAssignmentStateName, ReviewerQueuePolicyName, TimerangeName, + ExtResourceName, ExtResourceTypeName, ) + from ietf.stats.models import CountryAlias @@ -46,6 +48,10 @@ class ImportantDateNameAdmin(NameAdmin): ordering = ('-used','default_offset_days',) admin.site.register(ImportantDateName,ImportantDateNameAdmin) +class ExtResourceNameAdmin(NameAdmin): + list_display = ["slug", "name", "type", "desc", "used",] +admin.site.register(ExtResourceName,ExtResourceNameAdmin) + admin.site.register(AgendaTypeName, NameAdmin) admin.site.register(BallotPositionName, NameAdmin) admin.site.register(ConstraintName, NameAdmin) @@ -82,3 +88,4 @@ admin.site.register(TimeSlotTypeName, NameAdmin) admin.site.register(TimerangeName, NameAdmin) admin.site.register(TopicAudienceName, NameAdmin) admin.site.register(DocUrlTagName, NameAdmin) +admin.site.register(ExtResourceTypeName, NameAdmin) diff --git a/ietf/person/admin.py b/ietf/person/admin.py index 73789d6d9..8ebb60a18 100644 --- a/ietf/person/admin.py +++ b/ietf/person/admin.py @@ -1,9 +1,14 @@ from django.contrib import admin import simple_history -from ietf.person.models import Email, Alias, Person, PersonalApiKey, PersonEvent, PersonApiKeyEvent +from django import forms + +from ietf.person.models import Email, Alias, Person, PersonalApiKey, PersonEvent, PersonApiKeyEvent, PersonExtResource from ietf.person.name import name_parts +from ietf.utils.validators import validate_external_resource_value + + class EmailAdmin(simple_history.admin.SimpleHistoryAdmin): list_display = ["address", "person", "time", "active", "origin"] raw_id_fields = ["person", ] @@ -55,3 +60,14 @@ class PersonApiKeyEventAdmin(admin.ModelAdmin): admin.site.register(PersonApiKeyEvent, PersonApiKeyEventAdmin) + +class PersonExtResourceAdminForm(forms.ModelForm): + def clean(self): + validate_external_resource_value(self.cleaned_data['name'],self.cleaned_data['value']) + +class PersonExtResourceAdmin(admin.ModelAdmin): + form = PersonExtResourceAdminForm + list_display = ['id', 'person', 'name', 'display_name', 'value',] + search_fields = ['person__name', 'value', 'display_name', 'name__slug',] + raw_id_fields = ['person', ] +admin.site.register(PersonExtResource, PersonExtResourceAdmin)