Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions ietf/doc/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
ReviewAssignmentDocEvent, IanaExpertDocEvent, IRSGBallotDocEvent, DocExtResource, DocumentActionHolder,
BofreqEditorDocEvent, BofreqResponsibleDocEvent, StoredObject )

from ietf.utils.admin import SaferTabularInline
from ietf.utils.validators import validate_external_resource_value

class StateTypeAdmin(admin.ModelAdmin):
Expand All @@ -28,17 +29,19 @@ class StateAdmin(admin.ModelAdmin):
filter_horizontal = ["next_states"]
admin.site.register(State, StateAdmin)

class DocAuthorInline(admin.TabularInline):
class DocAuthorInline(SaferTabularInline):
model = DocumentAuthor
raw_id_fields = ['person', 'email']
extra = 1
can_delete = False
show_change_link = True

class DocActionHolderInline(admin.TabularInline):
class DocActionHolderInline(SaferTabularInline):
model = DocumentActionHolder
raw_id_fields = ['person']
extra = 1

class RelatedDocumentInline(admin.TabularInline):
class RelatedDocumentInline(SaferTabularInline):
model = RelatedDocument
fk_name= 'source'
def this(self, instance):
Expand All @@ -48,7 +51,7 @@ def this(self, instance):
raw_id_fields = ['target']
extra = 1

class AdditionalUrlInLine(admin.TabularInline):
class AdditionalUrlInLine(SaferTabularInline):
model = DocumentURL
fields = ['tag','desc','url',]
extra = 1
Expand Down
7 changes: 4 additions & 3 deletions ietf/group/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@
MilestoneGroupEvent, GroupExtResource, Appeal, AppealArtifact )
from ietf.name.models import GroupTypeName

from ietf.utils.validators import validate_external_resource_value
from ietf.utils.admin import SaferTabularInline
from ietf.utils.response import permission_denied
from ietf.utils.validators import validate_external_resource_value

class RoleInline(admin.TabularInline):
class RoleInline(SaferTabularInline):
model = Role
raw_id_fields = ["person", "email"]

class GroupURLInline(admin.TabularInline):
class GroupURLInline(SaferTabularInline):
model = GroupURL

class GroupForm(forms.ModelForm):
Expand Down
5 changes: 3 additions & 2 deletions ietf/ipr/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
NonDocSpecificIprDisclosure,
LegacyMigrationIprEvent,
)
from ietf.utils.admin import SaferTabularInline

# ------------------------------------------------------
# ModelAdmins
Expand All @@ -29,13 +30,13 @@ class Meta:
'sections':forms.TextInput,
}

class IprDocRelInline(admin.TabularInline):
class IprDocRelInline(SaferTabularInline):
model = IprDocRel
form = IprDocRelAdminForm
raw_id_fields = ['document']
extra = 1

class RelatedIprInline(admin.TabularInline):
class RelatedIprInline(SaferTabularInline):
model = RelatedIpr
raw_id_fields = ['target']
fk_name = 'source'
Expand Down
5 changes: 3 additions & 2 deletions ietf/liaisons/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@

from ietf.liaisons.models import ( LiaisonStatement, LiaisonStatementEvent,
RelatedLiaisonStatement, LiaisonStatementAttachment )
from ietf.utils.admin import SaferTabularInline


class RelatedLiaisonStatementInline(admin.TabularInline):
class RelatedLiaisonStatementInline(SaferTabularInline):
model = RelatedLiaisonStatement
fk_name = 'source'
raw_id_fields = ['target']
extra = 1

class LiaisonStatementAttachmentInline(admin.TabularInline):
class LiaisonStatementAttachmentInline(SaferTabularInline):
model = LiaisonStatementAttachment
raw_id_fields = ['document']
extra = 1
Expand Down
9 changes: 5 additions & 4 deletions ietf/meeting/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
SessionPresentation, ImportantDate, SlideSubmission, SchedulingEvent, BusinessConstraint,
ProceedingsMaterial, MeetingHost, Registration, RegistrationTicket,
AttendanceTypeName)
from ietf.utils.admin import SaferTabularInline


class UrlResourceAdmin(admin.ModelAdmin):
Expand All @@ -18,7 +19,7 @@ class UrlResourceAdmin(admin.ModelAdmin):
raw_id_fields = ['room', ]
admin.site.register(UrlResource, UrlResourceAdmin)

class UrlResourceInline(admin.TabularInline):
class UrlResourceInline(SaferTabularInline):
model = UrlResource

class RoomAdmin(admin.ModelAdmin):
Expand All @@ -28,7 +29,7 @@ class RoomAdmin(admin.ModelAdmin):

admin.site.register(Room, RoomAdmin)

class RoomInline(admin.TabularInline):
class RoomInline(SaferTabularInline):
model = Room

class MeetingAdmin(admin.ModelAdmin):
Expand Down Expand Up @@ -93,7 +94,7 @@ def name_lower(self, instance):

admin.site.register(Constraint, ConstraintAdmin)

class SchedulingEventInline(admin.TabularInline):
class SchedulingEventInline(SaferTabularInline):
model = SchedulingEvent
raw_id_fields = ["by"]

Expand Down Expand Up @@ -244,7 +245,7 @@ def queryset(self, request, queryset):
return queryset.filter(tickets__attendance_type__slug=self.value()).distinct()
return queryset

class RegistrationTicketInline(admin.TabularInline):
class RegistrationTicketInline(SaferTabularInline):
model = RegistrationTicket

class RegistrationAdmin(admin.ModelAdmin):
Expand Down
3 changes: 2 additions & 1 deletion ietf/name/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@


from ietf.stats.models import CountryAlias
from ietf.utils.admin import SaferTabularInline


class NameAdmin(admin.ModelAdmin):
Expand Down Expand Up @@ -86,7 +87,7 @@ class GroupTypeNameAdmin(NameAdmin):
admin.site.register(GroupTypeName, GroupTypeNameAdmin)


class CountryAliasInline(admin.TabularInline):
class CountryAliasInline(SaferTabularInline):
model = CountryAlias
extra = 1

Expand Down
5 changes: 3 additions & 2 deletions ietf/person/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from ietf.person.models import Email, Alias, Person, PersonalApiKey, PersonEvent, PersonApiKeyEvent, PersonExtResource
from ietf.person.name import name_parts

from ietf.utils.admin import SaferStackedInline, SaferTabularInline
from ietf.utils.validators import validate_external_resource_value


Expand All @@ -16,7 +17,7 @@ class EmailAdmin(simple_history.admin.SimpleHistoryAdmin):
search_fields = ["address", "person__name", ]
admin.site.register(Email, EmailAdmin)

class EmailInline(admin.TabularInline):
class EmailInline(SaferTabularInline):
model = Email

class AliasAdmin(admin.ModelAdmin):
Expand All @@ -25,7 +26,7 @@ class AliasAdmin(admin.ModelAdmin):
raw_id_fields = ["person"]
admin.site.register(Alias, AliasAdmin)

class AliasInline(admin.StackedInline):
class AliasInline(SaferStackedInline):
model = Alias

class PersonAdmin(simple_history.admin.SimpleHistoryAdmin):
Expand Down
13 changes: 13 additions & 0 deletions ietf/utils/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,19 @@ def _link(self):
_link.admin_order_field = ordering
return _link


class SaferStackedInline(admin.StackedInline):
"""StackedInline without delete by default"""
can_delete = False # no delete button
show_change_link = True # show a link to the resource (where it can be deleted)


class SaferTabularInline(admin.TabularInline):
"""TabularInline without delete by default"""
can_delete = False # no delete button
show_change_link = True # show a link to the resource (where it can be deleted)


from .models import DumpInfo
class DumpInfoAdmin(admin.ModelAdmin):
list_display = ['date', 'host', 'tz']
Expand Down
Loading