Skip to content

Commit b355333

Browse files
committed
Force multi + test data_type
1 parent b61e0d1 commit b355333

2 files changed

Lines changed: 19 additions & 3 deletions

File tree

backend/gn_module_monitoring/command/imports/constant.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
INT_TYPE_UTILS = ["user", "taxonomy", "nomenclature", "types_site", "module", "dataset"]
2626

27+
MULTI_TYPE_WIDGET = ["multiselect", "checkbox"]
28+
2729
FORBIDDEN_SQL_INSTRUCTION = [
2830
"INSERT ",
2931
"DELETE ",

backend/gn_module_monitoring/command/imports/fields.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
)
1010
from utils_flask_sqla.utils import strtobool
1111

12-
from gn_module_monitoring.command.imports.constant import TYPE_WIDGET, INT_TYPE_UTILS
12+
from gn_module_monitoring.command.imports.constant import (
13+
TYPE_WIDGET,
14+
INT_TYPE_UTILS,
15+
MULTI_TYPE_WIDGET,
16+
)
1317

1418

1519
def prepare_fields(
@@ -137,13 +141,23 @@ def determine_field_type(field_data: dict) -> str:
137141
type_util = field_data.get("type_util")
138142
multiple = field_data.get("multiple", field_data.get("multi_select", False))
139143

144+
# Si le champ est de type checkbox ou multiselect, on considère qu'il permet plusieurs valeurs
145+
# TODO Devrait être forcé dans la configuration
146+
if type_widget in MULTI_TYPE_WIDGET:
147+
multiple = True
148+
140149
# Si un type de données est explicitement fourni, on l'utilise
141-
field_type = field_data.get("data_type", None)
150+
field_type = (
151+
field_data.get("data_type", None)
152+
if field_data.get("data_type", None) in set(TYPE_WIDGET.values())
153+
else None
154+
)
155+
142156
if not field_type:
143157
# Si il y a un type utils défini c'est un integer
144158
if type_util in INT_TYPE_UTILS:
145159
field_type = "integer"
146-
# Sinon, on utilise le type utilitaire
160+
# Sinon, on utilise le type définit par le widget
147161
if type_widget in TYPE_WIDGET:
148162
field_type = TYPE_WIDGET[type_widget]
149163

0 commit comments

Comments
 (0)