update to allow DomainRequest to import properly

This commit is contained in:
David Kennedy 2024-05-03 07:14:06 -04:00
parent 011a974a1e
commit 780504c9f2
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
2 changed files with 29 additions and 48 deletions

View file

@ -1,13 +1,10 @@
from datetime import date from datetime import date
import logging import logging
import copy import copy
import traceback
import warnings
from django import forms from django import forms
from django.db.models import Value, CharField, Q from django.db.models import Value, CharField, Q
from django.db.models.functions import Concat, Coalesce from django.db.models.functions import Concat, Coalesce
from django.db.transaction import TransactionManagementError
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import redirect from django.shortcuts import redirect
from django_fsm import get_available_FIELD_transitions, FSMField from django_fsm import get_available_FIELD_transitions, FSMField
@ -15,7 +12,6 @@ from django.contrib import admin, messages
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError
from django.urls import reverse from django.urls import reverse
from dateutil.relativedelta import relativedelta # type: ignore from dateutil.relativedelta import relativedelta # type: ignore
from epplibwrapper.errors import ErrorCode, RegistryError from epplibwrapper.errors import ErrorCode, RegistryError
@ -32,8 +28,7 @@ from django.utils.safestring import mark_safe
from django.utils.html import escape from django.utils.html import escape
from django.contrib.auth.forms import UserChangeForm, UsernameField from django.contrib.auth.forms import UserChangeForm, UsernameField
from django_admin_multiple_choice_list_filter.list_filters import MultipleChoiceListFilter from django_admin_multiple_choice_list_filter.list_filters import MultipleChoiceListFilter
from import_export import resources, widgets from import_export import resources
from import_export.results import RowResult
from import_export.admin import ImportExportModelAdmin from import_export.admin import ImportExportModelAdmin
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -44,8 +39,6 @@ logger = logging.getLogger(__name__)
class FsmModelResource(resources.ModelResource): class FsmModelResource(resources.ModelResource):
def init_instance(self, row=None): def init_instance(self, row=None):
logger.info("Initializing instance")
logger.info(f"Row: {row}")
# Get fields which are fsm fields # Get fields which are fsm fields
fsm_fields = [] fsm_fields = []
@ -55,8 +48,6 @@ class FsmModelResource(resources.ModelResource):
if row and f.name in row: if row and f.name in row:
fsm_fields.append((f.name, row[f.name])) fsm_fields.append((f.name, row[f.name]))
logger.info(f"Fsm fields: {fsm_fields}")
# Convert fields_and_values to kwargs # Convert fields_and_values to kwargs
kwargs = dict(fsm_fields) kwargs = dict(fsm_fields)
@ -64,25 +55,12 @@ class FsmModelResource(resources.ModelResource):
return self._meta.model(**kwargs) return self._meta.model(**kwargs)
def import_field(self, field, obj, data, is_m2m=False, **kwargs): def import_field(self, field, obj, data, is_m2m=False, **kwargs):
# logger.info(f"import_field: ${field}")
# logger.info(field.attribute)
# logger.info(field.widget)
# logger.info(type(obj))
# logger.info(obj._meta.fields)
is_fsm = False is_fsm = False
for f in obj._meta.fields: for f in obj._meta.fields:
# logger.info(f.name)
# logger.info(type(f))
if field.attribute == f.name and isinstance(f, FSMField): if field.attribute == f.name and isinstance(f, FSMField):
is_fsm = True is_fsm = True
# if field.attribute in sorted(obj._meta.fields):
# logger.info("in fields")
# if not isinstance(obj._meta.fields[field.attribute], FSMField):
if not is_fsm: if not is_fsm:
# logger.info("not fsm field")
#if (field.attribute != 'state'):
super().import_field(field, obj, data, is_m2m, **kwargs) super().import_field(field, obj, data, is_m2m, **kwargs)
# logger.info("finished importing")
class UserResource(resources.ModelResource): class UserResource(resources.ModelResource):

View file

@ -102,6 +102,7 @@ class CreateOrUpdateOrganizationTypeHelper:
def _handle_existing_instance(self, force_update_when_no_are_changes_found=False): def _handle_existing_instance(self, force_update_when_no_are_changes_found=False):
# == Init variables == # # == Init variables == #
try:
# Instance is already in the database, fetch its current state # Instance is already in the database, fetch its current state
current_instance = self.sender.objects.get(id=self.instance.id) current_instance = self.sender.objects.get(id=self.instance.id)
@ -130,6 +131,8 @@ class CreateOrUpdateOrganizationTypeHelper:
# Update the field # Update the field
self._update_fields(organization_type_needs_update, generic_org_type_needs_update) self._update_fields(organization_type_needs_update, generic_org_type_needs_update)
except:
pass
def _update_fields(self, organization_type_needs_update, generic_org_type_needs_update): def _update_fields(self, organization_type_needs_update, generic_org_type_needs_update):
""" """