mirror of
https://github.com/ARUP-CAS/aiscr-qgis-amcr-viewer.git
synced 2026-06-17 11:22:53 +02:00
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.
This commit is contained in:
@@ -308,6 +308,10 @@ def load_amcr_data(canvas, bb, filters=None,
|
|||||||
filter_areal = "f_areal" in filters if filters else False
|
filter_areal = "f_areal" in filters if filters else False
|
||||||
filter_datace = "f_obdobi" in filters if filters else False
|
filter_datace = "f_obdobi" in filters if filters else False
|
||||||
|
|
||||||
|
# Set when a network error interrupts the download – the user
|
||||||
|
# gets an explicit error/warning instead of a silent partial result
|
||||||
|
network_error = False
|
||||||
|
|
||||||
# --- API PAGINATION LOOP ---
|
# --- API PAGINATION LOOP ---
|
||||||
while True:
|
while True:
|
||||||
base_params['rows'] = BATCH_DOCS
|
base_params['rows'] = BATCH_DOCS
|
||||||
@@ -358,6 +362,14 @@ def load_amcr_data(canvas, bb, filters=None,
|
|||||||
current_page += 1
|
current_page += 1
|
||||||
QApplication.processEvents() # Keep UI responsive
|
QApplication.processEvents() # Keep UI responsive
|
||||||
|
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
network_error = True
|
||||||
|
QgsMessageLog.logMessage(
|
||||||
|
f"Chyba sítě při stránkování na straně "
|
||||||
|
f"{current_page}: {e}",
|
||||||
|
"AMČR", Qgis.MessageLevel.Critical
|
||||||
|
)
|
||||||
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
QgsMessageLog.logMessage(
|
QgsMessageLog.logMessage(
|
||||||
f"Chyba při stránkování na straně {current_page}: {e}",
|
f"Chyba při stránkování na straně {current_page}: {e}",
|
||||||
@@ -365,6 +377,15 @@ def load_amcr_data(canvas, bb, filters=None,
|
|||||||
)
|
)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if network_error and not docs:
|
||||||
|
iface.messageBar().pushMessage(
|
||||||
|
"AMCR",
|
||||||
|
"Stahování selhalo: chyba sítě. "
|
||||||
|
"Zkontrolujte připojení k internetu.",
|
||||||
|
level=Qgis.MessageLevel.Critical
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
if not docs:
|
if not docs:
|
||||||
iface.messageBar().pushMessage(
|
iface.messageBar().pushMessage(
|
||||||
"AMCR",
|
"AMCR",
|
||||||
@@ -640,6 +661,15 @@ def load_amcr_data(canvas, bb, filters=None,
|
|||||||
QApplication.processEvents()
|
QApplication.processEvents()
|
||||||
r_json = _api_get_json(url, params=params_pian, timeout=15)
|
r_json = _api_get_json(url, params=params_pian, timeout=15)
|
||||||
docs_pian.extend(r_json.get('response', {}).get('docs', []))
|
docs_pian.extend(r_json.get('response', {}).get('docs', []))
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
# Network is down – stop immediately instead of
|
||||||
|
# uselessly retrying every remaining batch
|
||||||
|
network_error = True
|
||||||
|
QgsMessageLog.logMessage(
|
||||||
|
f"Chyba sítě při stahování geometrií PIAN: {e}",
|
||||||
|
"AMČR", Qgis.MessageLevel.Critical
|
||||||
|
)
|
||||||
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
QgsMessageLog.logMessage(
|
QgsMessageLog.logMessage(
|
||||||
f"Chyba PIAN: {e}",
|
f"Chyba PIAN: {e}",
|
||||||
@@ -920,7 +950,19 @@ def load_amcr_data(canvas, bb, filters=None,
|
|||||||
proj.addMapLayer(l)
|
proj.addMapLayer(l)
|
||||||
added += len(f)
|
added += len(f)
|
||||||
|
|
||||||
if added > 0:
|
if network_error:
|
||||||
|
iface.messageBar().pushMessage(
|
||||||
|
"AMCR",
|
||||||
|
"Stahování bylo přerušeno chybou sítě – "
|
||||||
|
f"výsledek je neúplný (vykresleno {added} prvků). "
|
||||||
|
"Zkontrolujte připojení a spusťte stahování znovu.",
|
||||||
|
level=(
|
||||||
|
Qgis.MessageLevel.Warning
|
||||||
|
if added > 0
|
||||||
|
else Qgis.MessageLevel.Critical
|
||||||
|
)
|
||||||
|
)
|
||||||
|
elif added > 0:
|
||||||
iface.messageBar().pushMessage(
|
iface.messageBar().pushMessage(
|
||||||
"AMCR",
|
"AMCR",
|
||||||
f"Hotovo. Záznamů: {len(docs)} (s geom: {actions_with_geom}). "
|
f"Hotovo. Záznamů: {len(docs)} (s geom: {actions_with_geom}). "
|
||||||
|
|||||||
Reference in New Issue
Block a user