diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c9624c1..0cfe6b5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -60,7 +60,7 @@ A PR template with a short checklist will guide you:
## Master data and PII
-Dropdown contents (roles, call signs, streets, personnel) are treated as
+Dropdown contents (roles, call signs, brigades, personnel) are treated as
personally identifying data and must **never** be committed to this repository.
`seed-source/` and `*.masterdata.json` are gitignored for exactly this reason;
the only tracked master data is the anonymised
diff --git a/README.md b/README.md
index 9638ee1..65fd807 100644
--- a/README.md
+++ b/README.md
@@ -112,7 +112,7 @@ git tag v0.3.0 && git push origin v0.3.0
## Master data
-Dropdown contents (roles, radio call signs, streets, personnel, ...) are treated
+Dropdown contents (roles, radio call signs, brigades, personnel, ...) are treated
as PII and are **never compiled into the application**. A fresh install starts
with **empty** master data; you populate it in the in-app **Stammdaten** editor
by importing a JSON file, and can write your own data back out again.
diff --git a/docs/master-data.example.json b/docs/master-data.example.json
index b3fe475..632d7bb 100644
--- a/docs/master-data.example.json
+++ b/docs/master-data.example.json
@@ -1,13 +1,9 @@
{
"roles": ["EL", "EAL", "ZF", "GF"],
- "status": ["aufgenommen", "übermittelt", "abgearbeitet"],
"unitStatus": ["Alarmiert", "Auf Anfahrt", "Bereitstellungsraum", "Im Einsatz"],
- "equipment": ["Mobilteil 1", "Digitalkamera"],
- "districts": ["Musterstadt", "Musterdorf"],
"radioCallSigns": ["Florian Musterstadt 1", "Florian Musterstadt 11/1"],
"brigades": ["FF Musterstadt", "FF Musterdorf"],
"truppTypes": ["Angriffstrupp", "Wassertrupp", "Schlauchtrupp", "CSA-Trupp", "LPA-Trupp"],
- "einsatzarten": ["B", "THL", "R", "ABC", "Sonstiges"],
"checklistTemplateAufbau": [
{ "text": "Aufstellort ELW frei?", "mandatory": true },
{ "text": "Kennleuchte ein, Blaulicht aus?", "mandatory": false }
@@ -15,10 +11,6 @@
"checklistTemplateAbbau": [
{ "text": "Fahrzeug abgerüstet?", "mandatory": true }
],
- "streets": [
- { "name": "Bahnhofstraße", "district": "Musterstadt" },
- { "name": "Hauptstraße", "district": "Musterdorf" }
- ],
"personnel": [
{ "lastName": "Mustermann", "firstName": "Max", "role": "ZF", "callSign": "Florian Musterstadt 1", "phone": "0171 0000000" },
{ "lastName": "Musterfrau", "firstName": "Erika", "role": "GF", "callSign": null, "phone": null }
@@ -29,7 +21,6 @@
"agtMaxDurationMinutes": 30,
"csaMaxDurationMinutes": 20,
"lpaMaxDurationMinutes": 60,
- "pressureControlIntervalMinutes": 5,
"returnPressureBar": 50
}
}
diff --git a/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml b/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml
index b07efcb..1d40dc3 100644
--- a/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml
+++ b/src/LageBuch.App.Shared/Views/MasterDataEditorView.axaml
@@ -92,12 +92,6 @@
Minimum="1" Maximum="180" Increment="1" FormatString="0" />
-
-
-
-
-
/// The Stammdaten editor. Loads every editable category from the provider into its own section,
-/// tracks a single dirty flag across them, and writes the whole set back on Save. Streets are read
-/// but not editable, so they are carried through untouched. Import (offered only while the data is
-/// empty) fills the editor from a JSON file for review; Export writes the current set back out.
+/// tracks a single dirty flag across them, and writes the whole set back on Save. Import (offered
+/// only while the data is empty) fills the editor from a JSON file for review; Export writes the
+/// current set back out.
///
public sealed partial class MasterDataEditorViewModel : ObservableObject
{
@@ -24,18 +24,9 @@ public sealed partial class MasterDataEditorViewModel : ObservableObject
// Typed handles kept so BuildSet reads each section without fragile positional casts.
private EditableListSection _roles = null!;
- // Typed handles kept so BuildSet reads each section without fragile positional casts.
- private EditableListSection _status = null!;
-
// Typed handles kept so BuildSet reads each section without fragile positional casts.
private EditableListSection _unitStatus = null!;
- // Typed handles kept so BuildSet reads each section without fragile positional casts.
- private EditableListSection _equipment = null!;
-
- // Typed handles kept so BuildSet reads each section without fragile positional casts.
- private EditableListSection _districts = null!;
-
// Typed handles kept so BuildSet reads each section without fragile positional casts.
private EditableListSection _brigades = null!;
@@ -45,9 +36,6 @@ public sealed partial class MasterDataEditorViewModel : ObservableObject
// Typed handles kept so BuildSet reads each section without fragile positional casts.
private EditableListSection _truppTypes = null!;
- // Typed handles kept so BuildSet reads each section without fragile positional casts.
- private EditableListSection _einsatzarten = null!;
-
private ChecklistTemplateSection _checklistAufbau = null!;
private ChecklistTemplateSection _checklistAbbau = null!;
private LinksSection _links = null!;
@@ -110,21 +98,29 @@ private void PopulateSections(MasterDataSet set)
var previousIndex = SelectedSection is null ? 0 : Sections.IndexOf(SelectedSection);
Sections.Clear();
+
+ // Einstellungen is a meta section (numeric defaults), not a data category, so it stays
+ // pinned first; everything else sorts alphabetically below it.
Sections.Add(_settings = new SettingsSection("Einstellungen", set.Settings, MarkDirty));
- Sections.Add(_roles = new EditableListSection("Rollen", set.Roles, MarkDirty));
- Sections.Add(_status = new EditableListSection("Status", set.Status, MarkDirty));
- Sections.Add(_unitStatus = new EditableListSection("Einheiten-Status", set.UnitStatus, MarkDirty));
- Sections.Add(_equipment = new EditableListSection("Ausrüstung", set.Equipment, MarkDirty));
- Sections.Add(_districts = new EditableListSection("Bezirke", set.Districts, MarkDirty));
- Sections.Add(_brigades = new EditableListSection("Wachen", set.Brigades, MarkDirty));
- Sections.Add(_callSigns = new EditableListSection("Funkrufnamen", set.RadioCallSigns, MarkDirty));
- Sections.Add(_truppTypes = new EditableListSection("Trupp-Typen", set.TruppTypes, MarkDirty));
- Sections.Add(_einsatzarten = new EditableListSection("Einsatzarten", set.Einsatzarten, MarkDirty));
- Sections.Add(_links = new LinksSection("Links", set.Links, MarkDirty));
- Sections.Add(_checklistAufbau = new ChecklistTemplateSection("Checkliste Aufbau", set.ChecklistTemplateAufbau, MarkDirty));
- Sections.Add(_checklistAbbau = new ChecklistTemplateSection("Checkliste Abbau", set.ChecklistTemplateAbbau, MarkDirty));
- Sections.Add(_personnel = new PersonnelSection("Personal", set.Personnel, MarkDirty));
- Sections.Add(_vehicles = new VehiclesSection("Fahrzeuge", set.Vehicles, set.Brigades, set.RadioCallSigns, OnVehiclesChanged));
+
+ EditorSection[] categories =
+ {
+ _roles = new EditableListSection("Rollen", set.Roles, MarkDirty),
+ _unitStatus = new EditableListSection("Einheiten-Status", set.UnitStatus, MarkDirty),
+ _brigades = new EditableListSection("Wachen", set.Brigades, MarkDirty),
+ _callSigns = new EditableListSection("Funkrufnamen", set.RadioCallSigns, MarkDirty),
+ _truppTypes = new EditableListSection("Trupp-Typen", set.TruppTypes, MarkDirty),
+ _links = new LinksSection("Links", set.Links, MarkDirty),
+ _checklistAufbau = new ChecklistTemplateSection("Checkliste Aufbau", set.ChecklistTemplateAufbau, MarkDirty),
+ _checklistAbbau = new ChecklistTemplateSection("Checkliste Abbau", set.ChecklistTemplateAbbau, MarkDirty),
+ _personnel = new PersonnelSection("Personal", set.Personnel, MarkDirty),
+ _vehicles = new VehiclesSection("Fahrzeuge", set.Vehicles, set.Brigades, set.RadioCallSigns, OnVehiclesChanged),
+ };
+
+ foreach (var section in categories.OrderBy(s => s.Title, StringComparer.OrdinalIgnoreCase))
+ {
+ Sections.Add(section);
+ }
SelectedSection = Sections[Math.Clamp(previousIndex < 0 ? 0 : previousIndex, 0, Sections.Count - 1)];
}
@@ -152,22 +148,16 @@ private void RefreshVehicleConflicts()
private MasterDataSet BuildSet() => _original with
{
Roles = _roles.ToValues(),
- Status = _status.ToValues(),
UnitStatus = _unitStatus.ToValues(),
- Equipment = _equipment.ToValues(),
- Districts = _districts.ToValues(),
Brigades = _brigades.ToValues(),
RadioCallSigns = _callSigns.ToValues(),
TruppTypes = _truppTypes.ToValues(),
- Einsatzarten = _einsatzarten.ToValues(),
Links = _links.ToValues(),
ChecklistTemplateAufbau = _checklistAufbau.ToValues(),
ChecklistTemplateAbbau = _checklistAbbau.ToValues(),
Personnel = _personnel.ToPeople(),
Vehicles = _vehicles.ToValues(),
Settings = _settings.ToSettings(),
-
- // Streets are not editable here; _original carries them through unchanged.
};
[RelayCommand(CanExecute = nameof(CanSave))]
diff --git a/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs b/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs
index 58e0ea6..d3a3b74 100644
--- a/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs
+++ b/src/LageBuch.AppLogic/ViewModels/SettingsSection.cs
@@ -5,9 +5,9 @@ namespace LageBuch.AppLogic.ViewModels;
///
/// Editor for the operational defaults (): the ILS reminder interval,
-/// the AGT/CSA Einsatzzeiten, the Druckkontrolle interval and the Rückzugsdruck. Unlike the list
-/// sections these are scalar numbers, so the section exposes one bindable property each and reports
-/// any change through the shared dirty callback.
+/// the AGT/CSA Einsatzzeiten and the Rückzugsdruck. Unlike the list sections these are scalar
+/// numbers, so the section exposes one bindable property each and reports any change through the
+/// shared dirty callback.
///
public sealed partial class SettingsSection : EditorSection
{
@@ -23,7 +23,6 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged
_agtMaxDurationMinutes = settings.AgtMaxDurationMinutes;
_csaMaxDurationMinutes = settings.CsaMaxDurationMinutes;
_lpaMaxDurationMinutes = settings.LpaMaxDurationMinutes;
- _pressureControlIntervalMinutes = settings.PressureControlIntervalMinutes;
_returnPressureBar = settings.ReturnPressureBar;
}
@@ -42,9 +41,6 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged
[ObservableProperty]
private int _lpaMaxDurationMinutes;
- [ObservableProperty]
- private int _pressureControlIntervalMinutes;
-
[ObservableProperty]
private int _returnPressureBar;
@@ -58,8 +54,6 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged
partial void OnLpaMaxDurationMinutesChanged(int value) => _onChanged();
- partial void OnPressureControlIntervalMinutesChanged(int value) => _onChanged();
-
partial void OnReturnPressureBarChanged(int value) => _onChanged();
public IncidentSettings ToSettings() => new(
@@ -68,6 +62,5 @@ public SettingsSection(string title, IncidentSettings settings, Action onChanged
AgtMaxDurationMinutes,
CsaMaxDurationMinutes,
LpaMaxDurationMinutes,
- PressureControlIntervalMinutes,
ReturnPressureBar);
}
diff --git a/src/LageBuch.Persistence/MasterData/MasterDataSet.cs b/src/LageBuch.Persistence/MasterData/MasterDataSet.cs
index 1b23daf..5b0ad3e 100644
--- a/src/LageBuch.Persistence/MasterData/MasterDataSet.cs
+++ b/src/LageBuch.Persistence/MasterData/MasterDataSet.cs
@@ -7,25 +7,15 @@ namespace LageBuch.Persistence.MasterData;
public sealed record MasterDataSet(
IReadOnlyList Roles,
- IReadOnlyList Status,
- IReadOnlyList Equipment,
- IReadOnlyList Districts,
IReadOnlyList RadioCallSigns,
IReadOnlyList Brigades,
-
- // UnitStatus is the status of a single unit (Alarmiert, Auf Anfahrt, ...) and is deliberately
- // separate from Status above, which is the incident-level vocabulary (aufgenommen, ...).
IReadOnlyList UnitStatus,
- IReadOnlyList Streets,
IReadOnlyList Links,
IReadOnlyList ChecklistTemplateAufbau,
IReadOnlyList ChecklistTemplateAbbau,
IReadOnlyList TruppTypes,
IReadOnlyList Personnel,
- // Einsatzart values (ABek Bayern) — the leading token of the complete Einsatznummer.
- IReadOnlyList Einsatzarten,
-
// Vehicles per Wache with their seat count (#76).
IReadOnlyList Vehicles,
@@ -43,16 +33,11 @@ public sealed record MasterDataSet(
Array.Empty(),
Array.Empty(),
Array.Empty(),
- Array.Empty(),
- Array.Empty(),
- Array.Empty(),
- Array.Empty(),
Array.Empty(),
Array.Empty(),
Array.Empty(),
Array.Empty(),
Array.Empty(),
- Array.Empty(),
Array.Empty(),
IncidentSettings.Defaults);
@@ -63,16 +48,14 @@ public sealed record MasterDataSet(
/// mark the set non-empty would suppress the Import bootstrap on an otherwise fresh install.
///
public bool IsEmpty =>
- Roles.Count == 0 && Status.Count == 0 && Equipment.Count == 0 && Districts.Count == 0
+ Roles.Count == 0
&& RadioCallSigns.Count == 0 && Brigades.Count == 0 && UnitStatus.Count == 0
- && Streets.Count == 0 && Links.Count == 0 && ChecklistTemplateAufbau.Count == 0 && ChecklistTemplateAbbau.Count == 0
+ && Links.Count == 0 && ChecklistTemplateAufbau.Count == 0 && ChecklistTemplateAbbau.Count == 0
&& TruppTypes.Count == 0
- && Personnel.Count == 0 && Einsatzarten.Count == 0
+ && Personnel.Count == 0
&& Vehicles.Count == 0;
}
-public sealed record Street(string Name, string District);
-
/// A named link — Stammdaten entry so useful external resources can be opened from an Einsatz.
[SuppressMessage("Design", "CA1054", Justification = "Link URLs are free-form display data in persisted master data; System.Uri would make non-parseable values (relay or relative links) fail to load.")]
[SuppressMessage("Design", "CA1056", Justification = "Link URLs are free-form display data in persisted master data; System.Uri would make non-parseable values (relay or relative links) fail to load.")]
@@ -107,9 +90,6 @@ public sealed record IncidentSettings(
// Atemschutz Einsatzzeit for an LPA-Trupp (long-duration apparatus) — longer than an AGT.
int LpaMaxDurationMinutes,
- // Interval between Druckkontrollen (Atemschutzkontrolle).
- int PressureControlIntervalMinutes,
-
// Rückzugsdruck: pressure at or below which a Trupp must turn back.
int ReturnPressureBar)
{
@@ -123,7 +103,6 @@ public sealed record IncidentSettings(
AgtMaxDurationMinutes: AtemschutzTrupp.DefaultMaxDurationMinutes,
CsaMaxDurationMinutes: AtemschutzTrupp.DefaultChemicalMaxDurationMinutes,
LpaMaxDurationMinutes: AtemschutzTrupp.DefaultLpaMaxDurationMinutes,
- PressureControlIntervalMinutes: AtemschutzTrupp.DefaultPressureControlIntervalMinutes,
ReturnPressureBar: AtemschutzTrupp.DefaultReturnPressureBar);
}
@@ -272,15 +251,6 @@ static IReadOnlyList Arr(JsonElement e, string prop) =>
? a.EnumerateArray().Select(x => x.GetString()!).ToList()
: Array.Empty();
- IReadOnlyList streets =
- root.TryGetProperty("streets", out var st) && st.ValueKind == JsonValueKind.Array
- ? st.EnumerateArray()
- .Select(s => new Street(
- s.GetProperty("name").GetString()!,
- s.TryGetProperty("district", out var d) ? d.GetString() ?? string.Empty : string.Empty))
- .ToList()
- : Array.Empty();
-
IReadOnlyList links =
root.TryGetProperty("links", out var lk) && lk.ValueKind == JsonValueKind.Array
? lk.EnumerateArray()
@@ -302,19 +272,14 @@ static IReadOnlyList Arr(JsonElement e, string prop) =>
return new MasterDataSet(
Arr(root, "roles"),
- Arr(root, "status"),
- Arr(root, "equipment"),
- Arr(root, "districts"),
Arr(root, "radioCallSigns"),
Arr(root, "brigades"),
Arr(root, "unitStatus"),
- streets,
links,
checklistAufbau,
checklistAbbau,
Arr(root, "truppTypes"),
ParsePersonnel(root),
- Arr(root, "einsatzarten"),
vehicles,
ParseSettings(root));
}
@@ -372,7 +337,6 @@ static int Int(JsonElement e, string prop, int fallback) =>
Int(s, "agtMaxDurationMinutes", d.AgtMaxDurationMinutes),
Int(s, "csaMaxDurationMinutes", d.CsaMaxDurationMinutes),
Int(s, "lpaMaxDurationMinutes", d.LpaMaxDurationMinutes),
- Int(s, "pressureControlIntervalMinutes", d.PressureControlIntervalMinutes),
Int(s, "returnPressureBar", d.ReturnPressureBar));
}
@@ -406,17 +370,12 @@ public static string Serialize(MasterDataSet set)
var model = new
{
roles = set.Roles,
- status = set.Status,
unitStatus = set.UnitStatus,
- equipment = set.Equipment,
- districts = set.Districts,
radioCallSigns = set.RadioCallSigns,
brigades = set.Brigades,
truppTypes = set.TruppTypes,
- einsatzarten = set.Einsatzarten,
checklistTemplateAufbau = set.ChecklistTemplateAufbau.Select(i => new { text = i.Text, mandatory = i.IsMandatory }),
checklistTemplateAbbau = set.ChecklistTemplateAbbau.Select(i => new { text = i.Text, mandatory = i.IsMandatory }),
- streets = set.Streets.Select(s => new { name = s.Name, district = s.District }),
links = set.Links.Select(l => new { name = l.Name, url = l.Url }),
vehicles = set.Vehicles.Select(v => new { wache = v.Wache, callSign = v.CallSign, seats = v.Seats }),
personnel = set.Personnel.Select(p => new
@@ -434,7 +393,6 @@ public static string Serialize(MasterDataSet set)
agtMaxDurationMinutes = set.Settings.AgtMaxDurationMinutes,
csaMaxDurationMinutes = set.Settings.CsaMaxDurationMinutes,
lpaMaxDurationMinutes = set.Settings.LpaMaxDurationMinutes,
- pressureControlIntervalMinutes = set.Settings.PressureControlIntervalMinutes,
returnPressureBar = set.Settings.ReturnPressureBar,
},
};
diff --git a/src/LageBuch.Persistence/MasterData/MasterDataStore.cs b/src/LageBuch.Persistence/MasterData/MasterDataStore.cs
index 684ad7b..56647ae 100644
--- a/src/LageBuch.Persistence/MasterData/MasterDataStore.cs
+++ b/src/LageBuch.Persistence/MasterData/MasterDataStore.cs
@@ -30,28 +30,10 @@ public static void Save(string path, MasterDataSet set)
using var tx = cn.BeginTransaction();
ReplaceList(cn, tx, "md_roles", set.Roles);
- ReplaceList(cn, tx, "md_status", set.Status);
ReplaceList(cn, tx, "md_unit_status", set.UnitStatus);
- ReplaceList(cn, tx, "md_equipment", set.Equipment);
- ReplaceList(cn, tx, "md_districts", set.Districts);
ReplaceList(cn, tx, "md_call_signs", set.RadioCallSigns);
ReplaceList(cn, tx, "md_brigades", set.Brigades);
ReplaceList(cn, tx, "md_trupp_types", set.TruppTypes);
- ReplaceList(cn, tx, "md_einsatzarten", set.Einsatzarten);
-
- Run(cn, tx, "DELETE FROM md_streets;", _ => { });
- foreach (var s in set.Streets)
- {
- Run(
- cn,
- tx,
- "INSERT INTO md_streets (name, district) VALUES ($n,$d);",
- p =>
- {
- p("$n", s.Name);
- p("$d", s.District);
- });
- }
Run(cn, tx, "DELETE FROM md_links;", _ => { });
foreach (var l in set.Links)
@@ -149,7 +131,6 @@ private static (string Key, int Value)[] SettingsRows(IncidentSettings s) => new
("agt_max_duration_minutes", s.AgtMaxDurationMinutes),
("csa_max_duration_minutes", s.CsaMaxDurationMinutes),
("lpa_max_duration_minutes", s.LpaMaxDurationMinutes),
- ("pressure_control_interval_minutes", s.PressureControlIntervalMinutes),
("return_pressure_bar", s.ReturnPressureBar),
};
@@ -163,13 +144,9 @@ private static void EnsureSchema(SqliteConnection cn)
{
const string schema = """
CREATE TABLE IF NOT EXISTS md_roles (value TEXT NOT NULL);
- CREATE TABLE IF NOT EXISTS md_status (value TEXT NOT NULL);
- CREATE TABLE IF NOT EXISTS md_equipment (value TEXT NOT NULL);
- CREATE TABLE IF NOT EXISTS md_districts (value TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS md_call_signs (value TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS md_brigades (value TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS md_unit_status (value TEXT NOT NULL);
- CREATE TABLE IF NOT EXISTS md_streets (name TEXT NOT NULL, district TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS md_links (name TEXT NOT NULL, url TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS md_vehicles (wache TEXT NOT NULL, call_sign TEXT NOT NULL, seats INTEGER NOT NULL DEFAULT 0);
CREATE TABLE IF NOT EXISTS md_checklist_template (
@@ -179,7 +156,6 @@ CREATE TABLE IF NOT EXISTS md_checklist_template (
kind INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS md_trupp_types (value TEXT NOT NULL);
- CREATE TABLE IF NOT EXISTS md_einsatzarten (value TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS md_personnel (
last_name TEXT NOT NULL,
first_name TEXT NOT NULL,
@@ -202,19 +178,14 @@ private static MasterDataSet Read(SqliteConnection cn)
var (checklistAufbau, checklistAbbau) = ReadChecklistTemplate(cn);
return new(
ReadColumn(cn, "SELECT value FROM md_roles;"),
- ReadColumn(cn, "SELECT value FROM md_status;"),
- ReadColumn(cn, "SELECT value FROM md_equipment;"),
- ReadColumn(cn, "SELECT value FROM md_districts;"),
ReadColumn(cn, "SELECT value FROM md_call_signs;"),
ReadColumn(cn, "SELECT value FROM md_brigades;"),
ReadColumn(cn, "SELECT value FROM md_unit_status;"),
- ReadStreets(cn),
ReadLinks(cn),
checklistAufbau,
checklistAbbau,
ReadColumn(cn, "SELECT value FROM md_trupp_types;"),
ReadPersonnel(cn),
- ReadColumn(cn, "SELECT value FROM md_einsatzarten;"),
ReadVehicles(cn),
ReadSettings(cn));
}
@@ -261,7 +232,6 @@ private static IncidentSettings ReadSettings(SqliteConnection cn)
Get("agt_max_duration_minutes", d.AgtMaxDurationMinutes),
Get("csa_max_duration_minutes", d.CsaMaxDurationMinutes),
Get("lpa_max_duration_minutes", d.LpaMaxDurationMinutes),
- Get("pressure_control_interval_minutes", d.PressureControlIntervalMinutes),
Get("return_pressure_bar", d.ReturnPressureBar));
}
@@ -291,20 +261,6 @@ private static List ReadColumn(SqliteConnection cn, string sql)
return list;
}
- private static List ReadStreets(SqliteConnection cn)
- {
- using var cmd = cn.CreateCommand();
- cmd.CommandText = "SELECT name, district FROM md_streets;";
- using var r = cmd.ExecuteReader();
- var list = new List();
- while (r.Read())
- {
- list.Add(new Street(r.GetString(0), r.GetString(1)));
- }
-
- return list;
- }
-
private static List ReadLinks(SqliteConnection cn)
{
using var cmd = cn.CreateCommand();
diff --git a/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs b/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs
index 0e5fd22..469020c 100644
--- a/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs
+++ b/tests/LageBuch.Acceptance.Tests/MasterDataEditorRenderTests.cs
@@ -17,14 +17,10 @@ private sealed class SampleProvider : IMasterDataProvider
public MasterDataSet Get() => MasterDataSet.Empty with
{
Roles = new[] { "EL", "EAL", "ZF", "GF" },
- Status = new[] { "aufgenommen", "übermittelt", "abgearbeitet" },
UnitStatus = new[] { "Alarmiert", "Auf Anfahrt", "Im Einsatz" },
- Equipment = new[] { "Mobilteil 1", "Digitalkamera" },
- Districts = new[] { "Aich", "FFB", "Puch" },
Brigades = new[] { "FFB Wache 1", "Aich", "Puch" },
RadioCallSigns = new[] { "FFB 1/10/1", "Aich 42/1", "Land 1" },
TruppTypes = new[] { "Angriffstrupp", "Wassertrupp", "CSA-Trupp" },
- Einsatzarten = new[] { "B", "THL", "R" },
ChecklistTemplateAufbau = new[]
{
new ChecklistTemplateItem("Aufstellort ELW frei?", true),
@@ -68,8 +64,8 @@ public void The_editor_renders_with_every_category()
var list = view.GetControl("CategoryList");
- // 14 categories plus #76's Fahrzeuge.
- Assert.Equal(15, list.ItemCount);
+ // 10 categories plus #76's Fahrzeuge.
+ Assert.Equal(11, list.ItemCount);
Assert.True(view.GetControl