Skip to content

Commit

Permalink
Fix ah import messages (#4445)
Browse files Browse the repository at this point in the history
* Fix ah import messages

* Remove old function
  • Loading branch information
haneslinger authored Jan 2, 2024
1 parent b6e34d7 commit 1fcf7f1
Showing 1 changed file with 3 additions and 53 deletions.
56 changes: 3 additions & 53 deletions seed/data_importer/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ def map_row_chunk(ids, file_pk, source_type, prog_key, **kwargs):
map_model_obj.source_type = save_type
map_model_obj.organization = import_file.import_record.super_organization
# _process_ali_data(map_model_obj, import_file.access_level_instance)
_new_process_ali_data(map_model_obj, row, import_file.access_level_instance, table_mappings.get(""))
_process_ali_data(map_model_obj, row, import_file.access_level_instance, table_mappings.get(""))

if hasattr(map_model_obj, 'data_state'):
map_model_obj.data_state = DATA_STATE_MAPPING
Expand Down Expand Up @@ -502,7 +502,7 @@ def map_row_chunk(ids, file_pk, source_type, prog_key, **kwargs):
return True


def _new_process_ali_data(model, raw_data, import_file_ali, ah_mappings):
def _process_ali_data(model, raw_data, import_file_ali, ah_mappings):
org_alns = model.organization.access_level_names

# if org only has root, just assign it to root, they won't have any ali info
Expand All @@ -519,7 +519,7 @@ def _new_process_ali_data(model, raw_data, import_file_ali, ah_mappings):
ali_info = {
to_col: raw_data.get(from_col)
for from_col, (_, to_col, _, _) in ah_mappings.items()
if raw_data.get(from_col) is not None
if raw_data.get(from_col) is not None and raw_data.get(from_col) != ""
}
if not ali_info:
model.raw_access_level_instance_error = "Missing Access Level Column data."
Expand Down Expand Up @@ -555,56 +555,6 @@ def _new_process_ali_data(model, raw_data, import_file_ali, ah_mappings):
model.raw_access_level_instance = ali


def _process_ali_data(model, import_file_ali):
"""Removes ALI info from model.extra_data and adds access_level_instance_id to model.extra_data"""
org_alns = model.organization.access_level_names
extra_data = model.extra_data

# pull all the ali info out of model extra data
ali_info = {k: v for k, v in extra_data.items() if k in org_alns}
model.extra_data = {k: v for k, v in extra_data.items() if k not in ali_info}

# if org only has root, just assign it to root, they won't have any ali info
if AccessLevelInstance.objects.filter(organization=model.organization).count() <= 1:
model.raw_access_level_instance = model.organization.root
return

# clean ali_info
ali_info = {k: v for k, v in ali_info.items() if v is not None}
if not ali_info:
model.raw_access_level_instance_error = "Missing Access Level Column data."
return

# ensure we have a valid set of keys, else error out
needed_keys = set(org_alns[:len(ali_info)])
if needed_keys != ali_info.keys():
model.raw_access_level_instance_error = "Missing/Incomplete Access Level Column."
return

# try to get ali matching ali info within subtree
paths_match = Q(path=ali_info)
in_subtree = Q(lft__gte=import_file_ali.lft, rgt__lte=import_file_ali.rgt)
ali = AccessLevelInstance.objects.filter(Q(paths_match & in_subtree)).first()

# if ali is None, we error
if ali is None:
is_ancestor = Q(lft__lt=import_file_ali.lft, rgt__gt=import_file_ali.rgt)
ancestor_ali = AccessLevelInstance.objects.filter(Q(is_ancestor & paths_match)).first()

# differing errors if
# 1. the user can see the ali but cannot access, or
# 2. the ali cannot be seen by the user and/or doesn't exist.
if ancestor_ali is not None:
model.raw_access_level_instance_error = "Access Level Instance cannot be accessed with the permissions of this import file."
else:
model.raw_access_level_instance_error = "Access Level Information does not match any existing Access Level Instance."

return

# success!
model.raw_access_level_instance = ali


def _store_raw_footprint_and_create_rule(footprint_details, table, org, import_file, original_row, map_model_obj):
column_name = footprint_details['raw_field'] + ' (Invalid Footprint)'

Expand Down

0 comments on commit 1fcf7f1

Please sign in to comment.