diff --git a/src/lib/ae_events__event_presenter.ts b/src/lib/ae_events__event_presenter.ts
index 21fa2cc1..7d2ce19f 100644
--- a/src/lib/ae_events__event_presenter.ts
+++ b/src/lib/ae_events__event_presenter.ts
@@ -439,6 +439,7 @@ export function handle_db_save_ae_obj_li__event_presenter(
event_presentation_start_datetime: obj.event_presentation_start_datetime,
person_external_id: obj.person_external_id,
+ person_external_sys_id: obj.person_external_sys_id,
person_given_name: obj.person_given_name,
person_family_name: obj.person_family_name,
person_full_name: obj.person_full_name,
diff --git a/src/lib/db_core.ts b/src/lib/db_core.ts
index 73167533..fd913541 100644
--- a/src/lib/db_core.ts
+++ b/src/lib/db_core.ts
@@ -10,8 +10,8 @@ export interface Person {
person_id: string;
person_id_random: string;
- external_id?: string;
- external_sys_id?: string; // Generated by an external system
+ external_id?: string; // This may be semi-random or unique only withing the account.
+ external_sys_id?: string; // Generated by an external system. Ideally this should be something like a UUID. It may be the same as the external_id if nothing given.
code?: string;
account_id?: string; // Technically this is not required for global users.
diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts
index 6dc094f1..69079c84 100644
--- a/src/lib/db_events.ts
+++ b/src/lib/db_events.ts
@@ -1,6 +1,7 @@
import Dexie, { type Table } from 'dexie';
import type { list } from 'postcss';
import type { key_val } from './ae_stores';
+import type { o } from 'vitest/dist/reporters-B7ebVMkT.js';
// li = list
// kv = key value list
@@ -488,7 +489,8 @@ export interface Presenter {
event_presentation_name?: string;
event_presentation_start_datetime?: null|Date;
- person_external_id?: null|string;
+ person_external_id?: null|string; // This may be semi-random or unique only withing the account.
+ person_external_sys_id?: null|string; // Generated by an external system. Ideally this should be something like a UUID. It may be the same as the external_id if nothing given.
person_given_name?: string;
person_family_name?: null|string;
person_full_name?: null|string;
diff --git a/src/routes/events_pres_mgmt/presenter_view.svelte b/src/routes/events_pres_mgmt/presenter_view.svelte
index 91aa64f0..b00a6ca7 100644
--- a/src/routes/events_pres_mgmt/presenter_view.svelte
+++ b/src/routes/events_pres_mgmt/presenter_view.svelte
@@ -19,6 +19,8 @@ import { ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_st
import { db_events } from "$lib/db_events";
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { events_func } from '$lib/ae_events_functions';
+ import { handle_load_ae_obj_id__event_presentation } from '$lib/ae_events__event_presentation';
+ import { handle_load_ae_obj_id__event_presenter } from '$lib/ae_events__event_presenter';
// Exports
export let event_presenter_id: string;
@@ -33,6 +35,10 @@ ae_tmp.show__file_li = true;
let ae_triggers: key_val = {};
+let lq__event_obj = liveQuery(
+ () => db_events.events.get($events_slct.event_id)
+);
+
// let lq__event_session_obj = liveQuery(
// () => db_events.sessions.get($events_slct.event_session_id)
// );
@@ -463,7 +469,7 @@ $: if ($lq__event_presenter_obj) {
field_type={'text'}
field_value={$lq__event_presenter_obj.external_id}
allow_null={false}
- hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
+ hide_edit_btn={!$ae_loc.administrator_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
@@ -479,11 +485,88 @@ $: if ($lq__event_presenter_obj) {
});
}}
>
- External ID:
+ {$lq__event_obj?.mod_pres_mgmt_json?.external_id_label ?? 'External ID'}:
{$lq__event_presenter_obj?.external_id ?? '-- not set --'}
+
+
+ {#if $lq__event_presenter_obj.external_id != $lq__event_presenter_obj.person_external_id}
+
+
@@ -802,54 +886,79 @@ $: if ($lq__event_presenter_obj) {
{$lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length ? $lq__event_presenter_obj.professional_title : '-- professional title not set --'}
-
@@ -968,6 +1077,7 @@ $: if ($lq__event_presenter_obj) {
console.log('*** Sync person button clicked ***');
if (!confirm('Are you sure you want to sync from the person record?')) {return false;}
+ // NOTE: The external_id should not really be changed once it is set. The person.external_sys_id may need to be updated as well.
let event_presenter_data = {
'external_id': $lq__event_presenter_obj.person_external_id,
'given_name': $lq__event_presenter_obj.person_given_name,
@@ -1008,7 +1118,7 @@ $: if ($lq__event_presenter_obj) {
let person_data = {
account_id_random: $slct.account_id,
source_code: 'manual:SK',
- external_id: $lq__event_presenter_obj?.external_id?? 'new_presenter',
+ external_id: $lq__event_presenter_obj?.external_id?? 'AE-temp-ID',
// user_id_random: user_obj.user_id_random,
given_name: $lq__event_presenter_obj.given_name?? 'New',
family_name: $lq__event_presenter_obj?.family_name?? 'Presenter',
@@ -1048,6 +1158,93 @@ $: if ($lq__event_presenter_obj) {