diff --git a/e2e/integration/LinkingChildToSchool.cy.ts b/e2e/integration/LinkingChildToSchool.cy.ts
index 87e7b1c93a..e34cb8b00f 100644
--- a/e2e/integration/LinkingChildToSchool.cy.ts
+++ b/e2e/integration/LinkingChildToSchool.cy.ts
@@ -24,9 +24,9 @@ describe("Scenario: Linking a child to a school - E2E test", function () {
       .click();
 
     // choose the school to add
-    cy.get('[ng-reflect-placeholder="Select School"]')
-      .type("E2E School", { force: true })
-      .click();
+    cy.contains("mat-form-field", "School")
+      .find("[matInput]")
+      .type("E2E School{enter}");
 
     // save school in child profile
     cy.contains("button", "Save").click({ force: true });
diff --git a/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.spec.ts b/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.spec.ts
index c099ff8f3e..89ea35ac7d 100644
--- a/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.spec.ts
+++ b/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.spec.ts
@@ -9,7 +9,6 @@ import {
 import { RollCallComponent } from "./roll-call.component";
 import { Note } from "../../../notes/model/note";
 import { By } from "@angular/platform-browser";
-import { ConfigService } from "../../../../core/config/config.service";
 import { Child } from "../../../children/model/child";
 import { LoggingService } from "../../../../core/logging/logging.service";
 import { MockedTestingModule } from "../../../../utils/mocked-testing.module";
@@ -18,6 +17,7 @@ import { LoginState } from "../../../../core/session/session-states/login-state.
 import { SimpleChange } from "@angular/core";
 import { AttendanceLogicalStatus } from "../../model/attendance-status";
 import { ChildrenService } from "../../../children/children.service";
+import { ConfigurableEnumService } from "../../../../core/configurable-enum/configurable-enum.service";
 
 const PRESENT = {
   id: "PRESENT",
@@ -82,8 +82,8 @@ describe("RollCallComponent", () => {
 
   it("should display all available attendance status to select", async () => {
     const options = [PRESENT, ABSENT];
-    const configService = TestBed.inject(ConfigService);
-    spyOn(configService, "getConfigurableEnumValues").and.returnValue(options);
+    const enumService = TestBed.inject(ConfigurableEnumService);
+    spyOn(enumService, "getEnumValues").and.returnValue(options);
     component.eventEntity.addChild(participant1);
     await component.ngOnChanges(dummyChanges);
     fixture.detectChanges();
diff --git a/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.ts b/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.ts
index a5e364a548..a9534843d5 100644
--- a/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.ts
+++ b/src/app/child-dev-project/attendance/add-day-attendance/roll-call/roll-call.component.ts
@@ -13,7 +13,6 @@ import {
 } from "../../model/attendance-status";
 import { Note } from "../../../notes/model/note";
 import { EventAttendance } from "../../model/event-attendance";
-import { ConfigService } from "../../../../core/config/config.service";
 import { EntityMapperService } from "../../../../core/entity/entity-mapper.service";
 import { Child } from "../../../children/model/child";
 import { LoggingService } from "../../../../core/logging/logging.service";
@@ -32,6 +31,7 @@ import {
   HammerModule,
 } from "@angular/platform-browser";
 import Hammer from "hammerjs";
+import { ConfigurableEnumService } from "../../../../core/configurable-enum/configurable-enum.service";
 
 // Only allow horizontal swiping
 class HorizontalHammerConfig extends HammerGestureConfig {
@@ -114,7 +114,7 @@ export class RollCallComponent implements OnChanges {
   children: Child[] = [];
 
   constructor(
-    private configService: ConfigService,
+    private enumService: ConfigurableEnumService,
     private entityMapper: EntityMapperService,
     private formDialog: FormDialogService,
     private loggingService: LoggingService
@@ -156,10 +156,9 @@ export class RollCallComponent implements OnChanges {
   }
 
   private loadAttendanceStatusTypes() {
-    this.availableStatus =
-      this.configService.getConfigurableEnumValues<AttendanceStatusType>(
-        ATTENDANCE_STATUS_CONFIG_ID
-      );
+    this.availableStatus = this.enumService.getEnumValues<AttendanceStatusType>(
+      ATTENDANCE_STATUS_CONFIG_ID
+    );
   }
 
   private async loadParticipants() {
diff --git a/src/app/child-dev-project/attendance/attendance.service.ts b/src/app/child-dev-project/attendance/attendance.service.ts
index e8b2fcf17e..a3bf6e8234 100644
--- a/src/app/child-dev-project/attendance/attendance.service.ts
+++ b/src/app/child-dev-project/attendance/attendance.service.ts
@@ -160,6 +160,7 @@ export class AttendanceService {
     sinceDate?: Date
   ): Promise<ActivityAttendance[]> {
     const periods = new Map<number, ActivityAttendance>();
+
     function getOrCreateAttendancePeriod(event) {
       const month = new Date(event.date.getFullYear(), event.date.getMonth());
       let attMonth = periods.get(month.getTime());
@@ -192,11 +193,7 @@ export class AttendanceService {
     until: Date
   ): Promise<ActivityAttendance[]> {
     const matchingEvents = await this.getEventsOnDate(from, until);
-
-    const groupedEvents: Map<string, EventNote[]> = groupBy(
-      matchingEvents,
-      "relatesTo"
-    );
+    const groupedEvents = groupBy(matchingEvents, "relatesTo");
 
     const records = [];
     for (const [activityId, activityEvents] of groupedEvents) {
diff --git a/src/app/child-dev-project/attendance/dashboard-widgets/attendance-week-dashboard/attendance-week-dashboard.component.ts b/src/app/child-dev-project/attendance/dashboard-widgets/attendance-week-dashboard/attendance-week-dashboard.component.ts
index a93f28dd75..4ff2193532 100644
--- a/src/app/child-dev-project/attendance/dashboard-widgets/attendance-week-dashboard/attendance-week-dashboard.component.ts
+++ b/src/app/child-dev-project/attendance/dashboard-widgets/attendance-week-dashboard/attendance-week-dashboard.component.ts
@@ -144,10 +144,10 @@ export class AttendanceWeekDashboardComponent
         .forEach((r) => lowAttendanceCases.add(r.childId));
     }
 
-    const groupedRecords = groupBy(records, "childId");
-    this.tableDataSource.data = Array.from(lowAttendanceCases.values()).map(
-      (childId) => groupedRecords.get(childId)
-    );
+    const groups = groupBy(records, "childId");
+    this.tableDataSource.data = groups
+      .filter(([childId]) => lowAttendanceCases.has(childId))
+      .map(([_, attendance]) => attendance);
     this.loadingDone = true;
   }
 
diff --git a/src/app/child-dev-project/children/dashboard-widgets/children-bmi-dashboard/children-bmi-dashboard.component.ts b/src/app/child-dev-project/children/dashboard-widgets/children-bmi-dashboard/children-bmi-dashboard.component.ts
index c4f490f5fd..5b0cd96a3b 100644
--- a/src/app/child-dev-project/children/dashboard-widgets/children-bmi-dashboard/children-bmi-dashboard.component.ts
+++ b/src/app/child-dev-project/children/dashboard-widgets/children-bmi-dashboard/children-bmi-dashboard.component.ts
@@ -55,9 +55,8 @@ export class ChildrenBmiDashboardComponent
   async loadBMIData() {
     // Maybe replace this by a smart index function
     const healthChecks = await this.entityMapper.loadType(HealthCheck);
-    const healthCheckMap = groupBy(healthChecks, "child");
     const BMIs: BmiRow[] = [];
-    healthCheckMap.forEach((checks, childId) => {
+    groupBy(healthChecks, "child").forEach(([childId, checks]) => {
       const latest = checks.reduce((prev, cur) =>
         cur.date > prev.date ? cur : prev
       );
diff --git a/src/app/child-dev-project/children/dashboard-widgets/entity-count-dashboard/entity-count-dashboard.component.ts b/src/app/child-dev-project/children/dashboard-widgets/entity-count-dashboard/entity-count-dashboard.component.ts
index a52d3311f7..7ce332b2d9 100644
--- a/src/app/child-dev-project/children/dashboard-widgets/entity-count-dashboard/entity-count-dashboard.component.ts
+++ b/src/app/child-dev-project/children/dashboard-widgets/entity-count-dashboard/entity-count-dashboard.component.ts
@@ -13,6 +13,7 @@ import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
 import { Angulartics2Module } from "angulartics2";
 import { DashboardWidgetComponent } from "../../../../core/dashboard/dashboard-widget/dashboard-widget.component";
 import { WidgetContentComponent } from "../../../../core/dashboard/dashboard-widget/widget-content/widget-content.component";
+import { groupBy } from "../../../../utils/utils";
 
 @DynamicComponent("ChildrenCountDashboard")
 @DynamicComponent("EntityCountDashboard")
@@ -63,7 +64,7 @@ export class EntityCountDashboardComponent
 
   async ngOnInit() {
     const entities = await this.entityMapper.loadType(this.entity);
-    this.updateCounts(entities);
+    this.updateCounts(entities.filter((e) => e.isActive));
   }
 
   goToChildrenList(filterId: string) {
@@ -74,31 +75,16 @@ export class EntityCountDashboardComponent
   }
 
   private updateCounts(entities: Entity[]) {
-    this.totalEntities = 0;
-
-    const countMap = new Map<any, number>();
-    entities.forEach((entity) => {
-      if (entity.isActive) {
-        let count = countMap.get(entity[this.groupBy]);
-        if (count === undefined) {
-          count = 0;
-        }
-
-        count++;
-        this.totalEntities++;
-        countMap.set(entity[this.groupBy], count);
-      }
+    this.totalEntities = entities.length;
+    const groups = groupBy(entities, this.groupBy as keyof Entity);
+    this.entityGroupCounts = groups.map(([group, entities]) => {
+      const label = extractHumanReadableLabel(group);
+      return {
+        label: label,
+        value: entities.length,
+        id: group?.["id"] || label,
+      };
     });
-
-    this.entityGroupCounts = Array.from(countMap.entries()) // direct use of Map creates change detection problems
-      .map((entry) => {
-        const label = extractHumanReadableLabel(entry[0]);
-        return {
-          label: label,
-          value: entry[1],
-          id: entry[0]?.id || label,
-        };
-      });
     this.loading = false;
   }
 }
diff --git a/src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts b/src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts
index 6eeaa035d4..70d214c042 100644
--- a/src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts
+++ b/src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts
@@ -1,13 +1,10 @@
 import { Center } from "../../model/child";
 
-export const centersWithProbability: Array<Center> = [
-  // multiple entries for the same value increase its probability
-  { id: "alipore", label: $localize`:center:Alipore` },
+export const centersUnique: Center[] = [
   { id: "alipore", label: $localize`:center:Alipore` },
   { id: "tollygunge", label: $localize`:center:Tollygunge` },
   { id: "barabazar", label: $localize`:center:Barabazar` },
 ];
 
-export const centersUnique = centersWithProbability.filter(
-  (value, index, self) => self.indexOf(value) === index
-);
+// multiple entries for the same value increase its probability
+export const centersWithProbability = [0, 0, 1, 2].map((i) => centersUnique[i]);
diff --git a/src/app/child-dev-project/notes/model/note.spec.ts b/src/app/child-dev-project/notes/model/note.spec.ts
index 2209d07770..1e6db00e0f 100644
--- a/src/app/child-dev-project/notes/model/note.spec.ts
+++ b/src/app/child-dev-project/notes/model/note.spec.ts
@@ -24,7 +24,7 @@ import {
 import { testEntitySubclass } from "../../../core/entity/model/entity.spec";
 import { defaultInteractionTypes } from "../../../core/config/default-config/default-interaction-types";
 import { Ordering } from "../../../core/configurable-enum/configurable-enum-ordering";
-import { createTestingConfigService } from "../../../core/config/testing-config-service";
+import { createTestingConfigurableEnumService } from "../../../core/configurable-enum/configurable-enum-testing";
 
 const testStatusTypes: ConfigurableEnumConfig<AttendanceStatusType> = [
   {
@@ -86,7 +86,7 @@ describe("Note", () => {
 
     entitySchemaService = new EntitySchemaService();
     entitySchemaService.registerSchemaDatatype(
-      new ConfigurableEnumDatatype(createTestingConfigService(testConfigs))
+      new ConfigurableEnumDatatype(createTestingConfigurableEnumService())
     );
   }));
 
diff --git a/src/app/child-dev-project/notes/note-details/note-details.component.spec.ts b/src/app/child-dev-project/notes/note-details/note-details.component.spec.ts
index 69e5552e78..a9f5192c14 100644
--- a/src/app/child-dev-project/notes/note-details/note-details.component.spec.ts
+++ b/src/app/child-dev-project/notes/note-details/note-details.component.spec.ts
@@ -35,7 +35,7 @@ describe("NoteDetailsComponent", () => {
   let children: Child[];
   let testNote: Note;
 
-  beforeEach(() => {
+  beforeEach(async () => {
     children = [new Child("1"), new Child("2"), new Child("3")];
     testNote = generateTestNote(children);
 
@@ -46,7 +46,7 @@ describe("NoteDetailsComponent", () => {
 
     const dialogRefMock = { beforeClosed: () => EMPTY, close: () => {} };
 
-    TestBed.configureTestingModule({
+    await TestBed.configureTestingModule({
       imports: [
         NoteDetailsComponent,
         MockedTestingModule.withState(LoginState.LOGGED_IN, children),
diff --git a/src/app/child-dev-project/schools/child-school-overview/child-school-overview.component.ts b/src/app/child-dev-project/schools/child-school-overview/child-school-overview.component.ts
index cb8890ba81..e56ef8e9ad 100644
--- a/src/app/child-dev-project/schools/child-school-overview/child-school-overview.component.ts
+++ b/src/app/child-dev-project/schools/child-school-overview/child-school-overview.component.ts
@@ -143,7 +143,7 @@ export class ChildSchoolOverviewComponent
         newRelation.start =
           this.allRecords.length && this.allRecords[0].end
             ? moment(this.allRecords[0].end).add(1, "day").toDate()
-            : new Date();
+            : moment().startOf("day").toDate();
       } else if (mode === "school") {
         newRelation.schoolId = entityId;
       }
diff --git a/src/app/core/config-setup/config-import-parser.service.ts b/src/app/core/config-setup/config-import-parser.service.ts
index 701c96acf2..724a45d822 100644
--- a/src/app/core/config-setup/config-import-parser.service.ts
+++ b/src/app/core/config-setup/config-import-parser.service.ts
@@ -25,6 +25,7 @@ export class ConfigImportParserService {
     "appConfig:usage-analytics",
     "navigationMenu",
     "view:",
+    // TODO what do we do with these?
     "enum:interaction-type",
     "enum:warning-levels",
     "view:note",
diff --git a/src/app/core/config/config-fix.ts b/src/app/core/config/config-fix.ts
index 169f2bda6c..2dd6533bdc 100644
--- a/src/app/core/config/config-fix.ts
+++ b/src/app/core/config/config-fix.ts
@@ -1,17 +1,7 @@
-import { defaultAttendanceStatusTypes } from "./default-config/default-attendance-status-types";
-import { defaultInteractionTypes } from "./default-config/default-interaction-types";
 import { Child } from "../../child-dev-project/children/model/child";
 import { School } from "../../child-dev-project/schools/model/school";
 import { ChildSchoolRelation } from "../../child-dev-project/children/model/childSchoolRelation";
 import { EventNote } from "../../child-dev-project/attendance/model/event-note";
-import { genders } from "../../child-dev-project/children/model/genders";
-import { materials } from "../../child-dev-project/children/educational-material/model/materials";
-import {
-  mathLevels,
-  readingLevels,
-} from "../../child-dev-project/children/aser/model/skill-levels";
-import { warningLevels } from "../../child-dev-project/warning-levels";
-import { ratingAnswers } from "../../features/historical-data/model/rating-answers";
 
 // prettier-ignore
 export const defaultJsonConfig = {
@@ -89,68 +79,6 @@ export const defaultJsonConfig = {
       },
     ]
   },
-
-
-  "enum:interaction-type": defaultInteractionTypes,
-  "enum:attendance-status": defaultAttendanceStatusTypes,
-  "enum:reading-levels": readingLevels,
-  "enum:math-levels": mathLevels,
-  "enum:genders": genders,
-  "enum:materials": materials,
-  "enum:warning-levels": warningLevels,
-  "enum:document-status": [
-    {
-      "id": "",
-      "label": "",
-      "_ordinal": 0,
-    },
-    {
-      "id": "OK (copy with us)",
-      "label": $localize`:Document status:OK (copy with us)`,
-      "_ordinal": 1,
-    },
-    {
-      "id": "OK (copy needed for us)",
-      "label": $localize`:Document status:OK (copy needed for us)`,
-      "_ordinal": 2,
-    },
-    {
-      "id": "needs correction",
-      "label": $localize`:Document status:needs correction`,
-      "_ordinal": 3,
-    },
-    {
-      "id": "applied",
-      "label": $localize`:Document status:applied`,
-      "_ordinal": 4,
-    },
-    {
-      "id": "doesn't have",
-      "label": $localize`:Document status:doesn't have`,
-      "_ordinal": 5,
-    },
-    {
-      "id": "not eligible",
-      "label": $localize`:Document status:not eligible`,
-      "_ordinal": 6,
-    }
-  ],
-  "enum:center": [
-    {
-      "id": "alipore",
-      "label": $localize`:center:Alipore`
-    },
-    {
-      "id": "tollygunge",
-      "label": $localize`:center:Tollygunge`
-    },
-    {
-      "id": "barabazar",
-      "label": $localize`:center:Barabazar`
-    }
-  ],
-  "enum:rating-answer": ratingAnswers,
-
   "view:": {
     "component": "Dashboard",
     "config": {
@@ -294,21 +222,21 @@ export const defaultJsonConfig = {
         }
       ],
       "exportConfig": [
-        {"label": "event_id", "query": "_id"},
-        {"label": "date", "query": "date"},
-        {"label": "event title", "query": "subject"},
-        {"label": "event type", "query": "category"},
-        {"label": "event description", "query": "text"},
+        { "label": "event_id", "query": "_id" },
+        { "label": "date", "query": "date" },
+        { "label": "event title", "query": "subject" },
+        { "label": "event type", "query": "category" },
+        { "label": "event description", "query": "text" },
         {
           "query": ":getAttendanceArray(true)",
           "subQueries": [
             {
               "query": ".participant:toEntities(Child)",
               "subQueries": [
-                {"label": "participant_id", "query": "_id"},
-                {"label": "participant", "query": "name"},
-                {"label": "gender", "query": "gender"},
-                {"label": "religion", "query": "religion"},
+                { "label": "participant_id", "query": "_id" },
+                { "label": "participant", "query": "name" },
+                { "label": "gender", "query": "gender" },
+                { "label": "religion", "query": "religion" },
               ]
             },
             {
@@ -318,8 +246,8 @@ export const defaultJsonConfig = {
             {
               "query": ".school:toEntities(School)",
               "subQueries": [
-                {"label": "school_name", "query": "name"},
-                {"label": "school_id", "query": "entityId"}
+                { "label": "school_name", "query": "name" },
+                { "label": "school_id", "query": "entityId" }
               ]
             }
           ],
@@ -683,7 +611,7 @@ export const defaultJsonConfig = {
               "config": {
                 "rightSide": {
                   "entityType": School.ENTITY_TYPE,
-                  "availableFilters": [{"id": "language"}],
+                  "availableFilters": [{ "id": "language" }],
                 },
               }
             }
@@ -747,11 +675,11 @@ export const defaultJsonConfig = {
               component: "HistoricalDataComponent",
               config: [
                 "date",
-                {id: "isMotivatedDuringClass", visibleFrom: "lg"},
-                {id: "isParticipatingInClass", visibleFrom: "lg"},
-                {id: "isInteractingWithOthers", visibleFrom: "lg"},
-                {id: "doesHomework", visibleFrom: "lg"},
-                {id: "asksQuestions", visibleFrom: "lg"},
+                { id: "isMotivatedDuringClass", visibleFrom: "lg" },
+                { id: "isParticipatingInClass", visibleFrom: "lg" },
+                { id: "isInteractingWithOthers", visibleFrom: "lg" },
+                { id: "doesHomework", visibleFrom: "lg" },
+                { id: "asksQuestions", visibleFrom: "lg" },
               ]
             }
           ]
@@ -796,9 +724,9 @@ export const defaultJsonConfig = {
         },
       ],
       "exportConfig": [
-        {label: "Title", query: "title"},
-        {label: "Type", query: "type"},
-        {label: "Assigned users", query: "assignedTo"}
+        { label: "Title", query: "title" },
+        { label: "Type", query: "type" },
+        { label: "Assigned users", query: "assignedTo" }
       ]
     }
   },
@@ -913,7 +841,7 @@ export const defaultJsonConfig = {
           "aggregationDefinitions": [
             {
               "query": `${EventNote.ENTITY_TYPE}:toArray[* date >= ? & date <= ?]`,
-              groupBy: {label: "Type", property: "category"},
+              groupBy: { label: "Type", property: "category" },
               "subQueries": [
                 {
                   query: ":getAttendanceArray:getAttendanceReport",
@@ -1115,10 +1043,10 @@ export const defaultJsonConfig = {
     config: {
       rightSide: {
         entityType: School.ENTITY_TYPE,
-        prefilter: {"privateSchool": true},
-        availableFilters: [{"id": "language"}],
+        prefilter: { "privateSchool": true },
+        availableFilters: [{ "id": "language" }],
       },
-      leftSide: {entityType: Child.ENTITY_TYPE},
+      leftSide: { entityType: Child.ENTITY_TYPE },
     }
   },
   "appConfig:matching-entities": {
@@ -1145,7 +1073,7 @@ export const defaultJsonConfig = {
       "entity": "Todo",
       "columns": ["deadline", "subject", "assignedTo", "startDate", "relatedEntities"],
       "filters": [
-        {"id": "assignedTo"},
+        { "id": "assignedTo" },
 
         {
           "id": "due-status",
diff --git a/src/app/core/config/config.service.spec.ts b/src/app/core/config/config.service.spec.ts
index 7db2a4381b..ef003d22eb 100644
--- a/src/app/core/config/config.service.spec.ts
+++ b/src/app/core/config/config.service.spec.ts
@@ -5,6 +5,8 @@ import { Config } from "./config";
 import { firstValueFrom, Subject } from "rxjs";
 import { UpdatedEntity } from "../entity/model/entity-update";
 import { LoggingService } from "../logging/logging.service";
+import { ConfigurableEnum } from "../configurable-enum/configurable-enum";
+import { EntityAbility } from "../permissions/ability/entity-ability";
 
 describe("ConfigService", () => {
   let service: ConfigService;
@@ -12,17 +14,30 @@ describe("ConfigService", () => {
   const updateSubject = new Subject<UpdatedEntity<Config>>();
 
   beforeEach(() => {
-    entityMapper = jasmine.createSpyObj(["load", "save", "receiveUpdates"]);
+    entityMapper = jasmine.createSpyObj([
+      "load",
+      "save",
+      "receiveUpdates",
+      "saveAll",
+      "loadType",
+    ]);
     entityMapper.receiveUpdates.and.returnValue(updateSubject);
     entityMapper.load.and.rejectWith();
+    entityMapper.loadType.and.resolveTo([]);
+    entityMapper.saveAll.and.resolveTo([]);
+    entityMapper.save.and.resolveTo([]);
     TestBed.configureTestingModule({
       providers: [
         { provide: EntityMapperService, useValue: entityMapper },
         ConfigService,
         LoggingService,
+        EntityAbility,
       ],
     });
     service = TestBed.inject(ConfigService);
+    TestBed.inject(EntityAbility).update([
+      { subject: "all", action: "manage" },
+    ]);
   });
 
   it("should be created", () => {
@@ -51,6 +66,7 @@ describe("ConfigService", () => {
     const testConfig = new Config();
     testConfig.data = { testKey: "testValue" };
     updateSubject.next({ type: "new", entity: testConfig });
+    tick();
 
     expect(service.getConfig("testKey")).toBe("testValue");
     return expectAsync(configLoaded).toBeResolvedTo(testConfig);
@@ -63,7 +79,7 @@ describe("ConfigService", () => {
       "other:1": { name: "wrong" },
       "test:2": { name: "second" },
     };
-    entityMapper.load.and.returnValue(Promise.resolve(testConfig));
+    entityMapper.load.and.resolveTo(testConfig);
     service.loadConfig();
     tick();
     const result = service.getAllConfigs<any>("test:");
@@ -76,7 +92,7 @@ describe("ConfigService", () => {
   it("should return single field", fakeAsync(() => {
     const testConfig = new Config();
     testConfig.data = { first: "correct", second: "wrong" };
-    entityMapper.load.and.returnValue(Promise.resolve(testConfig));
+    entityMapper.load.and.resolveTo(testConfig);
     service.loadConfig();
     tick();
     const result = service.getConfig<any>("first");
@@ -92,12 +108,82 @@ describe("ConfigService", () => {
     expect(lastCall.data).toEqual({ test: "data" });
   });
 
-  it("should create export config string", () => {
+  it("should create export config string", fakeAsync(() => {
     const config = new Config();
     config.data = { first: "foo", second: "bar" };
     const expected = JSON.stringify(config.data);
     updateSubject.next({ entity: config, type: "update" });
+    tick();
     const result = service.exportConfig();
     expect(result).toEqual(expected);
+  }));
+
+  it("should save enum configs to db it they dont exist yet", async () => {
+    entityMapper.saveAll.and.resolveTo();
+    const data = {
+      "enum:1": [{ id: "some_id", label: "Some Label" }],
+      "enum:two": [],
+      "some:other": {},
+    };
+    const enum1 = new ConfigurableEnum("1");
+    enum1.values = data["enum:1"];
+    const enumTwo = new ConfigurableEnum("two");
+    enumTwo.values = [];
+
+    await initConfig(data);
+
+    expect(entityMapper.saveAll).toHaveBeenCalledWith([enum1, enumTwo]);
+    const config = entityMapper.save.calls.mostRecent().args[0] as Config;
+    expect(config.data).toEqual({ "some:other": {} });
+  });
+
+  it("should not fail config initialization if changed config cannot be saved", async () => {
+    entityMapper.saveAll.and.rejectWith();
+    let configUpdate: Config;
+    service.configUpdates.subscribe((config) => (configUpdate = config));
+
+    await expectAsync(initConfig({ some: "config" })).toBeResolved();
+
+    expect(service.getConfig("some")).toBe("config");
+    expect(configUpdate.data).toEqual({ some: "config" });
   });
+
+  it("should not save enums that already exist in db", async () => {
+    entityMapper.loadType.and.resolveTo([new ConfigurableEnum("1")]);
+    entityMapper.save.and.resolveTo();
+
+    await initConfig({ "enum:1": [], "enum:2": [], some: "config" });
+
+    expect(entityMapper.saveAll).toHaveBeenCalledWith([
+      new ConfigurableEnum("2"),
+    ]);
+    expect(entityMapper.save).toHaveBeenCalledWith(jasmine.any(Config));
+    expect(service.getConfig("enum:1")).toBeUndefined();
+    expect(service.getConfig("some")).toBe("config");
+  });
+
+  it("should not save config if nothing has been changed", async () => {
+    await initConfig({ some: "config", other: "config" });
+
+    expect(entityMapper.save).not.toHaveBeenCalled();
+    expect(entityMapper.saveAll).not.toHaveBeenCalled();
+  });
+
+  it("should not save config if permissions prevent it", async () => {
+    // user can only read config
+    TestBed.inject(EntityAbility).update([
+      { subject: "Config", action: "read" },
+    ]);
+
+    await initConfig({ "enum:1": [], other: "config" });
+
+    expect(entityMapper.save).not.toHaveBeenCalled();
+  });
+
+  function initConfig(data) {
+    const config = new Config();
+    config.data = data;
+    entityMapper.load.and.resolveTo(config);
+    return service.loadConfig();
+  }
 });
diff --git a/src/app/core/config/config.service.ts b/src/app/core/config/config.service.ts
index f3c840f776..3cee91e7fc 100644
--- a/src/app/core/config/config.service.ts
+++ b/src/app/core/config/config.service.ts
@@ -2,13 +2,11 @@ import { Injectable } from "@angular/core";
 import { EntityMapperService } from "../entity/entity-mapper.service";
 import { Config } from "./config";
 import { Observable, ReplaySubject } from "rxjs";
-import {
-  CONFIGURABLE_ENUM_CONFIG_PREFIX,
-  ConfigurableEnumConfig,
-  ConfigurableEnumValue,
-} from "../configurable-enum/configurable-enum.interface";
+import { CONFIGURABLE_ENUM_CONFIG_PREFIX } from "../configurable-enum/configurable-enum.interface";
 import { filter } from "rxjs/operators";
 import { LoggingService } from "../logging/logging.service";
+import { ConfigurableEnum } from "../configurable-enum/configurable-enum";
+import { EntityAbility } from "../permissions/ability/entity-ability";
 
 /**
  * Access dynamic app configuration retrieved from the database
@@ -28,7 +26,8 @@ export class ConfigService {
 
   constructor(
     private entityMapper: EntityMapperService,
-    private logger: LoggingService
+    private logger: LoggingService,
+    private ability: EntityAbility
   ) {
     this.loadConfig();
     this.entityMapper
@@ -38,15 +37,15 @@ export class ConfigService {
   }
 
   async loadConfig(): Promise<void> {
-    this.entityMapper
+    return this.entityMapper
       .load(Config, Config.CONFIG_KEY)
-      .then((config) => this.detectLegacyConfig(config))
       .then((config) => this.updateConfigIfChanged(config))
       .catch(() => {});
   }
 
-  private updateConfigIfChanged(config: Config) {
+  private async updateConfigIfChanged(config: Config) {
     if (!this.currentConfig || config._rev !== this.currentConfig?._rev) {
+      await this.detectLegacyConfig(config);
       this.currentConfig = config;
       this._configUpdates.next(config);
     }
@@ -64,19 +63,6 @@ export class ConfigService {
     return this.currentConfig.data[id];
   }
 
-  /**
-   * Get the array of pre-defined values for the given configurable enum id.
-   * @param id
-   */
-  public getConfigurableEnumValues<T extends ConfigurableEnumValue>(
-    id: string
-  ): ConfigurableEnumConfig<T> {
-    if (!id.startsWith(CONFIGURABLE_ENUM_CONFIG_PREFIX)) {
-      id = CONFIGURABLE_ENUM_CONFIG_PREFIX + id;
-    }
-    return this.getConfig<any>(id);
-  }
-
   public getAllConfigs<T>(prefix: string): T[] {
     const matchingConfigs = [];
     for (const id of Object.keys(this.currentConfig.data)) {
@@ -88,7 +74,7 @@ export class ConfigService {
     return matchingConfigs;
   }
 
-  private detectLegacyConfig(config: Config): Config {
+  private async detectLegacyConfig(config: Config): Promise<Config> {
     // ugly but easy ... could use https://www.npmjs.com/package/jsonpath-plus in future
     const configString = JSON.stringify(config);
     if (
@@ -106,6 +92,40 @@ export class ConfigService {
       );
     }
 
+    await this.migrateEnumsToEntities(config).catch((err) =>
+      this.logger.error(`ConfigurableEnum migration error: ${err}`)
+    );
+
     return config;
   }
+
+  private async migrateEnumsToEntities(config: Config) {
+    const enumValues = Object.entries(config.data).filter(([key]) =>
+      key.startsWith(CONFIGURABLE_ENUM_CONFIG_PREFIX)
+    );
+    if (enumValues.length === 0) {
+      return;
+    }
+    const existingEnums = await this.entityMapper
+      .loadType(ConfigurableEnum)
+      .then((res) => res.map((e) => e.getId()));
+
+    const newEnums: ConfigurableEnum[] = [];
+    enumValues.forEach(([key, value]) => {
+      const id = key.replace(CONFIGURABLE_ENUM_CONFIG_PREFIX, "");
+      if (!existingEnums.includes(id)) {
+        const newEnum = new ConfigurableEnum(id);
+        newEnum.values = value as any;
+        newEnums.push(newEnum);
+      }
+      delete config.data[key];
+    });
+
+    if (this.ability.can("create", ConfigurableEnum)) {
+      await this.entityMapper.saveAll(newEnums);
+    }
+    if (this.ability.can("update", config)) {
+      await this.entityMapper.save(config);
+    }
+  }
 }
diff --git a/src/app/core/config/testing-config-service.ts b/src/app/core/config/testing-config-service.ts
index 81c8134754..f173a722e9 100644
--- a/src/app/core/config/testing-config-service.ts
+++ b/src/app/core/config/testing-config-service.ts
@@ -9,7 +9,8 @@ export function createTestingConfigService(
 ): ConfigService {
   const configService = new ConfigService(
     mockEntityMapper(),
-    new LoggingService()
+    new LoggingService(),
+    { can: () => true } as any
   );
   configService["currentConfig"] = new Config(Config.CONFIG_KEY, configsObject);
   return configService;
diff --git a/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html b/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html
new file mode 100644
index 0000000000..710964a9d8
--- /dev/null
+++ b/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html
@@ -0,0 +1,32 @@
+<input
+  #inputElement
+  [formControl]="autocompleteForm"
+  class="autocomplete-input"
+  matInput
+  style="text-overflow: ellipsis"
+  [matAutocomplete]="autoSuggestions"
+  (focusin)="onFocusIn()"
+  (focusout)="onFocusOut($event)"
+/>
+<mat-autocomplete
+  #autoSuggestions="matAutocomplete"
+  (optionSelected)="select($event.option.value)"
+  autoActiveFirstOption
+>
+  <mat-option
+    *ngFor="let item of autocompleteSuggestedOptions | async"
+    [value]="item"
+  >
+    <mat-checkbox *ngIf="multi" [checked]="item.selected"></mat-checkbox>
+    <ng-template
+      [ngTemplateOutlet]="templateRef"
+      [ngTemplateOutletContext]="{ $implicit: item.initial }"
+    ></ng-template>
+  </mat-option>
+  <mat-option
+    *ngIf="createOption && showAddOption && inputElement.value"
+    [value]="inputElement.value"
+  >
+    <em>Add option</em> {{ inputElement.value }}
+  </mat-option>
+</mat-autocomplete>
diff --git a/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.spec.ts b/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.spec.ts
new file mode 100644
index 0000000000..6b8d4986aa
--- /dev/null
+++ b/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.spec.ts
@@ -0,0 +1,179 @@
+import {
+  ComponentFixture,
+  fakeAsync,
+  flush,
+  TestBed,
+  tick,
+} from "@angular/core/testing";
+
+import { BasicAutocompleteComponent } from "./basic-autocomplete.component";
+import { School } from "../../../child-dev-project/schools/model/school";
+import { Child } from "../../../child-dev-project/children/model/child";
+import { Entity } from "../../entity/model/entity";
+import { FontAwesomeTestingModule } from "@fortawesome/angular-fontawesome/testing";
+import { NoopAnimationsModule } from "@angular/platform-browser/animations";
+import { MatDialogModule } from "@angular/material/dialog";
+import { TestbedHarnessEnvironment } from "@angular/cdk/testing/testbed";
+import { HarnessLoader } from "@angular/cdk/testing";
+import { MatInputHarness } from "@angular/material/input/testing";
+import { MatAutocompleteHarness } from "@angular/material/autocomplete/testing";
+import {
+  FormControl,
+  FormGroup,
+  NgControl,
+  NgForm,
+  Validators,
+} from "@angular/forms";
+
+describe("BasicAutocompleteComponent", () => {
+  let component: BasicAutocompleteComponent<any, any>;
+  let fixture: ComponentFixture<BasicAutocompleteComponent<any, any>>;
+  let loader: HarnessLoader;
+  let testControl: FormControl;
+  const entityToId = (e: Entity) => e?.getId();
+
+  beforeEach(async () => {
+    testControl = new FormControl("");
+    const formGroup = new FormGroup({ testControl });
+    await TestBed.configureTestingModule({
+      imports: [
+        BasicAutocompleteComponent,
+        FontAwesomeTestingModule,
+        NoopAnimationsModule,
+        MatDialogModule,
+      ],
+      providers: [{ provide: NgForm, useValue: formGroup }],
+    })
+      .overrideComponent(BasicAutocompleteComponent, {
+        // overwrite @Self dependency
+        add: {
+          providers: [
+            { provide: NgControl, useValue: { control: testControl } },
+          ],
+        },
+      })
+      .compileComponents();
+
+    fixture = TestBed.createComponent(BasicAutocompleteComponent);
+    loader = TestbedHarnessEnvironment.loader(fixture);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it("should create", () => {
+    expect(component).toBeTruthy();
+  });
+
+  it("should correctly show the autocomplete values", async () => {
+    const school1 = School.create({ name: "Aaa" });
+    const school2 = School.create({ name: "aab" });
+    const school3 = School.create({ name: "cde" });
+    component.options = [school1, school2, school3];
+    let currentAutocompleteSuggestions: School[];
+    component.autocompleteSuggestedOptions.subscribe(
+      (value) => (currentAutocompleteSuggestions = value.map((o) => o.asValue))
+    );
+
+    component.autocompleteForm.setValue("");
+    expect(currentAutocompleteSuggestions).toEqual([school1, school2, school3]);
+    component.autocompleteForm.setValue("Aa");
+    expect(currentAutocompleteSuggestions).toEqual([school1, school2]);
+    component.autocompleteForm.setValue("Aab");
+    expect(currentAutocompleteSuggestions).toEqual([school2]);
+  });
+
+  it("should show name of the selected entity", async () => {
+    const child1 = Child.create("First Child");
+    const child2 = Child.create("Second Child");
+    component.value = child1.getId();
+    component.options = [child1, child2];
+    component.valueMapper = entityToId;
+
+    component.ngOnChanges({ value: true, options: true, valueMapper: true });
+    fixture.detectChanges();
+
+    expect(component.autocompleteForm).toHaveValue("First Child");
+    const inputElement = await loader.getHarness(MatInputHarness);
+    await expectAsync(inputElement.getValue()).toBeResolvedTo("First Child");
+  });
+
+  it("should have the correct entity selected when it's name is entered", () => {
+    const child1 = Child.create("First Child");
+    const child2 = Child.create("Second Child");
+    component.options = [child1, child2];
+    component.valueMapper = entityToId;
+
+    component.select({ asValue: child1.getId() } as any);
+
+    expect(component.value).toBe(child1.getId());
+  });
+
+  it("should reset if nothing has been selected", fakeAsync(() => {
+    const first = Child.create("First");
+    const second = Child.create("Second");
+    component.options = [first, second];
+    component.valueMapper = entityToId;
+
+    component.select({ asValue: first.getId() } as any);
+    expect(component.value).toBe(first.getId());
+
+    component.autocompleteForm.setValue("Non existent");
+    component.onFocusOut({} as any);
+    tick();
+
+    expect(component.value).toBe(undefined);
+    flush();
+  }));
+
+  it("should disable the form if the control is disabled", () => {
+    component.disabled = false;
+    expect(component.autocompleteForm.disabled).toBeFalse();
+    component.disabled = true;
+    expect(component.autocompleteForm.disabled).toBeTrue();
+  });
+
+  it("should initialize the options in multi select mode", async () => {
+    const autocomplete = await loader.getHarness(MatAutocompleteHarness);
+    component.options = [0, 1, 2];
+    component.multi = true;
+    component.value = [0, 1];
+    component.ngOnChanges({ options: true, value: true });
+
+    component.showAutocomplete();
+    component.autocomplete.openPanel();
+    const options = await autocomplete.getOptions();
+    expect(options).toHaveSize(3);
+
+    await options[2].click();
+    await options[1].click();
+
+    expect(component.value).toEqual([0, 2]);
+  });
+
+  it("should clear the input when focusing in multi select mode", () => {
+    component.multi = true;
+    component.options = ["some", "values", "and", "other", "options"];
+    component.value = ["some", "values"];
+    component.ngOnChanges({ value: true, options: true });
+    expect(component.autocompleteForm).toHaveValue("some, values");
+
+    component.onFocusIn();
+    expect(component.autocompleteForm).toHaveValue("");
+
+    component.onFocusOut({} as any);
+    expect(component.autocompleteForm).toHaveValue("some, values");
+  });
+
+  it("should update the error state if the form is invalid", () => {
+    testControl.setValidators([Validators.required]);
+    testControl.setValue(null);
+    component.ngDoCheck();
+
+    expect(component.errorState).toBeFalse();
+
+    testControl.markAsTouched();
+    component.ngDoCheck();
+
+    expect(component.errorState).toBeTrue();
+  });
+});
diff --git a/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts b/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts
new file mode 100644
index 0000000000..7433e9064c
--- /dev/null
+++ b/src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts
@@ -0,0 +1,284 @@
+import {
+  Component,
+  ContentChild,
+  ElementRef,
+  Input,
+  OnChanges,
+  Optional,
+  Self,
+  TemplateRef,
+  ViewChild,
+} from "@angular/core";
+import { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet } from "@angular/common";
+import { MatFormFieldControl } from "@angular/material/form-field";
+import {
+  FormControl,
+  FormGroupDirective,
+  NgControl,
+  NgForm,
+  ReactiveFormsModule,
+} from "@angular/forms";
+import { MatInputModule } from "@angular/material/input";
+import {
+  MatAutocompleteModule,
+  MatAutocompleteTrigger,
+} from "@angular/material/autocomplete";
+import { concat, of, skip } from "rxjs";
+import { MatCheckboxModule } from "@angular/material/checkbox";
+import { filter, map, startWith } from "rxjs/operators";
+import { ConfirmationDialogService } from "../../confirmation-dialog/confirmation-dialog.service";
+import { ErrorStateMatcher } from "@angular/material/core";
+import { CustomFormControlDirective } from "./custom-form-control.directive";
+import { coerceBooleanProperty } from "@angular/cdk/coercion";
+
+interface SelectableOption<O, V> {
+  initial: O;
+  asString: string;
+  asValue: V;
+  selected: boolean;
+}
+
+/** Custom `MatFormFieldControl` for telephone number input. */
+@Component({
+  selector: "app-basic-autocomplete",
+  templateUrl: "basic-autocomplete.component.html",
+  providers: [
+    { provide: MatFormFieldControl, useExisting: BasicAutocompleteComponent },
+  ],
+  standalone: true,
+  imports: [
+    ReactiveFormsModule,
+    MatInputModule,
+    MatAutocompleteModule,
+    NgForOf,
+    MatCheckboxModule,
+    NgIf,
+    AsyncPipe,
+    NgTemplateOutlet,
+  ],
+})
+export class BasicAutocompleteComponent<O, V = O>
+  extends CustomFormControlDirective<V | V[]>
+  implements OnChanges
+{
+  @ContentChild(TemplateRef) templateRef: TemplateRef<O>;
+  @ViewChild("inputElement") inputElement: ElementRef<HTMLInputElement>;
+  @ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;
+
+  @Input() valueMapper = (option: O) => option as unknown as V;
+  @Input() optionToString = (option) => option?.toString();
+  @Input() createOption: (input: string) => O;
+  @Input() multi?: boolean;
+
+  autocompleteForm = new FormControl("");
+  autocompleteSuggestedOptions = this.autocompleteForm.valueChanges.pipe(
+    filter((val) => typeof val === "string"),
+    map((val) => this.updateAutocomplete(val)),
+    startWith([])
+  );
+  showAddOption = false;
+  private addOptionTimeout: any;
+  private delayedBlur: any;
+
+  get disabled(): boolean {
+    return this._disabled;
+  }
+
+  set disabled(value: boolean) {
+    this._disabled = coerceBooleanProperty(value);
+    this._disabled
+      ? this.autocompleteForm.disable()
+      : this.autocompleteForm.enable();
+    this.stateChanges.next();
+  }
+
+  @Input() set options(options: O[]) {
+    this._options = options.map((o) => this.toSelectableOption(o));
+  }
+
+  private _options: SelectableOption<O, V>[] = [];
+
+  constructor(
+    elementRef: ElementRef<HTMLElement>,
+    private confirmation: ConfirmationDialogService,
+    errorStateMatcher: ErrorStateMatcher,
+    @Optional() @Self() ngControl: NgControl,
+    @Optional() parentForm: NgForm,
+    @Optional() parentFormGroup: FormGroupDirective
+  ) {
+    super(
+      elementRef,
+      errorStateMatcher,
+      ngControl,
+      parentForm,
+      parentFormGroup
+    );
+  }
+
+  ngOnChanges(changes: { [key in keyof this]?: any }) {
+    if (changes.valueMapper) {
+      this._options.forEach(
+        (opt) => (opt.asValue = this.valueMapper(opt.initial))
+      );
+    }
+    if (changes.optionToString) {
+      this._options.forEach(
+        (opt) => (opt.asString = this.optionToString(opt.initial))
+      );
+    }
+    if (changes.value || changes.options) {
+      this.setInitialInputValue();
+    }
+  }
+
+  showAutocomplete() {
+    this.autocompleteSuggestedOptions = concat(
+      of(this._options),
+      this.autocompleteSuggestedOptions.pipe(skip(1))
+    );
+  }
+
+  private updateAutocomplete(inputText: string): SelectableOption<O, V>[] {
+    let filteredOptions = this._options;
+    this.showAddOption = false;
+    clearTimeout(this.addOptionTimeout);
+    if (inputText) {
+      filteredOptions = this._options.filter((option) =>
+        option.asString.toLowerCase().includes(inputText.toLowerCase())
+      );
+      const exists = this._options.find(
+        (o) => o.asString.toLowerCase() === inputText.toLowerCase()
+      );
+      if (!exists) {
+        // show 'add option' after short timeout if user doesn't enter anything
+        this.addOptionTimeout = setTimeout(
+          () => (this.showAddOption = true),
+          1000
+        );
+      }
+    }
+    return filteredOptions;
+  }
+
+  private setInitialInputValue() {
+    if (this.multi) {
+      this._options
+        .filter(({ asValue }) => (this.value as V[])?.includes(asValue))
+        .forEach((o) => (o.selected = true));
+      this.displaySelectedOptions();
+    } else {
+      const selected = this._options.find(
+        ({ asValue }) => asValue === this.value
+      );
+      this.autocompleteForm.setValue(selected?.asString ?? "");
+    }
+  }
+
+  private displaySelectedOptions() {
+    this.autocompleteForm.setValue(
+      this._options
+        .filter((o) => o.selected)
+        .map((o) => o.asString)
+        .join(", ")
+    );
+  }
+
+  select(selected: string | SelectableOption<O, V>) {
+    if (typeof selected === "string") {
+      this.createNewOption(selected);
+      return;
+    }
+
+    if (selected) {
+      this.selectOption(selected);
+    } else {
+      this.autocompleteForm.setValue("");
+      this.value = undefined;
+    }
+    this.onChange(this.value);
+  }
+
+  async createNewOption(option: string) {
+    const userConfirmed = await this.confirmation.getConfirmation(
+      $localize`Create new option`,
+      `Do you want to create the new option "${option}"?`
+    );
+    if (userConfirmed) {
+      const newOption = this.toSelectableOption(this.createOption(option));
+      this._options.push(newOption);
+      this.select(newOption);
+    }
+  }
+
+  private selectOption(option: SelectableOption<O, V>) {
+    if (this.multi) {
+      option.selected = !option.selected;
+      this.value = this._options
+        .filter((o) => o.selected)
+        .map((o) => o.asValue);
+      // re-open autocomplete to select next option
+      this.autocompleteForm.setValue("");
+      setTimeout(() => this.autocomplete.openPanel(), 100);
+    } else {
+      this.autocompleteForm.setValue(option.asString);
+      this.value = option.asValue;
+    }
+  }
+
+  private toSelectableOption(opt: O): SelectableOption<O, V> {
+    return {
+      initial: opt,
+      asValue: this.valueMapper(opt),
+      asString: this.optionToString(opt),
+      selected: false,
+    };
+  }
+
+  onFocusIn() {
+    clearTimeout(this.delayedBlur);
+    if (!this.focused) {
+      if (this.multi) {
+        this.autocompleteForm.setValue("");
+      }
+      this.focus();
+    }
+  }
+
+  onFocusOut(event: FocusEvent) {
+    if (
+      !this.elementRef.nativeElement.contains(event.relatedTarget as Element)
+    ) {
+      if (!this.autocomplete.panelOpen) {
+        this.notifyFocusOut();
+      } else {
+        // trigger focus out once panel is closed
+        this.delayedBlur = setTimeout(() => this.notifyFocusOut(), 100);
+      }
+    }
+  }
+
+  private notifyFocusOut() {
+    if (this.multi) {
+      this.displaySelectedOptions();
+    } else {
+      const inputValue = this.autocompleteForm.value;
+      const selectedOption = this._options.find(
+        ({ asValue }) => asValue === this._value
+      );
+      if (selectedOption?.asString !== inputValue) {
+        // try to select the option that matches the input string
+        const matchingOption = this._options.find(
+          ({ asString }) => asString.toLowerCase() === inputValue.toLowerCase()
+        );
+        this.select(matchingOption);
+      }
+    }
+    this.blur();
+  }
+
+  onContainerClick(event: MouseEvent) {
+    if ((event.target as Element).tagName.toLowerCase() != "input") {
+      this.inputElement.nativeElement.focus();
+    }
+  }
+}
diff --git a/src/app/core/configurable-enum/basic-autocomplete/custom-form-control.directive.ts b/src/app/core/configurable-enum/basic-autocomplete/custom-form-control.directive.ts
new file mode 100644
index 0000000000..c986873d5d
--- /dev/null
+++ b/src/app/core/configurable-enum/basic-autocomplete/custom-form-control.directive.ts
@@ -0,0 +1,142 @@
+import {
+  AbstractControl,
+  ControlValueAccessor,
+  FormGroupDirective,
+  NgControl,
+  NgForm,
+} from "@angular/forms";
+import { MatFormFieldControl } from "@angular/material/form-field";
+import {
+  Directive,
+  DoCheck,
+  ElementRef,
+  HostBinding,
+  Input,
+  OnDestroy,
+} from "@angular/core";
+import { Subject } from "rxjs";
+import { coerceBooleanProperty } from "@angular/cdk/coercion";
+import { ErrorStateMatcher } from "@angular/material/core";
+
+@Directive()
+export abstract class CustomFormControlDirective<T>
+  implements ControlValueAccessor, MatFormFieldControl<T>, OnDestroy, DoCheck
+{
+  static nextId = 0;
+  @HostBinding()
+  id = `custom-form-control-${CustomFormControlDirective.nextId++}`;
+  // eslint-disable-next-line @angular-eslint/no-input-rename
+  @Input("aria-describedby") userAriaDescribedBy: string;
+  @Input() placeholder: string;
+  @Input() required = false;
+
+  stateChanges = new Subject<void>();
+  focused = false;
+  touched = false;
+  errorState = false;
+  controlType = "custom-control";
+  onChange = (_: any) => {};
+  onTouched = () => {};
+
+  get empty() {
+    return !this.value;
+  }
+
+  get shouldLabelFloat() {
+    return this.focused || !this.empty;
+  }
+
+  @Input()
+  get disabled(): boolean {
+    return this._disabled;
+  }
+
+  set disabled(value: boolean) {
+    this._disabled = coerceBooleanProperty(value);
+    this.stateChanges.next();
+  }
+
+  _disabled = false;
+
+  @Input() get value(): T {
+    return this._value;
+  }
+
+  set value(value: T) {
+    this._value = value;
+    this.stateChanges.next();
+  }
+
+  _value: T;
+
+  constructor(
+    public elementRef: ElementRef<HTMLElement>,
+    public errorStateMatcher: ErrorStateMatcher,
+    public ngControl: NgControl,
+    public parentForm: NgForm,
+    public parentFormGroup: FormGroupDirective
+  ) {
+    if (this.ngControl != null) {
+      this.ngControl.valueAccessor = this;
+    }
+  }
+
+  ngOnDestroy() {
+    this.stateChanges.complete();
+  }
+
+  focus() {
+    this.focused = true;
+    this.stateChanges.next();
+  }
+
+  blur() {
+    this.touched = true;
+    this.focused = false;
+    this.onTouched();
+    this.stateChanges.next();
+  }
+
+  setDescribedByIds(ids: string[]) {
+    const controlElement = this.elementRef.nativeElement.querySelector(
+      ".autocomplete-input"
+    )!;
+    controlElement.setAttribute("aria-describedby", ids.join(" "));
+  }
+
+  abstract onContainerClick(event: MouseEvent);
+
+  writeValue(val: T): void {
+    this.value = val;
+  }
+
+  registerOnChange(fn: any): void {
+    this.onChange = fn;
+  }
+
+  registerOnTouched(fn: any): void {
+    this.onTouched = fn;
+  }
+
+  setDisabledState(isDisabled: boolean): void {
+    this.disabled = isDisabled;
+  }
+
+  /**
+   * Updates the error state based on the form control
+   * Taken from {@link https://github.com/angular/components/blob/a1d5614f18066c0c2dc2580c7b5099e8f68a8e74/src/material/core/common-behaviors/error-state.ts#L59}
+   */
+  ngDoCheck() {
+    const oldState = this.errorState;
+    const parent = this.parentFormGroup || this.parentForm;
+    const control = this.ngControl
+      ? (this.ngControl.control as AbstractControl)
+      : null;
+    const newState = this.errorStateMatcher.isErrorState(control, parent);
+
+    if (newState !== oldState) {
+      this.errorState = newState;
+      this.stateChanges.next();
+    }
+  }
+}
diff --git a/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.spec.ts b/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.spec.ts
index 6edfe5cb1f..041efe6e0f 100644
--- a/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.spec.ts
+++ b/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.spec.ts
@@ -22,9 +22,9 @@ import { Entity } from "../../entity/model/entity";
 import { DatabaseField } from "../../entity/database-field.decorator";
 import { EntitySchemaService } from "../../entity/schema/entity-schema.service";
 import { TestBed, waitForAsync } from "@angular/core/testing";
-import { ConfigService } from "../../config/config.service";
 import { DatabaseEntity } from "../../entity/database-entity.decorator";
 import { ConfigurableEnumModule } from "../configurable-enum.module";
+import { ConfigurableEnumService } from "../configurable-enum.service";
 
 describe("ConfigurableEnumDatatype", () => {
   const TEST_CONFIG: ConfigurableEnumConfig = [
@@ -48,15 +48,15 @@ describe("ConfigurableEnumDatatype", () => {
   }
 
   let entitySchemaService: EntitySchemaService;
-  let configService: jasmine.SpyObj<ConfigService>;
+  let enumService: jasmine.SpyObj<ConfigurableEnumService>;
 
   beforeEach(waitForAsync(() => {
-    configService = jasmine.createSpyObj("configService", ["getConfig"]);
-    configService.getConfig.and.returnValue(TEST_CONFIG);
+    enumService = jasmine.createSpyObj(["getEnumValues"]);
+    enumService.getEnumValues.and.returnValue(TEST_CONFIG);
 
     TestBed.configureTestingModule({
       imports: [ConfigurableEnumModule],
-      providers: [{ provide: ConfigService, useValue: configService }],
+      providers: [{ provide: ConfigurableEnumService, useValue: enumService }],
     });
 
     entitySchemaService =
diff --git a/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts b/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts
index 09126d3828..a2b6477db2 100644
--- a/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts
+++ b/src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts
@@ -1,11 +1,7 @@
 import { EntitySchemaDatatype } from "../../entity/schema/entity-schema-datatype";
-import {
-  CONFIGURABLE_ENUM_CONFIG_PREFIX,
-  ConfigurableEnumConfig,
-  ConfigurableEnumValue,
-} from "../configurable-enum.interface";
-import { ConfigService } from "../../config/config.service";
+import { ConfigurableEnumValue } from "../configurable-enum.interface";
 import { EntitySchemaField } from "../../entity/schema/entity-schema-field";
+import { ConfigurableEnumService } from "../configurable-enum.service";
 
 export class ConfigurableEnumDatatype
   implements EntitySchemaDatatype<ConfigurableEnumValue>
@@ -14,7 +10,7 @@ export class ConfigurableEnumDatatype
   public readonly viewComponent = "DisplayConfigurableEnum";
   public readonly editComponent = "EditConfigurableEnum";
 
-  constructor(private configService: ConfigService) {}
+  constructor(private enumService: ConfigurableEnumService) {}
 
   /**
    * transforms Objects of InteractionType to strings to save in DB
@@ -34,12 +30,8 @@ export class ConfigurableEnumDatatype
     schemaField: EntitySchemaField
   ): ConfigurableEnumValue {
     let enumId = schemaField.additional || schemaField.innerDataType;
-    if (!enumId.startsWith(CONFIGURABLE_ENUM_CONFIG_PREFIX)) {
-      enumId = CONFIGURABLE_ENUM_CONFIG_PREFIX + enumId;
-    }
-
-    let enumOption = this.configService
-      .getConfig<ConfigurableEnumConfig>(enumId)
+    let enumOption = this.enumService
+      .getEnumValues(enumId)
       ?.find((option) => option.id === value);
     if (!enumOption) {
       enumOption = this.generateOptionForInvalid(value);
@@ -50,7 +42,7 @@ export class ConfigurableEnumDatatype
 
   /**
    * Build a dummy option so that invalid values are not lost on the next save and users can manually correct issues.
-   * @param enumId
+   * @param optionValue
    * @private
    */
   private generateOptionForInvalid(optionValue: string) {
diff --git a/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.spec.ts b/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.spec.ts
index 7880a8f281..c40c42ff40 100644
--- a/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.spec.ts
+++ b/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.spec.ts
@@ -1,23 +1,20 @@
 import { ConfigurableEnumDirective } from "./configurable-enum.directive";
-import { ConfigService } from "../../config/config.service";
 import { ViewContainerRef } from "@angular/core";
-import {
-  CONFIGURABLE_ENUM_CONFIG_PREFIX,
-  ConfigurableEnumConfig,
-} from "../configurable-enum.interface";
+import { ConfigurableEnumConfig } from "../configurable-enum.interface";
+import { ConfigurableEnumService } from "../configurable-enum.service";
 
 describe("ConfigurableEnumDirective", () => {
   let testTemplateRef;
   let mockViewContainerRef: jasmine.SpyObj<ViewContainerRef>;
-  let mockConfigService: jasmine.SpyObj<ConfigService>;
+  let mockEnumService: jasmine.SpyObj<ConfigurableEnumService>;
 
   beforeEach(() => {
     testTemplateRef = {};
     mockViewContainerRef = jasmine.createSpyObj("mockViewContainerRef", [
       "createEmbeddedView",
     ]);
-    mockConfigService = jasmine.createSpyObj("mockConfigService", [
-      "getConfig",
+    mockEnumService = jasmine.createSpyObj("mockConfigService", [
+      "getEnumValues",
     ]);
   });
 
@@ -25,7 +22,7 @@ describe("ConfigurableEnumDirective", () => {
     const directive = new ConfigurableEnumDirective(
       testTemplateRef,
       mockViewContainerRef,
-      mockConfigService
+      mockEnumService
     );
     expect(directive).toBeTruthy();
   });
@@ -36,18 +33,18 @@ describe("ConfigurableEnumDirective", () => {
       { id: "1", label: "A" },
       { id: "2", label: "B" },
     ];
-    mockConfigService.getConfig.and.returnValue(testEnumValues);
+    mockEnumService.getEnumValues.and.returnValue(testEnumValues);
 
     const directive = new ConfigurableEnumDirective(
       testTemplateRef,
       mockViewContainerRef,
-      mockConfigService
+      mockEnumService
     );
 
     directive.appConfigurableEnumOf = testEnumConfigId;
 
-    expect(mockConfigService.getConfig).toHaveBeenCalledWith(
-      CONFIGURABLE_ENUM_CONFIG_PREFIX + testEnumConfigId
+    expect(mockEnumService.getEnumValues).toHaveBeenCalledWith(
+      testEnumConfigId
     );
     expect(mockViewContainerRef.createEmbeddedView).toHaveBeenCalledTimes(
       testEnumValues.length
diff --git a/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.ts b/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.ts
index ea0d201062..be4db3854d 100644
--- a/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.ts
+++ b/src/app/core/configurable-enum/configurable-enum-directive/configurable-enum.directive.ts
@@ -1,9 +1,5 @@
 import { Directive, Input, TemplateRef, ViewContainerRef } from "@angular/core";
-import {
-  CONFIGURABLE_ENUM_CONFIG_PREFIX,
-  ConfigurableEnumConfig,
-} from "../configurable-enum.interface";
-import { ConfigService } from "../../config/config.service";
+import { ConfigurableEnumService } from "../configurable-enum.service";
 
 /**
  * Enumerate over all {@link ConfigurableEnumConfig} values for the given enum config id.
@@ -22,12 +18,7 @@ export class ConfigurableEnumDirective {
    * @param enumConfigId
    */
   @Input() set appConfigurableEnumOf(enumConfigId: string) {
-    if (!enumConfigId.startsWith(CONFIGURABLE_ENUM_CONFIG_PREFIX)) {
-      enumConfigId = CONFIGURABLE_ENUM_CONFIG_PREFIX + enumConfigId;
-    }
-
-    const options =
-      this.configService.getConfig<ConfigurableEnumConfig>(enumConfigId);
+    const options = this.enumService.getEnumValues(enumConfigId);
     for (const item of options) {
       this.viewContainerRef.createEmbeddedView(this.templateRef, {
         $implicit: item,
@@ -39,14 +30,10 @@ export class ConfigurableEnumDirective {
    * For implementation details see
    * https://www.talkinghightech.com/en/create-ngfor-directive/ and
    * https://angular.io/guide/structural-directives#write-a-structural-directive
-   *
-   * @param templateRef
-   * @param viewContainerRef
-   * @param configService
    */
   constructor(
     private templateRef: TemplateRef<any>,
     private viewContainerRef: ViewContainerRef,
-    private configService: ConfigService
+    private enumService: ConfigurableEnumService
   ) {}
 }
diff --git a/src/app/core/configurable-enum/configurable-enum-testing.ts b/src/app/core/configurable-enum/configurable-enum-testing.ts
new file mode 100644
index 0000000000..7df737d413
--- /dev/null
+++ b/src/app/core/configurable-enum/configurable-enum-testing.ts
@@ -0,0 +1,42 @@
+import { genders } from "../../child-dev-project/children/model/genders";
+import { materials } from "../../child-dev-project/children/educational-material/model/materials";
+import {
+  mathLevels,
+  readingLevels,
+} from "../../child-dev-project/children/aser/model/skill-levels";
+import { ConfigurableEnum } from "./configurable-enum";
+import { ConfigurableEnumService } from "./configurable-enum.service";
+import { NEVER, of } from "rxjs";
+import { defaultInteractionTypes } from "../config/default-config/default-interaction-types";
+import { warningLevels } from "../../child-dev-project/warning-levels";
+import { ratingAnswers } from "../../features/historical-data/model/rating-answers";
+import { centersUnique } from "../../child-dev-project/children/demo-data-generators/fixtures/centers";
+import { defaultAttendanceStatusTypes } from "../config/default-config/default-attendance-status-types";
+
+export const demoEnums = Object.entries({
+  genders: genders,
+  materials: materials,
+  "math-levels": mathLevels,
+  "reading-levels": readingLevels,
+  "warning-levels": warningLevels,
+  "rating-answer": ratingAnswers,
+  center: centersUnique,
+  "attendance-status": defaultAttendanceStatusTypes,
+  "interaction-type": defaultInteractionTypes,
+}).map(([key, value]) => {
+  const e = new ConfigurableEnum(key);
+  e.values = value;
+  return e;
+});
+
+export function createTestingConfigurableEnumService() {
+  let service: ConfigurableEnumService;
+  service = new ConfigurableEnumService(
+    {
+      receiveUpdates: () => NEVER,
+      loadType: () => Promise.resolve(demoEnums),
+    } as any,
+    { configUpdates: of(undefined) } as any
+  );
+  return service;
+}
diff --git a/src/app/core/configurable-enum/configurable-enum.module.ts b/src/app/core/configurable-enum/configurable-enum.module.ts
index a454f8a9ce..cf26fa9dfe 100644
--- a/src/app/core/configurable-enum/configurable-enum.module.ts
+++ b/src/app/core/configurable-enum/configurable-enum.module.ts
@@ -1,7 +1,7 @@
 import { NgModule } from "@angular/core";
-import { ConfigService } from "../config/config.service";
 import { EntitySchemaService } from "../entity/schema/entity-schema.service";
 import { ConfigurableEnumDatatype } from "./configurable-enum-datatype/configurable-enum-datatype";
+import { ConfigurableEnumService } from "./configurable-enum.service";
 
 /**
  * Provides a generic functionality to define enums (collections of selectable options) in the config database
@@ -47,11 +47,11 @@ import { ConfigurableEnumDatatype } from "./configurable-enum-datatype/configura
 @NgModule({})
 export class ConfigurableEnumModule {
   constructor(
-    private configService: ConfigService,
+    private enumService: ConfigurableEnumService,
     private entitySchemaService: EntitySchemaService
   ) {
     this.entitySchemaService.registerSchemaDatatype(
-      new ConfigurableEnumDatatype(configService)
+      new ConfigurableEnumDatatype(enumService)
     );
   }
 }
diff --git a/src/app/core/configurable-enum/configurable-enum.service.spec.ts b/src/app/core/configurable-enum/configurable-enum.service.spec.ts
new file mode 100644
index 0000000000..b5e26e5872
--- /dev/null
+++ b/src/app/core/configurable-enum/configurable-enum.service.spec.ts
@@ -0,0 +1,42 @@
+import { TestBed } from "@angular/core/testing";
+import { ConfigurableEnumService } from "./configurable-enum.service";
+import { EntityMapperService } from "../entity/entity-mapper.service";
+import { ConfigService } from "../config/config.service";
+import { NEVER, of } from "rxjs";
+
+describe("ConfigurableEnumService", () => {
+  let service: ConfigurableEnumService;
+  let mockEntityMapper: jasmine.SpyObj<EntityMapperService>;
+  let mockConfigService: jasmine.SpyObj<ConfigService>;
+  beforeEach(async () => {
+    mockEntityMapper = jasmine.createSpyObj([
+      "save",
+      "loadType",
+      "receiveUpdates",
+    ]);
+    mockEntityMapper.receiveUpdates.and.returnValue(NEVER);
+    mockEntityMapper.loadType.and.resolveTo([]);
+    mockConfigService = jasmine.createSpyObj([], { configUpdates: of({}) });
+    await TestBed.configureTestingModule({
+      providers: [
+        { provide: EntityMapperService, useValue: mockEntityMapper },
+        { provide: ConfigService, useValue: mockConfigService },
+      ],
+    }).compileComponents();
+    service = TestBed.inject(ConfigurableEnumService);
+  });
+
+  it("should create", () => {
+    expect(service).toBeTruthy();
+  });
+
+  it("should create a new enum if it cannot be found", () => {
+    const newEnum = service.getEnum("new-id");
+
+    expect(newEnum.getId()).toEqual("new-id");
+    expect(newEnum.values).toEqual([]);
+    expect(mockEntityMapper.save).toHaveBeenCalledWith(newEnum);
+    // returns same enum in consecutive calls
+    expect(service.getEnum("new-id")).toBe(newEnum);
+  });
+});
diff --git a/src/app/core/configurable-enum/configurable-enum.service.ts b/src/app/core/configurable-enum/configurable-enum.service.ts
new file mode 100644
index 0000000000..52a5359610
--- /dev/null
+++ b/src/app/core/configurable-enum/configurable-enum.service.ts
@@ -0,0 +1,46 @@
+import { Injectable } from "@angular/core";
+import { ConfigService } from "../config/config.service";
+import { ConfigurableEnum } from "./configurable-enum";
+import { EntityMapperService } from "../entity/entity-mapper.service";
+import { ConfigurableEnumValue } from "./configurable-enum.interface";
+import { Entity } from "../entity/model/entity";
+
+@Injectable({ providedIn: "root" })
+export class ConfigurableEnumService {
+  private enums = new Map<string, ConfigurableEnum>();
+
+  constructor(
+    private entityMapper: EntityMapperService,
+    configService: ConfigService
+  ) {
+    configService.configUpdates.subscribe(() => this.preLoadEnums());
+    this.entityMapper
+      .receiveUpdates(ConfigurableEnum)
+      .subscribe(({ entity }) => this.cacheEnum(entity));
+  }
+
+  async preLoadEnums() {
+    const allEnums = await this.entityMapper.loadType(ConfigurableEnum);
+    allEnums.forEach((entity) => this.cacheEnum(entity));
+  }
+
+  private cacheEnum(entity: ConfigurableEnum) {
+    return this.enums.set(entity.getId(true), entity);
+  }
+
+  getEnumValues<T extends ConfigurableEnumValue = ConfigurableEnumValue>(
+    id: string
+  ): T[] {
+    return this.getEnum(id).values as T[];
+  }
+
+  getEnum(id: string): ConfigurableEnum {
+    const entityId = Entity.createPrefixedId(ConfigurableEnum.ENTITY_TYPE, id);
+    if (!this.enums.has(entityId)) {
+      const newEnum = new ConfigurableEnum(id);
+      this.cacheEnum(newEnum);
+      this.entityMapper.save(newEnum);
+    }
+    return this.enums.get(entityId);
+  }
+}
diff --git a/src/app/core/configurable-enum/configurable-enum.ts b/src/app/core/configurable-enum/configurable-enum.ts
new file mode 100644
index 0000000000..a2f3cf1412
--- /dev/null
+++ b/src/app/core/configurable-enum/configurable-enum.ts
@@ -0,0 +1,9 @@
+import { Entity } from "../entity/model/entity";
+import { DatabaseEntity } from "../entity/database-entity.decorator";
+import { ConfigurableEnumValue } from "./configurable-enum.interface";
+import { DatabaseField } from "../entity/database-field.decorator";
+
+@DatabaseEntity("ConfigurableEnum")
+export class ConfigurableEnum extends Entity {
+  @DatabaseField() values: ConfigurableEnumValue[] = [];
+}
diff --git a/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html
new file mode 100644
index 0000000000..9a15479ab0
--- /dev/null
+++ b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html
@@ -0,0 +1,36 @@
+<h1 matDialogTitle i18n="title of dropdown options popup dialog">
+  Edit dropdown options
+</h1>
+<app-dialog-close mat-dialog-close></app-dialog-close>
+<mat-dialog-content
+  style="max-width: 400px; padding-top: 5px"
+  cdkDropList
+  (cdkDropListDropped)="drop($event)"
+>
+  <mat-form-field
+    *ngFor="let v of enumEntity.values; let i = index"
+    cdkDrag
+    class="full-width"
+    appearance="fill"
+  >
+    <fa-icon
+      icon="grip-vertical"
+      matIconPrefix
+      class="grab-icon margin-right-small"
+    ></fa-icon>
+    <input matInput [(ngModel)]="v.label"/>
+    <button mat-icon-button matIconSuffix (click)="delete(v, i)">
+      <fa-icon icon="trash"></fa-icon>
+    </button>
+  </mat-form-field>
+</mat-dialog-content>
+
+<mat-dialog-actions>
+  <button
+    mat-raised-button
+    mat-dialog-close
+    i18n="Close popup"
+  >
+    Close
+  </button>
+</mat-dialog-actions>
diff --git a/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.scss b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.scss
new file mode 100644
index 0000000000..d8a5349df9
--- /dev/null
+++ b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.scss
@@ -0,0 +1,4 @@
+.grab-icon {
+  cursor: grab;
+  padding-left: 5px;
+}
diff --git a/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.spec.ts b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.spec.ts
new file mode 100644
index 0000000000..85605b90a1
--- /dev/null
+++ b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.spec.ts
@@ -0,0 +1,84 @@
+import { ComponentFixture, TestBed } from "@angular/core/testing";
+
+import { ConfigureEnumPopupComponent } from "./configure-enum-popup.component";
+import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
+import { ConfigurableEnum } from "../configurable-enum";
+import { EntityMapperService } from "../../entity/entity-mapper.service";
+import { EMPTY } from "rxjs";
+import { FontAwesomeTestingModule } from "@fortawesome/angular-fontawesome/testing";
+import {
+  mockEntityMapper,
+  MockEntityMapperService,
+} from "../../entity/mock-entity-mapper-service";
+import { genders } from "../../../child-dev-project/children/model/genders";
+import { Child } from "../../../child-dev-project/children/model/child";
+import { ConfirmationDialogService } from "../../confirmation-dialog/confirmation-dialog.service";
+import {
+  entityRegistry,
+  EntityRegistry,
+} from "../../entity/database-entity.decorator";
+
+describe("ConfigureEnumPopupComponent", () => {
+  let component: ConfigureEnumPopupComponent;
+  let fixture: ComponentFixture<ConfigureEnumPopupComponent>;
+  let entityMapper: MockEntityMapperService;
+
+  beforeEach(async () => {
+    entityMapper = mockEntityMapper();
+    await TestBed.configureTestingModule({
+      imports: [ConfigureEnumPopupComponent, FontAwesomeTestingModule],
+      providers: [
+        { provide: MAT_DIALOG_DATA, useValue: new ConfigurableEnum() },
+        { provide: MatDialogRef, useValue: { afterClosed: () => EMPTY } },
+        { provide: EntityMapperService, useValue: entityMapper },
+        { provide: EntityRegistry, useValue: entityRegistry },
+      ],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(ConfigureEnumPopupComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it("should create", () => {
+    expect(component).toBeTruthy();
+  });
+
+  it("should show a popup if user tries to delete an enum that is still in use", async () => {
+    component.enumEntity = new ConfigurableEnum("genders");
+    component.enumEntity.values = genders;
+    const male = genders.find((g) => g.id === "M");
+    const female = genders.find((g) => g.id === "F");
+    const m1 = new Child();
+    m1.gender = male;
+    const m2 = new Child();
+    m2.gender = male;
+    const f1 = new Child();
+    f1.gender = female;
+    const other = new Child();
+    entityMapper.addAll([m1, m2, f1, other]);
+    const confirmationSpy = spyOn(
+      TestBed.inject(ConfirmationDialogService),
+      "getConfirmation"
+    );
+
+    await component.delete(male, genders.indexOf(male));
+
+    expect(confirmationSpy).toHaveBeenCalledWith(
+      "Delete option",
+      jasmine.stringContaining(
+        `The option is still used in 2 ${Child.label} records.`
+      )
+    );
+
+    entityMapper.delete(m1);
+    entityMapper.delete(m2);
+
+    await component.delete(male, genders.indexOf(male));
+
+    expect(confirmationSpy).toHaveBeenCalledWith(
+      "Delete option",
+      `Are you sure that you want to delete the option "${male.label}"?`
+    );
+  });
+});
diff --git a/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts
new file mode 100644
index 0000000000..479cbf662c
--- /dev/null
+++ b/src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts
@@ -0,0 +1,124 @@
+import { Component, Inject } from "@angular/core";
+import {
+  MAT_DIALOG_DATA,
+  MatDialogModule,
+  MatDialogRef,
+} from "@angular/material/dialog";
+import { ConfigurableEnum } from "../configurable-enum";
+import { NgForOf } from "@angular/common";
+import { MatFormFieldModule } from "@angular/material/form-field";
+import { MatInputModule } from "@angular/material/input";
+import { FormsModule } from "@angular/forms";
+import { DialogCloseComponent } from "../../common-components/dialog-close/dialog-close.component";
+import { EntityMapperService } from "../../entity/entity-mapper.service";
+import {
+  CdkDrag,
+  CdkDragDrop,
+  CdkDropList,
+  moveItemInArray,
+} from "@angular/cdk/drag-drop";
+import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
+import { ConfigurableEnumValue } from "../configurable-enum.interface";
+import { MatButtonModule } from "@angular/material/button";
+import { ConfirmationDialogService } from "../../confirmation-dialog/confirmation-dialog.service";
+import { EntityRegistry } from "../../entity/database-entity.decorator";
+import { Entity } from "../../entity/model/entity";
+
+@Component({
+  selector: "app-configure-enum-popup",
+  templateUrl: "./configure-enum-popup.component.html",
+  styleUrls: ["./configure-enum-popup.component.scss"],
+  imports: [
+    MatDialogModule,
+    NgForOf,
+    MatFormFieldModule,
+    MatInputModule,
+    DialogCloseComponent,
+    FormsModule,
+    CdkDropList,
+    CdkDrag,
+    FontAwesomeModule,
+    MatButtonModule,
+  ],
+  standalone: true,
+})
+export class ConfigureEnumPopupComponent {
+  constructor(
+    @Inject(MAT_DIALOG_DATA) public enumEntity: ConfigurableEnum,
+    private dialog: MatDialogRef<ConfigureEnumPopupComponent>,
+    private entityMapper: EntityMapperService,
+    private confirmationService: ConfirmationDialogService,
+    private entities: EntityRegistry
+  ) {
+    this.dialog
+      .afterClosed()
+      .subscribe(() => this.entityMapper.save(this.enumEntity));
+  }
+
+  drop(event: CdkDragDrop<string[]>) {
+    moveItemInArray(
+      this.enumEntity.values,
+      event.previousIndex,
+      event.currentIndex
+    );
+  }
+
+  async delete(value: ConfigurableEnumValue, index: number) {
+    const existingUsages = await this.getUsages(value);
+    let deletionText = $localize`Are you sure that you want to delete the option "${value.label}"?`;
+    if (existingUsages.length > 0) {
+      deletionText += $localize` The option is still used in ${existingUsages.join(
+        ", "
+      )} records. If deleted, the records will not be lost but specially marked.`;
+    }
+    const confirmed = await this.confirmationService.getConfirmation(
+      $localize`Delete option`,
+      deletionText
+    );
+    if (confirmed) {
+      this.enumEntity.values.splice(index, 1);
+      await this.entityMapper.save(this.enumEntity);
+    }
+  }
+
+  private async getUsages(value: ConfigurableEnumValue) {
+    const enumMap: { [key in string]: string[] } = {};
+    for (const entity of this.entities.values()) {
+      const schemaFields = [...entity.schema.entries()]
+        .filter(
+          ([_, schema]) =>
+            schema.innerDataType === this.enumEntity.getId() ||
+            schema.additional === this.enumEntity.getId()
+        )
+        .map(([name]) => name);
+      if (schemaFields.length > 0) {
+        enumMap[entity.ENTITY_TYPE] = schemaFields;
+      }
+    }
+    const entityPromises = Object.entries(enumMap).map(([entityType, props]) =>
+      this.entityMapper
+        .loadType(entityType)
+        .then((entities) => this.getEntitiesWithValue(entities, props, value))
+    );
+    const possibleEntities = await Promise.all(entityPromises);
+    return possibleEntities
+      .filter((entities) => entities.length > 0)
+      .map(
+        (entities) => `${entities.length} ${entities[0].getConstructor().label}`
+      );
+  }
+
+  private getEntitiesWithValue(
+    res: Entity[],
+    props: string[],
+    value: ConfigurableEnumValue
+  ) {
+    return res.filter((entity) =>
+      props.some(
+        (prop) =>
+          entity[prop]?.id === value?.id ||
+          entity[prop]?.map?.((v) => v.id).includes(value.id)
+      )
+    );
+  }
+}
diff --git a/src/app/core/configurable-enum/demo-configurable-enum-generator.service.ts b/src/app/core/configurable-enum/demo-configurable-enum-generator.service.ts
new file mode 100644
index 0000000000..268ecaba27
--- /dev/null
+++ b/src/app/core/configurable-enum/demo-configurable-enum-generator.service.ts
@@ -0,0 +1,20 @@
+import { Injectable } from "@angular/core";
+import { DemoDataGenerator } from "../demo-data/demo-data-generator";
+import { ConfigurableEnum } from "./configurable-enum";
+import { demoEnums } from "./configurable-enum-testing";
+
+@Injectable()
+export class DemoConfigurableEnumGeneratorService extends DemoDataGenerator<ConfigurableEnum> {
+  static provider() {
+    return [
+      {
+        provide: DemoConfigurableEnumGeneratorService,
+        useClass: DemoConfigurableEnumGeneratorService,
+      },
+    ];
+  }
+
+  protected generateEntities(): ConfigurableEnum[] {
+    return demoEnums;
+  }
+}
diff --git a/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.html b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.html
new file mode 100644
index 0000000000..ba203de7e2
--- /dev/null
+++ b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.html
@@ -0,0 +1,8 @@
+<ng-container *ngFor="let val of iterableValue; let i = index">
+    <span
+      [style.background-color]="val.color"
+      [ngClass]="{ colored: val.color }"
+    >{{ val.label }}</span
+    >
+  <ng-container *ngIf="i !== iterableValue.length - 1">,&nbsp;</ng-container>
+</ng-container>
diff --git a/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.scss b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.scss
new file mode 100644
index 0000000000..6ca1460f59
--- /dev/null
+++ b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.scss
@@ -0,0 +1,4 @@
+.colored {
+  padding: 5px;
+  border-radius: 4px;
+}
diff --git a/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.spec.ts b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.spec.ts
index fea9a5b0ce..7ec79b0531 100644
--- a/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.spec.ts
+++ b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.spec.ts
@@ -1,7 +1,5 @@
 import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing";
 import { DisplayConfigurableEnumComponent } from "./display-configurable-enum.component";
-import { Note } from "../../../child-dev-project/notes/model/note";
-import { Ordering } from "../configurable-enum-ordering";
 
 describe("DisplayConfigurableEnumComponent", () => {
   let component: DisplayConfigurableEnumComponent;
@@ -16,35 +14,13 @@ describe("DisplayConfigurableEnumComponent", () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(DisplayConfigurableEnumComponent);
     component = fixture.componentInstance;
-    component.value = { id: "testCategory", label: "Test Category" };
+    component.onInitFromDynamicConfig({
+      value: { id: "testCategory", label: "Test Category" },
+    } as any);
     fixture.detectChanges();
   });
 
   it("should create", () => {
     expect(component).toBeTruthy();
   });
-
-  it("displays value's label", () => {
-    expect(fixture.debugElement.nativeElement.innerHTML).toBe("Test Category");
-  });
-
-  it("should use the background color is available", () => {
-    const elem = fixture.debugElement.nativeElement;
-    expect(elem.style["background-color"]).toBe("");
-
-    const value: Ordering.EnumValue = {
-      label: "withColor",
-      id: "WITH_COLOR",
-      color: "black",
-      _ordinal: 1,
-    };
-    const entity = new Note();
-    entity.warningLevel = value;
-    component.onInitFromDynamicConfig({ id: "warningLevel", entity, value });
-    fixture.detectChanges();
-
-    expect(elem.style["background-color"]).toBe("black");
-    expect(elem.style.padding).toBe("5px");
-    expect(elem.style["border-radius"]).toBe("4px");
-  });
 });
diff --git a/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.ts b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.ts
index 157fb7c21c..f2970718bc 100644
--- a/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.ts
+++ b/src/app/core/configurable-enum/display-configurable-enum/display-configurable-enum.component.ts
@@ -1,8 +1,9 @@
-import { Component, HostBinding } from "@angular/core";
+import { Component } from "@angular/core";
 import { ViewPropertyConfig } from "app/core/entity-components/entity-list/EntityListConfig";
 import { ViewDirective } from "../../entity-components/entity-utils/view-components/view.directive";
 import { DynamicComponent } from "../../view/dynamic-components/dynamic-component.decorator";
 import { ConfigurableEnumValue } from "../configurable-enum.interface";
+import { NgClass, NgForOf, NgIf } from "@angular/common";
 
 /**
  * This component displays a {@link ConfigurableEnumValue} as text.
@@ -11,20 +12,22 @@ import { ConfigurableEnumValue } from "../configurable-enum.interface";
 @DynamicComponent("DisplayConfigurableEnum")
 @Component({
   selector: "app-display-configurable-enum",
-  template: `{{ value?.label }}`,
+  templateUrl: "./display-configurable-enum.component.html",
+  styleUrls: ["./display-configurable-enum.component.scss"],
   standalone: true,
+  imports: [NgForOf, NgIf, NgClass],
 })
-export class DisplayConfigurableEnumComponent extends ViewDirective<ConfigurableEnumValue> {
-  @HostBinding("style.background-color") private style;
-  @HostBinding("style.padding") private padding;
-  @HostBinding("style.border-radius") private radius;
+export class DisplayConfigurableEnumComponent extends ViewDirective<
+  ConfigurableEnumValue | ConfigurableEnumValue[]
+> {
+  iterableValue: ConfigurableEnumValue[] = [];
 
   onInitFromDynamicConfig(config: ViewPropertyConfig) {
     super.onInitFromDynamicConfig(config);
-    if (this.value?.color) {
-      this.style = this.value.color;
-      this.padding = "5px";
-      this.radius = "4px";
+    if (Array.isArray(this.value)) {
+      this.iterableValue = this.value;
+    } else if (this.value) {
+      this.iterableValue = [this.value];
     }
   }
 }
diff --git a/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html b/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html
index a09e5d1b12..be688f4c0a 100644
--- a/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html
+++ b/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html
@@ -1,24 +1,7 @@
-<mat-form-field [formGroup]="parent">
-  <mat-label>
-    {{ label }}
-  </mat-label>
-  <mat-select
-    [formControlName]="formControlName"
-    [multiple]="multi"
-    [compareWith]="compareFun"
-  >
-    <mat-option *appConfigurableEnum="let o of enumId" [value]="o">
-      {{ o.label }}
-    </mat-option>
-
-    <mat-option *ngFor="let o of invalidOptions" [value]="o">
-      {{ o.label }}
-    </mat-option>
-  </mat-select>
-  <mat-error
-    *ngIf="formControl.errors?.required"
-    i18n="Error message for any input"
-  >
-    This field is required
-  </mat-error>
-</mat-form-field>
+<app-enum-dropdown
+  [form]="formControl"
+  [label]="label"
+  [enumId]="enumId"
+  [multi]="multi"
+>
+</app-enum-dropdown>
diff --git a/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.spec.ts b/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.spec.ts
index bb791c4bef..0a95a64516 100644
--- a/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.spec.ts
+++ b/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.spec.ts
@@ -1,61 +1,33 @@
 import { ComponentFixture, TestBed } from "@angular/core/testing";
 
 import { EditConfigurableEnumComponent } from "./edit-configurable-enum.component";
-import { FormBuilder, FormControl, ReactiveFormsModule } from "@angular/forms";
-import { NoopAnimationsModule } from "@angular/platform-browser/animations";
-import { ConfigService } from "../../config/config.service";
-import { DatabaseEntity } from "../../entity/database-entity.decorator";
-import { DatabaseField } from "../../entity/database-field.decorator";
+import { FormControl, FormGroup } from "@angular/forms";
+import { MockedTestingModule } from "../../../utils/mocked-testing.module";
+import { EntitySchemaField } from "../../entity/schema/entity-schema-field";
 import { Entity } from "../../entity/model/entity";
-import { ConfigurableEnumValue } from "../configurable-enum.interface";
+import { ConfigurableEnumService } from "../configurable-enum.service";
+import { ConfigurableEnum } from "../configurable-enum";
 
 describe("EditConfigurableEnumComponent", () => {
   let component: EditConfigurableEnumComponent;
   let fixture: ComponentFixture<EditConfigurableEnumComponent>;
 
-  let mockConfigService: jasmine.SpyObj<ConfigService>;
-  const testEnum: ConfigurableEnumValue[] = [
-    { id: "1", label: "option-1" },
-    { id: "2", label: "option-2" },
-  ];
-
-  @DatabaseEntity("EditEnumTest")
-  class EditEnumTest extends Entity {
-    @DatabaseField({ dataType: "configurable-enum", additional: "test-enum" })
-    enum: ConfigurableEnumValue;
-
-    @DatabaseField({
-      dataType: "array",
-      innerDataType: "configurable-enum",
-      additional: "test-enum",
-    })
-    enumMulti: ConfigurableEnumValue[];
-  }
-
-  let testFormGroup;
-
   beforeEach(async () => {
-    testFormGroup = new FormBuilder().group({
-      enum: new FormControl(),
-      enumMulti: new FormControl(),
-    });
-
-    mockConfigService = jasmine.createSpyObj(["getConfig"]);
-    mockConfigService.getConfig.and.returnValue(testEnum);
     await TestBed.configureTestingModule({
-      imports: [
-        NoopAnimationsModule,
-        ReactiveFormsModule,
-        EditConfigurableEnumComponent,
+      imports: [EditConfigurableEnumComponent, MockedTestingModule.withState()],
+      providers: [
+        {
+          provide: ConfigurableEnumService,
+          useValue: { getEnum: () => new ConfigurableEnum() },
+        },
       ],
-      providers: [{ provide: ConfigService, useValue: mockConfigService }],
     }).compileComponents();
   });
 
   beforeEach(() => {
     fixture = TestBed.createComponent(EditConfigurableEnumComponent);
     component = fixture.componentInstance;
-    initForEntity(new EditEnumTest(), "enum");
+    initWithSchema({ innerDataType: "some-id" });
     fixture.detectChanges();
   });
 
@@ -63,37 +35,29 @@ describe("EditConfigurableEnumComponent", () => {
     expect(component).toBeTruthy();
   });
 
-  it("should add [invalid option] option from entity if given", () => {
-    const testEntity = new EditEnumTest();
-    const invalidOption = {
-      id: "INVALID",
-      isInvalidOption: true,
-      label: "[invalid option] INVALID",
-    };
-    const invalid2 = {
-      id: "X2",
-      isInvalidOption: true,
-      label: "[invalid option] X2",
-    };
-
-    testEntity.enum = invalidOption;
-    initForEntity(testEntity, "enum");
-    expect(component.invalidOptions).toEqual([invalidOption]);
+  it("should extract the enum ID", () => {
+    initWithSchema({ innerDataType: "some-id" });
+    expect(component.enumId).toBe("some-id");
 
-    testEntity.enumMulti = [invalidOption, invalid2];
-    initForEntity(testEntity, "enumMulti");
-    expect(component.invalidOptions).toEqual([invalidOption, invalid2]);
+    initWithSchema({ dataType: "array", additional: "other-id" });
+    expect(component.enumId).toBe("other-id");
   });
 
-  function initForEntity(entity: EditEnumTest, field: "enum" | "enumMulti") {
-    const formControl = testFormGroup.controls[field];
-    formControl.setValue(entity[field]);
+  it("should detect multi selection mode", () => {
+    initWithSchema({ innerDataType: "some-id" });
+    expect(component.multi).toBeFalse();
+
+    initWithSchema({ dataType: "array", additional: "some-id" });
+    expect(component.multi).toBeTrue();
+  });
 
+  function initWithSchema(schema: EntitySchemaField) {
+    const fromGroup = new FormGroup({ test: new FormControl() });
     component.onInitFromDynamicConfig({
-      formControl: formControl,
-      formFieldConfig: { id: field },
-      propertySchema: entity.getSchema().get(field),
-      entity: entity,
+      formControl: fromGroup.get("test"),
+      formFieldConfig: { id: "test" },
+      propertySchema: schema,
+      entity: new Entity(),
     });
   }
 });
diff --git a/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.ts b/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.ts
index cfe6ed6795..fe86c25714 100644
--- a/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.ts
+++ b/src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.ts
@@ -6,12 +6,12 @@ import {
 import { ConfigurableEnumValue } from "../configurable-enum.interface";
 import { DynamicComponent } from "../../view/dynamic-components/dynamic-component.decorator";
 import { arrayEntitySchemaDatatype } from "../../entity/schema-datatypes/datatype-array";
-import { compareEnums } from "../../../utils/utils";
 import { MatFormFieldModule } from "@angular/material/form-field";
 import { ReactiveFormsModule } from "@angular/forms";
 import { MatSelectModule } from "@angular/material/select";
 import { ConfigurableEnumDirective } from "../configurable-enum-directive/configurable-enum.directive";
-import { NgForOf, NgIf } from "@angular/common";
+import { NgIf } from "@angular/common";
+import { EnumDropdownComponent } from "../enum-dropdown/enum-dropdown.component";
 
 @DynamicComponent("EditConfigurableEnum")
 @Component({
@@ -23,15 +23,13 @@ import { NgForOf, NgIf } from "@angular/common";
     MatSelectModule,
     ConfigurableEnumDirective,
     NgIf,
-    NgForOf,
+    EnumDropdownComponent,
   ],
   standalone: true,
 })
 export class EditConfigurableEnumComponent extends EditComponent<ConfigurableEnumValue> {
   enumId: string;
   multi = false;
-  compareFun = compareEnums;
-  invalidOptions: ConfigurableEnumValue[] = [];
 
   onInitFromDynamicConfig(config: EditPropertyConfig<ConfigurableEnumValue>) {
     super.onInitFromDynamicConfig(config);
@@ -42,20 +40,5 @@ export class EditConfigurableEnumComponent extends EditComponent<ConfigurableEnu
       config.formFieldConfig.additional ||
       config.propertySchema.additional ||
       config.propertySchema.innerDataType;
-
-    this.invalidOptions = this.prepareInvalidOptions();
-  }
-
-  private prepareInvalidOptions(): ConfigurableEnumValue[] {
-    let additionalOptions;
-    if (!this.multi && this.formControl.value?.isInvalidOption) {
-      additionalOptions = [this.formControl.value];
-    }
-    if (this.multi) {
-      additionalOptions = this.formControl.value?.filter(
-        (o) => o.isInvalidOption
-      );
-    }
-    return additionalOptions ?? [];
   }
 }
diff --git a/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.html b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.html
new file mode 100644
index 0000000000..031d7ada0c
--- /dev/null
+++ b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.html
@@ -0,0 +1,30 @@
+<mat-form-field>
+  <mat-label>{{label}}</mat-label>
+  <app-basic-autocomplete
+    #autocomplete
+    [formControl]="form"
+    [multi]="multi"
+    [options]="options"
+    [optionToString]="enumValueToString"
+    [createOption]="createNewOption"
+  >
+    <ng-template let-item>{{ item.label }}</ng-template>
+  </app-basic-autocomplete>
+  <fa-icon
+    *ngIf="form.enabled && !!createNewOption"
+    icon="wrench"
+    class="caret-suffix"
+    matSuffix
+    (click)="openSettings($event)"
+  ></fa-icon>
+  <fa-icon
+    *ngIf="form.enabled"
+    icon="caret-down"
+    class="caret-suffix"
+    (click)="autocomplete.showAutocomplete()"
+    matSuffix
+  ></fa-icon>
+  <mat-error *ngIf="form.errors">
+    <app-error-hint [form]="form"></app-error-hint>
+  </mat-error>
+</mat-form-field>
diff --git a/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.scss b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.scss
new file mode 100644
index 0000000000..58e875b11c
--- /dev/null
+++ b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.scss
@@ -0,0 +1,6 @@
+@use "src/styles/variables/sizes";
+
+.caret-suffix {
+  cursor: pointer;
+  padding: 0 sizes.$small;
+}
diff --git a/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.spec.ts b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.spec.ts
new file mode 100644
index 0000000000..a43a931483
--- /dev/null
+++ b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.spec.ts
@@ -0,0 +1,117 @@
+import { ComponentFixture, TestBed } from "@angular/core/testing";
+
+import { EnumDropdownComponent } from "./enum-dropdown.component";
+import { FormControl } from "@angular/forms";
+import { SimpleChange } from "@angular/core";
+import { ConfigurableEnumService } from "../configurable-enum.service";
+import { ConfigurableEnum } from "../configurable-enum";
+import { MockedTestingModule } from "../../../utils/mocked-testing.module";
+import { EntityMapperService } from "../../entity/entity-mapper.service";
+import { MatDialog } from "@angular/material/dialog";
+import { of } from "rxjs";
+
+describe("EnumDropdownComponent", () => {
+  let component: EnumDropdownComponent;
+  let fixture: ComponentFixture<EnumDropdownComponent>;
+  let mockDialog: jasmine.SpyObj<MatDialog>;
+  beforeEach(async () => {
+    mockDialog = jasmine.createSpyObj(["open"]);
+    await TestBed.configureTestingModule({
+      imports: [EnumDropdownComponent, MockedTestingModule.withState()],
+      providers: [
+        {
+          provide: ConfigurableEnumService,
+          useValue: { getEnum: () => new ConfigurableEnum() },
+        },
+        { provide: MatDialog, useValue: mockDialog },
+      ],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(EnumDropdownComponent);
+    component = fixture.componentInstance;
+
+    component.form = new FormControl();
+    component.enumId = "test-enum";
+    component.ngOnChanges({
+      form: new SimpleChange(null, component.form, true),
+      enumId: new SimpleChange(null, component.enumId, true),
+    });
+
+    fixture.detectChanges();
+  });
+
+  it("should create", () => {
+    expect(component).toBeTruthy();
+  });
+
+  it("should add [invalid option] option from entity if given", () => {
+    const invalidOption = {
+      id: "INVALID",
+      isInvalidOption: true,
+      label: "[invalid option] INVALID",
+    };
+    const invalid2 = {
+      id: "X2",
+      isInvalidOption: true,
+      label: "[invalid option] X2",
+    };
+
+    component.form = new FormControl(invalidOption);
+    component.ngOnChanges({
+      form: new SimpleChange(null, component.form, false),
+    });
+    expect(component.invalidOptions).toEqual([invalidOption]);
+
+    component.form = new FormControl([invalidOption, invalid2]);
+    component.multi = true;
+    component.ngOnChanges({
+      form: new SimpleChange(null, component.form, false),
+    });
+    expect(component.invalidOptions).toEqual([invalidOption, invalid2]);
+  });
+
+  it("should extend the existing enum with the new option", () => {
+    const saveSpy = spyOn(TestBed.inject(EntityMapperService), "save");
+    const enumEntity = new ConfigurableEnum();
+    enumEntity.values = [{ id: "1", label: "first" }];
+    component.enumEntity = enumEntity;
+
+    const res = component.createNewOption("second");
+
+    expect(res).toEqual({ id: "second", label: "second" });
+    expect(enumEntity.values).toEqual([
+      { id: "1", label: "first" },
+      { id: "second", label: "second" },
+    ]);
+    expect(saveSpy).toHaveBeenCalledWith(enumEntity);
+  });
+
+  it("should open the configure enum dialog and re-initialize the available options afterwards", () => {
+    component.enumEntity = new ConfigurableEnum();
+    component.enumEntity.values = [{ id: "1", label: "1" }];
+    component.form = new FormControl({
+      id: "a",
+      label: "a",
+      isInvalidOption: true,
+    });
+
+    component.ngOnChanges({ form: true } as any);
+
+    expect(component.options).toEqual([
+      { id: "1", label: "1" },
+      { id: "a", label: "a", isInvalidOption: true },
+    ]);
+
+    mockDialog.open.and.returnValue({ afterClosed: () => of({}) } as any);
+    component.enumEntity.values.push({ id: "2", label: "2" });
+
+    component.openSettings({ stopPropagation: () => {} } as any);
+
+    expect(mockDialog.open).toHaveBeenCalled();
+    expect(component.options).toEqual([
+      { id: "1", label: "1" },
+      { id: "2", label: "2" },
+      { id: "a", label: "a", isInvalidOption: true },
+    ]);
+  });
+});
diff --git a/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.ts b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.ts
new file mode 100644
index 0000000000..31adbc342a
--- /dev/null
+++ b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.component.ts
@@ -0,0 +1,95 @@
+import { Component, Input, OnChanges, SimpleChanges } from "@angular/core";
+import { MatSelectModule } from "@angular/material/select";
+import { FormControl, ReactiveFormsModule } from "@angular/forms";
+import { ConfigurableEnumDirective } from "../configurable-enum-directive/configurable-enum.directive";
+import { NgForOf, NgIf } from "@angular/common";
+import { ConfigurableEnumValue } from "../configurable-enum.interface";
+import { BasicAutocompleteComponent } from "../basic-autocomplete/basic-autocomplete.component";
+import { ConfigurableEnumService } from "../configurable-enum.service";
+import { EntityMapperService } from "../../entity/entity-mapper.service";
+import { ConfigurableEnum } from "../configurable-enum";
+import { EntityAbility } from "../../permissions/ability/entity-ability";
+import { MatDialog } from "@angular/material/dialog";
+import { ConfigureEnumPopupComponent } from "../configure-enum-popup/configure-enum-popup.component";
+import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
+import { ErrorHintComponent } from "../../entity-components/entity-utils/error-hint/error-hint.component";
+
+@Component({
+  selector: "app-enum-dropdown",
+  templateUrl: "./enum-dropdown.component.html",
+  styleUrls: ["./enum-dropdown.component.scss"],
+  standalone: true,
+  imports: [
+    MatSelectModule,
+    ReactiveFormsModule,
+    ConfigurableEnumDirective,
+    NgIf,
+    NgForOf,
+    BasicAutocompleteComponent,
+    FontAwesomeModule,
+    ErrorHintComponent,
+  ],
+})
+export class EnumDropdownComponent implements OnChanges {
+  @Input() form: FormControl; // cannot be named "formControl" - otherwise the angular directive grabs this
+  @Input() label: string;
+  @Input() enumId: string;
+  @Input() multi = false;
+
+  enumEntity: ConfigurableEnum;
+  invalidOptions: ConfigurableEnumValue[] = [];
+  options: ConfigurableEnumValue[];
+  canEdit = false;
+  enumValueToString = (v: ConfigurableEnumValue) => v?.label;
+  createNewOption: (input: string) => ConfigurableEnumValue;
+
+  constructor(
+    private enumService: ConfigurableEnumService,
+    private entityMapper: EntityMapperService,
+    private ability: EntityAbility,
+    private dialog: MatDialog
+  ) {}
+
+  ngOnChanges(changes: SimpleChanges): void {
+    if (changes.hasOwnProperty("enumId")) {
+      this.enumEntity = this.enumService.getEnum(this.enumId);
+      this.canEdit = this.ability.can("update", this.enumEntity);
+      if (this.canEdit) {
+        this.createNewOption = this.addNewOption.bind(this);
+      }
+    }
+    if (changes.hasOwnProperty("enumId") || changes.hasOwnProperty("form")) {
+      this.invalidOptions = this.prepareInvalidOptions();
+    }
+    this.options = [...this.enumEntity.values, ...this.invalidOptions];
+  }
+
+  private prepareInvalidOptions(): ConfigurableEnumValue[] {
+    let additionalOptions;
+    if (!this.multi && this.form.value?.isInvalidOption) {
+      additionalOptions = [this.form.value];
+    }
+    if (this.multi) {
+      additionalOptions = this.form.value?.filter((o) => o.isInvalidOption);
+    }
+    return additionalOptions ?? [];
+  }
+
+  private addNewOption(name: string) {
+    const option = { id: name, label: name };
+    this.enumEntity.values.push(option);
+    this.entityMapper.save(this.enumEntity);
+    return option;
+  }
+
+  openSettings(event: Event) {
+    event.stopPropagation();
+    this.dialog
+      .open(ConfigureEnumPopupComponent, { data: this.enumEntity })
+      .afterClosed()
+      .subscribe(
+        () =>
+          (this.options = [...this.enumEntity.values, ...this.invalidOptions])
+      );
+  }
+}
diff --git a/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.stories.ts b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.stories.ts
new file mode 100644
index 0000000000..c163aa02da
--- /dev/null
+++ b/src/app/core/configurable-enum/enum-dropdown/enum-dropdown.stories.ts
@@ -0,0 +1,64 @@
+import { Meta, Story } from "@storybook/angular/types-6-0";
+import { moduleMetadata } from "@storybook/angular";
+import { StorybookBaseModule } from "../../../utils/storybook-base.module";
+import { EnumDropdownComponent } from "./enum-dropdown.component";
+import { FormControl } from "@angular/forms";
+import { centersUnique } from "../../../child-dev-project/children/demo-data-generators/fixtures/centers";
+import { EntityMapperService } from "../../entity/entity-mapper.service";
+import { mockEntityMapper } from "../../entity/mock-entity-mapper-service";
+import { ConfigurableEnum } from "../configurable-enum";
+import { ConfigurableEnumService } from "../configurable-enum.service";
+
+const centerEnum = Object.assign(new ConfigurableEnum("center"), {
+  values: centersUnique,
+});
+
+export default {
+  title: "Core/EntityComponents/Entity Property Fields/Enum Dropdown",
+  component: EnumDropdownComponent,
+  decorators: [
+    moduleMetadata({
+      imports: [EnumDropdownComponent, StorybookBaseModule],
+      providers: [
+        {
+          provide: EntityMapperService,
+          useValue: mockEntityMapper([centerEnum]),
+        },
+        {
+          provide: ConfigurableEnumService,
+          useValue: { getEnum: () => centerEnum },
+        },
+      ],
+    }),
+  ],
+} as Meta;
+
+const Template: Story<EnumDropdownComponent> = (
+  args: EnumDropdownComponent
+) => ({
+  props: args,
+});
+
+export const Primary = Template.bind({});
+Primary.args = {
+  form: new FormControl(""),
+  label: "test field",
+  enumId: "center",
+};
+
+const disabledControl = new FormControl(centersUnique[0]);
+disabledControl.disable();
+export const Disabled = Template.bind({});
+Disabled.args = {
+  form: disabledControl,
+  label: "test field",
+  enumId: "center",
+};
+
+export const Multi = Template.bind({});
+Multi.args = {
+  form: new FormControl([centersUnique[0], centersUnique[2]]),
+  label: "test field",
+  enumId: "center",
+  multi: true,
+};
diff --git a/src/app/core/demo-data/demo-data.module.ts b/src/app/core/demo-data/demo-data.module.ts
index 808204dbd2..3abd466245 100644
--- a/src/app/core/demo-data/demo-data.module.ts
+++ b/src/app/core/demo-data/demo-data.module.ts
@@ -36,11 +36,15 @@ import { DemoUserGeneratorService } from "../user/demo-user-generator.service";
 import { DemoHistoricalDataGenerator } from "../../features/historical-data/demo-historical-data-generator";
 import { DemoPermissionGeneratorService } from "../permissions/demo-permission-generator.service";
 import { DemoTodoGeneratorService } from "../../features/todos/model/demo-todo-generator.service";
+import { DemoConfigurableEnumGeneratorService } from "../configurable-enum/demo-configurable-enum-generator.service";
 import { DemoPublicFormGeneratorService } from "../../features/public-form/demo-public-form-generator.service";
 
 const demoDataGeneratorProviders = [
+  ...DemoPermissionGeneratorService.provider(),
   ...DemoPublicFormGeneratorService.provider(),
   ...DemoConfigGeneratorService.provider(),
+  ...DemoUserGeneratorService.provider(),
+  ...DemoConfigurableEnumGeneratorService.provider(),
   ...DemoChildGenerator.provider({ count: 120 }),
   ...DemoSchoolGenerator.provider({ count: 8 }),
   ...DemoChildSchoolRelationGenerator.provider(),
@@ -58,12 +62,10 @@ const demoDataGeneratorProviders = [
   }),
   ...DemoHealthCheckGeneratorService.provider(),
   ...DemoProgressDashboardWidgetGeneratorService.provider(),
-  ...DemoUserGeneratorService.provider(),
   ...DemoHistoricalDataGenerator.provider({
     minCountAttributes: 2,
     maxCountAttributes: 5,
   }),
-  ...DemoPermissionGeneratorService.provider(),
   ...DemoTodoGeneratorService.provider(),
 ];
 
diff --git a/src/app/core/demo-data/demo-data.service.ts b/src/app/core/demo-data/demo-data.service.ts
index 62b7bb017d..90e07958e8 100644
--- a/src/app/core/demo-data/demo-data.service.ts
+++ b/src/app/core/demo-data/demo-data.service.ts
@@ -38,11 +38,8 @@ export class DemoDataServiceConfig {
    *
    * This may also include providers for services a DemoDataGenerator depends on.
    */
-  dataGeneratorProviders: (
-    | ValueProvider
-    | ClassProvider
-    | FactoryProvider
-  )[] = [];
+  dataGeneratorProviders: (ValueProvider | ClassProvider | FactoryProvider)[] =
+    [];
 }
 
 /**
diff --git a/src/app/core/entity-components/entity-list/entity-list.component.spec.ts b/src/app/core/entity-components/entity-list/entity-list.component.spec.ts
index 02409d4aeb..f28da23f9a 100644
--- a/src/app/core/entity-components/entity-list/entity-list.component.spec.ts
+++ b/src/app/core/entity-components/entity-list/entity-list.component.spec.ts
@@ -131,7 +131,6 @@ describe("EntityListComponent", () => {
     createComponent();
     await initComponentInputs();
     expect(component.selectedColumnGroupIndex).toBe(1);
-    console.log("component groups", component.columnGroups);
 
     const tabGroup = await loader.getHarness(MatTabGroupHarness);
     const groups = await tabGroup.getTabs();
diff --git a/src/app/core/entity-components/entity-list/filter-generator.service.ts b/src/app/core/entity-components/entity-list/filter-generator.service.ts
index c19dc34f16..49cf21f1df 100644
--- a/src/app/core/entity-components/entity-list/filter-generator.service.ts
+++ b/src/app/core/entity-components/entity-list/filter-generator.service.ts
@@ -9,20 +9,20 @@ import {
   PrebuiltFilterConfig,
 } from "./EntityListConfig";
 import { Entity, EntityConstructor } from "../../entity/model/entity";
-import { ConfigService } from "../../config/config.service";
 import { LoggingService } from "../../logging/logging.service";
 import { EntitySchemaField } from "../../entity/schema/entity-schema-field";
 import { FilterComponentSettings } from "./filter-component.settings";
 import { EntityMapperService } from "../../entity/entity-mapper.service";
 import { EntityRegistry } from "../../entity/database-entity.decorator";
 import { FilterService } from "../../filter/filter.service";
+import { ConfigurableEnumService } from "../../configurable-enum/configurable-enum.service";
 
 @Injectable({
   providedIn: "root",
 })
 export class FilterGeneratorService {
   constructor(
-    private configService: ConfigService,
+    private enumService: ConfigurableEnumService,
     private loggingService: LoggingService,
     private entities: EntityRegistry,
     private entityMapperService: EntityMapperService,
@@ -141,7 +141,7 @@ export class FilterGeneratorService {
       },
     ];
 
-    const enumValues = this.configService.getConfigurableEnumValues(enumId);
+    const enumValues = this.enumService.getEnumValues(enumId);
     const key = property + ".id";
 
     for (const enumValue of enumValues) {
diff --git a/src/app/core/entity-components/entity-select/edit-entity-array/entity-reference-array.stories.ts b/src/app/core/entity-components/entity-select/edit-entity-array/entity-reference-array.stories.ts
index 5a44e82f90..26ce68a0ea 100644
--- a/src/app/core/entity-components/entity-select/edit-entity-array/entity-reference-array.stories.ts
+++ b/src/app/core/entity-components/entity-select/edit-entity-array/entity-reference-array.stories.ts
@@ -5,7 +5,7 @@ import { EntityFormComponent } from "../../entity-form/entity-form/entity-form.c
 import { FormFieldConfig } from "../../entity-form/entity-form/FormConfig";
 import { EntityMapperService } from "../../../entity/entity-mapper.service";
 import {
-  entityFormStorybookDefaulParameters,
+  entityFormStorybookDefaultParameters,
   StorybookBaseModule,
 } from "../../../../utils/storybook-base.module";
 import { DatabaseEntity } from "../../../entity/database-entity.decorator";
@@ -24,10 +24,7 @@ export default {
   component: EntityFormComponent,
   decorators: [
     moduleMetadata({
-      imports: [
-        EntityFormComponent,
-        StorybookBaseModule,
-      ],
+      imports: [EntityFormComponent, StorybookBaseModule],
       providers: [
         EntitySchemaService,
         {
@@ -37,7 +34,7 @@ export default {
       ],
     }),
   ],
-  parameters: entityFormStorybookDefaulParameters,
+  parameters: entityFormStorybookDefaultParameters,
 } as Meta;
 
 const Template: Story<EntityFormComponent> = (args: EntityFormComponent) => ({
diff --git a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html
index 9baf974579..2036d46527 100644
--- a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html
+++ b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html
@@ -1,64 +1,23 @@
-<mat-form-field [formGroup]="parent" floatLabel="always">
-  <!--
-  This input contains the actual value, i.e. the id of the entity.
-  It is filled in automatically in code after the user has chosen a correct value.
-
-  We also set floatLabel to always because the label is attached to the wrong input
- -->
-  <input matInput [formControl]="formControl" hidden/>
-  <mat-label>{{ label }}</mat-label>
-
-  <app-display-entity
-    class="block-wrapper"
-    [entityToDisplay]="selectedEntity"
-    *ngIf="selectedEntity && formControl.disabled"
-  ></app-display-entity>
-  <!--
-  This input contains the display value (i.e. the value that the user chooses and sees when he clicks 'update')
-  Which is the name of the entity in many cases.
-  -->
-  <input
-    #inputElement
-    matInput
-    [placeholder]="placeholder"
-    [disabled]="formControl.disabled"
-    [hidden]="formControl.disabled"
-    [matAutocomplete]="autoSuggestions"
-    #trigger=matAutocompleteTrigger
-    [value]="selectedEntity?.toString()"
-    (keyup)="updateAutocomplete(inputElement.value)"
-    (focusin)="updateAutocomplete('')"
-    (focusout)="select(inputElement.value)"
-  />
-  <button
-    mat-icon-button matIconSuffix type="button"
-    (click)="updateAutocomplete(''); trigger.openPanel()"
+<mat-form-field>
+  <mat-label>{{label}}</mat-label>
+  <app-basic-autocomplete
+    #autocomplete
+    [formControl]="formControl"
+    [options]="entities"
+    [valueMapper]="entityToId"
   >
-    <fa-icon icon="caret-down"></fa-icon>
-  </button>
-
-  <mat-autocomplete
-    #autoSuggestions="matAutocomplete"
-    (optionSelected)="select($event.option.value)"
-    autoActiveFirstOption
-  >
-    <!-- Optional header -->
-    <ng-content select="mat-option"></ng-content>
-    <mat-option
-      *ngFor="let entity of autocompleteEntities | async"
-      [value]="entity"
-    >
+    <ng-template let-item>
       <app-display-entity
-        [entityToDisplay]="entity"
+        [entityToDisplay]="item"
         [linkDisabled]="true"
       ></app-display-entity>
-    </mat-option>
-  </mat-autocomplete>
-
-  <mat-error
-    *ngIf="formControl.hasError('required')"
-    i18n="Error message for any input"
-  >
-    This field is required
-  </mat-error>
+    </ng-template>
+  </app-basic-autocomplete>
+  <fa-icon
+    *ngIf="formControl.enabled"
+    icon="caret-down"
+    class="caret-suffix"
+    (click)="autocomplete.showAutocomplete()"
+    matSuffix
+  ></fa-icon>
 </mat-form-field>
diff --git a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.scss b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.scss
index b1387128db..d038e23e96 100644
--- a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.scss
+++ b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.scss
@@ -1,5 +1,11 @@
 @use "../../entity-utils/common-styles" as *;
+@use "src/styles/variables/sizes";
 
 .block-wrapper {
   @include entity-block-border;
 }
+
+.caret-suffix {
+  cursor: pointer;
+  padding: 0 sizes.$small;
+}
diff --git a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.spec.ts b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.spec.ts
index 99e42eec90..c02fd0720c 100644
--- a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.spec.ts
+++ b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.spec.ts
@@ -10,7 +10,6 @@ import { EntityMapperService } from "../../../entity/entity-mapper.service";
 import { EntityFormService } from "../../entity-form/entity-form.service";
 import { ChildSchoolRelation } from "../../../../child-dev-project/children/model/childSchoolRelation";
 import { School } from "../../../../child-dev-project/schools/model/school";
-import { Child } from "../../../../child-dev-project/children/model/child";
 import { MockedTestingModule } from "../../../../utils/mocked-testing.module";
 import { FormControl } from "@angular/forms";
 
@@ -46,7 +45,7 @@ describe("EditSingleEntityComponent", () => {
     expect(component).toBeTruthy();
   });
 
-  it("should show all entities of the given type", fakeAsync(() => {
+  it("should load all entities of the given type as options", fakeAsync(() => {
     const school1 = School.create({ name: "First School" });
     const school2 = School.create({ name: "Second School " });
     loadTypeSpy.and.resolveTo([school1, school2]);
@@ -56,71 +55,8 @@ describe("EditSingleEntityComponent", () => {
 
     expect(loadTypeSpy).toHaveBeenCalled();
     expect(component.entities).toEqual([school1, school2]);
-    component.updateAutocomplete("");
-    expect(component.autocompleteEntities.value).toEqual([school1, school2]);
   }));
 
-  it("should correctly show the autocomplete values", () => {
-    const school1 = School.create({ name: "Aaa" });
-    const school2 = School.create({ name: "aab" });
-    const school3 = School.create({ name: "cde" });
-    component.entities = [school1, school2, school3];
-
-    component.updateAutocomplete("");
-    expect(component.autocompleteEntities.value).toEqual([
-      school1,
-      school2,
-      school3,
-    ]);
-    component.updateAutocomplete("Aa");
-    expect(component.autocompleteEntities.value).toEqual([school1, school2]);
-    component.updateAutocomplete("Aab");
-    expect(component.autocompleteEntities.value).toEqual([school2]);
-  });
-
-  it("should show name of the selected entity", fakeAsync(() => {
-    const child1 = Child.create("First Child");
-    const child2 = Child.create("Second Child");
-    component.formControl.setValue(child1.getId());
-    loadTypeSpy.and.resolveTo([child1, child2]);
-
-    initComponent();
-    tick();
-    fixture.detectChanges();
-
-    expect(component.selectedEntity).toBe(child1);
-    expect(component.input.nativeElement.value).toEqual("First Child");
-  }));
-
-  it("Should have the correct entity selected when it's name is entered", () => {
-    const child1 = Child.create("First Child");
-    const child2 = Child.create("Second Child");
-    component.entities = [child1, child2];
-
-    component.select("First Child");
-
-    expect(component.selectedEntity).toBe(child1);
-    expect(component.formControl).toHaveValue(child1.getId());
-  });
-
-  it("Should unselect if no entity can be matched", () => {
-    const first = Child.create("First");
-    const second = Child.create("Second");
-    component.entities = [first, second];
-
-    component.select(first);
-    expect(component.selectedEntity).toBe(first);
-    expect(component.formControl.value).toBe(first.getId());
-
-    component.select("second");
-    expect(component.selectedEntity).toBe(second);
-    expect(component.formControl.value).toBe(second.getId());
-
-    component.select("NonExistent");
-    expect(component.selectedEntity).toBe(undefined);
-    expect(component.formControl.value).toBe(undefined);
-  });
-
   function initComponent(): Promise<any> {
     return component.onInitFromDynamicConfig({
       formFieldConfig: { id: "childId" },
diff --git a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts
index 999d4137ef..e77391a831 100644
--- a/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts
+++ b/src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts
@@ -1,20 +1,17 @@
-import { Component, ElementRef, ViewChild } from "@angular/core";
+import { Component } from "@angular/core";
 import {
   EditComponent,
   EditPropertyConfig,
 } from "../../entity-utils/dynamic-form-components/edit-component";
 import { Entity } from "../../../entity/model/entity";
-import { BehaviorSubject } from "rxjs";
 import { DynamicComponent } from "../../../view/dynamic-components/dynamic-component.decorator";
 import { EntityMapperService } from "../../../entity/entity-mapper.service";
-import { MatFormFieldModule } from "@angular/material/form-field";
-import { ReactiveFormsModule } from "@angular/forms";
-import { MatInputModule } from "@angular/material/input";
 import { DisplayEntityComponent } from "../display-entity/display-entity.component";
-import { AsyncPipe, NgForOf, NgIf } from "@angular/common";
-import { MatAutocompleteModule } from "@angular/material/autocomplete";
-import { MatButtonModule } from "@angular/material/button";
+import { BasicAutocompleteComponent } from "../../../configurable-enum/basic-autocomplete/basic-autocomplete.component";
+import { ReactiveFormsModule } from "@angular/forms";
+import { MatFormFieldModule } from "@angular/material/form-field";
 import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
+import { NgIf } from "@angular/common";
 
 @DynamicComponent("EditSingleEntity")
 @Component({
@@ -22,74 +19,28 @@ import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
   templateUrl: "./edit-single-entity.component.html",
   styleUrls: ["./edit-single-entity.component.scss"],
   imports: [
-    MatFormFieldModule,
-    ReactiveFormsModule,
-    MatInputModule,
+    BasicAutocompleteComponent,
     DisplayEntityComponent,
-    NgIf,
-    MatAutocompleteModule,
-    MatButtonModule,
+    ReactiveFormsModule,
+    MatFormFieldModule,
     FontAwesomeModule,
-    AsyncPipe,
-    NgForOf,
+    NgIf,
   ],
   standalone: true,
 })
 export class EditSingleEntityComponent extends EditComponent<string> {
   entities: Entity[] = [];
-  placeholder: string;
-  autocompleteEntities = new BehaviorSubject<Entity[]>([]);
-  selectedEntity?: Entity;
-
-  @ViewChild("inputElement") input: ElementRef;
+  entityToId = (e: Entity) => e?.getId();
 
   constructor(private entityMapperService: EntityMapperService) {
     super();
   }
 
-  updateAutocomplete(inputText: string) {
-    let filteredEntities = this.entities;
-    if (inputText) {
-      filteredEntities = this.entities.filter((entity) =>
-        entity.toString().toLowerCase().includes(inputText.toLowerCase())
-      );
-    }
-    this.autocompleteEntities.next(filteredEntities);
-  }
-
   async onInitFromDynamicConfig(config: EditPropertyConfig<string>) {
     super.onInitFromDynamicConfig(config);
-    this.placeholder = $localize`:Placeholder for input to set an entity|context Select User:Select ${
-      config.formFieldConfig.label || config.propertySchema?.label
-    }`;
     const entityType: string =
       config.formFieldConfig.additional || config.propertySchema.additional;
     this.entities = await this.entityMapperService.loadType(entityType);
     this.entities.sort((e1, e2) => e1.toString().localeCompare(e2.toString()));
-    const selectedEntity = this.entities.find(
-      (entity) => entity.getId() === this.formControl.value
-    );
-    if (selectedEntity) {
-      this.selectedEntity = selectedEntity;
-    }
-  }
-
-  select(selected: string | Entity) {
-    let entity: Entity;
-    if (typeof selected === "string") {
-      entity = this.entities.find(
-        (e) => e.toString().toLowerCase() === selected.toLowerCase()
-      );
-    } else {
-      entity = selected;
-    }
-
-    if (entity) {
-      this.selectedEntity = entity;
-      this.formControl.setValue(entity.getId());
-    } else {
-      this.selectedEntity = undefined;
-      this.formControl.setValue(undefined);
-    }
   }
 }
diff --git a/src/app/core/entity-components/entity-select/edit-single-entity/entity-reference.stories.ts b/src/app/core/entity-components/entity-select/edit-single-entity/entity-reference.stories.ts
index 6984eb6974..2aec8a3fcd 100644
--- a/src/app/core/entity-components/entity-select/edit-single-entity/entity-reference.stories.ts
+++ b/src/app/core/entity-components/entity-select/edit-single-entity/entity-reference.stories.ts
@@ -5,7 +5,7 @@ import { EntityFormComponent } from "../../entity-form/entity-form/entity-form.c
 import { FormFieldConfig } from "../../entity-form/entity-form/FormConfig";
 import { EntityMapperService } from "../../../entity/entity-mapper.service";
 import {
-  entityFormStorybookDefaulParameters,
+  entityFormStorybookDefaultParameters,
   StorybookBaseModule,
 } from "../../../../utils/storybook-base.module";
 import { DatabaseEntity } from "../../../entity/database-entity.decorator";
@@ -27,10 +27,7 @@ export default {
   component: EntityFormComponent,
   decorators: [
     moduleMetadata({
-      imports: [
-        EntityFormComponent,
-        StorybookBaseModule,
-      ],
+      imports: [EntityFormComponent, StorybookBaseModule],
       providers: [
         EntitySchemaService,
         {
@@ -40,7 +37,7 @@ export default {
       ],
     }),
   ],
-  parameters: entityFormStorybookDefaulParameters,
+  parameters: entityFormStorybookDefaultParameters,
 } as Meta;
 
 const Template: Story<EntityFormComponent> = (args: EntityFormComponent) => ({
diff --git a/src/app/core/entity-components/entity-select/entity-select/entity-select.stories.ts b/src/app/core/entity-components/entity-select/entity-select/entity-select.stories.ts
index 2520e739ca..811268a77b 100644
--- a/src/app/core/entity-components/entity-select/entity-select/entity-select.stories.ts
+++ b/src/app/core/entity-components/entity-select/entity-select/entity-select.stories.ts
@@ -1,14 +1,20 @@
-import { Story, Meta } from "@storybook/angular/types-6-0";
+import { Meta, Story } from "@storybook/angular/types-6-0";
 import { moduleMetadata } from "@storybook/angular";
 import { Child } from "../../../../child-dev-project/children/model/child";
-import { Database } from "../../../database/database";
 import { BackupService } from "../../../admin/services/backup.service";
 import { EntityMapperService } from "../../../entity/entity-mapper.service";
-import { ChildrenService } from "../../../../child-dev-project/children/children.service";
 import { BehaviorSubject } from "rxjs";
 import { EntitySelectComponent } from "./entity-select.component";
 import { StorybookBaseModule } from "../../../../utils/storybook-base.module";
 import { School } from "../../../../child-dev-project/schools/model/school";
+import {
+  componentRegistry,
+  ComponentRegistry,
+} from "../../../../dynamic-components";
+import { ChildBlockComponent } from "../../../../child-dev-project/children/child-block/child-block.component";
+import { SchoolBlockComponent } from "../../../../child-dev-project/schools/school-block/school-block.component";
+import { Database } from "../../../database/database";
+import { ChildrenService } from "../../../../child-dev-project/children/children.service";
 
 const child1 = new Child();
 child1.name = "First Child";
@@ -53,6 +59,7 @@ export default {
               ]),
           },
         },
+        { provide: ComponentRegistry, useValue: componentRegistry },
         { provide: Database, useValue: {} },
         { provide: ChildrenService, useValue: {} },
       ],
@@ -74,6 +81,9 @@ export default {
   },
 } as Meta;
 
+componentRegistry.add("ChildBlock", async () => ChildBlockComponent);
+componentRegistry.add("SchoolBlock", async () => SchoolBlockComponent);
+
 const Template: Story<EntitySelectComponent<Child>> = (
   args: EntitySelectComponent<Child>
 ) => ({
diff --git a/src/app/core/entity-components/entity-subrecord/entity-subrecord/entity-subrecord.stories.ts b/src/app/core/entity-components/entity-subrecord/entity-subrecord/entity-subrecord.stories.ts
index 70266b2ead..bf22584166 100644
--- a/src/app/core/entity-components/entity-subrecord/entity-subrecord/entity-subrecord.stories.ts
+++ b/src/app/core/entity-components/entity-subrecord/entity-subrecord/entity-subrecord.stories.ts
@@ -5,7 +5,6 @@ import { Note } from "../../../../child-dev-project/notes/model/note";
 import { EntityMapperService } from "../../../entity/entity-mapper.service";
 import { DatePipe } from "@angular/common";
 import { DemoNoteGeneratorService } from "../../../../child-dev-project/notes/demo-data/demo-note-generator.service";
-import { ConfigService } from "../../../config/config.service";
 import { EntitySchemaService } from "../../../entity/schema/entity-schema.service";
 import { DemoChildGenerator } from "../../../../child-dev-project/children/demo-data-generators/demo-child-generator.service";
 import { DemoUserGeneratorService } from "../../../user/demo-user-generator.service";
@@ -18,19 +17,15 @@ import { MockedTestingModule } from "../../../../utils/mocked-testing.module";
 import { AbilityService } from "../../../permissions/ability/ability.service";
 import { faker } from "../../../demo-data/faker";
 import { StorybookBaseModule } from "../../../../utils/storybook-base.module";
-import { mockEntityMapper } from "../../../entity/mock-entity-mapper-service";
 import { Ability } from "@casl/ability";
 import { EntityAbility } from "../../../permissions/ability/entity-ability";
-import { LoggingService } from "../../../logging/logging.service";
+import { ConfigurableEnumService } from "../../../configurable-enum/configurable-enum.service";
 
-const configService = new ConfigService(
-  mockEntityMapper(),
-  new LoggingService()
-);
+const enumService = {
+  getEnumValues: () => [],
+} as unknown as ConfigurableEnumService;
 const schemaService = new EntitySchemaService();
-schemaService.registerSchemaDatatype(
-  new ConfigurableEnumDatatype(configService)
-);
+schemaService.registerSchemaDatatype(new ConfigurableEnumDatatype(enumService));
 const childGenerator = new DemoChildGenerator({ count: 10 });
 const userGenerator = new DemoUserGeneratorService();
 const data = new DemoNoteGeneratorService(
@@ -64,7 +59,6 @@ export default {
           },
         },
         { provide: EntitySchemaService, useValue: schemaService },
-        { provide: ConfigService, useValue: configService },
         DatePipe,
         {
           provide: ChildrenService,
diff --git a/src/app/core/entity-components/entity-subrecord/entity-subrecord/value-accessor.ts b/src/app/core/entity-components/entity-subrecord/entity-subrecord/value-accessor.ts
index 791fc9c72a..6f2af736f5 100644
--- a/src/app/core/entity-components/entity-subrecord/entity-subrecord/value-accessor.ts
+++ b/src/app/core/entity-components/entity-subrecord/entity-subrecord/value-accessor.ts
@@ -41,6 +41,6 @@ export function getReadableValue(value: any): any {
   }
 }
 
-function isConfigurableEnum(value: any): value is ConfigurableEnumValue {
+export function isConfigurableEnum(value: any): value is ConfigurableEnumValue {
   return typeof value === "object" && value && "label" in value;
 }
diff --git a/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-boolean/edit-boolean.stories.ts b/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-boolean/edit-boolean.stories.ts
index 1adeff1627..bdc906a38d 100644
--- a/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-boolean/edit-boolean.stories.ts
+++ b/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-boolean/edit-boolean.stories.ts
@@ -8,7 +8,7 @@ import { Entity } from "../../../../entity/model/entity";
 import { DatabaseField } from "../../../../entity/database-field.decorator";
 import { DatabaseEntity } from "../../../../entity/database-entity.decorator";
 import {
-  entityFormStorybookDefaulParameters,
+  entityFormStorybookDefaultParameters,
   StorybookBaseModule,
 } from "../../../../../utils/storybook-base.module";
 
@@ -27,7 +27,7 @@ export default {
       ],
     }),
   ],
-  parameters: entityFormStorybookDefaulParameters,
+  parameters: entityFormStorybookDefaultParameters,
 } as Meta;
 
 const Template: Story<EntityFormComponent> = (args: EntityFormComponent) => ({
diff --git a/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-number/edit-number.stories.ts b/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-number/edit-number.stories.ts
index b7c2369eef..54a16e5e31 100644
--- a/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-number/edit-number.stories.ts
+++ b/src/app/core/entity-components/entity-utils/dynamic-form-components/edit-number/edit-number.stories.ts
@@ -1,7 +1,6 @@
-import { Story, Meta } from "@storybook/angular/types-6-0";
+import { Meta, Story } from "@storybook/angular/types-6-0";
 import { moduleMetadata } from "@storybook/angular";
 import { EntitySchemaService } from "../../../../entity/schema/entity-schema.service";
-import { EntityFormComponent } from "../../../entity-form/entity-form/entity-form.component";
 import { FormFieldConfig } from "../../../entity-form/entity-form/FormConfig";
 import { EntityMapperService } from "../../../../entity/entity-mapper.service";
 import { Entity } from "../../../../entity/model/entity";
@@ -9,30 +8,38 @@ import { DatabaseField } from "../../../../entity/database-field.decorator";
 import { DatabaseEntity } from "../../../../entity/database-entity.decorator";
 import { EditNumberComponent } from "./edit-number.component";
 import {
-  entityFormStorybookDefaulParameters,
+  entityFormStorybookDefaultParameters,
   StorybookBaseModule,
 } from "../../../../../utils/storybook-base.module";
+import { AppModule } from "../../../../../app.module";
+import { mockEntityMapper } from "../../../../entity/mock-entity-mapper-service";
+import { FormComponent } from "../../../entity-details/form/form.component";
 
 export default {
   title: "Core/EntityComponents/Entity Property Fields/Number",
-  component: EntityFormComponent,
+  component: FormComponent,
   decorators: [
     moduleMetadata({
-      imports: [EntityFormComponent, EditNumberComponent, StorybookBaseModule],
+      imports: [
+        FormComponent,
+        EditNumberComponent,
+        AppModule,
+        StorybookBaseModule,
+      ],
       providers: [
         EntitySchemaService,
         {
           provide: EntityMapperService,
-          useValue: { save: () => Promise.resolve() },
+          useValue: mockEntityMapper(),
         },
       ],
     }),
   ],
-  parameters: entityFormStorybookDefaulParameters,
+  parameters: entityFormStorybookDefaultParameters,
 } as Meta;
 
-const Template: Story<EntityFormComponent> = (args: EntityFormComponent) => ({
-  component: EntityFormComponent,
+const Template: Story<FormComponent<any>> = (args: FormComponent<any>) => ({
+  component: FormComponent,
   props: args,
 });
 
diff --git a/src/app/core/entity/model/entity.spec.ts b/src/app/core/entity/model/entity.spec.ts
index 487f2e0e8d..111e5bff2a 100644
--- a/src/app/core/entity/model/entity.spec.ts
+++ b/src/app/core/entity/model/entity.spec.ts
@@ -20,7 +20,8 @@ import { EntitySchemaService } from "../schema/entity-schema.service";
 import { DatabaseField } from "../database-field.decorator";
 import { ConfigurableEnumDatatype } from "../../configurable-enum/configurable-enum-datatype/configurable-enum-datatype";
 import { DatabaseEntity } from "../database-entity.decorator";
-import { createTestingConfigService } from "../../config/testing-config-service";
+import { createTestingConfigurableEnumService } from "../../configurable-enum/configurable-enum-testing";
+import { fakeAsync, tick } from "@angular/core/testing";
 
 describe("Entity", () => {
   let entitySchemaService: EntitySchemaService;
@@ -162,12 +163,12 @@ export function testEntitySubclass(
     expect(Entity.extractTypeFromId(entity._id)).toBe(entityType);
   });
 
-  it("should only load and store properties defined in the schema", () => {
+  it("should only load and store properties defined in the schema", fakeAsync(() => {
     const schemaService = new EntitySchemaService();
-    const configService = createTestingConfigService();
     schemaService.registerSchemaDatatype(
-      new ConfigurableEnumDatatype(configService)
+      new ConfigurableEnumDatatype(createTestingConfigurableEnumService())
     );
+    tick();
     const entity = new entityClass();
 
     schemaService.loadDataIntoEntity(
@@ -179,5 +180,5 @@ export function testEntitySubclass(
       delete rawData.searchIndices;
     }
     expect(rawData).toEqual(expectedDatabaseFormat);
-  });
+  }));
 }
diff --git a/src/app/core/export/data-transformation-service/data-transformation.service.ts b/src/app/core/export/data-transformation-service/data-transformation.service.ts
index 4b52082c18..a20f4fc45c 100644
--- a/src/app/core/export/data-transformation-service/data-transformation.service.ts
+++ b/src/app/core/export/data-transformation-service/data-transformation.service.ts
@@ -67,7 +67,7 @@ export class DataTransformationService {
     const result: ExportRow[] = [];
     if (groupByProperty) {
       const groups = groupBy(data, groupByProperty.property);
-      for (const [group, values] of groups.entries()) {
+      for (const [group, values] of groups) {
         const groupColumn: ExportColumnConfig = {
           label: groupByProperty.label,
           query: `:setString(${getReadableValue(group)})`,
diff --git a/src/app/core/filter/filter.service.spec.ts b/src/app/core/filter/filter.service.spec.ts
index 4ce3b4abd0..c1687dc72e 100644
--- a/src/app/core/filter/filter.service.spec.ts
+++ b/src/app/core/filter/filter.service.spec.ts
@@ -4,16 +4,19 @@ import { FilterService } from "./filter.service";
 import { defaultInteractionTypes } from "../config/default-config/default-interaction-types";
 import { DataFilter } from "../entity-components/entity-subrecord/entity-subrecord/entity-subrecord-config";
 import { Note } from "../../child-dev-project/notes/model/note";
-import { ConfigService } from "../config/config.service";
-import { createTestingConfigService } from "../config/testing-config-service";
+import { ConfigurableEnumService } from "../configurable-enum/configurable-enum.service";
+import { createTestingConfigurableEnumService } from "../configurable-enum/configurable-enum-testing";
 
 describe("FilterService", () => {
   let service: FilterService;
 
-  beforeEach(() => {
-    TestBed.configureTestingModule({
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
       providers: [
-        { provide: ConfigService, useValue: createTestingConfigService() },
+        {
+          provide: ConfigurableEnumService,
+          useValue: createTestingConfigurableEnumService(),
+        },
       ],
     });
     service = TestBed.inject(FilterService);
diff --git a/src/app/core/filter/filter.service.ts b/src/app/core/filter/filter.service.ts
index aee83a1784..f5bcd30e43 100644
--- a/src/app/core/filter/filter.service.ts
+++ b/src/app/core/filter/filter.service.ts
@@ -1,6 +1,5 @@
 import { Injectable } from "@angular/core";
 import { EntitySchemaField } from "../entity/schema/entity-schema-field";
-import { ConfigService } from "../config/config.service";
 import { DataFilter } from "../entity-components/entity-subrecord/entity-subrecord/entity-subrecord-config";
 import { Entity } from "../entity/model/entity";
 import {
@@ -11,6 +10,7 @@ import {
   compare,
 } from "@ucast/mongo2js";
 import moment from "moment";
+import { ConfigurableEnumService } from "../configurable-enum/configurable-enum.service";
 
 /**
  * Utility service to help handling and aligning filters with entities.
@@ -25,7 +25,7 @@ export class FilterService {
     { compare: this.extendedCompare.bind(this) }
   ) as Filter;
 
-  constructor(private configService: ConfigService) {}
+  constructor(private enumService: ConfigurableEnumService) {}
 
   /**
    * Builds a predicate for a given filter object.
@@ -83,9 +83,7 @@ export class FilterService {
   }
 
   private parseConfigurableEnumValue(property: EntitySchemaField, value) {
-    const enumValues = this.configService.getConfigurableEnumValues(
-      property.innerDataType
-    );
+    const enumValues = this.enumService.getEnumValues(property.innerDataType);
     return enumValues.find(({ id }) => id === value["id"]);
   }
 
diff --git a/src/app/core/session/login/login.component.spec.ts b/src/app/core/session/login/login.component.spec.ts
index 898d2141db..2af9ccf772 100644
--- a/src/app/core/session/login/login.component.spec.ts
+++ b/src/app/core/session/login/login.component.spec.ts
@@ -31,12 +31,16 @@ import { MockedTestingModule } from "../../../utils/mocked-testing.module";
 import { AuthService } from "../auth/auth.service";
 import { Subject } from "rxjs";
 import { ActivatedRoute, Router } from "@angular/router";
+import { TestbedHarnessEnvironment } from "@angular/cdk/testing/testbed";
+import { HarnessLoader } from "@angular/cdk/testing";
+import { MatInputHarness } from "@angular/material/input/testing";
 
 describe("LoginComponent", () => {
   let component: LoginComponent;
   let fixture: ComponentFixture<LoginComponent>;
   let mockSessionService: jasmine.SpyObj<SessionService>;
   let loginState = new Subject();
+  let loader: HarnessLoader;
 
   beforeEach(waitForAsync(() => {
     mockSessionService = jasmine.createSpyObj(["login"], { loginState });
@@ -51,6 +55,7 @@ describe("LoginComponent", () => {
 
   beforeEach(() => {
     fixture = TestBed.createComponent(LoginComponent);
+    loader = TestbedHarnessEnvironment.loader(fixture);
     component = fixture.componentInstance;
     fixture.detectChanges();
   });
@@ -85,13 +90,13 @@ describe("LoginComponent", () => {
     expect(component.errorMessage).toBeTruthy();
   }));
 
-  it("should focus the first input element on initialization", fakeAsync(() => {
+  it("should focus the first input element on initialization", fakeAsync(async () => {
     component.ngAfterViewInit();
     tick();
     fixture.detectChanges();
 
-    const firstInputElement = document.getElementsByTagName("input")[0];
-    expect(document.activeElement).toBe(firstInputElement);
+    const firstInputElement = await loader.getHarness(MatInputHarness);
+    await expectAsync(firstInputElement.isFocused()).toBeResolvedTo(true);
   }));
 
   it("should route to redirect uri once state changes to 'logged-in'", () => {
diff --git a/src/app/features/file/couchdb-file.service.spec.ts b/src/app/features/file/couchdb-file.service.spec.ts
index 9bd55eaed6..fadc1702cb 100644
--- a/src/app/features/file/couchdb-file.service.spec.ts
+++ b/src/app/features/file/couchdb-file.service.spec.ts
@@ -63,6 +63,10 @@ describe("CouchdbFileService", () => {
     service = TestBed.inject(CouchdbFileService);
   });
 
+  afterEach(() => {
+    Entity.schema.delete("testProp");
+  });
+
   it("should be created", () => {
     expect(service).toBeTruthy();
   });
diff --git a/src/app/features/location/edit-location/edit-location.stories.ts b/src/app/features/location/edit-location/edit-location.stories.ts
index 8bab690134..7bcd8e3b1f 100644
--- a/src/app/features/location/edit-location/edit-location.stories.ts
+++ b/src/app/features/location/edit-location/edit-location.stories.ts
@@ -1,6 +1,6 @@
 import { moduleMetadata } from "@storybook/angular";
 import {
-  entityFormStorybookDefaulParameters,
+  entityFormStorybookDefaultParameters,
   StorybookBaseModule,
 } from "../../../utils/storybook-base.module";
 import { Meta, Story } from "@storybook/angular/types-6-0";
@@ -33,7 +33,7 @@ export default {
       ],
     }),
   ],
-  parameters: entityFormStorybookDefaulParameters,
+  parameters: entityFormStorybookDefaultParameters,
 } as Meta;
 
 @DatabaseEntity("LocationTest")
diff --git a/src/app/features/location/map/map.component.spec.ts b/src/app/features/location/map/map.component.spec.ts
index a16b0d0dce..178a259486 100644
--- a/src/app/features/location/map/map.component.spec.ts
+++ b/src/app/features/location/map/map.component.spec.ts
@@ -92,6 +92,7 @@ describe("MapComponent", () => {
     });
 
     marker.fireEvent("click");
+    Child.schema.delete("address");
   });
 
   it("should open a popup with the same marker data", async () => {
diff --git a/src/app/features/matching-entities/matching-entities/matching-entities.stories.ts b/src/app/features/matching-entities/matching-entities/matching-entities.stories.ts
index 3b37cf14d9..0260aeb771 100644
--- a/src/app/features/matching-entities/matching-entities/matching-entities.stories.ts
+++ b/src/app/features/matching-entities/matching-entities/matching-entities.stories.ts
@@ -1,4 +1,4 @@
-import { Story, Meta } from "@storybook/angular/types-6-0";
+import { Meta, Story } from "@storybook/angular/types-6-0";
 import { moduleMetadata } from "@storybook/angular";
 import { MatchingEntitiesComponent } from "./matching-entities.component";
 import { StorybookBaseModule } from "../../../utils/storybook-base.module";
@@ -15,6 +15,7 @@ import { centersUnique } from "../../../child-dev-project/children/demo-data-gen
 import { genders } from "../../../child-dev-project/children/model/genders";
 import { FormDialogService } from "../../../core/form-dialog/form-dialog.service";
 import { EntitySchemaField } from "../../../core/entity/schema/entity-schema-field";
+import { ConfigurableEnumService } from "../../../core/configurable-enum/configurable-enum.service";
 
 const addressSchema: EntitySchemaField = {
   label: "Address",
@@ -70,10 +71,15 @@ export default {
         { provide: DownloadService, useValue: null },
         {
           provide: EntitySchemaService,
-          useFactory: (configService: ConfigService) => {
+          useFactory: (
+            entityMapper: EntityMapperService,
+            configService: ConfigService
+          ) => {
             const schemaService = new EntitySchemaService();
             schemaService.registerSchemaDatatype(
-              new ConfigurableEnumDatatype(configService)
+              new ConfigurableEnumDatatype(
+                new ConfigurableEnumService(entityMapper, configService)
+              )
             );
             return schemaService;
           },
diff --git a/src/app/features/reporting/data-aggregation.service.ts b/src/app/features/reporting/data-aggregation.service.ts
index 3a7cb62379..d745f73d57 100644
--- a/src/app/features/reporting/data-aggregation.service.ts
+++ b/src/app/features/reporting/data-aggregation.service.ts
@@ -1,6 +1,7 @@
 import { Injectable } from "@angular/core";
 import { QueryService } from "../../core/export/query.service";
 import { GroupByDescription, ReportRow } from "./report-row";
+import { groupBy } from "../../utils/utils";
 
 export interface Aggregation {
   query: string;
@@ -90,24 +91,24 @@ export class DataAggregationService {
     for (let i = properties.length; i > 0; i--) {
       const currentProperty = properties[i - 1];
       const remainingProperties = properties.slice(i);
-      const groupingResults = this.groupBy(data, currentProperty);
-      for (const grouping of groupingResults) {
+      const groupingResults = groupBy(data, currentProperty);
+      for (const [group, entries] of groupingResults) {
         const groupingValues = additionalValues.concat({
           property: currentProperty,
-          value: grouping.value,
+          value: group,
         });
         const newRow: ReportRow = {
           header: {
             label: label,
             groupedBy: groupingValues,
-            result: grouping.data.length,
+            result: entries.length,
           },
           subRows: [],
         };
         newRow.subRows.push(
           ...(await this.calculateAggregations(
             aggregations,
-            grouping.data,
+            entries,
             groupingValues
           ))
         );
@@ -116,7 +117,7 @@ export class DataAggregationService {
             remainingProperties,
             aggregations,
             label,
-            grouping.data,
+            entries,
             groupingValues
           ))
         );
@@ -125,22 +126,4 @@ export class DataAggregationService {
     }
     return resultRows;
   }
-
-  private groupBy<ENTITY, PROPERTY extends keyof ENTITY>(
-    data: ENTITY[],
-    groupByProperty: PROPERTY
-  ): { value: ENTITY[PROPERTY]; data: ENTITY[] }[] {
-    return data.reduce((allGroups, currentElement) => {
-      const currentValue = currentElement[groupByProperty];
-      let existingGroup = allGroups.find(
-        (group) => group.value === currentValue
-      );
-      if (!existingGroup) {
-        existingGroup = { value: currentValue, data: [] };
-        allGroups.push(existingGroup);
-      }
-      existingGroup.data.push(currentElement);
-      return allGroups;
-    }, new Array<{ value: ENTITY[PROPERTY]; data: ENTITY[] }>());
-  }
 }
diff --git a/src/app/utils/database-testing.module.ts b/src/app/utils/database-testing.module.ts
index 4ad5d01c28..694d3af51e 100644
--- a/src/app/utils/database-testing.module.ts
+++ b/src/app/utils/database-testing.module.ts
@@ -8,6 +8,8 @@ import { environment } from "../../environments/environment";
 import { createTestingConfigService } from "../core/config/testing-config-service";
 import { AppModule } from "../app.module";
 import { ComponentRegistry } from "../dynamic-components";
+import { ConfigurableEnumService } from "../core/configurable-enum/configurable-enum.service";
+import { createTestingConfigurableEnumService } from "../core/configurable-enum/configurable-enum-testing";
 
 /**
  * Utility module that creates a simple environment where a correctly configured database and session is set up.
@@ -24,6 +26,10 @@ import { ComponentRegistry } from "../dynamic-components";
   providers: [
     { provide: SessionService, useClass: LocalSession },
     { provide: ConfigService, useValue: createTestingConfigService() },
+    {
+      provide: ConfigurableEnumService,
+      useValue: createTestingConfigurableEnumService(),
+    },
   ],
 })
 export class DatabaseTestingModule {
diff --git a/src/app/utils/mocked-testing.module.ts b/src/app/utils/mocked-testing.module.ts
index 475f73b189..3509a9e944 100644
--- a/src/app/utils/mocked-testing.module.ts
+++ b/src/app/utils/mocked-testing.module.ts
@@ -20,6 +20,8 @@ import { HttpClientTestingModule } from "@angular/common/http/testing";
 import { ReactiveFormsModule } from "@angular/forms";
 import { AppModule } from "../app.module";
 import { ComponentRegistry } from "../dynamic-components";
+import { ConfigurableEnumService } from "../core/configurable-enum/configurable-enum.service";
+import { createTestingConfigurableEnumService } from "../core/configurable-enum/configurable-enum-testing";
 
 export const TEST_USER = "test";
 export const TEST_PASSWORD = "pass";
@@ -74,6 +76,10 @@ export class MockedTestingModule {
         { provide: SessionService, useValue: session },
         { provide: EntityMapperService, useValue: mockedEntityMapper },
         { provide: ConfigService, useValue: createTestingConfigService() },
+        {
+          provide: ConfigurableEnumService,
+          useValue: createTestingConfigurableEnumService(),
+        },
         { provide: Database, useValue: session.getDatabase() },
       ],
     };
diff --git a/src/app/utils/storybook-base.module.ts b/src/app/utils/storybook-base.module.ts
index 07ecc67000..99f9481e4a 100644
--- a/src/app/utils/storybook-base.module.ts
+++ b/src/app/utils/storybook-base.module.ts
@@ -21,7 +21,10 @@ import { createTestingConfigService } from "../core/config/testing-config-servic
 import { componentRegistry } from "../dynamic-components";
 import { AppModule } from "../app.module";
 
-export const entityFormStorybookDefaulParameters = {
+componentRegistry.allowDuplicates();
+entityRegistry.allowDuplicates();
+
+export const entityFormStorybookDefaultParameters = {
   controls: {
     exclude: ["_columns"],
   },
@@ -65,7 +68,5 @@ export const mockAbilityService = {
 export class StorybookBaseModule {
   constructor(icons: FaIconLibrary) {
     icons.addIconPacks(fas, far);
-    entityRegistry.allowDuplicates();
-    componentRegistry.allowDuplicates();
   }
 }
diff --git a/src/app/utils/utils.spec.ts b/src/app/utils/utils.spec.ts
index bf53f1ed9f..676045bc43 100644
--- a/src/app/utils/utils.spec.ts
+++ b/src/app/utils/utils.spec.ts
@@ -1,4 +1,4 @@
-import { calculateAge, isValidDate, sortByAttribute } from "./utils";
+import { calculateAge, groupBy, isValidDate, sortByAttribute } from "./utils";
 import moment from "moment";
 
 describe("Utils", () => {
@@ -62,4 +62,19 @@ describe("Utils", () => {
 
     expect(sortedDesc).toEqual([third, second, first]);
   });
+
+  it("should create groups with the same ID, not just object equality", () => {
+    const first = { a: { id: "a", label: "A" } };
+    const second = { a: { id: "a", label: "A" } };
+    const third = { a: { id: "b", label: "B" } };
+    // we don't have object equality
+    expect(first.a).not.toBe(second.a);
+
+    const groups = groupBy([first, second, third], "a");
+
+    expect(groups).toEqual([
+      [{ id: "a", label: "A" }, [first, second]],
+      [{ id: "b", label: "B" }, [third]],
+    ]);
+  });
 });
diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts
index 5d4d51439c..10fb6f88db 100644
--- a/src/app/utils/utils.ts
+++ b/src/app/utils/utils.ts
@@ -5,6 +5,7 @@
 import { Router } from "@angular/router";
 import { ConfigurableEnumValue } from "../core/configurable-enum/configurable-enum.interface";
 import { FactoryProvider, Injector } from "@angular/core";
+import { isConfigurableEnum } from "../core/entity-components/entity-subrecord/entity-subrecord/value-accessor";
 
 export function isValidDate(date: any): boolean {
   return (
@@ -26,23 +27,41 @@ export function getParentUrl(router: Router): string {
 }
 
 /**
- * Group an array by the given property into a map of parts of the array.
+ * Group an array by the given property.
  *
  * @param array A simple array to be grouped.
  * @param propertyToGroupBy The key of the property in the elements by whose value the result is grouped.
+ * @returns an array where the first entry is the value of this group and the second all entries that have this value.
  */
-export function groupBy<T>(
+export function groupBy<T, P extends keyof T>(
   array: T[],
-  propertyToGroupBy: keyof T
-): Map<string, T[]> {
-  return array.reduce(
-    (entryMap, element) =>
-      entryMap.set(element[propertyToGroupBy], [
-        ...(entryMap.get(element[propertyToGroupBy]) || []),
-        element,
-      ]),
-    new Map()
-  );
+  propertyToGroupBy: P
+): [T[P], T[]][] {
+  return array.reduce((allGroups, currentElement) => {
+    const currentValue = currentElement[propertyToGroupBy];
+    let existingGroup = allGroups.find(([group]) =>
+      equals(group, currentValue)
+    );
+    if (!existingGroup) {
+      existingGroup = [currentValue, []];
+      allGroups.push(existingGroup);
+    }
+    existingGroup[1].push(currentElement);
+    return allGroups;
+  }, new Array<[T[P], T[]]>());
+}
+
+/**
+ * Comparing two values for equality that might be different than just object equality
+ * @param a
+ * @param b
+ */
+function equals(a, b): boolean {
+  if (isConfigurableEnum(a) && isConfigurableEnum(b)) {
+    return a.id === b.id;
+  } else {
+    return a === b;
+  }
 }
 
 export function calculateAge(dateOfBirth: Date): number {
diff --git a/src/assets/locale/messages.de.xlf b/src/assets/locale/messages.de.xlf
index c10d81bf91..4a086d39fc 100644
--- a/src/assets/locale/messages.de.xlf
+++ b/src/assets/locale/messages.de.xlf
@@ -1149,15 +1149,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">36</context>
+          <context context-type="linenumber">26</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">593</context>
+          <context context-type="linenumber">526</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">940</context>
+          <context context-type="linenumber">873</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9127604588498960753" datatype="html">
@@ -1411,6 +1411,22 @@
           <context context-type="linenumber">75</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="2468578017924444574" datatype="html">
+        <source>Example form</source>
+        <target state="translated">Beispiel Formular</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="5065162821808701761" datatype="html">
+        <source>This is a form that can be shared as a link or embedded in a website. It can be filled by users without having an account. For example you can let participants self-register their details and just review the records within Aam Digital.</source>
+        <target state="translated">Dieses Formular kann als Link geteilt oder auf einer Webseite eingebunden werden. Nutzer:innen können es ohne einen Account ausfüllen. Zum Beispiel können sich damit interessierte Teilnehmer:innen selbst registrieren und Sie können die Daten in Aam Digital überprüfen.</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">19</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="f215ed23a0b8105ae47ef80cf65fe765631dd94a" datatype="html">
         <source> Submit Form </source>
         <target state="translated"> Abschicken </target>
@@ -1434,7 +1450,7 @@
         <target state="translated">Formular erfolgreich übermittelt</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/public-form/public-form.component.ts</context>
-          <context context-type="linenumber">58</context>
+          <context context-type="linenumber">62</context>
         </context-group>
       </trans-unit>
       <trans-unit id="339729126805226016" datatype="html">
@@ -1585,7 +1601,7 @@
         <target state="translated">Neue Daten importieren?</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">75</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1690350829788615736" datatype="html">
@@ -1595,7 +1611,7 @@
       Dadurch werden <x id="PH" equiv-text="csvFile.data.length"/> Einträge aus der Datei importiert.</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">77</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5345022420402242415" datatype="html">
@@ -1603,7 +1619,7 @@
         <target state="translated"><x id="PH" equiv-text="refText"/>Alle existierende Einträge mit der TransactionID: '<x id="PH_1" equiv-text="importMeta.transactionId"/>' werden gelöscht!</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">79</context>
+          <context context-type="linenumber">80</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4fd611f679282abb73122b03bfed3724dba9b6bf" datatype="html">
@@ -1900,14 +1916,34 @@
           <context context-type="linenumber">113</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="22ee8aecedfcdfcd3313bc6c5f0e80175bfafd58" datatype="html">
+        <source> Select displayed locations
+</source>
+        <target state="translated"> Wähle angezeigte Orte aus
+</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">1,3</context>
+        </context-group>
+        <note priority="1" from="description">Title of popup to select locations that are displayed in the map</note>
+      </trans-unit>
+      <trans-unit id="c2d0ac9f528bbd5f53fd34269fde8b59e029621b" datatype="html">
+        <source>Apply</source>
+        <target state="translated">Anwenden</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+        <note priority="1" from="description">Button for closing popup and applying changes</note>
+      </trans-unit>
       <trans-unit id="2549737213024136740" datatype="html">
-        <source><x id="PH" equiv-text="res"/> km</source>
+        <source><x id="PH" equiv-text="closest"/> km</source>
         <target state="translated"><x id="PH" equiv-text="res"/> km</target>
         <note priority="1" from="description">e.g. 5 km</note>
         <note priority="1" from="meaning">distance with unit</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/location/view-distance/view-distance.component.ts</context>
-          <context context-type="linenumber">73</context>
+          <context context-type="linenumber">65</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4bc0107bf7dcdac8c02c5ced13ad79c23c253148" datatype="html">
@@ -1922,11 +1958,11 @@
       <trans-unit id="a4cdca73d44b64c6cfa677e10047ccd7e4a41e2a" datatype="html">
         <source> Select <x id="INTERPOLATION" equiv-text="{{ side.entityType?.label }}"/> </source>
         <target state="translated"><x id="INTERPOLATION" equiv-text="{{ side.entityType.label }}"/> auswählen </target>
+        <note priority="1" from="description">header of section with entities available for selection</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.html</context>
-          <context context-type="linenumber">55,56</context>
+          <context context-type="linenumber">54</context>
         </context-group>
-        <note priority="1" from="description">header of section with entities available for selection</note>
       </trans-unit>
       <trans-unit id="4566094167890982095" datatype="html">
         <source>create matching</source>
@@ -1934,7 +1970,7 @@
         <note priority="1" from="description">Matching button label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">85</context>
+          <context context-type="linenumber">91</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1779552786277618671" datatype="html">
@@ -1943,7 +1979,7 @@
         <note priority="1" from="description">Matching View column name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">273</context>
+          <context context-type="linenumber">312</context>
         </context-group>
       </trans-unit>
       <trans-unit id="54fdb618c658224c6fbd4e10a947f91ea7611913" datatype="html">
@@ -2004,20 +2040,20 @@
       <trans-unit id="1237640232293738415" datatype="html">
         <source>Aam Digital - DEMO (automatically generated data)</source>
         <target state="translated">Aam Digital - DEMO (automatisch generierte Daten)</target>
+        <note priority="1" from="description">Page title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">22</context>
+          <context context-type="linenumber">12</context>
         </context-group>
-        <note priority="1" from="description">Page title</note>
       </trans-unit>
       <trans-unit id="6570363013146073520" datatype="html">
         <source>Dashboard</source>
         <target state="translated">Dashboard</target>
+        <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">31</context>
+          <context context-type="linenumber">21</context>
         </context-group>
-        <note priority="1" from="description">Menu item</note>
       </trans-unit>
       <trans-unit id="7026624912846603653" datatype="html">
         <source>Schools</source>
@@ -2029,11 +2065,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">41</context>
+          <context context-type="linenumber">31</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">409</context>
+          <context context-type="linenumber">342</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4817207543436133742" datatype="html">
@@ -2042,25 +2078,25 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">46</context>
+          <context context-type="linenumber">36</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">691</context>
+          <context context-type="linenumber">624</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6904866445262015585" datatype="html">
         <source>Tasks</source>
         <target state="translated">Aufgaben</target>
+        <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">56</context>
+          <context context-type="linenumber">46</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/todos/model/todo.ts</context>
           <context context-type="linenumber">32</context>
         </context-group>
-        <note priority="1" from="description">Menu item</note>
       </trans-unit>
       <trans-unit id="5041354590769758251" datatype="html">
         <source>Admin</source>
@@ -2068,7 +2104,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">51</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1071721880474488785" datatype="html">
@@ -2077,7 +2113,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">66</context>
+          <context context-type="linenumber">56</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4555457172864212828" datatype="html">
@@ -2086,7 +2122,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">71</context>
+          <context context-type="linenumber">61</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/user/user.ts</context>
@@ -2099,7 +2135,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">66</context>
         </context-group>
       </trans-unit>
       <trans-unit id="657496228690855434" datatype="html">
@@ -2108,7 +2144,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">81</context>
+          <context context-type="linenumber">71</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7911416166208830577" datatype="html">
@@ -2117,61 +2153,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">86</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="6691439998827511114" datatype="html">
-        <source>OK (copy with us)</source>
-        <target state="translated">OK (Kopie eingereicht)</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">109</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7233426447535381432" datatype="html">
-        <source>OK (copy needed for us)</source>
-        <target state="translated">OK (Kopie fehlt noch)</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">114</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7892131631225988542" datatype="html">
-        <source>needs correction</source>
-        <target state="translated">benötigt Korrektur</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">119</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7543632648034985521" datatype="html">
-        <source>applied</source>
-        <target state="translated">beantragt</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">124</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="2743017402754335830" datatype="html">
-        <source>doesn't have</source>
-        <target state="translated">nicht vorhanden</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">129</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="6322199449220989816" datatype="html">
-        <source>not eligible</source>
-        <target state="translated">nicht berechtigt</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">134</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2935152225387412918" datatype="html">
@@ -2181,7 +2163,7 @@
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">163</context>
+          <context context-type="linenumber">91</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2111561618518210212" datatype="html">
@@ -2191,16 +2173,26 @@
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">168</context>
+          <context context-type="linenumber">96</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="7749314122565677607" datatype="html">
+        <source>Public Registration Form</source>
+        <target state="translated">Öffentliches Regstrierungsformular</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
+          <context context-type="linenumber">101</context>
+        </context-group>
+        <note priority="1" from="description">open public form</note>
+        <note priority="1" from="meaning">Dashboard shortcut widget</note>
+      </trans-unit>
       <trans-unit id="2329598843423950672" datatype="html">
         <source>last week</source>
         <target state="translated">letzte Woche</target>
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">215</context>
+          <context context-type="linenumber">148</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6802197953477344728" datatype="html">
@@ -2209,7 +2201,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">222</context>
+          <context context-type="linenumber">155</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8955128195791312286" datatype="html">
@@ -2218,7 +2210,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">208</context>
+          <context context-type="linenumber">141</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1813769493203572551" datatype="html">
@@ -2227,7 +2219,7 @@
         <note priority="1" from="description">Title for notes overview</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">244</context>
+          <context context-type="linenumber">177</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2798807656507405918" datatype="html">
@@ -2236,11 +2228,11 @@
         <note priority="1" from="description">Translated name of default column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">254</context>
+          <context context-type="linenumber">187</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">258</context>
+          <context context-type="linenumber">191</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1002165214775409029" datatype="html">
@@ -2249,19 +2241,19 @@
         <note priority="1" from="description">Translated name of mobile column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">255</context>
+          <context context-type="linenumber">188</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">268</context>
+          <context context-type="linenumber">201</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">525</context>
+          <context context-type="linenumber">458</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">579</context>
+          <context context-type="linenumber">512</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6309181788204949218" datatype="html">
@@ -2270,7 +2262,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">355</context>
+          <context context-type="linenumber">288</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8878700331247603166" datatype="html">
@@ -2279,7 +2271,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">374</context>
+          <context context-type="linenumber">307</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7910125616758063638" datatype="html">
@@ -2288,7 +2280,7 @@
         <note priority="1" from="description">Filename of markdown help page (make sure the filename you enter as a translation actually exists on the server!)</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">388</context>
+          <context context-type="linenumber">321</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3686284950598311784" datatype="html">
@@ -2297,7 +2289,7 @@
         <note priority="1" from="description">Label for private schools filter - true case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">410</context>
+          <context context-type="linenumber">343</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6264204010127975648" datatype="html">
@@ -2306,7 +2298,7 @@
         <note priority="1" from="description">Label for private schools filter - false case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">411</context>
+          <context context-type="linenumber">344</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8781767917622107949" datatype="html">
@@ -2315,15 +2307,15 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">423</context>
+          <context context-type="linenumber">356</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">615</context>
+          <context context-type="linenumber">548</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">798</context>
+          <context context-type="linenumber">731</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2562531496877210322" datatype="html">
@@ -2332,7 +2324,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">451</context>
+          <context context-type="linenumber">384</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2309808536212982229" datatype="html">
@@ -2341,7 +2333,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">460</context>
+          <context context-type="linenumber">393</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1130652265542107236" datatype="html">
@@ -2350,7 +2342,7 @@
         <note priority="1" from="description">Column label for age of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">482</context>
+          <context context-type="linenumber">415</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8539945035792949854" datatype="html">
@@ -2359,7 +2351,7 @@
         <note priority="1" from="description">Column label for school attendance of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">500</context>
+          <context context-type="linenumber">433</context>
         </context-group>
       </trans-unit>
       <trans-unit id="249709194006018190" datatype="html">
@@ -2368,7 +2360,7 @@
         <note priority="1" from="description">Column label for coaching attendance of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">509</context>
+          <context context-type="linenumber">442</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7691138136265271231" datatype="html">
@@ -2377,11 +2369,11 @@
         <note priority="1" from="description">Translated name of default column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">524</context>
+          <context context-type="linenumber">457</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">528</context>
+          <context context-type="linenumber">461</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3007651244935433751" datatype="html">
@@ -2390,7 +2382,7 @@
         <note priority="1" from="description">Column group name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">541</context>
+          <context context-type="linenumber">474</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2041675390931385838" datatype="html">
@@ -2399,11 +2391,11 @@
         <note priority="1" from="description">Column group name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">564</context>
+          <context context-type="linenumber">497</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">713</context>
+          <context context-type="linenumber">646</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8204176479746810612" datatype="html">
@@ -2412,7 +2404,7 @@
         <note priority="1" from="description">Active children filter label - true case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">594</context>
+          <context context-type="linenumber">527</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1859131936150262113" datatype="html">
@@ -2421,7 +2413,7 @@
         <note priority="1" from="description">Active children filter label - false case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">595</context>
+          <context context-type="linenumber">528</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3465962430409924123" datatype="html">
@@ -2430,7 +2422,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">643</context>
+          <context context-type="linenumber">576</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2332815950113444124" datatype="html">
@@ -2439,7 +2431,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">644</context>
+          <context context-type="linenumber">577</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4030110180919534153" datatype="html">
@@ -2448,7 +2440,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">645</context>
+          <context context-type="linenumber">578</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8020402390620783618" datatype="html">
@@ -2457,7 +2449,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">652</context>
+          <context context-type="linenumber">585</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3222319974146977156" datatype="html">
@@ -2466,7 +2458,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">655</context>
+          <context context-type="linenumber">588</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3424557526203996215" datatype="html">
@@ -2475,7 +2467,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">675</context>
+          <context context-type="linenumber">608</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5318391578409221199" datatype="html">
@@ -2484,17 +2476,17 @@
         <note priority="1" from="description">Child details section title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">679</context>
+          <context context-type="linenumber">612</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6315228090956745353" datatype="html">
         <source>Notes &amp; Tasks</source>
         <target state="translated">Notizen &amp; Aufgaben</target>
+        <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">700</context>
+          <context context-type="linenumber">633</context>
         </context-group>
-        <note priority="1" from="description">Panel title</note>
       </trans-unit>
       <trans-unit id="6935402381663920930" datatype="html">
         <source>Height &amp; Weight Tracking</source>
@@ -2502,7 +2494,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">726</context>
+          <context context-type="linenumber">659</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5035769065128916110" datatype="html">
@@ -2511,7 +2503,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">732</context>
+          <context context-type="linenumber">665</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3778494590546555291" datatype="html">
@@ -2520,7 +2512,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">741</context>
+          <context context-type="linenumber">674</context>
         </context-group>
       </trans-unit>
       <trans-unit id="134488380944428715" datatype="html">
@@ -2538,7 +2530,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">828</context>
+          <context context-type="linenumber">761</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4310513583397103775" datatype="html">
@@ -2547,7 +2539,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">843</context>
+          <context context-type="linenumber">776</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3930255838623626363" datatype="html">
@@ -2556,7 +2548,7 @@
         <note priority="1" from="description">Label of report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">847</context>
+          <context context-type="linenumber">780</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6949266734896136969" datatype="html">
@@ -2565,7 +2557,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">852</context>
+          <context context-type="linenumber">785</context>
         </context-group>
       </trans-unit>
       <trans-unit id="619224002419753333" datatype="html">
@@ -2574,7 +2566,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">855</context>
+          <context context-type="linenumber">788</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9152633939608005299" datatype="html">
@@ -2583,7 +2575,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">859</context>
+          <context context-type="linenumber">792</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5107681519279730939" datatype="html">
@@ -2592,7 +2584,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">864</context>
+          <context context-type="linenumber">797</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1157409611503106802" datatype="html">
@@ -2601,7 +2593,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">868</context>
+          <context context-type="linenumber">801</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6819111098994891506" datatype="html">
@@ -2610,7 +2602,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">873</context>
+          <context context-type="linenumber">806</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7965975699466463064" datatype="html">
@@ -2619,7 +2611,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">881</context>
+          <context context-type="linenumber">814</context>
         </context-group>
       </trans-unit>
       <trans-unit id="691530937011261622" datatype="html">
@@ -2628,7 +2620,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">898</context>
+          <context context-type="linenumber">831</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5910775518786454299" datatype="html">
@@ -2637,15 +2629,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">5</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">6</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">141</context>
+          <context context-type="linenumber">4</context>
         </context-group>
       </trans-unit>
       <trans-unit id="449116330532787155" datatype="html">
@@ -2654,11 +2638,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">7</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">145</context>
+          <context context-type="linenumber">5</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1264264408873477158" datatype="html">
@@ -2667,11 +2647,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">8</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">149</context>
+          <context context-type="linenumber">6</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8056881763442606556" datatype="html">
@@ -2763,7 +2739,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">758</context>
+          <context context-type="linenumber">691</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8194554728555410336" datatype="html">
@@ -2776,7 +2752,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1021</context>
+          <context context-type="linenumber">954</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4663189107944878630" datatype="html">
@@ -2898,7 +2874,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">51</context>
+          <context context-type="linenumber">41</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2502008676398493538" datatype="html">
@@ -3019,15 +2995,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">477</context>
+          <context context-type="linenumber">410</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">909</context>
+          <context context-type="linenumber">842</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">993</context>
+          <context context-type="linenumber">926</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4540981870704644649" datatype="html">
@@ -3052,11 +3028,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">412</context>
+          <context context-type="linenumber">345</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">596</context>
+          <context context-type="linenumber">529</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-list/filter-generator.service.ts</context>
@@ -3137,7 +3113,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1035</context>
+          <context context-type="linenumber">968</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7508893828342265603" datatype="html">
@@ -3401,7 +3377,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">488</context>
+          <context context-type="linenumber">421</context>
         </context-group>
       </trans-unit>
       <trans-unit id="888341446683346521" datatype="html">
@@ -3554,11 +3530,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">493</context>
+          <context context-type="linenumber">426</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">604</context>
+          <context context-type="linenumber">537</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2ec188e825960640e8275e39da1e285f3c3507ca" datatype="html">
@@ -3682,11 +3658,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">813</context>
+          <context context-type="linenumber">746</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">891</context>
+          <context context-type="linenumber">824</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5944812089887969249" datatype="html">
@@ -3788,11 +3764,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">280</context>
+          <context context-type="linenumber">213</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">554</context>
+          <context context-type="linenumber">487</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5676017837022350033" datatype="html">
@@ -3841,7 +3817,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">939</context>
+          <context context-type="linenumber">872</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5656406101358002984" datatype="html">
@@ -3854,7 +3830,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">518</context>
+          <context context-type="linenumber">451</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7290235740931562779" datatype="html">
@@ -3876,7 +3852,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">886</context>
+          <context context-type="linenumber">819</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1669277742108379782" datatype="html">
@@ -4089,11 +4065,11 @@
         <note priority="1" from="description">Label for the address of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">946</context>
+          <context context-type="linenumber">879</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1014</context>
+          <context context-type="linenumber">947</context>
         </context-group>
       </trans-unit>
       <trans-unit id="326998402864900242" datatype="html">
@@ -4102,7 +4078,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">953</context>
+          <context context-type="linenumber">886</context>
         </context-group>
       </trans-unit>
       <trans-unit id="744862547206313189" datatype="html">
@@ -4111,7 +4087,7 @@
         <note priority="1" from="description">Label for the religion of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">960</context>
+          <context context-type="linenumber">893</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3701890980067993407" datatype="html">
@@ -4120,7 +4096,7 @@
         <note priority="1" from="description">Label for the mother tongue of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">967</context>
+          <context context-type="linenumber">900</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5917260200950510520" datatype="html">
@@ -4129,7 +4105,7 @@
         <note priority="1" from="description">Tooltip description for the mother tongue of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">968</context>
+          <context context-type="linenumber">901</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8073272694481457912" datatype="html">
@@ -4138,7 +4114,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">975</context>
+          <context context-type="linenumber">908</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6479918860876850014" datatype="html">
@@ -4147,7 +4123,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">982</context>
+          <context context-type="linenumber">915</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6187083324285537481" datatype="html">
@@ -4156,7 +4132,7 @@
         <note priority="1" from="description">Label for if a school is a private school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1000</context>
+          <context context-type="linenumber">933</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2826581353496868063" datatype="html">
@@ -4165,7 +4141,7 @@
         <note priority="1" from="description">Label for the language of a school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1007</context>
+          <context context-type="linenumber">940</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1350851235390292372" datatype="html">
@@ -4174,7 +4150,7 @@
         <note priority="1" from="description">Label for the timing of a school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1028</context>
+          <context context-type="linenumber">961</context>
         </context-group>
       </trans-unit>
       <trans-unit id="491478187387824276" datatype="html">
@@ -4183,7 +4159,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1047</context>
+          <context context-type="linenumber">980</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5554741364017709807" datatype="html">
@@ -4192,7 +4168,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1048</context>
+          <context context-type="linenumber">981</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9160848464711606837" datatype="html">
@@ -4201,7 +4177,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1056</context>
+          <context context-type="linenumber">989</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6624198636467931210" datatype="html">
@@ -4210,7 +4186,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1057</context>
+          <context context-type="linenumber">990</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7677901685281516160" datatype="html">
@@ -4219,7 +4195,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1065</context>
+          <context context-type="linenumber">998</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6491820978569500382" datatype="html">
@@ -4228,7 +4204,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1066</context>
+          <context context-type="linenumber">999</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6408161334810687727" datatype="html">
@@ -4237,7 +4213,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1074</context>
+          <context context-type="linenumber">1007</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8707102520644001588" datatype="html">
@@ -4246,7 +4222,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1075</context>
+          <context context-type="linenumber">1008</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3032098280590391265" datatype="html">
@@ -4255,7 +4231,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1083</context>
+          <context context-type="linenumber">1016</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5793656352870786735" datatype="html">
@@ -4264,7 +4240,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1084</context>
+          <context context-type="linenumber">1017</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7922989125096435449" datatype="html">
@@ -4273,7 +4249,7 @@
         <note priority="1" from="description">Label of user phone</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1095</context>
+          <context context-type="linenumber">1028</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8808439168445495463" datatype="html">
@@ -4288,11 +4264,22 @@
       <trans-unit id="5175452770249467211" datatype="html">
         <source>[invalid option]</source>
         <target state="translated">[ungültige Option]</target>
+        <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">53</context>
         </context-group>
-        <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
+      </trans-unit>
+      <trans-unit id="f02662520a5f60c9da28cdebbe9c17f34b4439c8" datatype="html">
+        <source> Edit dropdown options
+</source>
+        <target state="translated"> Bearbeite Auswahl-Optionen
+</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">2,3</context>
+        </context-group>
+        <note priority="1" from="description">title of dropdown options popup dialog</note>
       </trans-unit>
       <trans-unit id="3448462145758383019" datatype="html">
         <source>Total</source>
@@ -4300,7 +4287,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">913</context>
+          <context context-type="linenumber">846</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6522877977962061564" datatype="html">
@@ -4309,7 +4296,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">917</context>
+          <context context-type="linenumber">850</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5639297788212274461" datatype="html">
@@ -4318,7 +4305,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">921</context>
+          <context context-type="linenumber">854</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3973270758175692787" datatype="html">
@@ -4327,7 +4314,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">925</context>
+          <context context-type="linenumber">858</context>
         </context-group>
       </trans-unit>
       <trans-unit id="f10d5109ec72341c3a043905f31ccbfdd4c59923" datatype="html">
@@ -4525,7 +4512,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">61</context>
         </context-group>
       </trans-unit>
       <trans-unit id="e67bebb0291cbe76b190e83225878cdd3a8a6df6" datatype="html">
@@ -4715,12 +4702,8 @@
         <target state="translated">Dieses Feld ist erforderlich</target>
         <note priority="1" from="description">Error message for any input</note>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html</context>
-          <context context-type="linenumber">21</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html</context>
-          <context context-type="linenumber">62</context>
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html</context>
+          <context context-type="linenumber">57</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-text-with-autocomplete/edit-text-with-autocomplete.component.html</context>
@@ -4731,6 +4714,14 @@
           <context context-type="linenumber">23</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="5432260252143962374" datatype="html">
+        <source>Create new option</source>
+        <target state="translated">Erstelle eine neue Option</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts</context>
+          <context context-type="linenumber">188</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="8998179362936748717" datatype="html">
         <source>OK</source>
         <target state="translated">OK</target>
@@ -4802,16 +4793,6 @@
           <context context-type="linenumber">16</context>
         </context-group>
       </trans-unit>
-      <trans-unit id="4668912478133095886" datatype="html">
-        <source>Select <x id="PH" equiv-text="config.formFieldConfig.label || config.propertySchema?.label"/></source>
-        <target state="translated"><x id="PH" equiv-text="this.label"/> auswählen</target>
-        <note priority="1" from="description">context Select User</note>
-        <note priority="1" from="meaning">Placeholder for input to set an entity</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts</context>
-          <context context-type="linenumber">62</context>
-        </context-group>
-      </trans-unit>
       <trans-unit id="1f05f87b0643c90a090870fcfdb99d888b556f23" datatype="html">
         <source>Creating new record.</source>
         <target state="translated">Erstelle neuen Eintrag.</target>
@@ -4897,7 +4878,7 @@
         <target state="translated">Daten vorbereiten (indizieren)</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity/database-indexing/database-indexing.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">59</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7922101943521622219" datatype="html">
@@ -4929,18 +4910,50 @@
       <trans-unit id="396111f33ef48eef016cd0eedb7be2ef882d7430" datatype="html">
         <source> Close </source>
         <target state="translated">Schließen</target>
-        <note priority="1" from="description">Generic close button</note>
+        <note priority="1" from="description">Close popup</note>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">34</context>
+        </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.html</context>
           <context context-type="linenumber">54</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="1729165161001518929" datatype="html">
+        <source>Are you sure that you want to delete the option <x id="PH" equiv-text="value.label"/>?</source>
+        <target state="translated">Sind Sie sicher, dass Sie die Option <x id="PH" equiv-text="value.label"/> löschen wollen?</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">68</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="6524829042498938726" datatype="html">
+        <source> The option is still used in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> records. If deleted, the records will not be lost but specially marked</source>
+        <target state="translated"> Die Option wird noch in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> Einträgen genutzt. Falls Sie die Option dennoch löschen, werden die Einträge nicht gelöscht aber gesondert markiert.</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">70,72</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="3767101596108414700" datatype="html">
+        <source>Delete option</source>
+        <target state="translated">Option Löschen</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">75</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="2566001175328025157" datatype="html">
         <source>No Changelog Available</source>
         <target state="translated">Kein Changelog verfügbar</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.ts</context>
-          <context context-type="linenumber">87</context>
+          <context context-type="linenumber">89</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7795087408392131030" datatype="html">
@@ -4948,7 +4961,7 @@
         <target state="translated">Neuste Änderungen konnten nicht geladen werden: <x id="PH" equiv-text="error"/></target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/latest-changes.service.ts</context>
-          <context context-type="linenumber">131</context>
+          <context context-type="linenumber">121</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2896181875024748753" datatype="html">
@@ -5181,7 +5194,7 @@
         <note priority="1" from="description">Navigate to user profile page</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">84</context>
+          <context context-type="linenumber">85</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8bf270adb01cb85e970eb6465bc3167bb04598de" datatype="html">
@@ -5190,7 +5203,7 @@
         <note priority="1" from="description">Sign out of the app</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">89</context>
+          <context context-type="linenumber">90</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1265dade629b76077f2ee5866dc1ed2f8cf03860" datatype="html">
@@ -5461,7 +5474,7 @@
         <target state="translated">Import abgeschlossen</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">59</context>
+          <context context-type="linenumber">60</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1906738132039774080" datatype="html">
diff --git a/src/assets/locale/messages.fr.xlf b/src/assets/locale/messages.fr.xlf
index bb97a4b3cb..a9be18cbac 100644
--- a/src/assets/locale/messages.fr.xlf
+++ b/src/assets/locale/messages.fr.xlf
@@ -85,7 +85,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1035</context>
+          <context context-type="linenumber">968</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7508893828342265603" datatype="html">
@@ -244,7 +244,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">886</context>
+          <context context-type="linenumber">819</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1669277742108379782" datatype="html">
@@ -741,11 +741,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">493</context>
+          <context context-type="linenumber">426</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">604</context>
+          <context context-type="linenumber">537</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2ec188e825960640e8275e39da1e285f3c3507ca" datatype="html">
@@ -869,11 +869,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">813</context>
+          <context context-type="linenumber">746</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">891</context>
+          <context context-type="linenumber">824</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5944812089887969249" datatype="html">
@@ -956,11 +956,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">412</context>
+          <context context-type="linenumber">345</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">596</context>
+          <context context-type="linenumber">529</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-list/filter-generator.service.ts</context>
@@ -1045,7 +1045,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">758</context>
+          <context context-type="linenumber">691</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5910775518786454299" datatype="html">
@@ -1054,15 +1054,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">5</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">6</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">141</context>
+          <context context-type="linenumber">4</context>
         </context-group>
       </trans-unit>
       <trans-unit id="449116330532787155" datatype="html">
@@ -1071,11 +1063,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">7</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">145</context>
+          <context context-type="linenumber">5</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1264264408873477158" datatype="html">
@@ -1084,11 +1072,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">8</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">149</context>
+          <context context-type="linenumber">6</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8056881763442606556" datatype="html">
@@ -1180,15 +1164,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">477</context>
+          <context context-type="linenumber">410</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">909</context>
+          <context context-type="linenumber">842</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">993</context>
+          <context context-type="linenumber">926</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4540981870704644649" datatype="html">
@@ -1268,11 +1252,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">280</context>
+          <context context-type="linenumber">213</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">554</context>
+          <context context-type="linenumber">487</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5676017837022350033" datatype="html">
@@ -1321,7 +1305,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1021</context>
+          <context context-type="linenumber">954</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3933358723756013068" datatype="html">
@@ -1334,7 +1318,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">939</context>
+          <context context-type="linenumber">872</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4378796785985219718" datatype="html">
@@ -1347,7 +1331,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">488</context>
+          <context context-type="linenumber">421</context>
         </context-group>
       </trans-unit>
       <trans-unit id="888341446683346521" datatype="html">
@@ -1641,7 +1625,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">518</context>
+          <context context-type="linenumber">451</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7290235740931562779" datatype="html">
@@ -2201,15 +2185,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">36</context>
+          <context context-type="linenumber">26</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">593</context>
+          <context context-type="linenumber">526</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">940</context>
+          <context context-type="linenumber">873</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9127604588498960753" datatype="html">
@@ -2239,7 +2223,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">51</context>
+          <context context-type="linenumber">41</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2502008676398493538" datatype="html">
@@ -2647,6 +2631,22 @@
           <context context-type="linenumber">75</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="2468578017924444574" datatype="html">
+        <source>Example form</source>
+        <target state="new">Example form</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="5065162821808701761" datatype="html">
+        <source>This is a form that can be shared as a link or embedded in a website. It can be filled by users without having an account. For example you can let participants self-register their details and just review the records within Aam Digital.</source>
+        <target state="new">This is a form that can be shared as a link or embedded in a website. It can be filled by users without having an account. For example you can let participants self-register their details and just review the records within Aam Digital.</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">19</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="f215ed23a0b8105ae47ef80cf65fe765631dd94a" datatype="html">
         <source> Submit Form </source>
         <target state="new"> Submit Form </target>
@@ -2670,7 +2670,7 @@
         <target state="new">Successfully submitted form</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/public-form/public-form.component.ts</context>
-          <context context-type="linenumber">58</context>
+          <context context-type="linenumber">62</context>
         </context-group>
       </trans-unit>
       <trans-unit id="339729126805226016" datatype="html">
@@ -3011,11 +3011,11 @@
       <trans-unit id="1237640232293738415" datatype="html">
         <source>Aam Digital - DEMO (automatically generated data)</source>
         <target state="new">Aam Digital - DEMO (automatically generated data)</target>
+        <note priority="1" from="description">Page title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">22</context>
+          <context context-type="linenumber">12</context>
         </context-group>
-        <note priority="1" from="description">Page title</note>
       </trans-unit>
       <trans-unit id="6570363013146073520" datatype="html">
         <source>Dashboard</source>
@@ -3023,7 +3023,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">31</context>
+          <context context-type="linenumber">21</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7026624912846603653" datatype="html">
@@ -3036,11 +3036,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">41</context>
+          <context context-type="linenumber">31</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">409</context>
+          <context context-type="linenumber">342</context>
         </context-group>
       </trans-unit>
       <trans-unit id="134488380944428715" datatype="html">
@@ -3058,7 +3058,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">51</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1071721880474488785" datatype="html">
@@ -3067,7 +3067,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">66</context>
+          <context context-type="linenumber">56</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4555457172864212828" datatype="html">
@@ -3076,7 +3076,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">71</context>
+          <context context-type="linenumber">61</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/user/user.ts</context>
@@ -3089,7 +3089,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">66</context>
         </context-group>
       </trans-unit>
       <trans-unit id="657496228690855434" datatype="html">
@@ -3098,7 +3098,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">81</context>
+          <context context-type="linenumber">71</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7911416166208830577" datatype="html">
@@ -3107,61 +3107,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">86</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="6691439998827511114" datatype="html">
-        <source>OK (copy with us)</source>
-        <target state="translated">OK (copie avec nous)</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">109</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7233426447535381432" datatype="html">
-        <source>OK (copy needed for us)</source>
-        <target state="translated">OK (nous avons besoin de la copie)</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">114</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7892131631225988542" datatype="html">
-        <source>needs correction</source>
-        <target state="translated">besoin de correction</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">119</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7543632648034985521" datatype="html">
-        <source>applied</source>
-        <target state="translated">Remis</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">124</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="2743017402754335830" datatype="html">
-        <source>doesn't have</source>
-        <target state="translated">n'a pas</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">129</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="6322199449220989816" datatype="html">
-        <source>not eligible</source>
-        <target state="translated">non éligible</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">134</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2935152225387412918" datatype="html">
@@ -3171,7 +3117,7 @@
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">163</context>
+          <context context-type="linenumber">91</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2111561618518210212" datatype="html">
@@ -3181,8 +3127,18 @@
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">168</context>
+          <context context-type="linenumber">96</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="7749314122565677607" datatype="html">
+        <source>Public Registration Form</source>
+        <target state="new">Public Registration Form</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
+          <context context-type="linenumber">101</context>
         </context-group>
+        <note priority="1" from="description">open public form</note>
+        <note priority="1" from="meaning">Dashboard shortcut widget</note>
       </trans-unit>
       <trans-unit id="2329598843423950672" datatype="html">
         <source>last week</source>
@@ -3190,7 +3146,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">215</context>
+          <context context-type="linenumber">148</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6802197953477344728" datatype="html">
@@ -3199,7 +3155,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">222</context>
+          <context context-type="linenumber">155</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8955128195791312286" datatype="html">
@@ -3208,7 +3164,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">208</context>
+          <context context-type="linenumber">141</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1813769493203572551" datatype="html">
@@ -3217,7 +3173,7 @@
         <note priority="1" from="description">Title for notes overview</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">244</context>
+          <context context-type="linenumber">177</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2798807656507405918" datatype="html">
@@ -3226,11 +3182,11 @@
         <note priority="1" from="description">Translated name of default column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">254</context>
+          <context context-type="linenumber">187</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">258</context>
+          <context context-type="linenumber">191</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1002165214775409029" datatype="html">
@@ -3239,19 +3195,19 @@
         <note priority="1" from="description">Translated name of mobile column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">255</context>
+          <context context-type="linenumber">188</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">268</context>
+          <context context-type="linenumber">201</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">525</context>
+          <context context-type="linenumber">458</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">579</context>
+          <context context-type="linenumber">512</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6309181788204949218" datatype="html">
@@ -3260,7 +3216,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">355</context>
+          <context context-type="linenumber">288</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8878700331247603166" datatype="html">
@@ -3269,7 +3225,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">374</context>
+          <context context-type="linenumber">307</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7910125616758063638" datatype="html">
@@ -3278,7 +3234,7 @@
         <note priority="1" from="description">Filename of markdown help page (make sure the filename you enter as a translation actually exists on the server!)</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">388</context>
+          <context context-type="linenumber">321</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3686284950598311784" datatype="html">
@@ -3287,7 +3243,7 @@
         <note priority="1" from="description">Label for private schools filter - true case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">410</context>
+          <context context-type="linenumber">343</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6264204010127975648" datatype="html">
@@ -3296,7 +3252,7 @@
         <note priority="1" from="description">Label for private schools filter - false case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">411</context>
+          <context context-type="linenumber">344</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6187083324285537481" datatype="html">
@@ -3305,7 +3261,7 @@
         <note priority="1" from="description">Label for if a school is a private school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1000</context>
+          <context context-type="linenumber">933</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8781767917622107949" datatype="html">
@@ -3314,15 +3270,15 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">423</context>
+          <context context-type="linenumber">356</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">615</context>
+          <context context-type="linenumber">548</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">798</context>
+          <context context-type="linenumber">731</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2562531496877210322" datatype="html">
@@ -3331,7 +3287,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">451</context>
+          <context context-type="linenumber">384</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2309808536212982229" datatype="html">
@@ -3340,7 +3296,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">460</context>
+          <context context-type="linenumber">393</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1130652265542107236" datatype="html">
@@ -3349,7 +3305,7 @@
         <note priority="1" from="description">Column label for age of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">482</context>
+          <context context-type="linenumber">415</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8539945035792949854" datatype="html">
@@ -3358,7 +3314,7 @@
         <note priority="1" from="description">Column label for school attendance of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">500</context>
+          <context context-type="linenumber">433</context>
         </context-group>
       </trans-unit>
       <trans-unit id="249709194006018190" datatype="html">
@@ -3367,7 +3323,7 @@
         <note priority="1" from="description">Column label for coaching attendance of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">509</context>
+          <context context-type="linenumber">442</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3007651244935433751" datatype="html">
@@ -3376,7 +3332,7 @@
         <note priority="1" from="description">Column group name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">541</context>
+          <context context-type="linenumber">474</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7691138136265271231" datatype="html">
@@ -3385,11 +3341,11 @@
         <note priority="1" from="description">Translated name of default column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">524</context>
+          <context context-type="linenumber">457</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">528</context>
+          <context context-type="linenumber">461</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2041675390931385838" datatype="html">
@@ -3398,11 +3354,11 @@
         <note priority="1" from="description">Column group name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">564</context>
+          <context context-type="linenumber">497</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">713</context>
+          <context context-type="linenumber">646</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8204176479746810612" datatype="html">
@@ -3411,7 +3367,7 @@
         <note priority="1" from="description">Active children filter label - true case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">594</context>
+          <context context-type="linenumber">527</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1859131936150262113" datatype="html">
@@ -3420,7 +3376,7 @@
         <note priority="1" from="description">Active children filter label - false case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">595</context>
+          <context context-type="linenumber">528</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3465962430409924123" datatype="html">
@@ -3429,7 +3385,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">643</context>
+          <context context-type="linenumber">576</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2332815950113444124" datatype="html">
@@ -3438,7 +3394,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">644</context>
+          <context context-type="linenumber">577</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4030110180919534153" datatype="html">
@@ -3447,7 +3403,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">645</context>
+          <context context-type="linenumber">578</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8020402390620783618" datatype="html">
@@ -3456,7 +3412,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">652</context>
+          <context context-type="linenumber">585</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3222319974146977156" datatype="html">
@@ -3465,7 +3421,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">655</context>
+          <context context-type="linenumber">588</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3424557526203996215" datatype="html">
@@ -3474,7 +3430,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">675</context>
+          <context context-type="linenumber">608</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5318391578409221199" datatype="html">
@@ -3483,17 +3439,17 @@
         <note priority="1" from="description">Child details section title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">679</context>
+          <context context-type="linenumber">612</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6315228090956745353" datatype="html">
         <source>Notes &amp; Tasks</source>
         <target state="new">Notes &amp; Tasks</target>
+        <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">700</context>
+          <context context-type="linenumber">633</context>
         </context-group>
-        <note priority="1" from="description">Panel title</note>
       </trans-unit>
       <trans-unit id="4817207543436133742" datatype="html">
         <source>Attendance</source>
@@ -3501,25 +3457,25 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">46</context>
+          <context context-type="linenumber">36</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">691</context>
+          <context context-type="linenumber">624</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6904866445262015585" datatype="html">
         <source>Tasks</source>
         <target state="new">Tasks</target>
+        <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">56</context>
+          <context context-type="linenumber">46</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/todos/model/todo.ts</context>
           <context context-type="linenumber">32</context>
         </context-group>
-        <note priority="1" from="description">Menu item</note>
       </trans-unit>
       <trans-unit id="6935402381663920930" datatype="html">
         <source>Height &amp; Weight Tracking</source>
@@ -3527,7 +3483,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">726</context>
+          <context context-type="linenumber">659</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5035769065128916110" datatype="html">
@@ -3536,7 +3492,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">732</context>
+          <context context-type="linenumber">665</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3778494590546555291" datatype="html">
@@ -3545,7 +3501,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">741</context>
+          <context context-type="linenumber">674</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6470725856224531255" datatype="html">
@@ -3554,7 +3510,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">828</context>
+          <context context-type="linenumber">761</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4310513583397103775" datatype="html">
@@ -3563,7 +3519,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">843</context>
+          <context context-type="linenumber">776</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3930255838623626363" datatype="html">
@@ -3572,7 +3528,7 @@
         <note priority="1" from="description">Label of report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">847</context>
+          <context context-type="linenumber">780</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6949266734896136969" datatype="html">
@@ -3581,7 +3537,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">852</context>
+          <context context-type="linenumber">785</context>
         </context-group>
       </trans-unit>
       <trans-unit id="619224002419753333" datatype="html">
@@ -3590,7 +3546,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">855</context>
+          <context context-type="linenumber">788</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9152633939608005299" datatype="html">
@@ -3599,7 +3555,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">859</context>
+          <context context-type="linenumber">792</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5107681519279730939" datatype="html">
@@ -3608,7 +3564,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">864</context>
+          <context context-type="linenumber">797</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1157409611503106802" datatype="html">
@@ -3617,7 +3573,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">868</context>
+          <context context-type="linenumber">801</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6819111098994891506" datatype="html">
@@ -3626,7 +3582,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">873</context>
+          <context context-type="linenumber">806</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7965975699466463064" datatype="html">
@@ -3635,7 +3591,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">881</context>
+          <context context-type="linenumber">814</context>
         </context-group>
       </trans-unit>
       <trans-unit id="691530937011261622" datatype="html">
@@ -3644,7 +3600,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">898</context>
+          <context context-type="linenumber">831</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3448462145758383019" datatype="html">
@@ -3653,7 +3609,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">913</context>
+          <context context-type="linenumber">846</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6522877977962061564" datatype="html">
@@ -3662,7 +3618,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">917</context>
+          <context context-type="linenumber">850</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5639297788212274461" datatype="html">
@@ -3671,7 +3627,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">921</context>
+          <context context-type="linenumber">854</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3973270758175692787" datatype="html">
@@ -3680,7 +3636,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">925</context>
+          <context context-type="linenumber">858</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6304432362546770951" datatype="html">
@@ -3689,11 +3645,11 @@
         <note priority="1" from="description">Label for the address of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">946</context>
+          <context context-type="linenumber">879</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1014</context>
+          <context context-type="linenumber">947</context>
         </context-group>
       </trans-unit>
       <trans-unit id="326998402864900242" datatype="html">
@@ -3702,7 +3658,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">953</context>
+          <context context-type="linenumber">886</context>
         </context-group>
       </trans-unit>
       <trans-unit id="744862547206313189" datatype="html">
@@ -3711,7 +3667,7 @@
         <note priority="1" from="description">Label for the religion of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">960</context>
+          <context context-type="linenumber">893</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3701890980067993407" datatype="html">
@@ -3720,7 +3676,7 @@
         <note priority="1" from="description">Label for the mother tongue of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">967</context>
+          <context context-type="linenumber">900</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5917260200950510520" datatype="html">
@@ -3729,7 +3685,7 @@
         <note priority="1" from="description">Tooltip description for the mother tongue of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">968</context>
+          <context context-type="linenumber">901</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8073272694481457912" datatype="html">
@@ -3738,7 +3694,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">975</context>
+          <context context-type="linenumber">908</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6479918860876850014" datatype="html">
@@ -3747,7 +3703,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">982</context>
+          <context context-type="linenumber">915</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2826581353496868063" datatype="html">
@@ -3756,7 +3712,7 @@
         <note priority="1" from="description">Label for the language of a school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1007</context>
+          <context context-type="linenumber">940</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1350851235390292372" datatype="html">
@@ -3765,7 +3721,7 @@
         <note priority="1" from="description">Label for the timing of a school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1028</context>
+          <context context-type="linenumber">961</context>
         </context-group>
       </trans-unit>
       <trans-unit id="491478187387824276" datatype="html">
@@ -3774,7 +3730,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1047</context>
+          <context context-type="linenumber">980</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5554741364017709807" datatype="html">
@@ -3783,7 +3739,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1048</context>
+          <context context-type="linenumber">981</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9160848464711606837" datatype="html">
@@ -3792,7 +3748,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1056</context>
+          <context context-type="linenumber">989</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6624198636467931210" datatype="html">
@@ -3801,7 +3757,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1057</context>
+          <context context-type="linenumber">990</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7677901685281516160" datatype="html">
@@ -3810,7 +3766,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1065</context>
+          <context context-type="linenumber">998</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6491820978569500382" datatype="html">
@@ -3819,7 +3775,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1066</context>
+          <context context-type="linenumber">999</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6408161334810687727" datatype="html">
@@ -3828,7 +3784,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1074</context>
+          <context context-type="linenumber">1007</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8707102520644001588" datatype="html">
@@ -3837,7 +3793,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1075</context>
+          <context context-type="linenumber">1008</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3032098280590391265" datatype="html">
@@ -3846,7 +3802,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1083</context>
+          <context context-type="linenumber">1016</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5793656352870786735" datatype="html">
@@ -3855,7 +3811,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1084</context>
+          <context context-type="linenumber">1017</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7922989125096435449" datatype="html">
@@ -3864,7 +3820,7 @@
         <note priority="1" from="description">Label of user phone</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1095</context>
+          <context context-type="linenumber">1028</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4663189107944878630" datatype="html">
@@ -3973,23 +3929,30 @@
       <trans-unit id="5175452770249467211" datatype="html">
         <source>[invalid option]</source>
         <target state="new">[invalid option]</target>
+        <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">53</context>
         </context-group>
-        <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
+      </trans-unit>
+      <trans-unit id="f02662520a5f60c9da28cdebbe9c17f34b4439c8" datatype="html">
+        <source> Edit dropdown options
+</source>
+        <target state="new"> Edit dropdown options
+</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">2,3</context>
+        </context-group>
+        <note priority="1" from="description">title of dropdown options popup dialog</note>
       </trans-unit>
       <trans-unit id="7a39368f9393f9bf97632d275e023ffbbe594be8" datatype="html">
         <source> This field is required </source>
         <target state="translated"> Ce champ doit être rempli </target>
         <note priority="1" from="description">Error message for any input</note>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html</context>
-          <context context-type="linenumber">21</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html</context>
-          <context context-type="linenumber">62</context>
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html</context>
+          <context context-type="linenumber">57</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-text-with-autocomplete/edit-text-with-autocomplete.component.html</context>
@@ -4000,6 +3963,14 @@
           <context context-type="linenumber">23</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="5432260252143962374" datatype="html">
+        <source>Create new option</source>
+        <target state="new">Create new option</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts</context>
+          <context context-type="linenumber">188</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="8998179362936748717" datatype="html">
         <source>OK</source>
         <target state="translated"> OK </target>
@@ -4372,16 +4343,6 @@
           <context context-type="linenumber">16</context>
         </context-group>
       </trans-unit>
-      <trans-unit id="4668912478133095886" datatype="html">
-        <source>Select <x id="PH" equiv-text="config.formFieldConfig.label || config.propertySchema?.label"/></source>
-        <target state="translated">Sélectionner <x id="PH" equiv-text="this.label"/></target>
-        <note priority="1" from="description">context Select User</note>
-        <note priority="1" from="meaning">Placeholder for input to set an entity</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts</context>
-          <context context-type="linenumber">62</context>
-        </context-group>
-      </trans-unit>
       <trans-unit id="1f05f87b0643c90a090870fcfdb99d888b556f23" datatype="html">
         <source>Creating new record.</source>
         <target state="new">Creating new record.</target>
@@ -4468,7 +4429,7 @@
         <target state="translated">Préparation des données (Indexation)</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity/database-indexing/database-indexing.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">59</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5210270493533766316" datatype="html">
@@ -4508,7 +4469,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">61</context>
         </context-group>
       </trans-unit>
       <trans-unit id="b861ed5da3dd3eb5d9c310853179eafc152d7b68" datatype="html">
@@ -4549,18 +4510,50 @@
       <trans-unit id="396111f33ef48eef016cd0eedb7be2ef882d7430" datatype="html">
         <source> Close </source>
         <target state="translated"> Fermer </target>
-        <note priority="1" from="description">Generic close button</note>
+        <note priority="1" from="description">Close popup</note>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">34</context>
+        </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.html</context>
           <context context-type="linenumber">54</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="1729165161001518929" datatype="html">
+        <source>Are you sure that you want to delete the option <x id="PH" equiv-text="value.label"/>?</source>
+        <target state="new">Are you sure that you want to delete the option <x id="PH" equiv-text="value.label"/>?</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">68</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="6524829042498938726" datatype="html">
+        <source> The option is still used in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> records. If deleted, the records will not be lost but specially marked</source>
+        <target state="new"> The option is still used in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> records. If deleted, the records will not be lost but specially marked</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">70,72</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="3767101596108414700" datatype="html">
+        <source>Delete option</source>
+        <target state="new">Delete option</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">75</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="2566001175328025157" datatype="html">
         <source>No Changelog Available</source>
         <target state="translated">Aucun historique des modifications disponible</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.ts</context>
-          <context context-type="linenumber">87</context>
+          <context context-type="linenumber">89</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7795087408392131030" datatype="html">
@@ -4568,7 +4561,7 @@
         <target state="translated">Les dernières modifications n'ont pas pu être chargées: <x id="PH" equiv-text="error"/></target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/latest-changes.service.ts</context>
-          <context context-type="linenumber">131</context>
+          <context context-type="linenumber">121</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2896181875024748753" datatype="html">
@@ -4858,7 +4851,7 @@
         <note priority="1" from="description">Navigate to user profile page</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">84</context>
+          <context context-type="linenumber">85</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8bf270adb01cb85e970eb6465bc3167bb04598de" datatype="html">
@@ -4867,7 +4860,7 @@
         <note priority="1" from="description">Sign out of the app</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">89</context>
+          <context context-type="linenumber">90</context>
         </context-group>
       </trans-unit>
       <trans-unit id="406df86e338f5992ef27c4bc35dda98e3e651e34" datatype="html">
@@ -5129,7 +5122,7 @@
         <target state="new">Import completed</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">59</context>
+          <context context-type="linenumber">60</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2a62a59d9424e9e869061ebf3e8f8b8f95411571" datatype="html">
@@ -5167,7 +5160,7 @@
         <target state="translated">Importer de nouvelles données ?</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">75</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1690350829788615736" datatype="html">
@@ -5177,7 +5170,7 @@
       This will add or update <x id="PH" equiv-text="csvFile.data.length"/> records from the loaded file.</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">77</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5345022420402242415" datatype="html">
@@ -5185,7 +5178,7 @@
         <target state="new"><x id="PH" equiv-text="refText"/> All existing records imported with the transaction id '<x id="PH_1" equiv-text="importMeta.transactionId"/>' will be deleted!</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">79</context>
+          <context context-type="linenumber">80</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4fd611f679282abb73122b03bfed3724dba9b6bf" datatype="html">
@@ -5482,14 +5475,34 @@
           <context context-type="linenumber">113</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="22ee8aecedfcdfcd3313bc6c5f0e80175bfafd58" datatype="html">
+        <source> Select displayed locations
+</source>
+        <target state="new"> Select displayed locations
+</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">1,3</context>
+        </context-group>
+        <note priority="1" from="description">Title of popup to select locations that are displayed in the map</note>
+      </trans-unit>
+      <trans-unit id="c2d0ac9f528bbd5f53fd34269fde8b59e029621b" datatype="html">
+        <source>Apply</source>
+        <target state="new">Apply</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+        <note priority="1" from="description">Button for closing popup and applying changes</note>
+      </trans-unit>
       <trans-unit id="2549737213024136740" datatype="html">
-        <source><x id="PH" equiv-text="res"/> km</source>
+        <source><x id="PH" equiv-text="closest"/> km</source>
         <target state="new"><x id="PH" equiv-text="res"/> km</target>
         <note priority="1" from="description">e.g. 5 km</note>
         <note priority="1" from="meaning">distance with unit</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/location/view-distance/view-distance.component.ts</context>
-          <context context-type="linenumber">73</context>
+          <context context-type="linenumber">65</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4bc0107bf7dcdac8c02c5ced13ad79c23c253148" datatype="html">
@@ -5504,11 +5517,11 @@
       <trans-unit id="a4cdca73d44b64c6cfa677e10047ccd7e4a41e2a" datatype="html">
         <source> Select <x id="INTERPOLATION" equiv-text="{{ side.entityType?.label }}"/> </source>
         <target state="translated"> Select <x id="INTERPOLATION" equiv-text="{{ side.entityType.label }}"/> </target>
+        <note priority="1" from="description">header of section with entities available for selection</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.html</context>
-          <context context-type="linenumber">55,56</context>
+          <context context-type="linenumber">54</context>
         </context-group>
-        <note priority="1" from="description">header of section with entities available for selection</note>
       </trans-unit>
       <trans-unit id="4566094167890982095" datatype="html">
         <source>create matching</source>
@@ -5516,7 +5529,7 @@
         <note priority="1" from="description">Matching button label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">85</context>
+          <context context-type="linenumber">91</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1779552786277618671" datatype="html">
@@ -5525,7 +5538,7 @@
         <note priority="1" from="description">Matching View column name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">273</context>
+          <context context-type="linenumber">312</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1906738132039774080" datatype="html">
diff --git a/src/assets/locale/messages.it.xlf b/src/assets/locale/messages.it.xlf
index a4ff7a3d8f..eaf962f429 100644
--- a/src/assets/locale/messages.it.xlf
+++ b/src/assets/locale/messages.it.xlf
@@ -63,7 +63,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">886</context>
+          <context context-type="linenumber">819</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1669277742108379782" datatype="html">
@@ -662,11 +662,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">813</context>
+          <context context-type="linenumber">746</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">891</context>
+          <context context-type="linenumber">824</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5944812089887969249" datatype="html">
@@ -783,7 +783,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1035</context>
+          <context context-type="linenumber">968</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7508893828342265603" datatype="html">
@@ -1024,7 +1024,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">758</context>
+          <context context-type="linenumber">691</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5910775518786454299" datatype="html">
@@ -1033,15 +1033,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">5</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">6</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">141</context>
+          <context context-type="linenumber">4</context>
         </context-group>
       </trans-unit>
       <trans-unit id="449116330532787155" datatype="html">
@@ -1050,11 +1042,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">7</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">145</context>
+          <context context-type="linenumber">5</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1264264408873477158" datatype="html">
@@ -1063,11 +1051,7 @@
         <note priority="1" from="description">center</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">8</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">149</context>
+          <context context-type="linenumber">6</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8056881763442606556" datatype="html">
@@ -1342,7 +1326,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">518</context>
+          <context context-type="linenumber">451</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7290235740931562779" datatype="html">
@@ -1395,15 +1379,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">477</context>
+          <context context-type="linenumber">410</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">909</context>
+          <context context-type="linenumber">842</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">993</context>
+          <context context-type="linenumber">926</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4540981870704644649" datatype="html">
@@ -1483,11 +1467,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">280</context>
+          <context context-type="linenumber">213</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">554</context>
+          <context context-type="linenumber">487</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5676017837022350033" datatype="html">
@@ -1536,7 +1520,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1021</context>
+          <context context-type="linenumber">954</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3933358723756013068" datatype="html">
@@ -1549,7 +1533,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">939</context>
+          <context context-type="linenumber">872</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9099121471164431783" datatype="html">
@@ -1570,11 +1554,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">493</context>
+          <context context-type="linenumber">426</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">604</context>
+          <context context-type="linenumber">537</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4378796785985219718" datatype="html">
@@ -1587,7 +1571,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">488</context>
+          <context context-type="linenumber">421</context>
         </context-group>
       </trans-unit>
       <trans-unit id="888341446683346521" datatype="html">
@@ -2193,15 +2177,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">36</context>
+          <context context-type="linenumber">26</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">593</context>
+          <context context-type="linenumber">526</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">940</context>
+          <context context-type="linenumber">873</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9127604588498960753" datatype="html">
@@ -2231,7 +2215,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">51</context>
+          <context context-type="linenumber">41</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2502008676398493538" datatype="html">
@@ -2356,11 +2340,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">412</context>
+          <context context-type="linenumber">345</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">596</context>
+          <context context-type="linenumber">529</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-list/filter-generator.service.ts</context>
@@ -2725,20 +2709,20 @@
       <trans-unit id="1237640232293738415" datatype="html">
         <source>Aam Digital - DEMO (automatically generated data)</source>
         <target state="new">Aam Digital - DEMO (automatically generated data)</target>
+        <note priority="1" from="description">Page title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">22</context>
+          <context context-type="linenumber">12</context>
         </context-group>
-        <note priority="1" from="description">Page title</note>
       </trans-unit>
       <trans-unit id="6570363013146073520" datatype="html">
         <source>Dashboard</source>
         <target state="new">Dashboard</target>
+        <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">31</context>
+          <context context-type="linenumber">21</context>
         </context-group>
-        <note priority="1" from="description">Menu item</note>
       </trans-unit>
       <trans-unit id="7026624912846603653" datatype="html">
         <source>Schools</source>
@@ -2750,11 +2734,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">41</context>
+          <context context-type="linenumber">31</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">409</context>
+          <context context-type="linenumber">342</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4817207543436133742" datatype="html">
@@ -2763,25 +2747,25 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">46</context>
+          <context context-type="linenumber">36</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">691</context>
+          <context context-type="linenumber">624</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6904866445262015585" datatype="html">
         <source>Tasks</source>
         <target state="new">Tasks</target>
+        <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">56</context>
+          <context context-type="linenumber">46</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/todos/model/todo.ts</context>
           <context context-type="linenumber">32</context>
         </context-group>
-        <note priority="1" from="description">Menu item</note>
       </trans-unit>
       <trans-unit id="5041354590769758251" datatype="html">
         <source>Admin</source>
@@ -2789,7 +2773,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">51</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1071721880474488785" datatype="html">
@@ -2798,7 +2782,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">66</context>
+          <context context-type="linenumber">56</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4555457172864212828" datatype="html">
@@ -2807,7 +2791,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">71</context>
+          <context context-type="linenumber">61</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/user/user.ts</context>
@@ -2821,7 +2805,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">66</context>
         </context-group>
       </trans-unit>
       <trans-unit id="657496228690855434" datatype="html">
@@ -2830,7 +2814,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">81</context>
+          <context context-type="linenumber">71</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7911416166208830577" datatype="html">
@@ -2839,61 +2823,7 @@
         <note priority="1" from="description">Menu item</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">86</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="6691439998827511114" datatype="html">
-        <source>OK (copy with us)</source>
-        <target state="new">OK (copy with us)</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">109</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7233426447535381432" datatype="html">
-        <source>OK (copy needed for us)</source>
-        <target state="new">OK (copy needed for us)</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">114</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7892131631225988542" datatype="html">
-        <source>needs correction</source>
-        <target state="new">needs correction</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">119</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="7543632648034985521" datatype="html">
-        <source>applied</source>
-        <target state="new">applied</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">124</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="2743017402754335830" datatype="html">
-        <source>doesn't have</source>
-        <target state="new">doesn't have</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">129</context>
-        </context-group>
-      </trans-unit>
-      <trans-unit id="6322199449220989816" datatype="html">
-        <source>not eligible</source>
-        <target state="new">not eligible</target>
-        <note priority="1" from="description">Document status</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">134</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2935152225387412918" datatype="html">
@@ -2903,7 +2833,7 @@
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">163</context>
+          <context context-type="linenumber">91</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2111561618518210212" datatype="html">
@@ -2913,16 +2843,26 @@
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">168</context>
+          <context context-type="linenumber">96</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="7749314122565677607" datatype="html">
+        <source>Public Registration Form</source>
+        <target state="new">Public Registration Form</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
+          <context context-type="linenumber">101</context>
+        </context-group>
+        <note priority="1" from="description">open public form</note>
+        <note priority="1" from="meaning">Dashboard shortcut widget</note>
+      </trans-unit>
       <trans-unit id="2329598843423950672" datatype="html">
         <source>last week</source>
         <target state="new">last week</target>
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">215</context>
+          <context context-type="linenumber">148</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6802197953477344728" datatype="html">
@@ -2931,7 +2871,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">222</context>
+          <context context-type="linenumber">155</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8955128195791312286" datatype="html">
@@ -2940,7 +2880,7 @@
         <note priority="1" from="description">Attendance week dashboard widget label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">208</context>
+          <context context-type="linenumber">141</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1813769493203572551" datatype="html">
@@ -2949,7 +2889,7 @@
         <note priority="1" from="description">Title for notes overview</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">244</context>
+          <context context-type="linenumber">177</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2798807656507405918" datatype="html">
@@ -2958,11 +2898,11 @@
         <note priority="1" from="description">Translated name of default column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">254</context>
+          <context context-type="linenumber">187</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">258</context>
+          <context context-type="linenumber">191</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1002165214775409029" datatype="html">
@@ -2971,19 +2911,19 @@
         <note priority="1" from="description">Translated name of mobile column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">255</context>
+          <context context-type="linenumber">188</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">268</context>
+          <context context-type="linenumber">201</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">525</context>
+          <context context-type="linenumber">458</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">579</context>
+          <context context-type="linenumber">512</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6309181788204949218" datatype="html">
@@ -2992,7 +2932,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">355</context>
+          <context context-type="linenumber">288</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8878700331247603166" datatype="html">
@@ -3001,7 +2941,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">374</context>
+          <context context-type="linenumber">307</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7910125616758063638" datatype="html">
@@ -3010,7 +2950,7 @@
         <note priority="1" from="description">Filename of markdown help page (make sure the filename you enter as a translation actually exists on the server!)</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">388</context>
+          <context context-type="linenumber">321</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3686284950598311784" datatype="html">
@@ -3019,7 +2959,7 @@
         <note priority="1" from="description">Label for private schools filter - true case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">410</context>
+          <context context-type="linenumber">343</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6264204010127975648" datatype="html">
@@ -3028,7 +2968,7 @@
         <note priority="1" from="description">Label for private schools filter - false case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">411</context>
+          <context context-type="linenumber">344</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8781767917622107949" datatype="html">
@@ -3037,15 +2977,15 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">423</context>
+          <context context-type="linenumber">356</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">615</context>
+          <context context-type="linenumber">548</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">798</context>
+          <context context-type="linenumber">731</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2562531496877210322" datatype="html">
@@ -3054,7 +2994,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">451</context>
+          <context context-type="linenumber">384</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2309808536212982229" datatype="html">
@@ -3063,7 +3003,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">460</context>
+          <context context-type="linenumber">393</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1130652265542107236" datatype="html">
@@ -3072,7 +3012,7 @@
         <note priority="1" from="description">Column label for age of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">482</context>
+          <context context-type="linenumber">415</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8539945035792949854" datatype="html">
@@ -3081,7 +3021,7 @@
         <note priority="1" from="description">Column label for school attendance of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">500</context>
+          <context context-type="linenumber">433</context>
         </context-group>
       </trans-unit>
       <trans-unit id="249709194006018190" datatype="html">
@@ -3090,7 +3030,7 @@
         <note priority="1" from="description">Column label for coaching attendance of child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">509</context>
+          <context context-type="linenumber">442</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7691138136265271231" datatype="html">
@@ -3099,11 +3039,11 @@
         <note priority="1" from="description">Translated name of default column group</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">524</context>
+          <context context-type="linenumber">457</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">528</context>
+          <context context-type="linenumber">461</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3007651244935433751" datatype="html">
@@ -3112,7 +3052,7 @@
         <note priority="1" from="description">Column group name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">541</context>
+          <context context-type="linenumber">474</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2041675390931385838" datatype="html">
@@ -3121,11 +3061,11 @@
         <note priority="1" from="description">Column group name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">564</context>
+          <context context-type="linenumber">497</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">713</context>
+          <context context-type="linenumber">646</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8204176479746810612" datatype="html">
@@ -3134,7 +3074,7 @@
         <note priority="1" from="description">Active children filter label - true case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">594</context>
+          <context context-type="linenumber">527</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1859131936150262113" datatype="html">
@@ -3143,7 +3083,7 @@
         <note priority="1" from="description">Active children filter label - false case</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">595</context>
+          <context context-type="linenumber">528</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3465962430409924123" datatype="html">
@@ -3152,7 +3092,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">643</context>
+          <context context-type="linenumber">576</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2332815950113444124" datatype="html">
@@ -3161,7 +3101,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">644</context>
+          <context context-type="linenumber">577</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4030110180919534153" datatype="html">
@@ -3170,7 +3110,7 @@
         <note priority="1" from="description">Header for form section</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">645</context>
+          <context context-type="linenumber">578</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8020402390620783618" datatype="html">
@@ -3179,7 +3119,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">652</context>
+          <context context-type="linenumber">585</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3222319974146977156" datatype="html">
@@ -3188,7 +3128,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">655</context>
+          <context context-type="linenumber">588</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3424557526203996215" datatype="html">
@@ -3197,7 +3137,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">675</context>
+          <context context-type="linenumber">608</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5318391578409221199" datatype="html">
@@ -3206,17 +3146,17 @@
         <note priority="1" from="description">Child details section title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">679</context>
+          <context context-type="linenumber">612</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6315228090956745353" datatype="html">
         <source>Notes &amp; Tasks</source>
         <target state="new">Notes &amp; Tasks</target>
+        <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">700</context>
+          <context context-type="linenumber">633</context>
         </context-group>
-        <note priority="1" from="description">Panel title</note>
       </trans-unit>
       <trans-unit id="6935402381663920930" datatype="html">
         <source>Height &amp; Weight Tracking</source>
@@ -3224,7 +3164,7 @@
         <note priority="1" from="description">Title inside a panel</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">726</context>
+          <context context-type="linenumber">659</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5035769065128916110" datatype="html">
@@ -3233,7 +3173,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">732</context>
+          <context context-type="linenumber">665</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3778494590546555291" datatype="html">
@@ -3242,7 +3182,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">741</context>
+          <context context-type="linenumber">674</context>
         </context-group>
       </trans-unit>
       <trans-unit id="134488380944428715" datatype="html">
@@ -3260,7 +3200,7 @@
         <note priority="1" from="description">Panel title</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">828</context>
+          <context context-type="linenumber">761</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4310513583397103775" datatype="html">
@@ -3269,7 +3209,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">843</context>
+          <context context-type="linenumber">776</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3930255838623626363" datatype="html">
@@ -3278,7 +3218,7 @@
         <note priority="1" from="description">Label of report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">847</context>
+          <context context-type="linenumber">780</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6949266734896136969" datatype="html">
@@ -3287,7 +3227,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">852</context>
+          <context context-type="linenumber">785</context>
         </context-group>
       </trans-unit>
       <trans-unit id="619224002419753333" datatype="html">
@@ -3296,7 +3236,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">855</context>
+          <context context-type="linenumber">788</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9152633939608005299" datatype="html">
@@ -3305,7 +3245,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">859</context>
+          <context context-type="linenumber">792</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5107681519279730939" datatype="html">
@@ -3314,7 +3254,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">864</context>
+          <context context-type="linenumber">797</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1157409611503106802" datatype="html">
@@ -3323,7 +3263,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">868</context>
+          <context context-type="linenumber">801</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6819111098994891506" datatype="html">
@@ -3332,7 +3272,7 @@
         <note priority="1" from="description">Label for report query</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">873</context>
+          <context context-type="linenumber">806</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7965975699466463064" datatype="html">
@@ -3341,7 +3281,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">881</context>
+          <context context-type="linenumber">814</context>
         </context-group>
       </trans-unit>
       <trans-unit id="691530937011261622" datatype="html">
@@ -3350,7 +3290,7 @@
         <note priority="1" from="description">Name of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">898</context>
+          <context context-type="linenumber">831</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8808439168445495463" datatype="html">
@@ -3365,11 +3305,22 @@
       <trans-unit id="5175452770249467211" datatype="html">
         <source>[invalid option]</source>
         <target state="new">[invalid option]</target>
+        <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">53</context>
         </context-group>
-        <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
+      </trans-unit>
+      <trans-unit id="f02662520a5f60c9da28cdebbe9c17f34b4439c8" datatype="html">
+        <source> Edit dropdown options
+</source>
+        <target state="new"> Edit dropdown options
+</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">2,3</context>
+        </context-group>
+        <note priority="1" from="description">title of dropdown options popup dialog</note>
       </trans-unit>
       <trans-unit id="3448462145758383019" datatype="html">
         <source>Total</source>
@@ -3377,7 +3328,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">913</context>
+          <context context-type="linenumber">846</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6522877977962061564" datatype="html">
@@ -3386,7 +3337,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">917</context>
+          <context context-type="linenumber">850</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5639297788212274461" datatype="html">
@@ -3395,7 +3346,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">921</context>
+          <context context-type="linenumber">854</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3973270758175692787" datatype="html">
@@ -3404,7 +3355,7 @@
         <note priority="1" from="description">Name of a column of a report</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">925</context>
+          <context context-type="linenumber">858</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7686955204733532706" datatype="html">
@@ -3422,11 +3373,11 @@
         <note priority="1" from="description">Label for the address of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">946</context>
+          <context context-type="linenumber">879</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1014</context>
+          <context context-type="linenumber">947</context>
         </context-group>
       </trans-unit>
       <trans-unit id="326998402864900242" datatype="html">
@@ -3435,7 +3386,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">953</context>
+          <context context-type="linenumber">886</context>
         </context-group>
       </trans-unit>
       <trans-unit id="744862547206313189" datatype="html">
@@ -3444,7 +3395,7 @@
         <note priority="1" from="description">Label for the religion of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">960</context>
+          <context context-type="linenumber">893</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3701890980067993407" datatype="html">
@@ -3453,7 +3404,7 @@
         <note priority="1" from="description">Label for the mother tongue of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">967</context>
+          <context context-type="linenumber">900</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5917260200950510520" datatype="html">
@@ -3462,7 +3413,7 @@
         <note priority="1" from="description">Tooltip description for the mother tongue of a child</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">968</context>
+          <context context-type="linenumber">901</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8073272694481457912" datatype="html">
@@ -3471,7 +3422,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">975</context>
+          <context context-type="linenumber">908</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6479918860876850014" datatype="html">
@@ -3480,7 +3431,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">982</context>
+          <context context-type="linenumber">915</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6187083324285537481" datatype="html">
@@ -3489,7 +3440,7 @@
         <note priority="1" from="description">Label for if a school is a private school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1000</context>
+          <context context-type="linenumber">933</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2826581353496868063" datatype="html">
@@ -3498,7 +3449,7 @@
         <note priority="1" from="description">Label for the language of a school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1007</context>
+          <context context-type="linenumber">940</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1350851235390292372" datatype="html">
@@ -3507,7 +3458,7 @@
         <note priority="1" from="description">Label for the timing of a school</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1028</context>
+          <context context-type="linenumber">961</context>
         </context-group>
       </trans-unit>
       <trans-unit id="491478187387824276" datatype="html">
@@ -3516,7 +3467,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1047</context>
+          <context context-type="linenumber">980</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5554741364017709807" datatype="html">
@@ -3525,7 +3476,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1048</context>
+          <context context-type="linenumber">981</context>
         </context-group>
       </trans-unit>
       <trans-unit id="9160848464711606837" datatype="html">
@@ -3534,7 +3485,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1056</context>
+          <context context-type="linenumber">989</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6624198636467931210" datatype="html">
@@ -3543,7 +3494,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1057</context>
+          <context context-type="linenumber">990</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7677901685281516160" datatype="html">
@@ -3552,7 +3503,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1065</context>
+          <context context-type="linenumber">998</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6491820978569500382" datatype="html">
@@ -3561,7 +3512,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1066</context>
+          <context context-type="linenumber">999</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6408161334810687727" datatype="html">
@@ -3570,7 +3521,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1074</context>
+          <context context-type="linenumber">1007</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8707102520644001588" datatype="html">
@@ -3579,7 +3530,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1075</context>
+          <context context-type="linenumber">1008</context>
         </context-group>
       </trans-unit>
       <trans-unit id="3032098280590391265" datatype="html">
@@ -3588,7 +3539,7 @@
         <note priority="1" from="description">Label for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1083</context>
+          <context context-type="linenumber">1016</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5793656352870786735" datatype="html">
@@ -3597,7 +3548,7 @@
         <note priority="1" from="description">Description for a child attribute</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1084</context>
+          <context context-type="linenumber">1017</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7922989125096435449" datatype="html">
@@ -3606,7 +3557,7 @@
         <note priority="1" from="description">Label of user phone</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1095</context>
+          <context context-type="linenumber">1028</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4663189107944878630" datatype="html">
@@ -3699,12 +3650,8 @@
         <target state="new"> This field is required </target>
         <note priority="1" from="description">Error message for any input</note>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html</context>
-          <context context-type="linenumber">21</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html</context>
-          <context context-type="linenumber">62</context>
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html</context>
+          <context context-type="linenumber">57</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-text-with-autocomplete/edit-text-with-autocomplete.component.html</context>
@@ -3715,6 +3662,14 @@
           <context context-type="linenumber">23</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="5432260252143962374" datatype="html">
+        <source>Create new option</source>
+        <target state="new">Create new option</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts</context>
+          <context context-type="linenumber">188</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="8998179362936748717" datatype="html">
         <source>OK</source>
         <target state="new">OK</target>
@@ -4078,16 +4033,6 @@
           <context context-type="linenumber">16</context>
         </context-group>
       </trans-unit>
-      <trans-unit id="4668912478133095886" datatype="html">
-        <source>Select <x id="PH" equiv-text="config.formFieldConfig.label || config.propertySchema?.label"/></source>
-        <target state="new">Selezionane <x id="PH" equiv-text="config.formFieldConfig.label || config.propertySchema?.label"/></target>
-        <note priority="1" from="description">context Select User</note>
-        <note priority="1" from="meaning">Placeholder for input to set an entity</note>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts</context>
-          <context context-type="linenumber">62</context>
-        </context-group>
-      </trans-unit>
       <trans-unit id="1f05f87b0643c90a090870fcfdb99d888b556f23" datatype="html">
         <source>Creating new record.</source>
         <target state="new">Creating new record.</target>
@@ -4186,7 +4131,7 @@
         <target state="translated">Preparazione dei dati</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity/database-indexing/database-indexing.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">59</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5210270493533766316" datatype="html">
@@ -4226,7 +4171,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">61</context>
         </context-group>
       </trans-unit>
       <trans-unit id="e67bebb0291cbe76b190e83225878cdd3a8a6df6" datatype="html">
@@ -4353,18 +4298,50 @@
       <trans-unit id="396111f33ef48eef016cd0eedb7be2ef882d7430" datatype="html">
         <source> Close </source>
         <target state="translated"> Chiudere </target>
-        <note priority="1" from="description">Generic close button</note>
+        <note priority="1" from="description">Close popup</note>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">34</context>
+        </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.html</context>
           <context context-type="linenumber">54</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="1729165161001518929" datatype="html">
+        <source>Are you sure that you want to delete the option <x id="PH" equiv-text="value.label"/>?</source>
+        <target state="new">Are you sure that you want to delete the option <x id="PH" equiv-text="value.label"/>?</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">68</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="6524829042498938726" datatype="html">
+        <source> The option is still used in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> records. If deleted, the records will not be lost but specially marked</source>
+        <target state="new"> The option is still used in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> records. If deleted, the records will not be lost but specially marked</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">70,72</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="3767101596108414700" datatype="html">
+        <source>Delete option</source>
+        <target state="new">Delete option</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">75</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="2566001175328025157" datatype="html">
         <source>No Changelog Available</source>
         <target state="translated">Nessun registro delle modifiche disponibile</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.ts</context>
-          <context context-type="linenumber">87</context>
+          <context context-type="linenumber">89</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7795087408392131030" datatype="html">
@@ -4372,7 +4349,7 @@
         <target state="translated">Impossibile caricare le ultime modifiche: <x id="PH" equiv-text="error"/></target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/latest-changes.service.ts</context>
-          <context context-type="linenumber">131</context>
+          <context context-type="linenumber">121</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2896181875024748753" datatype="html">
@@ -4842,7 +4819,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <note priority="1" from="description">Navigate to user profile page</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">84</context>
+          <context context-type="linenumber">85</context>
         </context-group>
       </trans-unit>
       <trans-unit id="8bf270adb01cb85e970eb6465bc3167bb04598de" datatype="html">
@@ -4851,7 +4828,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <note priority="1" from="description">Sign out of the app</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">89</context>
+          <context context-type="linenumber">90</context>
         </context-group>
       </trans-unit>
       <trans-unit id="406df86e338f5992ef27c4bc35dda98e3e651e34" datatype="html">
@@ -5113,7 +5090,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <target state="new">Import completed</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">59</context>
+          <context context-type="linenumber">60</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6880068429772311753" datatype="html">
@@ -5121,7 +5098,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <target state="new">Import new data?</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">75</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1690350829788615736" datatype="html">
@@ -5131,7 +5108,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
       This will add or update <x id="PH" equiv-text="csvFile.data.length"/> records from the loaded file.</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">77</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5345022420402242415" datatype="html">
@@ -5139,7 +5116,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <target state="new"><x id="PH" equiv-text="refText"/> All existing records imported with the transaction id '<x id="PH_1" equiv-text="importMeta.transactionId"/>' will be deleted!</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">79</context>
+          <context context-type="linenumber">80</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4fd611f679282abb73122b03bfed3724dba9b6bf" datatype="html">
@@ -5439,14 +5416,34 @@ Please try again. If the problem persists contact Aam Digital support.</target>
           <context context-type="linenumber">113</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="22ee8aecedfcdfcd3313bc6c5f0e80175bfafd58" datatype="html">
+        <source> Select displayed locations
+</source>
+        <target state="new"> Select displayed locations
+</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">1,3</context>
+        </context-group>
+        <note priority="1" from="description">Title of popup to select locations that are displayed in the map</note>
+      </trans-unit>
+      <trans-unit id="c2d0ac9f528bbd5f53fd34269fde8b59e029621b" datatype="html">
+        <source>Apply</source>
+        <target state="new">Apply</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+        <note priority="1" from="description">Button for closing popup and applying changes</note>
+      </trans-unit>
       <trans-unit id="2549737213024136740" datatype="html">
-        <source><x id="PH" equiv-text="res"/> km</source>
+        <source><x id="PH" equiv-text="closest"/> km</source>
         <target state="new"><x id="PH" equiv-text="res"/> km</target>
         <note priority="1" from="description">e.g. 5 km</note>
         <note priority="1" from="meaning">distance with unit</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/location/view-distance/view-distance.component.ts</context>
-          <context context-type="linenumber">73</context>
+          <context context-type="linenumber">65</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4bc0107bf7dcdac8c02c5ced13ad79c23c253148" datatype="html">
@@ -5461,11 +5458,11 @@ Please try again. If the problem persists contact Aam Digital support.</target>
       <trans-unit id="a4cdca73d44b64c6cfa677e10047ccd7e4a41e2a" datatype="html">
         <source> Select <x id="INTERPOLATION" equiv-text="{{ side.entityType?.label }}"/> </source>
         <target state="translated"> Select <x id="INTERPOLATION" equiv-text="{{ side.entityType.label }}"/> </target>
+        <note priority="1" from="description">header of section with entities available for selection</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.html</context>
-          <context context-type="linenumber">55,56</context>
+          <context context-type="linenumber">54</context>
         </context-group>
-        <note priority="1" from="description">header of section with entities available for selection</note>
       </trans-unit>
       <trans-unit id="4566094167890982095" datatype="html">
         <source>create matching</source>
@@ -5473,7 +5470,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <note priority="1" from="description">Matching button label</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">85</context>
+          <context context-type="linenumber">91</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1779552786277618671" datatype="html">
@@ -5482,7 +5479,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <note priority="1" from="description">Matching View column name</note>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">273</context>
+          <context context-type="linenumber">312</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6680431077518392028" datatype="html">
@@ -5739,6 +5736,22 @@ Please try again. If the problem persists contact Aam Digital support.</target>
           <context context-type="linenumber">75</context>
         </context-group>
       </trans-unit>
+      <trans-unit id="2468578017924444574" datatype="html">
+        <source>Example form</source>
+        <target state="new">Example form</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="5065162821808701761" datatype="html">
+        <source>This is a form that can be shared as a link or embedded in a website. It can be filled by users without having an account. For example you can let participants self-register their details and just review the records within Aam Digital.</source>
+        <target state="new">This is a form that can be shared as a link or embedded in a website. It can be filled by users without having an account. For example you can let participants self-register their details and just review the records within Aam Digital.</target>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">19</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="f215ed23a0b8105ae47ef80cf65fe765631dd94a" datatype="html">
         <source> Submit Form </source>
         <target state="new"> Submit Form </target>
@@ -5762,7 +5775,7 @@ Please try again. If the problem persists contact Aam Digital support.</target>
         <target state="new">Successfully submitted form</target>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/public-form/public-form.component.ts</context>
-          <context context-type="linenumber">58</context>
+          <context context-type="linenumber">62</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1906738132039774080" datatype="html">
diff --git a/src/assets/locale/messages.xlf b/src/assets/locale/messages.xlf
index 7bd1128dc8..cb03256f81 100644
--- a/src/assets/locale/messages.xlf
+++ b/src/assets/locale/messages.xlf
@@ -56,7 +56,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">886</context>
+          <context context-type="linenumber">819</context>
         </context-group>
         <note priority="1" from="description">Events of an attendance</note>
       </trans-unit>
@@ -607,11 +607,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">813</context>
+          <context context-type="linenumber">746</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">891</context>
+          <context context-type="linenumber">824</context>
         </context-group>
         <note priority="1" from="description">Label for the participants of a recurring activity</note>
       </trans-unit>
@@ -719,7 +719,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1035</context>
+          <context context-type="linenumber">968</context>
         </context-group>
         <note priority="1" from="description">Label for the remarks of a ASER result</note>
       </trans-unit>
@@ -930,7 +930,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">758</context>
+          <context context-type="linenumber">691</context>
         </context-group>
         <note priority="1" from="description">Child status</note>
       </trans-unit>
@@ -938,15 +938,7 @@
         <source>Alipore</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">5</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">6</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">141</context>
+          <context context-type="linenumber">4</context>
         </context-group>
         <note priority="1" from="description">center</note>
       </trans-unit>
@@ -954,11 +946,7 @@
         <source>Tollygunge</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">7</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">145</context>
+          <context context-type="linenumber">5</context>
         </context-group>
         <note priority="1" from="description">center</note>
       </trans-unit>
@@ -966,11 +954,7 @@
         <source>Barabazar</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/child-dev-project/children/demo-data-generators/fixtures/centers.ts</context>
-          <context context-type="linenumber">8</context>
-        </context-group>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">149</context>
+          <context context-type="linenumber">6</context>
         </context-group>
         <note priority="1" from="description">center</note>
       </trans-unit>
@@ -1216,7 +1200,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">518</context>
+          <context context-type="linenumber">451</context>
         </context-group>
         <note priority="1" from="description">Table header, Short for Body Mass Index</note>
       </trans-unit>
@@ -1264,15 +1248,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">477</context>
+          <context context-type="linenumber">410</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">909</context>
+          <context context-type="linenumber">842</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">993</context>
+          <context context-type="linenumber">926</context>
         </context-group>
         <note priority="1" from="description">Label for the name of a child</note>
       </trans-unit>
@@ -1344,11 +1328,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">280</context>
+          <context context-type="linenumber">213</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">554</context>
+          <context context-type="linenumber">487</context>
         </context-group>
         <note priority="1" from="description">Label for the status of a child</note>
       </trans-unit>
@@ -1392,7 +1376,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1021</context>
+          <context context-type="linenumber">954</context>
         </context-group>
         <note priority="1" from="description">Label for the phone number of a child</note>
       </trans-unit>
@@ -1404,7 +1388,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">939</context>
+          <context context-type="linenumber">872</context>
         </context-group>
         <note priority="1" from="description">Label for the child of a relation</note>
       </trans-unit>
@@ -1424,11 +1408,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">493</context>
+          <context context-type="linenumber">426</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">604</context>
+          <context context-type="linenumber">537</context>
         </context-group>
         <note priority="1" from="description">Label for the school of a relation</note>
       </trans-unit>
@@ -1440,7 +1424,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">488</context>
+          <context context-type="linenumber">421</context>
         </context-group>
         <note priority="1" from="description">Label for the class of a relation</note>
       </trans-unit>
@@ -1954,7 +1938,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">51</context>
+          <context context-type="linenumber">41</context>
         </context-group>
         <note priority="1" from="description">label (plural) for entity</note>
       </trans-unit>
@@ -1966,15 +1950,15 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">36</context>
+          <context context-type="linenumber">26</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">593</context>
+          <context context-type="linenumber">526</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">940</context>
+          <context context-type="linenumber">873</context>
         </context-group>
         <note priority="1" from="description">Label for the children of a note</note>
       </trans-unit>
@@ -2101,11 +2085,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">412</context>
+          <context context-type="linenumber">345</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">596</context>
+          <context context-type="linenumber">529</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity-components/entity-list/filter-generator.service.ts</context>
@@ -2245,11 +2229,11 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">41</context>
+          <context context-type="linenumber">31</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">409</context>
+          <context context-type="linenumber">342</context>
         </context-group>
         <note priority="1" from="description">label (plural) for entity</note>
       </trans-unit>
@@ -2439,7 +2423,7 @@
         <source>Aam Digital - DEMO (automatically generated data)</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">22</context>
+          <context context-type="linenumber">12</context>
         </context-group>
         <note priority="1" from="description">Page title</note>
       </trans-unit>
@@ -2447,7 +2431,7 @@
         <source>Dashboard</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">31</context>
+          <context context-type="linenumber">21</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
@@ -2455,11 +2439,11 @@
         <source>Attendance</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">46</context>
+          <context context-type="linenumber">36</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">691</context>
+          <context context-type="linenumber">624</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
@@ -2467,7 +2451,7 @@
         <source>Tasks</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">56</context>
+          <context context-type="linenumber">46</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/todos/model/todo.ts</context>
@@ -2479,7 +2463,7 @@
         <source>Admin</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">51</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
@@ -2487,7 +2471,7 @@
         <source>Import</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">66</context>
+          <context context-type="linenumber">56</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
@@ -2495,7 +2479,7 @@
         <source>Users</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">71</context>
+          <context context-type="linenumber">61</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/user/user.ts</context>
@@ -2507,7 +2491,7 @@
         <source>Reports</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">76</context>
+          <context context-type="linenumber">66</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
@@ -2515,7 +2499,7 @@
         <source>Database Conflicts</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">81</context>
+          <context context-type="linenumber">71</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
@@ -2523,63 +2507,15 @@
         <source>Help</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">86</context>
+          <context context-type="linenumber">76</context>
         </context-group>
         <note priority="1" from="description">Menu item</note>
       </trans-unit>
-      <trans-unit id="6691439998827511114" datatype="html">
-        <source>OK (copy with us)</source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">109</context>
-        </context-group>
-        <note priority="1" from="description">Document status</note>
-      </trans-unit>
-      <trans-unit id="7233426447535381432" datatype="html">
-        <source>OK (copy needed for us)</source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">114</context>
-        </context-group>
-        <note priority="1" from="description">Document status</note>
-      </trans-unit>
-      <trans-unit id="7892131631225988542" datatype="html">
-        <source>needs correction</source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">119</context>
-        </context-group>
-        <note priority="1" from="description">Document status</note>
-      </trans-unit>
-      <trans-unit id="7543632648034985521" datatype="html">
-        <source>applied</source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">124</context>
-        </context-group>
-        <note priority="1" from="description">Document status</note>
-      </trans-unit>
-      <trans-unit id="2743017402754335830" datatype="html">
-        <source>doesn&apos;t have</source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">129</context>
-        </context-group>
-        <note priority="1" from="description">Document status</note>
-      </trans-unit>
-      <trans-unit id="6322199449220989816" datatype="html">
-        <source>not eligible</source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">134</context>
-        </context-group>
-        <note priority="1" from="description">Document status</note>
-      </trans-unit>
       <trans-unit id="2935152225387412918" datatype="html">
         <source>Record Attendance</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">163</context>
+          <context context-type="linenumber">91</context>
         </context-group>
         <note priority="1" from="description">record attendance shortcut</note>
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
@@ -2588,16 +2524,25 @@
         <source>Add Child</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">168</context>
+          <context context-type="linenumber">96</context>
         </context-group>
         <note priority="1" from="description">record attendance shortcut</note>
         <note priority="1" from="meaning">Dashboard shortcut widget</note>
       </trans-unit>
+      <trans-unit id="7749314122565677607" datatype="html">
+        <source>Public Registration Form</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
+          <context context-type="linenumber">101</context>
+        </context-group>
+        <note priority="1" from="description">open public form</note>
+        <note priority="1" from="meaning">Dashboard shortcut widget</note>
+      </trans-unit>
       <trans-unit id="8955128195791312286" datatype="html">
         <source>this week</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">208</context>
+          <context context-type="linenumber">141</context>
         </context-group>
         <note priority="1" from="description">Attendance week dashboard widget label</note>
       </trans-unit>
@@ -2605,7 +2550,7 @@
         <source>last week</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">215</context>
+          <context context-type="linenumber">148</context>
         </context-group>
         <note priority="1" from="description">Attendance week dashboard widget label</note>
       </trans-unit>
@@ -2613,7 +2558,7 @@
         <source>Late last week</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">222</context>
+          <context context-type="linenumber">155</context>
         </context-group>
         <note priority="1" from="description">Attendance week dashboard widget label</note>
       </trans-unit>
@@ -2621,7 +2566,7 @@
         <source>Notes &amp; Reports</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">244</context>
+          <context context-type="linenumber">177</context>
         </context-group>
         <note priority="1" from="description">Title for notes overview</note>
       </trans-unit>
@@ -2629,11 +2574,11 @@
         <source>Standard</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">254</context>
+          <context context-type="linenumber">187</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">258</context>
+          <context context-type="linenumber">191</context>
         </context-group>
         <note priority="1" from="description">Translated name of default column group</note>
       </trans-unit>
@@ -2641,19 +2586,19 @@
         <source>Mobile</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">255</context>
+          <context context-type="linenumber">188</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">268</context>
+          <context context-type="linenumber">201</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">525</context>
+          <context context-type="linenumber">458</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">579</context>
+          <context context-type="linenumber">512</context>
         </context-group>
         <note priority="1" from="description">Translated name of mobile column group</note>
       </trans-unit>
@@ -2661,7 +2606,7 @@
         <source>User Information</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">355</context>
+          <context context-type="linenumber">288</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2669,7 +2614,7 @@
         <source>Security</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">374</context>
+          <context context-type="linenumber">307</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2677,7 +2622,7 @@
         <source>assets/help/help.en.md</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">388</context>
+          <context context-type="linenumber">321</context>
         </context-group>
         <note priority="1" from="description">Filename of markdown help page (make sure the filename you enter as a translation actually exists on the server!)</note>
       </trans-unit>
@@ -2685,7 +2630,7 @@
         <source>Private</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">410</context>
+          <context context-type="linenumber">343</context>
         </context-group>
         <note priority="1" from="description">Label for private schools filter - true case</note>
       </trans-unit>
@@ -2693,7 +2638,7 @@
         <source>Government</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">411</context>
+          <context context-type="linenumber">344</context>
         </context-group>
         <note priority="1" from="description">Label for private schools filter - false case</note>
       </trans-unit>
@@ -2701,15 +2646,15 @@
         <source>Basic Information</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">423</context>
+          <context context-type="linenumber">356</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">615</context>
+          <context context-type="linenumber">548</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">798</context>
+          <context context-type="linenumber">731</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2717,7 +2662,7 @@
         <source>Students</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">451</context>
+          <context context-type="linenumber">384</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2725,7 +2670,7 @@
         <source>Activities</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">460</context>
+          <context context-type="linenumber">393</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2733,7 +2678,7 @@
         <source>Age</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">482</context>
+          <context context-type="linenumber">415</context>
         </context-group>
         <note priority="1" from="description">Column label for age of child</note>
       </trans-unit>
@@ -2741,7 +2686,7 @@
         <source>Attendance (School)</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">500</context>
+          <context context-type="linenumber">433</context>
         </context-group>
         <note priority="1" from="description">Column label for school attendance of child</note>
       </trans-unit>
@@ -2749,7 +2694,7 @@
         <source>Attendance (Coaching)</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">509</context>
+          <context context-type="linenumber">442</context>
         </context-group>
         <note priority="1" from="description">Column label for coaching attendance of child</note>
       </trans-unit>
@@ -2757,11 +2702,11 @@
         <source>Basic Info</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">524</context>
+          <context context-type="linenumber">457</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">528</context>
+          <context context-type="linenumber">461</context>
         </context-group>
         <note priority="1" from="description">Translated name of default column group</note>
       </trans-unit>
@@ -2769,7 +2714,7 @@
         <source>School Info</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">541</context>
+          <context context-type="linenumber">474</context>
         </context-group>
         <note priority="1" from="description">Column group name</note>
       </trans-unit>
@@ -2777,11 +2722,11 @@
         <source>Health</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">564</context>
+          <context context-type="linenumber">497</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">713</context>
+          <context context-type="linenumber">646</context>
         </context-group>
         <note priority="1" from="description">Column group name</note>
       </trans-unit>
@@ -2789,7 +2734,7 @@
         <source>Active</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">594</context>
+          <context context-type="linenumber">527</context>
         </context-group>
         <note priority="1" from="description">Active children filter label - true case</note>
       </trans-unit>
@@ -2797,7 +2742,7 @@
         <source>Inactive</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">595</context>
+          <context context-type="linenumber">528</context>
         </context-group>
         <note priority="1" from="description">Active children filter label - false case</note>
       </trans-unit>
@@ -2805,7 +2750,7 @@
         <source>Personal Information</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">643</context>
+          <context context-type="linenumber">576</context>
         </context-group>
         <note priority="1" from="description">Header for form section</note>
       </trans-unit>
@@ -2813,7 +2758,7 @@
         <source>Additional</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">644</context>
+          <context context-type="linenumber">577</context>
         </context-group>
         <note priority="1" from="description">Header for form section</note>
       </trans-unit>
@@ -2821,7 +2766,7 @@
         <source>Scholar activities</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">645</context>
+          <context context-type="linenumber">578</context>
         </context-group>
         <note priority="1" from="description">Header for form section</note>
       </trans-unit>
@@ -2829,7 +2774,7 @@
         <source>Education</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">652</context>
+          <context context-type="linenumber">585</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2837,7 +2782,7 @@
         <source>School History</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">655</context>
+          <context context-type="linenumber">588</context>
         </context-group>
         <note priority="1" from="description">Title inside a panel</note>
       </trans-unit>
@@ -2845,7 +2790,7 @@
         <source>ASER Results</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">675</context>
+          <context context-type="linenumber">608</context>
         </context-group>
         <note priority="1" from="description">Title inside a panel</note>
       </trans-unit>
@@ -2853,7 +2798,7 @@
         <source>Find a suitable new school</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">679</context>
+          <context context-type="linenumber">612</context>
         </context-group>
         <note priority="1" from="description">Child details section title</note>
       </trans-unit>
@@ -2861,7 +2806,7 @@
         <source>Notes &amp; Tasks</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">700</context>
+          <context context-type="linenumber">633</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2869,7 +2814,7 @@
         <source>Height &amp; Weight Tracking</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">726</context>
+          <context context-type="linenumber">659</context>
         </context-group>
         <note priority="1" from="description">Title inside a panel</note>
       </trans-unit>
@@ -2877,7 +2822,7 @@
         <source>Educational Materials</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">732</context>
+          <context context-type="linenumber">665</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2885,7 +2830,7 @@
         <source>Observations</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">741</context>
+          <context context-type="linenumber">674</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2893,7 +2838,7 @@
         <source>Events &amp; Attendance</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">828</context>
+          <context context-type="linenumber">761</context>
         </context-group>
         <note priority="1" from="description">Panel title</note>
       </trans-unit>
@@ -2901,7 +2846,7 @@
         <source>Basic Report</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">843</context>
+          <context context-type="linenumber">776</context>
         </context-group>
         <note priority="1" from="description">Name of a report</note>
       </trans-unit>
@@ -2909,7 +2854,7 @@
         <source>All children</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">847</context>
+          <context context-type="linenumber">780</context>
         </context-group>
         <note priority="1" from="description">Label of report query</note>
       </trans-unit>
@@ -2917,7 +2862,7 @@
         <source>All schools</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">852</context>
+          <context context-type="linenumber">785</context>
         </context-group>
         <note priority="1" from="description">Label for report query</note>
       </trans-unit>
@@ -2925,7 +2870,7 @@
         <source>Children attending a school</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">855</context>
+          <context context-type="linenumber">788</context>
         </context-group>
         <note priority="1" from="description">Label for report query</note>
       </trans-unit>
@@ -2933,7 +2878,7 @@
         <source>Governmental schools</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">859</context>
+          <context context-type="linenumber">792</context>
         </context-group>
         <note priority="1" from="description">Label for report query</note>
       </trans-unit>
@@ -2941,7 +2886,7 @@
         <source>Children attending a governmental school</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">864</context>
+          <context context-type="linenumber">797</context>
         </context-group>
         <note priority="1" from="description">Label for report query</note>
       </trans-unit>
@@ -2949,7 +2894,7 @@
         <source>Private schools</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">868</context>
+          <context context-type="linenumber">801</context>
         </context-group>
         <note priority="1" from="description">Label for report query</note>
       </trans-unit>
@@ -2957,7 +2902,7 @@
         <source>Children attending a private school</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">873</context>
+          <context context-type="linenumber">806</context>
         </context-group>
         <note priority="1" from="description">Label for report query</note>
       </trans-unit>
@@ -2965,7 +2910,7 @@
         <source>Event Report</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">881</context>
+          <context context-type="linenumber">814</context>
         </context-group>
         <note priority="1" from="description">Name of a report</note>
       </trans-unit>
@@ -2973,7 +2918,7 @@
         <source>Attendance Report</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">898</context>
+          <context context-type="linenumber">831</context>
         </context-group>
         <note priority="1" from="description">Name of a report</note>
       </trans-unit>
@@ -2981,7 +2926,7 @@
         <source>Total</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">913</context>
+          <context context-type="linenumber">846</context>
         </context-group>
         <note priority="1" from="description">Name of a column of a report</note>
       </trans-unit>
@@ -2989,7 +2934,7 @@
         <source>Present</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">917</context>
+          <context context-type="linenumber">850</context>
         </context-group>
         <note priority="1" from="description">Name of a column of a report</note>
       </trans-unit>
@@ -2997,7 +2942,7 @@
         <source>Rate</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">921</context>
+          <context context-type="linenumber">854</context>
         </context-group>
         <note priority="1" from="description">Name of a column of a report</note>
       </trans-unit>
@@ -3005,7 +2950,7 @@
         <source>Late</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">925</context>
+          <context context-type="linenumber">858</context>
         </context-group>
         <note priority="1" from="description">Name of a column of a report</note>
       </trans-unit>
@@ -3013,11 +2958,11 @@
         <source>Address</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">946</context>
+          <context context-type="linenumber">879</context>
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1014</context>
+          <context context-type="linenumber">947</context>
         </context-group>
         <note priority="1" from="description">Label for the address of a child</note>
       </trans-unit>
@@ -3025,7 +2970,7 @@
         <source>Blood Group</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">953</context>
+          <context context-type="linenumber">886</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3033,7 +2978,7 @@
         <source>Religion</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">960</context>
+          <context context-type="linenumber">893</context>
         </context-group>
         <note priority="1" from="description">Label for the religion of a child</note>
       </trans-unit>
@@ -3041,7 +2986,7 @@
         <source>Mother Tongue</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">967</context>
+          <context context-type="linenumber">900</context>
         </context-group>
         <note priority="1" from="description">Label for the mother tongue of a child</note>
       </trans-unit>
@@ -3049,7 +2994,7 @@
         <source>The primary language spoken at home</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">968</context>
+          <context context-type="linenumber">901</context>
         </context-group>
         <note priority="1" from="description">Tooltip description for the mother tongue of a child</note>
       </trans-unit>
@@ -3057,7 +3002,7 @@
         <source>Last Dental Check-Up</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">975</context>
+          <context context-type="linenumber">908</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3065,7 +3010,7 @@
         <source>Birth certificate</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">982</context>
+          <context context-type="linenumber">915</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3073,7 +3018,7 @@
         <source>Private School</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1000</context>
+          <context context-type="linenumber">933</context>
         </context-group>
         <note priority="1" from="description">Label for if a school is a private school</note>
       </trans-unit>
@@ -3081,7 +3026,7 @@
         <source>Language</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1007</context>
+          <context context-type="linenumber">940</context>
         </context-group>
         <note priority="1" from="description">Label for the language of a school</note>
       </trans-unit>
@@ -3089,7 +3034,7 @@
         <source>School Timing</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1028</context>
+          <context context-type="linenumber">961</context>
         </context-group>
         <note priority="1" from="description">Label for the timing of a school</note>
       </trans-unit>
@@ -3097,7 +3042,7 @@
         <source>Motivated</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1047</context>
+          <context context-type="linenumber">980</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3105,7 +3050,7 @@
         <source>The child is motivated during the class.</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1048</context>
+          <context context-type="linenumber">981</context>
         </context-group>
         <note priority="1" from="description">Description for a child attribute</note>
       </trans-unit>
@@ -3113,7 +3058,7 @@
         <source>Participating</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1056</context>
+          <context context-type="linenumber">989</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3121,7 +3066,7 @@
         <source>The child is actively participating in the class.</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1057</context>
+          <context context-type="linenumber">990</context>
         </context-group>
         <note priority="1" from="description">Description for a child attribute</note>
       </trans-unit>
@@ -3129,7 +3074,7 @@
         <source>Interacting</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1065</context>
+          <context context-type="linenumber">998</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3137,7 +3082,7 @@
         <source>The child interacts with other students during the class.</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1066</context>
+          <context context-type="linenumber">999</context>
         </context-group>
         <note priority="1" from="description">Description for a child attribute</note>
       </trans-unit>
@@ -3145,7 +3090,7 @@
         <source>Homework</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1074</context>
+          <context context-type="linenumber">1007</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3153,7 +3098,7 @@
         <source>The child does its homework.</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1075</context>
+          <context context-type="linenumber">1008</context>
         </context-group>
         <note priority="1" from="description">Description for a child attribute</note>
       </trans-unit>
@@ -3161,7 +3106,7 @@
         <source>Asking Questions</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1083</context>
+          <context context-type="linenumber">1016</context>
         </context-group>
         <note priority="1" from="description">Label for a child attribute</note>
       </trans-unit>
@@ -3169,7 +3114,7 @@
         <source>The child is asking questions during the class.</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1084</context>
+          <context context-type="linenumber">1017</context>
         </context-group>
         <note priority="1" from="description">Description for a child attribute</note>
       </trans-unit>
@@ -3177,7 +3122,7 @@
         <source>Contact</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/config/config-fix.ts</context>
-          <context context-type="linenumber">1095</context>
+          <context context-type="linenumber">1028</context>
         </context-group>
         <note priority="1" from="description">Label of user phone</note>
       </trans-unit>
@@ -3273,33 +3218,80 @@
         </context-group>
         <note priority="1" from="description">Interaction type/Category of a Note</note>
       </trans-unit>
+      <trans-unit id="7a39368f9393f9bf97632d275e023ffbbe594be8" datatype="html">
+        <source> This field is required </source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.html</context>
+          <context context-type="linenumber">57,58</context>
+        </context-group>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-text-with-autocomplete/edit-text-with-autocomplete.component.html</context>
+          <context context-type="linenumber">32,33</context>
+        </context-group>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/todos/recurring-interval/edit-recurring-interval/edit-recurring-interval.component.html</context>
+          <context context-type="linenumber">23,25</context>
+        </context-group>
+        <note priority="1" from="description">Error message for any input</note>
+      </trans-unit>
+      <trans-unit id="5432260252143962374" datatype="html">
+        <source>Create new option</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/basic-autocomplete/basic-autocomplete.component.ts</context>
+          <context context-type="linenumber">188</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="5175452770249467211" datatype="html">
         <source>[invalid option]</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/configurable-enum/configurable-enum-datatype/configurable-enum-datatype.ts</context>
-          <context context-type="linenumber">61</context>
+          <context context-type="linenumber">53</context>
         </context-group>
         <note priority="1" from="description">enum option label prefix for invalid id dummy</note>
       </trans-unit>
-      <trans-unit id="7a39368f9393f9bf97632d275e023ffbbe594be8" datatype="html">
-        <source> This field is required </source>
+      <trans-unit id="f02662520a5f60c9da28cdebbe9c17f34b4439c8" datatype="html">
+        <source> Edit dropdown options
+</source>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/configurable-enum/edit-configurable-enum/edit-configurable-enum.component.html</context>
-          <context context-type="linenumber">21,23</context>
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">2,3</context>
         </context-group>
+        <note priority="1" from="description">title of dropdown options popup dialog</note>
+      </trans-unit>
+      <trans-unit id="396111f33ef48eef016cd0eedb7be2ef882d7430" datatype="html">
+        <source> Close </source>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.html</context>
-          <context context-type="linenumber">62,63</context>
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.html</context>
+          <context context-type="linenumber">34,35</context>
         </context-group>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-text-with-autocomplete/edit-text-with-autocomplete.component.html</context>
-          <context context-type="linenumber">32,33</context>
+          <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.html</context>
+          <context context-type="linenumber">54,56</context>
         </context-group>
+        <note priority="1" from="description">Close popup</note>
+      </trans-unit>
+      <trans-unit id="1729165161001518929" datatype="html">
+        <source>Are you sure that you want to delete the option <x id="PH" equiv-text="value.label"/>?</source>
         <context-group purpose="location">
-          <context context-type="sourcefile">src/app/features/todos/recurring-interval/edit-recurring-interval/edit-recurring-interval.component.html</context>
-          <context context-type="linenumber">23,25</context>
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">68</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="6524829042498938726" datatype="html">
+        <source> The option is still used in <x id="PH" equiv-text="existingUsages.join(
+        &quot;, &quot;
+      )"/> records. If deleted, the records will not be lost but specially marked</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">70,72</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="3767101596108414700" datatype="html">
+        <source>Delete option</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/core/configurable-enum/configure-enum-popup/configure-enum-popup.component.ts</context>
+          <context context-type="linenumber">75</context>
         </context-group>
-        <note priority="1" from="description">Error message for any input</note>
       </trans-unit>
       <trans-unit id="8998179362936748717" datatype="html">
         <source>OK</source>
@@ -3592,15 +3584,6 @@
         <note priority="1" from="description">context 10 in total</note>
         <note priority="1" from="meaning">Displaying the amount of involved entities</note>
       </trans-unit>
-      <trans-unit id="4668912478133095886" datatype="html">
-        <source>Select <x id="PH" equiv-text="config.formFieldConfig.label || config.propertySchema?.label"/></source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/entity-components/entity-select/edit-single-entity/edit-single-entity.component.ts</context>
-          <context context-type="linenumber">62,64</context>
-        </context-group>
-        <note priority="1" from="description">context Select User</note>
-        <note priority="1" from="meaning">Placeholder for input to set an entity</note>
-      </trans-unit>
       <trans-unit id="1f05f87b0643c90a090870fcfdb99d888b556f23" datatype="html">
         <source>Creating new record.</source>
         <context-group purpose="location">
@@ -3723,7 +3706,7 @@
         <source>Preparing data (Indexing)</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/entity/database-indexing/database-indexing.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">59</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5210270493533766316" datatype="html">
@@ -3758,7 +3741,7 @@
         </context-group>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">60</context>
+          <context context-type="linenumber">61</context>
         </context-group>
         <note priority="1" from="description">Undo deleting an entity</note>
       </trans-unit>
@@ -3864,26 +3847,18 @@
           <context context-type="linenumber">46,48</context>
         </context-group>
       </trans-unit>
-      <trans-unit id="396111f33ef48eef016cd0eedb7be2ef882d7430" datatype="html">
-        <source> Close </source>
-        <context-group purpose="location">
-          <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.html</context>
-          <context context-type="linenumber">54,56</context>
-        </context-group>
-        <note priority="1" from="description">Generic close button</note>
-      </trans-unit>
       <trans-unit id="2566001175328025157" datatype="html">
         <source>No Changelog Available</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/changelog/changelog.component.ts</context>
-          <context context-type="linenumber">87</context>
+          <context context-type="linenumber">89</context>
         </context-group>
       </trans-unit>
       <trans-unit id="7795087408392131030" datatype="html">
         <source>Could not load latest changes: <x id="PH" equiv-text="error"/></source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/latest-changes/latest-changes.service.ts</context>
-          <context context-type="linenumber">131</context>
+          <context context-type="linenumber">121</context>
         </context-group>
       </trans-unit>
       <trans-unit id="2896181875024748753" datatype="html">
@@ -4289,7 +4264,7 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source><x id="START_TAG_FA_ICON" ctype="x-fa_icon" equiv-text="&lt;fa-icon icon=&quot;user&quot;&gt;"/><x id="CLOSE_TAG_FA_ICON" ctype="x-fa_icon" equiv-text="&lt;/fa-icon&gt;"/> Profile </source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">84,86</context>
+          <context context-type="linenumber">85,87</context>
         </context-group>
         <note priority="1" from="description">Navigate to user profile page</note>
       </trans-unit>
@@ -4297,7 +4272,7 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source><x id="START_TAG_FA_ICON" ctype="x-fa_icon" equiv-text="&lt;fa-icon icon=&quot;sign-out-alt&quot;&gt;"/><x id="CLOSE_TAG_FA_ICON" ctype="x-fa_icon" equiv-text="&lt;/fa-icon&gt;"/> Sign out </source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/core/ui/ui/ui.component.html</context>
-          <context context-type="linenumber">89,91</context>
+          <context context-type="linenumber">90,92</context>
         </context-group>
         <note priority="1" from="description">Sign out of the app</note>
       </trans-unit>
@@ -4523,14 +4498,14 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source>Import completed</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">59</context>
+          <context context-type="linenumber">60</context>
         </context-group>
       </trans-unit>
       <trans-unit id="6880068429772311753" datatype="html">
         <source>Import new data?</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">75</context>
+          <context context-type="linenumber">76</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1690350829788615736" datatype="html">
@@ -4538,14 +4513,14 @@ Please try again. If the problem persists contact Aam Digital support.</source>
       This will add or update <x id="PH" equiv-text="data.length"/> records from the loaded file.</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">76,77</context>
+          <context context-type="linenumber">77,78</context>
         </context-group>
       </trans-unit>
       <trans-unit id="5345022420402242415" datatype="html">
         <source><x id="PH" equiv-text="refText"/> All existing records imported with the transaction id &apos;<x id="PH_1" equiv-text="importMeta.transactionId"/>&apos; will be deleted!</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/data-import/data-import.service.ts</context>
-          <context context-type="linenumber">79</context>
+          <context context-type="linenumber">80</context>
         </context-group>
       </trans-unit>
       <trans-unit id="4fd611f679282abb73122b03bfed3724dba9b6bf" datatype="html">
@@ -4809,11 +4784,28 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         </context-group>
         <note priority="1" from="description">help text in map popup</note>
       </trans-unit>
+      <trans-unit id="22ee8aecedfcdfcd3313bc6c5f0e80175bfafd58" datatype="html">
+        <source> Select displayed locations
+</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">1,3</context>
+        </context-group>
+        <note priority="1" from="description">Title of popup to select locations that are displayed in the map</note>
+      </trans-unit>
+      <trans-unit id="c2d0ac9f528bbd5f53fd34269fde8b59e029621b" datatype="html">
+        <source>Apply</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/location/map/map-properties-popup/map-properties-popup.component.html</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+        <note priority="1" from="description">Button for closing popup and applying changes</note>
+      </trans-unit>
       <trans-unit id="2549737213024136740" datatype="html">
-        <source><x id="PH" equiv-text="res"/> km</source>
+        <source><x id="PH" equiv-text="closest"/> km</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/location/view-distance/view-distance.component.ts</context>
-          <context context-type="linenumber">73</context>
+          <context context-type="linenumber">65</context>
         </context-group>
         <note priority="1" from="description">e.g. 5 km</note>
         <note priority="1" from="meaning">distance with unit</note>
@@ -4830,7 +4822,7 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source> Select <x id="INTERPOLATION" equiv-text="{{ side.entityType?.label }}"/> </source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.html</context>
-          <context context-type="linenumber">55,56</context>
+          <context context-type="linenumber">54,55</context>
         </context-group>
         <note priority="1" from="description">header of section with entities available for selection</note>
       </trans-unit>
@@ -4838,7 +4830,7 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source>create matching</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">85</context>
+          <context context-type="linenumber">91</context>
         </context-group>
         <note priority="1" from="description">Matching button label</note>
       </trans-unit>
@@ -4846,7 +4838,7 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source>Distance</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/matching-entities/matching-entities/matching-entities.component.ts</context>
-          <context context-type="linenumber">273</context>
+          <context context-type="linenumber">312</context>
         </context-group>
         <note priority="1" from="description">Matching View column name</note>
       </trans-unit>
@@ -5077,6 +5069,20 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         </context-group>
         <note priority="1" from="description">The progress, e.g. of a certain activity</note>
       </trans-unit>
+      <trans-unit id="2468578017924444574" datatype="html">
+        <source>Example form</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">18</context>
+        </context-group>
+      </trans-unit>
+      <trans-unit id="5065162821808701761" datatype="html">
+        <source>This is a form that can be shared as a link or embedded in a website. It can be filled by users without having an account. For example you can let participants self-register their details and just review the records within Aam Digital.</source>
+        <context-group purpose="location">
+          <context context-type="sourcefile">src/app/features/public-form/demo-public-form-generator.service.ts</context>
+          <context context-type="linenumber">19</context>
+        </context-group>
+      </trans-unit>
       <trans-unit id="f215ed23a0b8105ae47ef80cf65fe765631dd94a" datatype="html">
         <source> Submit Form </source>
         <context-group purpose="location">
@@ -5097,7 +5103,7 @@ Please try again. If the problem persists contact Aam Digital support.</source>
         <source>Successfully submitted form</source>
         <context-group purpose="location">
           <context context-type="sourcefile">src/app/features/public-form/public-form.component.ts</context>
-          <context context-type="linenumber">58</context>
+          <context context-type="linenumber">62</context>
         </context-group>
       </trans-unit>
       <trans-unit id="1906738132039774080" datatype="html">
diff --git a/src/styles/variables/_colors.scss b/src/styles/variables/_colors.scss
index 0a5f02ef47..75e0cddc38 100644
--- a/src/styles/variables/_colors.scss
+++ b/src/styles/variables/_colors.scss
@@ -26,6 +26,7 @@ $warn                   : mat.get-color-from-palette($warn-palette);
 $error                  : mat.get-color-from-palette($err-palette);
 
 $muted                  : rgba(0, 0, 0, 0.54);
+$disabled               : rgba(0, 0, 0, 0.38);
 
 /*
  * Quantized warning-levels. Each level represents a color from green (all is OK)