Skip to content

Commit 4387e8f

Browse files
committed
feat: use a list of separator instead of a single separator to split observers on the fly
1 parent b724fed commit 4387e8f

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

backend/geonature/core/gn_synthese/blueprints/taxon_info.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -257,21 +257,22 @@ def taxon_observers(scope, cd_ref):
257257
page = request.args.get("page", 1, int)
258258
sort_by = request.args.get("sort_by", "observer")
259259
sort_order = request.args.get("sort_order", SortOrder.ASC, SortOrder)
260-
field_separator = request.args.get(
261-
"field_separator", app.config["SYNTHESE"]["FIELD_OBSERVERS_SEPARATOR"]
260+
field_separators = request.args.get(
261+
"field_separators", app.config["SYNTHESE"]["FIELD_OBSERVERS_SEPARATORS"]
262262
)
263-
264263
# Handle sorting
265264
if sort_by not in ["observer", "date_min", "date_max", "observation_count", "media_count"]:
266265
raise BadRequest(f"The sort_by column {sort_by} is not defined")
267266

268267
taxref_cd_nom_list = TaxonSheetUtils.get_cd_nom_list_from_cd_ref(cd_ref)
269268

269+
field_separators_as_regexp = rf"[{''.join(field_separators)}]+"
270+
270271
query = (
271272
db.session.query(
272273
func.lower(
273274
func.trim(
274-
func.unnest(func.string_to_array(Synthese.observers, field_separator))
275+
func.regexp_split_to_table(Synthese.observers, field_separators_as_regexp)
275276
)
276277
).label("observer"),
277278
func.min(Synthese.date_min).label("date_min"),

backend/geonature/utils/config_schema.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@ class Synthese(Schema):
458458
ENABLE_TAXON_SHEETS = fields.Boolean(load_default=True)
459459
TAXON_SHEET = fields.Nested(TaxonSheet, load_default=TaxonSheet().load({}))
460460

461-
FIELD_OBSERVERS_SEPARATOR = fields.String(load_default=",")
461+
# Le séparateur utilisé pour délimiter les observateurs à l'intérieur du champs observer
462+
FIELD_OBSERVERS_SEPARATORS = fields.List(fields.String(), load_default=[","])
462463

463464
@pre_load
464465
def warn_deprecated(self, data, **kwargs):

config/default_config.toml.example

+3
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,9 @@ MEDIA_CLEAN_CRONTAB = "0 1 * * *"
453453
# Permet d'activer ou non la section "Observers"
454454
ENABLE_TAB_OBSERVERS = true
455455

456+
# Le séparateur utilisé pour délimiter les observateurs à l'intérieur du champs observer
457+
FIELD_OBSERVERS_SEPARATORS = [","]
458+
456459
# Gestion des demandes d'inscription
457460
[ACCOUNT_MANAGEMENT]
458461
# Activer l'affichage du lien vers le formulaire d'inscription

0 commit comments

Comments
 (0)