From ed831da4963fd583e4b4d91d14a6bc004dfd49da Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 2 Oct 2024 10:01:51 +0200 Subject: [PATCH] =?UTF-8?q?lep=C5=A1=C3=AD=20pr=C3=A1ce=20s=20usnesen?= =?UTF-8?q?=C3=ADmi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZZZO/ZZZO.Common/API/BodProgramu.cs | 15 ++- ZZZO/ZZZO.Common/API/Program.cs | 16 ++- ZZZO/ZZZO.Common/API/Zasedani.cs | 100 +++++++----------- ZZZO/ZZZO.Common/Generators/GeneratorHtml.cs | 17 +-- ZZZO/ZZZO/Controls/Program.xaml | 5 + ZZZO/ZZZO/Controls/ProgramEntry.xaml | 4 +- ZZZO/ZZZO/Controls/Resolution.xaml | 2 +- ZZZO/ZZZO/ViewModels/ProgramEntryViewModel.cs | 4 +- ZZZO/ZZZO/ViewModels/ResolutionViewModel.cs | 2 +- 9 files changed, 87 insertions(+), 78 deletions(-) diff --git a/ZZZO/ZZZO.Common/API/BodProgramu.cs b/ZZZO/ZZZO.Common/API/BodProgramu.cs index 0a4cbee..79870ff 100755 --- a/ZZZO/ZZZO.Common/API/BodProgramu.cs +++ b/ZZZO/ZZZO.Common/API/BodProgramu.cs @@ -19,17 +19,27 @@ public enum TypBoduProgramu BodZasedani = 2, [Description("Doplněný bod zasedání")] - DoplnenyBodZasedani = 3 + DoplnenyBodZasedani = 3, + + [Description("Kontrola minulého zápisu")] + KontrolaMinulehoZapisu = 4, } #endregion - public bool JeEditovatelny + public bool MuzeEditovatUsneseni { get => Typ == TypBoduProgramu.DoplnenyBodZasedani || Typ == TypBoduProgramu.BodZasedani; } + public bool JeEditovatelny + { + get => Typ == TypBoduProgramu.DoplnenyBodZasedani || + Typ == TypBoduProgramu.BodZasedani || + Typ == TypBoduProgramu.KontrolaMinulehoZapisu; + } + #region Proměnné private bool _jePodbod; @@ -117,6 +127,7 @@ public TypBoduProgramu Typ OnPropertyChanged(); OnPropertyChanged(nameof(JeEditovatelny)); + OnPropertyChanged(nameof(MuzeEditovatUsneseni)); } } diff --git a/ZZZO/ZZZO.Common/API/Program.cs b/ZZZO/ZZZO.Common/API/Program.cs index e231194..deae975 100755 --- a/ZZZO/ZZZO.Common/API/Program.cs +++ b/ZZZO/ZZZO.Common/API/Program.cs @@ -31,7 +31,7 @@ public ObservableCollection BodyProgramu #region Metody - public BodProgramu VygenerovatBodProgramu(Zasedani zas, BodProgramu.TypBoduProgramu typProgramu) + public BodProgramu VygenerovatBodProgramu(Zasedani zas, BodProgramu.TypBoduProgramu typProgramu, bool bezUsneseni = false) { BodProgramu bod = new BodProgramu(); @@ -59,9 +59,16 @@ public BodProgramu VygenerovatBodProgramu(Zasedani zas, BodProgramu.TypBoduProgr break; + case BodProgramu.TypBoduProgramu.KontrolaMinulehoZapisu: + bod.Nadpis = "Kontrola zápisu a plnění usnesení z minulého zasedání ZO"; + bod.Text = "Starosta obce zhodnotil program z minulého jednání ZO a " + + "informoval přítomné zastupitele i veřejnost o " + + "projednaných bodech a splněných úkolech."; + break; + case BodProgramu.TypBoduProgramu.BodZasedani: case BodProgramu.TypBoduProgramu.DoplnenyBodZasedani: - bod.Nadpis = "Řádný bod zasedání"; + bod.Nadpis = "Bod zasedání"; zas.AddUsneseni(bod, new Usneseni { @@ -71,6 +78,11 @@ public BodProgramu VygenerovatBodProgramu(Zasedani zas, BodProgramu.TypBoduProgr break; } + if (bezUsneseni) + { + bod.Usneseni.Clear(); + } + return bod; } diff --git a/ZZZO/ZZZO.Common/API/Zasedani.cs b/ZZZO/ZZZO.Common/API/Zasedani.cs index 937b6bf..e85accf 100755 --- a/ZZZO/ZZZO.Common/API/Zasedani.cs +++ b/ZZZO/ZZZO.Common/API/Zasedani.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.IO; using System.Text; +using System.Windows.Markup; using System.Windows.Media.Imaging; using Newtonsoft.Json; @@ -369,13 +370,6 @@ public static Zasedani GenerateSample() JePritomen = true }); - zas.AddZastupitel(new Zastupitel - { - Prijmeni = "Fialový", - Jmeno = "Alex", - JePritomen = true - }); - zas.AddZastupitel(new Zastupitel { Prijmeni = "Zelený", @@ -403,70 +397,56 @@ public static Zasedani GenerateSample() PopisMista = "zasedací místnosti" }; - var schvaleniZapisovatele = new BodProgramu - { - Typ = BodProgramu.TypBoduProgramu.SchvaleniZapisOver, - Nadpis = "Schvalování zapisovatele" - }; + zas.Program.BodyProgramu.Add(zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.SchvaleniZapisOver)); - zas.Program.BodyProgramu.Add(schvaleniZapisovatele); + zas.Program.BodyProgramu.Add(zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.SchvaleniProgramu)); - zas.AddUsneseni(schvaleniZapisovatele, new Usneseni - { - Text = "Hlasování o zapisovateli/ověřovatelích" - }); + zas.Program.BodyProgramu.Add(zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.KontrolaMinulehoZapisu)); - var schvaleniProgramu = new BodProgramu - { - Typ = BodProgramu.TypBoduProgramu.SchvaleniProgramu, - Nadpis = "Schvalování programu" - }; + zas.Program.BodyProgramu.Add(zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.BodZasedani)); - zas.Program.BodyProgramu.Add(schvaleniProgramu); + zas.Program.BodyProgramu.Add(zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.BodZasedani)); - zas.AddUsneseni(schvaleniProgramu, new Usneseni - { - Text = "Hlasování o programu" - }); - - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "První", - Text = "Detailní popis bodu programu." - }); + zas.Program.BodyProgramu.Add(zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.DoplnenyBodZasedani)); - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "Druhý", - JePodbod = true - }); + var bodRuzne = zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.BodZasedani, + true); - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "Třetí", - JePodbod = true - }); + bodRuzne.Nadpis = "Různé"; - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "Čtvrtý", - Typ = BodProgramu.TypBoduProgramu.DoplnenyBodZasedani - }); + var bodDiskuse = zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.BodZasedani, + true); - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "Různé" - }); + bodDiskuse.Nadpis = "Diskuse"; + bodDiskuse.Text = "Proběhla diskuse k různým tématům."; - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "Diskuse" - }); + var bodZaver = zas.Program.VygenerovatBodProgramu( + zas, + BodProgramu.TypBoduProgramu.BodZasedani, + true); - zas.Program.BodyProgramu.Add(new BodProgramu - { - Nadpis = "Závěr" - }); + bodZaver.Nadpis = "Závěr"; + bodZaver.Text = "Po skončení diskuse bylo toto zasedání zastupitelstva obce skončeno."; + + zas.Program.BodyProgramu.Add(bodRuzne); + zas.Program.BodyProgramu.Add(bodDiskuse); + zas.Program.BodyProgramu.Add(bodZaver); return zas; } diff --git a/ZZZO/ZZZO.Common/Generators/GeneratorHtml.cs b/ZZZO/ZZZO.Common/Generators/GeneratorHtml.cs index b602597..1abf1ce 100755 --- a/ZZZO/ZZZO.Common/Generators/GeneratorHtml.cs +++ b/ZZZO/ZZZO.Common/Generators/GeneratorHtml.cs @@ -156,7 +156,7 @@ private void GenerateInvitationBody(XmlElement html, Zasedani zas, IProgress prog.Typ == BodProgramu.TypBoduProgramu.SchvaleniProgramu); BodProgramu schvaleniZapisovatele = zas.Program.BodyProgramu.FirstOrDefault(prog => prog.Typ == BodProgramu.TypBoduProgramu.SchvaleniZapisOver); - + if (schvaleniProgramu?.Usneseni == null || schvaleniProgramu.Usneseni.Count == 0) { throw new Exception("v programu chybí bod a usnesení pro schválení programu jako takového"); @@ -168,7 +168,7 @@ private void GenerateInvitationBody(XmlElement html, Zasedani zas, IProgress bodyProgramu = zas.Program.BodyProgramu.Where(prog => prog.Typ == BodProgramu.TypBoduProgramu.BodZasedani || - prog.Typ == BodProgramu.TypBoduProgramu.DoplnenyBodZasedani).ToList(); + prog.Typ == BodProgramu.TypBoduProgramu.DoplnenyBodZasedani).ToList(); GenerateProgramEntries(body, bodyProgramu); } @@ -207,6 +207,7 @@ private void GenerateRecordBody(XmlElement html, Zasedani zas, IProgress pr BodProgramu schvaleniProgramu = zas.Program.BodyProgramu.FirstOrDefault(prog => prog.Typ == BodProgramu.TypBoduProgramu.SchvaleniProgramu); BodProgramu schvaleniZapisovatele = zas.Program.BodyProgramu.FirstOrDefault(prog => prog.Typ == BodProgramu.TypBoduProgramu.SchvaleniZapisOver); + BodProgramu minulyZapis = zas.Program.BodyProgramu.FirstOrDefault(prog => prog.Typ == BodProgramu.TypBoduProgramu.KontrolaMinulehoZapisu); if (schvaleniProgramu?.Usneseni == null || schvaleniProgramu.Usneseni.Count == 0) { @@ -314,11 +315,9 @@ private void GenerateRecordBody(XmlElement html, Zasedani zas, IProgress pr /// /// Kontrola zápisu. /// - body.AppendElem("h2").InnerText = "Kontrola zápisu a plnění usnesení z minulého zasedání ZO"; + body.AppendElem("h2").InnerText = minulyZapis.Nadpis; - body.AppendElem("p").InnerText = "Starosta obce zhodnotil program z minulého jednání ZO a " + - "informoval přítomné zastupitele i veřejnost o " + - "projednaných bodech a splněných úkolech."; + body.AppendElem("p").InnerText = minulyZapis.Text; foreach (BodProgramu bodProgramu in bodyProgramu.Where(prog => prog.Typ == BodProgramu.TypBoduProgramu.BodZasedani || prog.Typ == BodProgramu.TypBoduProgramu.DoplnenyBodZasedani)) @@ -417,7 +416,8 @@ private void GenerateProgramEntries(XmlElement body, IEnumerable bo foreach (BodProgramu thisEntry in bodyProgramu) { if (thisEntry.Typ == BodProgramu.TypBoduProgramu.SchvaleniProgramu || - thisEntry.Typ == BodProgramu.TypBoduProgramu.SchvaleniZapisOver) + thisEntry.Typ == BodProgramu.TypBoduProgramu.SchvaleniZapisOver || + thisEntry.Typ == BodProgramu.TypBoduProgramu.KontrolaMinulehoZapisu) { // Schvalování programu není v "programu" jako takovém. continue; @@ -450,7 +450,8 @@ private string GenerateResolution( XmlElement root = body.AppendElem("div").AppendClass("resolution-container"); if (programEntry.Typ != BodProgramu.TypBoduProgramu.SchvaleniProgramu && - programEntry.Typ != BodProgramu.TypBoduProgramu.SchvaleniZapisOver) + programEntry.Typ != BodProgramu.TypBoduProgramu.SchvaleniZapisOver && + programEntry.Typ != BodProgramu.TypBoduProgramu.KontrolaMinulehoZapisu) { if (resolution.ZoBereNaVedomi) { diff --git a/ZZZO/ZZZO/Controls/Program.xaml b/ZZZO/ZZZO/Controls/Program.xaml index 3d08536..ca67aba 100755 --- a/ZZZO/ZZZO/Controls/Program.xaml +++ b/ZZZO/ZZZO/Controls/Program.xaml @@ -81,6 +81,11 @@ Command="{Binding AddProgramEntryCmd}" CommandParameter="{x:Static api:BodProgramu+TypBoduProgramu.SchvaleniProgramu}" Content="Schválení programu" /> + diff --git a/ZZZO/ZZZO/Controls/Resolution.xaml b/ZZZO/ZZZO/Controls/Resolution.xaml index 6d0ad09..3b2ae6d 100755 --- a/ZZZO/ZZZO/Controls/Resolution.xaml +++ b/ZZZO/ZZZO/Controls/Resolution.xaml @@ -31,7 +31,7 @@ Text="{Binding Usneseni.Text, UpdateSourceTrigger=PropertyChanged}" /> diff --git a/ZZZO/ZZZO/ViewModels/ProgramEntryViewModel.cs b/ZZZO/ZZZO/ViewModels/ProgramEntryViewModel.cs index d7de1cf..eedec5a 100755 --- a/ZZZO/ZZZO/ViewModels/ProgramEntryViewModel.cs +++ b/ZZZO/ZZZO/ViewModels/ProgramEntryViewModel.cs @@ -44,7 +44,7 @@ public IEnumerable TypyBoduProgramu public bool LzeEditovatUsneseni { - get => _programEntry != null && _programEntry.JeEditovatelny && _programEntry.Usneseni.Count > 0; + get => _programEntry?.MuzeEditovatUsneseni == true && _programEntry.Usneseni.Count > 0; } public Usneseni ChosenUsneseni @@ -97,7 +97,7 @@ public BodProgramu ProgramEntry { _programEntry.PropertyChanged += (sender, args) => { - if (args.PropertyName == nameof(BodProgramu.JeEditovatelny)) + if (args.PropertyName == nameof(BodProgramu.MuzeEditovatUsneseni)) { OnPropertyChanged(nameof(LzeEditovatUsneseni)); } diff --git a/ZZZO/ZZZO/ViewModels/ResolutionViewModel.cs b/ZZZO/ZZZO/ViewModels/ResolutionViewModel.cs index 9b62c34..6fdac10 100755 --- a/ZZZO/ZZZO/ViewModels/ResolutionViewModel.cs +++ b/ZZZO/ZZZO/ViewModels/ResolutionViewModel.cs @@ -28,7 +28,7 @@ public ICommand AllDisagreeCmd public bool JeEditovatelne { - get => ProgramEntry != null && ProgramEntry.JeEditovatelny && + get => ProgramEntry?.JeEditovatelny == true && (Usneseni == null || !Usneseni.ZoBereNaVedomi); }