# Remove ExternalIdentifier

* adds removing of ExternalIdentifier entries if a BaseObject is removed from the database
* removes unused import statements
* adds ExternalIdentifier view to admin backend
This commit is contained in:
2026-08-17 14:35:42 +02:00
parent ea1276e40b
commit 6772ddb5c8
4 changed files with 41 additions and 4 deletions
+12
View File
@@ -1,5 +1,6 @@
from django.contrib import admin from django.contrib import admin
from api.models import ExternalIdentifier
from api.models.token import APIUserToken, OAuthToken from api.models.token import APIUserToken, OAuthToken
@@ -28,6 +29,17 @@ class OAuthTokenAdmin(admin.ModelAdmin):
"refresh_token", "refresh_token",
] ]
class ExternalIdentifierAdmin(admin.ModelAdmin):
list_display = [
"external_id",
"internal_id",
"created",
]
search_fields = [
"external_id",
"internal_id",
]
admin.site.register(APIUserToken, APITokenAdmin) admin.site.register(APIUserToken, APITokenAdmin)
admin.site.register(OAuthToken, OAuthTokenAdmin) admin.site.register(OAuthToken, OAuthTokenAdmin)
admin.site.register(ExternalIdentifier, ExternalIdentifierAdmin)
+1 -1
View File
@@ -1,6 +1,6 @@
from django.contrib import admin from django.contrib import admin
from intervention.models import Intervention, Responsibility, Legal, Revocation, InterventionDocument from intervention.models import Intervention
from konova.admin import AbstractDocumentAdmin, BaseObjectAdmin from konova.admin import AbstractDocumentAdmin, BaseObjectAdmin
+1 -3
View File
@@ -7,10 +7,7 @@ Created on: 22.07.21
""" """
from django.contrib import admin from django.contrib import admin
from konova.models import Geometry, Deadline, GeometryConflict, Parcel, District, Municipal, ParcelGroup, Resubmission
from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP
from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE
from user.models import UserAction
class GeometryAdmin(admin.ModelAdmin): class GeometryAdmin(admin.ModelAdmin):
@@ -123,6 +120,7 @@ class BaseResourceAdmin(admin.ModelAdmin):
class BaseObjectAdmin(BaseResourceAdmin, DeletableObjectMixinAdmin): class BaseObjectAdmin(BaseResourceAdmin, DeletableObjectMixinAdmin):
search_fields = [ search_fields = [
"id",
"identifier", "identifier",
"title", "title",
] ]
+27
View File
@@ -146,6 +146,33 @@ class BaseObject(BaseResource, DeletableObjectMixin):
class Meta: class Meta:
abstract = True abstract = True
def delete(self, using=None, keep_parents=False):
""" Base deleting of a BaseObject instance
Args:
using:
keep_parents:
Returns:
"""
self.__delete_external_identifier()
super().delete(using, keep_parents)
def __delete_external_identifier(self):
""" Checks on existing external identifier linking and drops them
Returns:
"""
from api.models import ExternalIdentifier
try:
external_identifier = ExternalIdentifier.objects.filter(internal_id=self.id)
external_identifier.delete()
except ObjectDoesNotExist:
pass
@abstractmethod @abstractmethod
def set_status_messages(self, request: HttpRequest): def set_status_messages(self, request: HttpRequest):
raise NotImplementedError raise NotImplementedError