Skip to content

Commit

Permalink
fix database insert when attributes are empty (#467) + doc permissions
Browse files Browse the repository at this point in the history
  • Loading branch information
TheoLechemia authored Aug 5, 2024
1 parent 10fff6b commit 754d26b
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 14 deletions.
30 changes: 18 additions & 12 deletions apptax/admin/admin_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -424,25 +424,32 @@ def edit_view(self):
if taxon_name.cd_nom == taxon_name.cd_ref:
theme_attributs_def = self._get_theme_attributes(taxon_name)
attributes_val = self._get_attributes_value(taxon_name, theme_attributs_def)

self._template_args["theme_attributs_def"] = theme_attributs_def
self._template_args["attributes_val"] = attributes_val
if request.method == "POST":
for f in request.form:
if request.form.getlist(f) and f.startswith("attr."):
id_attr = f.split(".")[1]
value = "&".join(request.form.getlist(f))
try:
model = (
db.session.query(CorTaxonAttribut)
.filter_by(cd_ref=taxon_name.cd_ref)
.filter_by(id_attribut=id_attr)
.one()
query = (
db.select(CorTaxonAttribut)
.filter_by(cd_ref=taxon_name.cd_ref)
.filter_by(id_attribut=id_attr)
)
model = db.session.scalars(query).one_or_none()
if model:
if value == "":
db.session.delete(model)
else:
model.valeur_attribut = value
db.session.add(model)
elif value != "":
model = CorTaxonAttribut(
cd_ref=taxon_name.cd_ref,
id_attribut=id_attr,
valeur_attribut=value,
)
except Exception:
model = CorTaxonAttribut(cd_ref=taxon_name.cd_ref, id_attribut=id_attr)
model.valeur_attribut = value
db.session.add(model)
db.session.add(model)
db.session.commit()
self._template_args["url_cancel"] = request.referrer or url_for("taxons.index_view")

Expand Down Expand Up @@ -602,6 +609,5 @@ def on_model_change(self, form, model, is_created):
("radio", "radio"),
("textarea", "textarea"),
("text", "text"),
("phenology", "phenology"),
],
}
2 changes: 1 addition & 1 deletion apptax/taxonomie/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ class BibAttributs(db.Model):
obligatoire = db.Column(db.BOOLEAN, nullable=True, server_default=FetchedValue())
desc_attribut = db.Column(db.Text)
type_attribut = db.Column(db.Unicode)
type_widget = db.Column(db.Unicode)
type_widget = db.Column(db.Unicode, nullable=False)
v_regne = db.Column(
db.Unicode,
ForeignKey(VMRegne.regne),
Expand Down
3 changes: 2 additions & 1 deletion docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@

**⚠️ Notes de version**
- Les données de la table "bib_nom" on été sauvegardées dans une liste nommée "Save bib_nom". Le champs "nom_français" ainsi que "commentaire" de cette table ne sont pas conservés dans la version 2.0.0 (ils n'étaient plus utilisés dans les recherche de taxons depuis plusieurs versions).
- Changement dans les permissions : seuls les profile 2 et 6 sont utilisé. Il faut un profik 2 pour ajouter des attributs / medias et ajouter des taxons à des listes. Il faut un profik 6 pour pouvoir créer des listes / thêmes / type d'attributs.

- Changement dans les permissions : seuls les profils 2 et 6 sont utilisés. Il faut un profil 2 pour ajouter des attributs / medias et ajouter des taxons à des listes. Il faut un profil 6 pour pouvoir créer des listes / thêmes / type d'attributs.
- Le paramètre `UPLOAD_FOLDER` devient `MEDIA_FOLDER`. Veillez à le remplacer dans le fichier `config.py`. Si vous utilisez TaxHub avec GeoNature, ce paramètre existe déjà et est par défaut à `<GEONATURE_DIR>/backend/medias`.


Expand Down

0 comments on commit 754d26b

Please sign in to comment.