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;