54 Commits

Author SHA1 Message Date
david bc799452a3 Update metadata.txt 2026-06-13 12:16:27 +02:00
Claude fd11bee274 Ověření přihlašovacích údajů před uložením do správce autentizace
Špatné heslo zadané v přihlašovacím dialogu se dosud uložilo do QGIS
Authentication Manageru a chyba se ukázala až po zavření dialogu.

- Dialog nyní před uložením zkusí přihlášení k API; při neplatných
  údajích se nic neuloží a uživatel může údaje rovnou opravit.
- Pokud je server nedostupný (údaje nelze ověřit), uživatel si může
  zvolit, zda je uložit neověřené – změna hesla na webu u dříve
  uložených údajů tím není dotčena.
- login_to_api nově rozlišuje důvod selhání (LAST_LOGIN_ERROR:
  'auth' × 'network'), aby dialog uměl oba případy odlišit.
- Ověřuje se i změna samotného e-mailu (proti uloženému heslu).
2026-06-12 12:53:28 +02:00
Claude 93ed0ca810 Zřetelné hlášení síťových chyb během stahování
Při výpadku sítě uprostřed stahování se dosud chyba jen zapsala do logu:
stránkování se tiše ukončilo s částečnými daty a smyčka PIAN zkoušela
marně všechny zbývající dávky, takže uživatel skončil u hlášky 'Žádná
data k zobrazení' bez vysvětlení.

- Síťové chyby (requests.RequestException) se v obou smyčkách chytají
  zvlášť a stahování PIAN se po první z nich ihned ukončí.
- Pokud selže už stahování metadat, zobrazí se červená lišta
  'Stahování selhalo: chyba sítě'.
- Pokud se stihla vykreslit část dat, zobrazí se varování, že výsledek
  je neúplný a je třeba stahování zopakovat.
2026-06-12 12:35:51 +02:00
Claude 64ec1ea7fd Metadata, CI a dokumentace
- metadata.txt: icon ukazoval na neexistující download.png – plugin se
  ve správci zásuvných modulů zobrazoval bez ikony; nastaveno na akce.png.
- Workflow: actions/checkout v2→v4 (v2 je deprecated, Node 12)
  a softprops/action-gh-release v1→v2.
- README: poznámka, že knihovna requests nemusí být na Linuxu součástí
  systémové instalace QGIS.
2026-06-12 10:50:04 +02:00
Claude 27e5fe02ac Heslář pristupnost: přeskočení záznamů bez platného kódu
Pokud žádný titulek záznamu neprojde filtrem na jednopísmenný kód,
next() vrátil None a do heslar.csv se zapsal prázdný/None kód, který
se mohl dostat do API filtru jako hodnota 'None:or'. Takové záznamy
se nyní přeskakují.
2026-06-12 10:50:04 +02:00
Claude 46c09c4a09 Robustnější síťová vrstva a stahování dat
- login_to_api: ošetřena výjimka při parsování ne-JSON odpovědi
  (např. HTML chybová stránka za proxy) – dříve propadla až do QGIS.
- _api_get přejmenováno na _api_get_json: tělo odpovědi se parsuje jen
  jednou (kontrola expirované session ho znovu využije), místo dvojího
  json() na každé dávce.
- Stránkování porovnává počet stažených (ne unikátních) záznamů proti
  numFound – stránky plné duplicit už nevyvolávají zbytečné requesty.
- Přidán re-entrancy guard: během běžícího stahování (processEvents
  pumpuje event loop) nelze spustit druhé stahování.
- print() nahrazeno QgsMessageLog (záložka AMČR v panelu Zprávy).
2026-06-12 10:50:03 +02:00
Claude 444d1c4826 Oprava geometrií a filtrování PIAN
- Fallback geometrie z geom_wkt (WGS-84) se nyní transformuje do S-JTSK;
  dříve se souřadnice ve stupních vkládaly přímo do vrstvy EPSG:5514
  a prvek se vykreslil úplně mimo.
- Nevalidní geometrie (např. samoprůniky polygonů) se před zahozením
  zkusí opravit přes makeValid().
- Filtr přesnosti PIAN normalizuje hodnotu pian_presnost (API ji může
  vracet jako jednoprvkový seznam) – dříve mohl tiše zahazovat záznamy.
  Stejná normalizace pro pian_typ kvůli překladu kódu.
- Přístupy ke komponenta_areal/komponenta_obdobi a az_chranene_udaje
  ošetřeny proti hodnotě None (klíč existuje, ale je null).
2026-06-12 10:50:03 +02:00
Claude d9f5d2ae6e Oprava pádů: chybějící locale při startu a životní cyklus úlohy aktualizace heslářů
- amcr_viewer.py: QSettings().value('locale/userLocale') může být None na
  čisté instalaci QGIS – ošetřen fallback na 'en', jinak plugin spadne
  na TypeError hned při načtení.
- amcr_viewer.py: odstraněn nepoužívaný hvězdičkový import resources.
- amcr_dialog.py: úloha aktualizace heslářů se drží v modulové referenci,
  aby GC neuklidil Python wrapper QgsTask před dokončením (známá příčina
  pádů QGIS).
- amcr_dialog.py: tlačítko aktualizace se po spuštění zakáže – nelze už
  spustit několik stahování paralelně přepisujících heslar.csv.
- amcr_dialog.py: závěrečné QMessageBoxy se parentují na hlavní okno QGIS
  místo dialogu, který může být v době dokončení úlohy už zavřený
  (smazaný C++ objekt → pád).
2026-06-12 10:50:03 +02:00
david d417a78b85 Update metadata.txt 2026-06-10 13:40:14 +02:00
david b2001c625c Hotfix: oprava minimální podporované QGIS verze (3.4→3.44) (#48) 2026-06-10 13:31:55 +02:00
david 89e596802f Update metadata.txt 2026-06-05 13:44:36 +02:00
david 4ea679ec9e Přidat odkaz na nápovědu do menu pluginu (#47)
* ikona amcr-help

* přidán kód pro otevření nápovědy
2026-06-05 13:27:01 +02:00
david 785b83c9c5 přidána varovná hláška do amcr_dialog (#44) 2026-06-05 10:45:32 +02:00
david 493696c67b Chore/code cleanup (#43)
* čištění kódu podle flake8

* Update .gitignore

* Update .gitignore (#41)

* oprava komentářů a překlad do angličtiny

* oprava přihlašování
2026-06-04 17:32:32 +02:00
david 9a935261e6 Update metadata.txt 2026-06-03 13:42:46 +02:00
david a4e30bf334 hardcoded AND filtering when filtering by period AND activity area (#39) 2026-06-02 22:25:29 +02:00
david 56389e27d7 nosec update (#38) 2026-05-19 15:44:36 +02:00
David Spáčil c8d42e2459 metadata.txt version update 2026-05-19 15:42:25 +02:00
david a6ebbce4cf Update metadata.txt 2026-05-19 15:25:38 +02:00
david 88149fbb30 Hotfix/security (#37)
* vyměnit xml.etree.ElementTree za defusedxml.ElementTree

* zpátky xml.etree.ElementTree, ale přidáno # nosec; jde o false positive

* switch z ukládání hesel v registrech na používání QGIS Auth Manager
2026-05-19 15:22:35 +02:00
david c0d054d22a Update metadata.txt
v2.0.0-alpha.1
experimental flag true
2026-05-19 13:12:32 +02:00
david ba41039468 Feature/login (#36)
* přidáno nové tlačítko do toolbaru

* přihlašovací dialog

* funkce pro přihlašování

* aplikace získávání dat z API přes session

* zastřešující akce v main skriptu

* ošetření prodlužování session/opětovné přihlášení

* přidání přístupnosti do hesláře

* aktualizace přibaleného hesláře

* oprava stahování hesláře (pristupnost vyžaduje písmeno [A/B/C/D], ne heslo; aktualizace hesláře

* aplikace přístupnosti do filtračního dialogu

* úpravy přihlašovacího dialogu
2026-05-19 13:05:07 +02:00
david 499b3b3f0a Fix/komponenta jako zaklad (#35)
* čištění amcr_tools.py od zbytečných prvků souvisejících se standalone tabulkou komponent

* aplikace nové logiky přípravy dat v případě požadavku na komponenty

* nové aliasy + přidání dat komponent do finálních tabulek

* oprava pořadí polí v tabulce
2026-05-16 14:18:17 +02:00
david 54f154b264 Feature/aktualizace heslaru (#32)
* přechod od statického hesláře k dynamickému načítání z OAI-PMH API AMČR

* aplikace načítání heslářů a task management (backend)

* frontend + debugging

* aktualizace přibaleného hesláře

* kosmetické drobnosti

* ošetření speciální případů při stahování hesláře (katastr, okres) + s tím spojená aktualizace přiloženého hesláře
2026-05-14 14:02:18 +02:00
david c679e776df Přejmenování názvů atributových polí (#31)
* changed attribute field names

* added aliases
2026-04-16 09:39:49 +02:00
david 11f44d025b Update metadata.txt 2026-03-19 09:38:32 +01:00
david be53edefa5 relation fix 2026-03-19 09:30:13 +01:00
david 3be7832b40 Update metadata.txt 2026-03-16 14:30:12 +01:00
David Spáčil 8088b32661 removed unnecessary imports 2026-03-16 14:01:32 +01:00
David Spáčil c17275ef66 changed from three 1:N relations to a polymorphic relation 2026-03-16 14:00:37 +01:00
david 9ec866f1d2 Update metadata.txt 2026-03-13 10:56:09 +01:00
david 5a951edec7 Fixed compatibility issues with QGIS 4 (#24)
* used PyQt6 compatible objects

* metadata update
2026-03-13 10:48:12 +01:00
david 8825ac3272 Update metadata.txt 2026-03-11 16:35:39 +01:00
david 3957b87a2b Optimalizace výkonu a refaktorování GUI komponent (#22)
Comprehensive update to improve plugin efficiency and code quality:

- Performance: Increased BATCH_PIAN to 200 and optimized attribute parsing loops.
- Performance: Optimized codelist caching to reload only necessary data.
- UI/UX: Fixed plugin unloading (toolbar icon duplication) and added safe cursor handling.
- Refactoring: Moved GUI helper methods to class level for better OOP structure.
- Modernization: Updated dialog execution syntax to modern PyQt5/6 standards.
- Documentation: Added full inline English documentation across all modules.
2026-03-11 11:37:15 +01:00
david 158f623574 metadata update 2026-03-10 20:38:37 +01:00
david 6b39a05207 stahování komponent 2026-03-10 20:02:58 +01:00
david 36835c825d changed push messages to be more general
updated Readme
2026-03-10 11:11:54 +01:00
david d6d520e612 načítání metadat pro lokality 2026-03-09 18:08:29 +01:00
david 78bad9aaa7 kód pro filtrování a stahování lokalit + doprovodné změny 2026-03-09 16:49:30 +01:00
david 9559712af9 update metadata.txt 2026-03-09 13:57:54 +01:00
David Spáčil bcde600433 Update metadata.txt 2026-02-19 07:22:23 +01:00
David Spáčil 6131c7ff9d Fixed PIAN counting and downloading logic 2026-02-19 07:17:13 +01:00
David Spáčil 0f07a40bb0 Added logic for filtering based on PIAN accuracy
Features with a "location by cadastral area" attribute are disabled by default.
2026-02-18 22:13:30 +01:00
David Spáčil 777b1900d5 Update amcr_tools.py 2026-02-18 11:04:26 +01:00
David Spáčil 27303fdf53 Update amcr_tools.py
Further polishing; removed obsolete bits
2026-02-17 18:51:27 +01:00
David Spáčil fbe5c6a113 Fixed DJs handling logic and filtering negative DJs 2026-02-17 18:43:36 +01:00
David Spáčil 8693179fa9 Tidying up
removed unused bits of code
2026-02-17 18:11:06 +01:00
David Spáčil a314dd3758 Update amcr_tools.py
Logic is restructured: event → doc unit → pian.
Logic for filtering negative DJs still needs to be reimplemented.
2026-02-17 08:33:56 +01:00
David Spáčil e61759064e update version 2026-02-17 07:40:04 +01:00
David Spáčil b22629404b Update amcr_tools.py
Added logic for evidence type (whether it is positive or negative) to be inserted into the attribute table.
Removed field list "fl_akce" which does not seem to change the query result as was intended.
2026-02-16 17:13:36 +01:00