8000 Observateur par défaut · Issue #357 · PnX-SI/gn_module_monitoring · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Observateur par défaut #357

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
gildeluermoz opened this issue Jul 22, 2024 · 4 comments
Open

Observateur par défaut #357

gildeluermoz opened this issue Jul 22, 2024 · 4 comments

Comments

@gildeluermoz
Copy link
Contributor

Il n'est actuellement pas possible à ma connaissance de configurer un module pour que l'observateur d'une visite soit l'utilisateur authentifié. Dans certaines situations de saisies à répétition après plusieurs journées de relevés terrain, ce comportement peut améliorer l'ergonomie.
Ce comportement peut ne pas convenir (cas d'opérateurs de saisie saisissant pour le compte des observateurs) et il serait idéal qu'il soit configurable, soit avec un attribut json dans le visit.json, soit plus globalement dans le module.json

@camillemonchicourt
Copy link
Member

Je pense qu'on peut faire comme dans Occtax et toujours associé par défaut comme observateur l'utilisateur connecté, sans en faire un paramètre.

@marie-laure-cen
Copy link
marie-laure-cen commented Mar 12, 2025

Je reviens sur cette question. Normalement on doit pouvoir le récupérer dans le change puisqu'on a l'id_role qui s'intègre à meta dans monitoring-form.component.ts non?

this.meta = {
            nomenclatures: this._dataUtilsService.getDataUtil('nomenclature'),
            dataset: this._dataUtilsService.getDataUtil('dataset'),
            id_role: this.currentUser.id_role,
            bChainInput: this.bChainInput,
            parents: this.obj.parents,
          }

Mais je n'ai pas réussi à l'écrire correctement (par manque de connaissance en js)

"change": [
      "({objForm, meta}) => {",
          "const id_inventor = meta.value.id_role",
          "if (!objForm.controls.id_inventor.dirty) {",
              "objForm.patchValue({id_inventor})",
          "}",
      "}",
      ""
    ]

@gildeluermoz
Copy link
Contributor Author

Merci @marie-laure-cen
C'est en effet une piste intéressante. J'ai donc testé.

Je me demande s'il faut passer par le change. Le default me semble fait pour ça.
Est-ce que ceci fonctionnerait ?

"observers": {
      "attribut_label": "Observateurs",
      "default": "({value, meta}) => {return value.observers = meta.id_role}"
    },

Je l'ai testé sur un sous-module mais ça ne fonctionne pas... comme tous les attributs default et je ne comprends pas vraiment pourquoi.

Par exemple si je fais ceci, comme expliqué dans la doc :

"vent": {
      "type_widget": "nomenclature",
      "attribut_label": "Vitesse du vent",
      "code_nomenclature_type": "VENT",
      "type_util": "nomenclature",
      "required": false,
      "default": {"cd_nomenclature": "V3"}
    }

ou

"presence": {
      "type_widget": "radio",
      "attribut_label": "Présence d'oiseaux ?",
      "values": ["Oui", "Non"],
      "required": true,
      "default": "Oui"
    }

ou même simplement

"temperature_max": {
      "type_widget": "number",
      "attribut_label": "Température maximale de l’air",
      "required": false,
      "default": 20
    }

ou

"comments": {
      "hidden": false,
      "attribut_label": "Commentaires",
      "default": "blablabla..."
    }

Aucune configuration des default ne fonctionne et je me demande bien pourquoi.
Pas d'erreur en console mais rien ne s'affiche dans les champs concernés du formulaire.

Bug du module ? Mauvais usage ? Qq chose qui manque qq part ?

@marie-laure-cen
Copy link
marie-laure-cen commented May 20, 2025

J'ai finalement réussi à récupérer la valeur par défaut du parent dans un champ (exemple d'un champ "gestion" au niveau d'une visite qui récupère la valeur par défaut au niveau du transect) :

  "change": [
      "({objForm, meta}) => {",
          "const gestion = (meta.parents.site.properties.gestion);",
          "if (!objForm.controls.gestion.dirty) {",
              "objForm.patchValue({gestion})",
          "}",
      "}",
      ""
  ]

=> on doit pouvoir faire la même chose avec l'observateur

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
0