Dokumentace k rozvržení podkladů a vrstvám číselníků
ROZPISKY.md §2 a §8, ROZHRANI.md §3.4 (a odškrtnutá otevřená otázka v §9), CLAUDE.md. Baseline testů v promptech subagentů 36 -> 50. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+18
-8
@@ -131,12 +131,22 @@ Na revize se odkazují řádkové revizní sloupce přílohy (R1–R4) a revizn
|
||||
| **Verze dokumentace** | verze | stupeň dokumentace |
|
||||
| **Části** | označení, název části | části/objekty v seznamu |
|
||||
|
||||
> **Číselníky jsou sdílená data napříč projekty a žijí v samostatné databázi vedle `.exe`.**
|
||||
> V původním Excelu šlo o samostatné listy s daty (označení dokumentace, data firem apod.).
|
||||
> Ve standalone aplikaci se z nich stane **externí databázový soubor uložený vedle spustitelného
|
||||
> souboru** (např. `cisleniky.db` / `.json` ve složce aplikace), aby ho šlo **průběžně doplňovat
|
||||
> a sdílet** mezi projekty bez zásahu do aplikace. (Na rozdíl od revizí, které jsou interní
|
||||
> k zakázce – viz [3.3](#33-revize-původní-list-revize).)
|
||||
> **Číselníky jsou sdílená data napříč projekty a žijí mimo projekt.** V původním Excelu šlo
|
||||
> o samostatné listy s daty (označení dokumentace, data firem apod.). Ve standalone aplikaci jsou
|
||||
> uložené ve **dvou vrstvách JSON** (na rozdíl od revizí, které jsou interní k zakázce –
|
||||
> viz [3.3](#33-revize-původní-list-revize)):
|
||||
>
|
||||
> | Vrstva | Soubor | Role |
|
||||
> |---|---|---|
|
||||
> | dodávaná | `ciselniky.vychozi.json` vedle `.exe` | výchozí obsah dodaný s programem, jen ke čtení; každá instalace ho obnoví |
|
||||
> | uživatelská | `ciselniky.user.json` v `%APPDATA%\Rozpisky` | jen **rozdíl** proti dodávané: `Vlastni` (přidané a upravené položky) + `Skryte` (klíče odklizených dodávaných položek) |
|
||||
>
|
||||
> Při načtení se vrstvy slučují: dodávané pořadí zůstává, upravená položka se přepíše na svém
|
||||
> místě, vlastní se řadí za ně. Při uložení se rozdíl dopočítá znovu. Smysl rozdělení: uživatel
|
||||
> číselníky průběžně doplňuje (ručně i samoučením jmen z projektů) a **přeinstalace novou verzí
|
||||
> mu je nesmí přepsat** – zároveň smí nová verze dodávaný číselník libovolně měnit.
|
||||
> Klíč položky: `Nazev` (organizace, firmy, kraje), `Hodnota` (jména, verze), `Oznaceni` (části);
|
||||
> porovnává se bez ohledu na velikost písmen.
|
||||
|
||||
### 3.5 Konfigurace
|
||||
|
||||
@@ -396,8 +406,8 @@ Orientační fázování (priorita shora dolů):
|
||||
- **Formát uložení** – rozdělené úložiště:
|
||||
- **Projekt** (údaje + seznam příloh + **revize**) = interní data jedné zakázky → formát k rozhodnutí
|
||||
(JSON / SQLite / vlastní).
|
||||
- **Číselníky** (organizace, firmy, jména, profese, verze, části) = **externí databáze vedle `.exe`**,
|
||||
sdílená a doplňovatelná napříč projekty ([3.4](#34-číselníky)) → formát k rozhodnutí.
|
||||
- ~~**Číselníky** – formát a umístění.~~ **Vyřešeno:** dvě vrstvy JSON – dodávaná vedle `.exe`,
|
||||
uživatelská (rozdíl) v `%APPDATA%\Rozpisky` ([3.4](#34-číselníky)).
|
||||
- **Generátor 47-pozičního kódu** – doimplementovat dle manuálu kap. 3.2.1–3.2.8 vč. okrajových případů
|
||||
(sdružené objekty `SK`/`PK`, kap. 3.3; pracovní vs. definitivní verze).
|
||||
- **Orientační schéma** – jak se obrázek schématu získá/přiřadí k příloze (vstup uživatele vs. generování).
|
||||
|
||||
+21
-5
@@ -73,8 +73,17 @@ Rozpisky/
|
||||
└─ MainWindow.xaml(.cs) ← hlavní okno
|
||||
```
|
||||
|
||||
Vedle .exe se dodávají editovatelné soubory: `Rozpiska.dxf` (šablona), `SEZNAM.xlsx` (mustr seznamu),
|
||||
`ciselniky.json`, `mapovani.json`, `cad.json`, `layout.json`, `loga/` a manuál SŽ (PDF).
|
||||
Datové soubory jsou rozdělené podle toho, kdo je vlastní:
|
||||
|
||||
| Kde | Co | Kdo zapisuje |
|
||||
|---|---|---|
|
||||
| vedle `.exe` (zdroj `Rozpisky/Podklady/`) | `Rozpiska.dxf`, `SEZNAM.xlsx`, `ciselniky.vychozi.json`, `mapovani.json`, `loga/`, manuál SŽ (PDF) | nikdo – dodává se s programem, každá instalace přepíše |
|
||||
| `%APPDATA%\Rozpisky` ([`UzivatelskaData`](../Rozpisky/Data/UzivatelskaData.cs)) | `ciselniky.user.json`, `cad.json`, `layout.json`, `error.log`, `tisk_diag.log` | aplikace za běhu |
|
||||
| kdekoli u uživatele | projekty `.rzp` | aplikace na vyžádání |
|
||||
|
||||
Rozdělení existuje proto, aby přeinstalace novou verzí (nebo `.exe` v `Program Files`, kam se nesmí
|
||||
psát) nesmazala nic, co si uživatel nastřádal. Portable režim se zapíná souborem `portable.txt`
|
||||
vedle `.exe` – pak se všechno vrátí do složky aplikace.
|
||||
|
||||
---
|
||||
|
||||
@@ -199,9 +208,16 @@ Aplikace **nemá CLI režim** – vše jede z GUI. Neočekávané výjimky zachy
|
||||
- **Projekt `.rzp`** ([`ProjektStore`](../Rozpisky/Data/ProjektStore.cs)) – JSON s exkluzivním zámkem
|
||||
drženým po dobu otevření (ostatní procesy smí jen číst). Zápis serializuje **před** useknutím
|
||||
souboru, aby pád nezanechal prázdný soubor.
|
||||
- **Configy vedle .exe** (`ciselniky.json`, `cad.json`, `layout.json`, `mapovani.json`) jdou přes
|
||||
[`JsonConfigFile`](../Rozpisky/Data/JsonConfigFile.cs): **atomický zápis** (přes `.tmp`) a při
|
||||
poškozeném souboru **záloha do `.bak` + upozornění** (místo tichého přepsání výchozími daty).
|
||||
- **JSON configy** (`ciselniky.user.json`, `cad.json`, `layout.json` v uživatelské složce,
|
||||
`mapovani.json` vedle .exe) jdou přes [`JsonConfigFile`](../Rozpisky/Data/JsonConfigFile.cs):
|
||||
**atomický zápis** (přes `.tmp`) a při poškozeném souboru **záloha do `.bak` + upozornění**
|
||||
(místo tichého přepsání výchozími daty).
|
||||
- **Číselníky ve dvou vrstvách** ([`CiselnikyStore`](../Rozpisky/Data/CiselnikyStore.cs)) – dodávaná
|
||||
`ciselniky.vychozi.json` (jen ke čtení) a uživatelská `ciselniky.user.json`, kde je uložený jen
|
||||
**rozdíl** proti ní (přidané/upravené položky + klíče skrytých). Nová verze programu tak smí
|
||||
dodávaný číselník měnit, aniž by uživatel přišel o svoje záznamy.
|
||||
- **Migrace starých poloh** ([`Migrace`](../Rozpisky/Data/Migrace.cs)) – data zapisovaná dřív vedle
|
||||
.exe se při startu přenesou do uživatelské složky; originál se jen přejmenuje na `.migrovano`.
|
||||
- **Zamčený cíl exportu** – před zápisem PDF/XLSX/DXF se ověří, zda soubor nedrží jiný program
|
||||
(Excel, prohlížeč PDF), a nabídne Pokračovat/Přerušit.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user