diff --git a/app/components/centrum/dispatches/DispatchList.vue b/app/components/centrum/dispatches/DispatchList.vue index bab6f3462..1db5e62c2 100644 --- a/app/components/centrum/dispatches/DispatchList.vue +++ b/app/components/centrum/dispatches/DispatchList.vue @@ -119,7 +119,7 @@ const columns = [ /> - +
diff --git a/app/components/partials/LanguageSwitcherModal.vue b/app/components/partials/LanguageSwitcherModal.vue index 66e6b807e..9f7c4d09d 100644 --- a/app/components/partials/LanguageSwitcherModal.vue +++ b/app/components/partials/LanguageSwitcherModal.vue @@ -25,7 +25,7 @@ onMounted(async () => { languages.value.push({ code: lang.code, name: lang.name!, - iso: lang.iso!, + language: lang.language!, icon: lang.icon ?? 'i-mdi-question', }); }); @@ -34,16 +34,16 @@ onMounted(async () => { const preventClose = ref(false); async function switchLanguage(lang: LocaleObject): Promise { - if (locale.value === lang.iso) { + if (locale.value === lang.language) { return; } useLogger('⚙️ Settings').info('Switching language to:', lang.name); preventClose.value = true; - userLocale.value = lang.iso!; - locale.value = lang.iso!; - await setLocale(lang.iso!); + userLocale.value = lang.language!; + locale.value = lang.language!; + await setLocale(lang.language!); notifications.add({ title: { key: 'notifications.language_switched.title', parameters: {} }, diff --git a/app/store/centrum.ts b/app/store/centrum.ts index 6bdf74b69..ba37db4a9 100644 --- a/app/store/centrum.ts +++ b/app/store/centrum.ts @@ -64,8 +64,8 @@ export const useCentrumStore = defineStore('centrum', { getters: { getCurrentMode: (state: CentrumState) => state.disponents.length > 0 - ? state.settings?.mode ?? CentrumMode.UNSPECIFIED - : state.settings?.fallbackMode ?? CentrumMode.UNSPECIFIED, + ? (state.settings?.mode ?? CentrumMode.UNSPECIFIED) + : (state.settings?.fallbackMode ?? CentrumMode.UNSPECIFIED), getOwnUnit: (state: CentrumState) => (state.ownUnitId !== undefined ? state.units.get(state.ownUnitId) : undefined), getSortedUnits: (state: CentrumState) => { const filtered: Unit[] = []; @@ -136,7 +136,7 @@ export const useCentrumStore = defineStore('centrum', { const u = this.units.get(status.unitId); if (u === undefined) { - logger.warn('Processed Unit Status for unknown Unit', status.unitId); + logger.warn('Processed Unit Status for unknown unit:', status.unitId); return; } @@ -229,7 +229,7 @@ export const useCentrumStore = defineStore('centrum', { const d = this.dispatches.get(status.dispatchId); if (d === undefined) { - logger.warn('Processed Dispatch Status for unknown Dispatch', status.dispatchId, status); + logger.warn('Processed Dispatch Status for unknown dispatch:', status.dispatchId, status); return; } diff --git a/gen/go/proto/services/centrum/manager/dispatches.go b/gen/go/proto/services/centrum/manager/dispatches.go index 33326a3c9..7ef4f83be 100644 --- a/gen/go/proto/services/centrum/manager/dispatches.go +++ b/gen/go/proto/services/centrum/manager/dispatches.go @@ -43,7 +43,7 @@ func (s *Manager) UpdateDispatchStatus(ctx context.Context, job string, dspId ui if dsp.Status.Status == in.Status && (in.Status == centrum.StatusDispatch_STATUS_DISPATCH_NEW || in.Status == centrum.StatusDispatch_STATUS_DISPATCH_UNASSIGNED) { - s.logger.Debug("skipping dispatch status update due to same status", zap.Uint64("dispatch_id", dsp.Id), zap.String("status", in.Status.String())) + s.logger.Debug("skipping dispatch status update due to being new or same status", zap.Uint64("dispatch_id", dsp.Id), zap.String("status", in.Status.String())) return in, nil } diff --git a/gen/go/proto/services/centrum/manager/loader.go b/gen/go/proto/services/centrum/manager/loader.go index 1def31f95..6b4c90709 100644 --- a/gen/go/proto/services/centrum/manager/loader.go +++ b/gen/go/proto/services/centrum/manager/loader.go @@ -324,6 +324,10 @@ func (s *Manager) LoadDispatchesFromDB(ctx context.Context, cond jet.BoolExpress } } + if len(dsps) == 0 { + return nil + } + publicJobs := s.appCfg.Get().JobInfo.PublicJobs for i := 0; i < len(dsps); i++ { var err error @@ -358,20 +362,20 @@ func (s *Manager) LoadDispatchesFromDB(ctx context.Context, cond jet.BoolExpress // Ensure dispatch has a status if dsps[i].Status == nil { - dsps[i].Status, err = s.UpdateDispatchStatus(ctx, dsps[i].Job, dsps[i].Id, ¢rum.DispatchStatus{ + dsps[i].Status, err = s.AddDispatchStatus(ctx, s.db, dsps[i].Job, ¢rum.DispatchStatus{ CreatedAt: timestamp.Now(), DispatchId: dsps[i].Id, Status: centrum.StatusDispatch_STATUS_DISPATCH_NEW, Postal: dsps[i].Postal, X: &dsps[i].X, Y: &dsps[i].Y, - }) + }, false) if err != nil { return err } } - if err := s.State.UpdateDispatch(ctx, dsps[i].Job, dsps[i].Id, dsps[i]); err != nil { + if _, err := s.UpdateDispatch(ctx, dsps[i].Job, dsps[i].CreatorId, dsps[i], true); err != nil { return err } } diff --git a/nuxt.config.ts b/nuxt.config.ts index 8c87b2ae6..491549fad 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -136,14 +136,14 @@ export default defineNuxtConfig({ dir: 'ltr', isCatchallLocale: true, code: 'en', - iso: 'en', + language: 'en', files: ['en/en.json', 'en/zod.json'], icon: 'i-flagpack-gb-ukm', }, { name: 'German', code: 'de', - iso: 'de', + language: 'de', files: ['de/de.json', 'de/zod.json'], icon: 'i-flagpack-de', }, diff --git a/query/migrations/1724351936_qualifications_exam_index.up.sql b/query/migrations/1724351936_qualifications_exam_index.up.sql index c19bd71a5..06e92308f 100644 --- a/query/migrations/1724351936_qualifications_exam_index.up.sql +++ b/query/migrations/1724351936_qualifications_exam_index.up.sql @@ -3,7 +3,7 @@ BEGIN; ALTER TABLE `fivenet_qualifications_exam_questions` DROP FOREIGN KEY `fk_fivenet_qualifications_exam_questions_quali_id`; ALTER TABLE `fivenet_qualifications_exam_questions` DROP INDEX `fk_fivenet_qualifications_exam_questions_quali_id`; -ALTER TABLE `fivenet_qualifications_exam_questions` KEY `fk_fivenet_qualifications_exam_questions_quali_id` (`qualification_id`); -ALTER TABLE `fivenet_qualifications_exam_questions` CONSTRAINT `fk_fivenet_qualifications_exam_questions_quali_id` FOREIGN KEY (`qualification_id`) REFERENCES `fivenet_qualifications` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE `fivenet_qualifications_exam_questions` ADD KEY `fk_fivenet_qualifications_exam_questions_quali_id` (`qualification_id`); +ALTER TABLE `fivenet_qualifications_exam_questions` ADD CONSTRAINT `fk_fivenet_qualifications_exam_questions_quali_id` FOREIGN KEY (`qualification_id`) REFERENCES `fivenet_qualifications` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; COMMIT;