ARUP-CAS / aiscr-webamcr

Archeologická mapa České republiky
https://amcr-info.aiscr.cz/
GNU General Public License v3.0
5 stars 0 forks source link

Uživatelský import geometrie PIAN #298

Closed motyc closed 2 months ago

motyc commented 2 years ago

Pro usnadnění přípravy na straně uživatelů ARÚ zajistí vytvoření exportního pluginu pro QGIS (není součástí zadání).

jiri-bartos-huld commented 2 years ago

Dobry den, pozadavek persistence po dobu session a nacteni z lokalniho zdroje jde proti sobe: 1./Uprimne priznavam, ze pozadavek na GeoTIFF,GPX,shapefile pro nas znamena implementovat 3 pro nas nove/ruzne knihovny 2./Po analyze knihovana architektury django jsme si jisti, ze neni mozne mit v browseru lokalne nactene soubory a po celou dobu session je mit v leafletu jako vrstvy (jsme to schopni pouze po dobu nacteni jedne stranky), Vami pozadovana funkcionalita je mozna pouze tak, ze bude existovat samostatna stranka, kam si uzivatel nahraje sve soubory(implementovano napriklad jako public adresar nginx) s podklady a oznaci, ktere chce v session videt (toto se ulozi do DB) a pak se mu tyto podkady budou zobrazovat po dobu cele session.

@motyc prosim potvrdite, ze chcete mapy po dobu session a @pesikj prosim odhadni pracnost vytvoreni stranky ktera bude nahravat/mazat "nejspise" do write public weboveho adresare a do DB ukladat pro uzivatele vsechny jeho a aktivni (pripojene) soubory. Nejpise do public adresare se nahraji soubory s uuid misto jmena a do db se budou ukladat pro kazdeho uzivatele jeho uuid, zda je aktivni a puvodni nazev souboru

@ScottVanWagenen

motyc commented 2 years ago

@jiri-bartos-huld Děkuji za zpětnou vazbu. Toto issue musíme ještě lépe prodiskutovat interně. Prosím odhady zatím nedělejte. V kontextu napsaného revidujeme zadání a ozveme se. Nejde o něco zařazeného do stávající objednávky, zdržení zde tedy nehrozí.

motyc commented 1 year ago

Zadání kompletně přepracováno a původní přístup nahrazen jiným, vhodnějším řešením.

jiri-bartos-huld commented 11 months ago

@motyc prosim o zodpovezeni dotazu, kolik dat pocitame, ze bude v souboru? Pokud to bude malo, muzeme pouzit modalni dialog, ale kdyz budou stovky geometrii, tak musime resit jinak.

motyc commented 11 months ago

@jiri-bartos-huld Otázka je, co znamená málo. Obecně si myslím, že většinou jich budou max. desítky, výjimečně stovky. Lze k tomu ale dát buď nějaké omezení, nebo doporučení pro uživatele, pokud by to věci komplikovalo. V čem přesněji je ten limit?

pesikj commented 11 months ago

@motyc Podle mě by bylo schůdné v modal okně zobrazit tak 10 až 20 záznamů. Pokud jich má být více, byla by lepší samostatná stránka.

motyc commented 11 months ago

Teď jsme to ještě s @pesikj probírali po telefonu a má představa byla taková, že by se v modal okně zobrazilo pole s drop-down listem, do kterého by se na četly všechny položky z tabulky ze sloupce nadepsaného label a nic dalšího. Ze seznamu by šlo normálně vybrat jednu položku (chování stejné, jako máme všude, tj. s možností vyhledávání podřetězců v rámci seznamu labelů). K ní by se pak po potvrzení načetla do mapy geometrie (sloupec geometry). V tomto případě mám pocit, že na počtu řádků víceméně nesejde, protože ten rozbalovací seznam jich snese poměrně hodně.

K tomu mne napadá:

jiri-bartos-huld commented 11 months ago

Ukazka bez prepisu geometrie: obrazek

Ukazka s prepisem geometrie & labelu:

http://localhost:8000/arch-z/akce/detail/C-202211987A/dj/C-202211987A-D02/pian/edit/N-1142-000000013?label=moje&geometry=POLYGON%20((13.2164736%2049.9596986,13.2154006%2049.9589111,13.2178685%2049.9583378,13.2183513%2049.9593602,13.2164736%2049.9596986))

obrazek

jiri-bartos-huld commented 11 months ago

@jnihnat @pesikj 1./prosim kouknte na https://github.com/ARUP-CAS/aiscr-webamcr/pull/1264 je tam implementovana funkcionalita popsana v prispevku nahore 2./Nyni zbyva vytvorit to tlacitko na nahrani tabulky a vyberu radku (myslim, ze je dohodnuto, ze tohle bud delat @jnihnat) Pote co se vybere radek v CSV tak staci presmerovat na stranku: /arch-z/akce/detail/C-202211987A/dj/{{DJ_ID}}/pian/edit/{{PIAN_ID}}?label={{label}}&geometry={{WKTgemetrie}}

jiri-bartos-huld commented 10 months ago

@jnihnat prosim rozmysli dialog

jnihnat commented 10 months ago

@jiri-bartos-huld pripravene pro tebe #1287.

jiri-bartos-huld commented 10 months ago

@pesikj @jnihnat dodelal jsem fce pro validaci epsg (vraci True/False)/geometrie(vraci pole[True/False, "duvod"] prosim muzete donapojit. Na vstupu je vzdy string (krom epsg, kde to zvladne i cislo)

pouziti je jednoduche:

print(file_validate_epsg("4326")) print(file_validate_epsg("4326a")) print(file_validate_epsg(4326)) print("geometry---") print("point---") print(file_validate_geometry("multi (10 20)")) print(file_validate_geometry("point (10 20)")) print(file_validate_geometry("POINT (10 20 55 a)")) print("---line") print(file_validate_geometry("LINESTRING ()")) print(file_validate_geometry("LINESTRING (30 10, 10 30, 40 40)")) print(file_validate_geometry("LINESTRING (30 10, 10 30, 40 a)")) print("polygon---") print(file_validate_geometry("POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))"))

motyc commented 10 months ago

@pesikj Rád bych otestoval, ale nikde nevidím volbu, jak PIAN importovat. Čekal bych ji v menu dokumentační jednotky bez PIAN, tam ale není: http://192.168.254.30:8080/arch-z/akce/detail/C-9723779A/dj/C-9723779A-D02

jnihnat commented 10 months ago

@motyc a @jiri-bartos-huld tu doslo asi k nejakemu nedorozumeni, Jirka to udelal na pian/edit: /arch-z/akce/detail/C-202211987A/dj/{{DJ_ID}}/pian/edit/{{PIAN_ID}}?label={{label}}&geometry={{WKTgemetrie}} Podle p. Novaka to ma byt asi na: /arch-z/akce/detail//dj//pian/zapsat @jiri-bartos-huld muzes predelat svoji cast? Ja upravim pak Django cast, bude to mala drobnost.

motyc commented 10 months ago

@jnihnat A jak se to u toho editu chová? Pokud je možno importem nahradit stávající geometrii PIAN bez přečíslování, tak to není špatná funkce, ale určitě to potřebujeme i pro zápis nového, kde to bude užívané mnohem častěji.

motyc commented 10 months ago

@jnihnat Do URLs jsem doplnil pro import PIAN akce pian_import_new a pian_import_change

jiri-bartos-huld commented 10 months ago

@jnihnat @ Mluvil jsem s @motyc a dohodli jsme se, ze by melo byt pridano tlacitko do menu pod mapu: 1./Podminka zobrazeni talcitka pokud dj nema zadny pian 2./Pri zmacknuti tlacitka by pak stacilo nacist tabulku, vybrat pian a pak presmerovat na stranku:

arch-z/akce/detail/C-202300521A/dj/C-202300521A-D02/pian/zapsat?geometry=POLYGON%20((13.2164736%2049.9596986,13.2154006%2049.9589111,13.2178685%2049.9583378,13.2183513%2049.9593602,13.2164736%2049.9596986))&label=moje

vse by pak melo fungovat

jnihnat commented 10 months ago

dodelano v #1338 Musel som uprit i odkud tahame "context" pro lokality a zjednotit to s akci at to nemame na dvou mistech. Prosim pro jistotu teda proklikat lokalitu i akci s DJ/komponentami. @pesikj - FYI

motyc commented 10 months ago

Nelze testovat kvůli #1342

motyc commented 10 months ago

Test v0.3.5z32

Při pokusu o upload CSV se zobrazí hláška o úspěchu, ale soubor zase zmizí a modal se vyprázdní, jako bych tam žádný soubor nevložil. Je úplně jedno, zda to zkouším pro nový PIAN, nebo pro aktualizaci, stejně jako v jaké části aplikace to dělám.

Testováno na tomto CSV: PIAN_import_test.csv

jnihnat commented 10 months ago

za mne opravy a vylepseni v #1351 dostanu se uz na zapsat a edit s danou geometrii a vsak po ulozeni se neulozi, protoze se nic do requestu neposle: { "csrfmiddlewaretoken": "mZ3EQgU5CERhTXVCTxyAuJx1jjP7U2mJCn0bRCEFizXJUNub9e0zhXC58wjYQVlV", "presnost": "861", "geom": "", "geom_sjtsk": "", "geom_system": "4326", "dj_ident_cely": "C-9108572A-D01" }

@jiri-bartos-huld kouknes na tohle ty, nebo mam ja?

motyc commented 9 months ago

@jiri-bartos-huld Ještě mě napadá jedno úskalí daného řešení, a to že pokud budeme geometrii posílat přes GET, tak u velkých geometrií můžeme teoreticky přesáhnout maximální délku URL (2000 znaků) a nebude to fungovat. Navrhoval bych tedy upravit z GET na POST.

jiri-bartos-huld commented 9 months ago

@jnihnat koukneme na to spolu-na callu @motyc omezeni je jen pro MS Edge ostatni problem nemaji. Jednoduzse zapsat to do body a vyzvednout si to pres JS nepujde, pokud to budeme chtit resit tak POST na python z neho naplnit django promenou, tu nacpat do javascript promnene a z ni cist. Neco cookies. Ale obe metody nas pripravy o refresh F5, po nem geometrie zmizi.

jiri-bartos-huld commented 9 months ago

@pesikj @motyc @jnihnat 1./Neukladani opraveno-pujde na MR spolu s prechodem na x1,x2 souradnice 2./Obejit omezeni na 2000 znaku @jnihnat navrhl pomoci redisu, @pesikj prosimmuzes dohodnout at je to samostatny task

pesikj commented 9 months ago

@motyc Souhlasím s @jiri-bartos-huld a řešení omezení nad 2000 znaků navrhuji odsunout do speciálního issue, protože to bude vyžadovat dočasné ukládání geometrií do redisu.

motyc commented 9 months ago

@pesikj Ok. Vyčleněno do #1369. Jinak jsem Vám prosím volal. Až budete mít chvilku, ozvěte se mi prosím, něco bych potřeboval vysvětlit.

motyc commented 9 months ago

Test v0.3.5z61

pesikj commented 8 months ago

@motyc Můžete mi prosím poslat soubory, se kterými jste prováděl testování?

motyc commented 8 months ago

@pesikj Stále to zkouším na této, ale dělal jsem do ní ad hoc zásahy, abych nasimuloval ty různé zmíněné situace: https://github.com/ARUP-CAS/aiscr-webamcr/files/13392968/PIAN_import_test.csv

pesikj commented 8 months ago

@motyc Včera bylo domluveno, že validaci souřadnic si převezmete vy. Funkce pro validaci je zde:

Funkce je ve skriptu webclient/core/utils.py, název funkce file_validate_geometry.

motyc commented 8 months ago

@jhavrlant Honzo, to je tedy prosím na Tebe (https://github.com/ARUP-CAS/aiscr-webamcr/issues/298#issuecomment-1896440026).

pesikj commented 7 months ago

@motyc Prosím o doplnění informace, zda body týkající se validace souboru jsou již v pořádku.

motyc commented 7 months ago

Test v0.3.5z119

motyc commented 6 months ago

Test v0.4.14

Mapa je teď celkově rozbitá kvůli #1619, což může test ovlivňovat.

@jhavrlant Nemohl bys prosím případně pomoci s opravou?

motyc commented 5 months ago

Zdá se, že úprava od @pesikj nyní blokuje vracení akcí: image

Vlastně ani nevím, proč se v danou chvíli http://192.168.254.30:8080/pian/validovat-geometrii/ volá, ale každopádně vrací error 500 a akce nejde vrátit (test na http://192.168.254.30:8080/arch-z/akce/detail/M-9101236A).