Skip to content

Commit

Permalink
[config] Ajout control id_sites_group pour l'objet site quand sites_g…
Browse files Browse the repository at this point in the history
…roup est défini dans l'objet tree - #399
  • Loading branch information
amandine-sahl committed Jan 9, 2025
1 parent 909e442 commit 47730f7
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 28 deletions.
13 changes: 1 addition & 12 deletions backend/gn_module_monitoring/command/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
)

from gn_module_monitoring.config.repositories import get_config

from gn_module_monitoring.utils.utils import extract_keys
from gn_module_monitoring.modules.repositories import get_module, get_source_by_code, get_modules


Expand Down Expand Up @@ -382,14 +382,3 @@ def available_modules():
available_modules_.append({**module, "module_code": d})
break
return available_modules_


def extract_keys(test_dict, keys=[]):
"""
FOnction permettant d'extraire de façon récursive les clés d'un dictionnaire
"""
for key, val in test_dict.items():
keys.append(key)
if isinstance(val, dict):
extract_keys(val, keys)
return keys
4 changes: 0 additions & 4 deletions backend/gn_module_monitoring/config/generic/site.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,6 @@
"nullDefault": true,
"definition": "Permet de n'avoir que les types de site lié au module",
"designStyle": "bootstrap"
},
"id_sites_group": {
"hidden": true,
"required": false
}
}
}
1 change: 0 additions & 1 deletion backend/gn_module_monitoring/config/repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,6 @@ def config_object_from_files(module_code, object_type, custom=None, is_sites_gro
"application": "GeoNature",
"required": True,
"nullDefault": True,
"designStyle": "bootstrap",
"definition": "Permet de n'avoir que les types de site lié au module",
}
specific_config_object["specific"]["id_sites_group"] = {"required": False, "hidden": False}
Expand Down
22 changes: 11 additions & 11 deletions backend/gn_module_monitoring/config/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
from gn_module_monitoring.monitoring.models import TMonitoringModules
from gn_module_monitoring.modules.repositories import get_module
from gn_module_monitoring.utils.routes import query_all_types_site_from_module_id
from gn_module_monitoring.utils.utils import extract_keys


SUB_MODULE_CONFIG_DIR = Path(gn_config["MEDIA_FOLDER"]) / "monitorings/"

Expand All @@ -25,7 +27,6 @@
"keyLabel": "sites_group_name",
"api": "__MONITORINGS_PATH/list/__MODULE.MODULE_CODE/sites_group?id_module=__MODULE.ID_MODULE&fields=id_sites_group&fields=sites_group_name",
"application": "GeoNature",
"designStyle": "bootstrap",
}


Expand Down Expand Up @@ -233,20 +234,19 @@ def process_schema(object_type, config):
config[object_type]["specific"] = {}
specific = config[object_type]["specific"]

# Cas particulier de sites_group
# Controle ajouté automatiquement pour les sites quand les groupes de sites sont définis
# définition spécifique du datalist récupérée depuis la constante SITES_GROUP_CONFIG
if object_type == "site" and "sites_group" in extract_keys(config["tree"]):
if not "id_sites_group" in generic.keys():
generic.update({"id_sites_group": SITES_GROUP_CONFIG.copy()})

# generic redef in specific
# cas ou un element de generic est redefini dans specific
keys_s = list(specific.keys())
keys_g = list(generic.keys())
for key_s in keys_s:
# Cas particulier de sites_group
# définition spécifique du datalist
# récupérée depuis la constante SITES_GROUP_CONFIG
if key_s == "id_sites_group":
generic[key_s] = SITES_GROUP_CONFIG.copy()
keys_g.append("id_sites_group")
if key_s in keys_g:
key = key_s

for key in keys_s:
if key in keys_g:
type_widget_s = specific[key].get("type_widget")
type_widget_g = generic[key].get("type_widget")

Expand Down
11 changes: 11 additions & 0 deletions backend/gn_module_monitoring/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,14 @@ def dict_deep_update(dct, merge_dct):
dict_deep_update(dct[k], merge_dct[k])
else:
dct[k] = merge_dct[k]


def extract_keys(test_dict, keys=[]):
"""
Fonction permettant d'extraire de façon récursive les clés d'un dictionnaire
"""
for key, val in test_dict.items():
keys.append(key)
if isinstance(val, dict):
extract_keys(val, keys)
return keys

0 comments on commit 47730f7

Please sign in to comment.