Skip to content

Commit

Permalink
feat(import, conditional-fields): add comment
Browse files Browse the repository at this point in the history
wip
  • Loading branch information
jacquesfize committed Jul 25, 2024
1 parent 8e913c7 commit edcc56d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
22 changes: 12 additions & 10 deletions backend/geonature/core/imports/checks/sql/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ def init_rows_validity(imprt):
# TODO handle multi columns
# Currently if only a multi-fields is mapped, it will be ignored without raising any error.
# This is not a very big issue as it is unlikely to map **only** a multi-field.
selected_fields_names = [
field_name
for field_name, source_field in imprt.fieldmapping.items()
if source_field in imprt.columns
]
selected_fields_names = []
for field_name, source_field in imprt.fieldmapping.items():
if type(source_field) == list:
selected_fields_names.extend(set(source_field) & set(imprt.columns))
elif source_field in imprt.columns:
selected_fields_names.append(field_name)
for entity in entities:
# Select fields associated to this entity *and only to this entity*
fields = (
Expand All @@ -64,11 +65,12 @@ def check_orphan_rows(imprt):
transient_table = imprt.destination.get_transient_table()
# TODO: handle multi-source fields
# This is actually not a big issue as multi-source fields are unlikely to also be multi-entity fields.
selected_fields_names = [
field_name
for field_name, source_field in imprt.fieldmapping.items()
if source_field in imprt.columns
]
selected_fields_names = []
for field_name, source_field in imprt.fieldmapping.items():
if type(source_field) == list:
selected_fields_names.extend(set(source_field) & set(imprt.columns))
elif source_field in imprt.columns:
selected_fields_names.append(field_name)
# Select fields associated to multiple entities
AllEntityField = sa.orm.aliased(EntityField)
fields = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,20 @@ def upgrade():
op.add_column(
table_name="bib_fields",
schema="gn_imports",
column=sa.Column("mandatory_conditions", sa.ARRAY(sa.Unicode)),
column=sa.Column(
"mandatory_conditions",
sa.ARRAY(sa.Unicode),
comment="Contient la liste de champs qui rendent le champ obligatoire.",
),
)
op.add_column(
table_name="bib_fields",
schema="gn_imports",
column=sa.Column("optional_conditions", sa.ARRAY(sa.Unicode)),
column=sa.Column(
"optional_conditions",
sa.ARRAY(sa.Unicode),
comment="Contient la liste de champs qui rendent le champ optionnel.",
),
)

op.execute(
Expand Down
3 changes: 3 additions & 0 deletions backend/geonature/tests/imports/conftest.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import pytest

from geonature.tests.fixtures import *
from pypnusershub.tests.fixtures import teardown_logout_user

from .fixtures import *


Expand Down

0 comments on commit edcc56d

Please sign in to comment.