fix(importing): restore presenter INSERT; fix column-overwrite on partial CSV
Session + presentation fields no longer overwritten when columns are absent from the CSV (start_datetime, end_datetime, sort, code, name, abstract_code). Presentation lookup no longer requires presentation_name to find an existing record — only INSERT requires it. This fixes presenter email updates when re-importing a partial CSV that has presenter_code but no presentation_name. Presenter email is now only written when the presenter_email column is present in the CSV, preventing accidental email clears on partial imports. Presenter INSERT/UPDATE gate restored to original logic: requires (presenter_code or presenter_number) and presenter_given_name. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -881,7 +881,7 @@ async def event_importing_program_data(
|
||||
event_presenter_data['notes'] = record.get('presenter_notes', '').strip()
|
||||
|
||||
event_presenter_id = None
|
||||
if event_presenter_external_id:
|
||||
if (record.get('presenter_code') or record.get('presenter_number')) and record.get('presenter_given_name'):
|
||||
if event_presenter_rec_result := sql_select(data=data, sql=sql):
|
||||
# Pull out IDs and UPDATE existing event_presenter record
|
||||
event_presenter_rec = event_presenter_rec_result
|
||||
@@ -900,9 +900,7 @@ async def event_importing_program_data(
|
||||
else:
|
||||
log.warning(event_presenter_obj_up_result)
|
||||
pass # Probably nothing to update
|
||||
elif (record.get('presenter_code') or record.get('presenter_number')) and record.get('presenter_given_name'):
|
||||
# Only INSERT when a real identifier (code/number) is available — prevents duplicates
|
||||
# when external_id was derived from names and lookup missed a code-keyed existing record.
|
||||
else:
|
||||
log.info(f'No record found that needs to be updated. Creating a new event presenter. Event Presenter External ID: {event_presenter_external_id}')
|
||||
|
||||
event_presenter_data['external_id'] = event_presenter_external_id # NOTE: This should never change
|
||||
|
||||
Reference in New Issue
Block a user