Skip to content
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

ETQ Instructeur, je veux un type de champ Lexpol 03 Variables A.B.C #39

Open
maatinito opened this issue Nov 23, 2024 · 0 comments
Open
Assignees

Comments

@maatinito
Copy link
Collaborator

maatinito commented Nov 23, 2024

Dans la gestion des variables, ajouter la gestion des méthodes et chainage.
Dans la partie 'Définition des variables à envoyer", on doit pouvoir écrire:

  • Numéro DN.date_de_naissance
    • obtenir la date de naissance du champ ou de l'annotation 'Numéro DN'
  • Commune de naissance.archipel
    • obtenir l'archipel du champ/annotation 'Commune de naissance'

Configuration :

Numéro DN.date_de_naissance 
Commune de naissance.archipel

Suppose que dans le modèle Lexpol, il y a les même variables (Numéro DN.dte_de_naissance, ...).
Si je veux dire que Numéro DN.date_de_naissance doit etre transformé en une variable Lexpol 'toto', je dois l'ecrire

NuméroDN.date_de_naissance=>toto

Note supplémentaire: Dans une variable root.level1.level2, 'root' doit être recherché dans

  • les champs
  • les annotations
  • les méthodes du dossier en cours
    Pseudo algorithm où source = dossier en cours.
  def object_field_values(source, field, log_empty: true)
    return [] if source.blank? || field.blank?

    objects = [*source]
    field.split('.').each do |name|
      objects = objects.flat_map do |object|
        object = object.dossier if object.respond_to?(:dossier) # champ de type 'lien vers dossier'
        r = []
        r += select_champ(object.champs, name) if object.respond_to?(:champs) # champ du dossier
        r += select_champ(object.annotations, name) if object.respond_to?(:annotations) # annotation ?
        r += attributes(object, name) if object.respond_to?(name) # récupère to ce qui est accessible via un appel de méthode
        r
      end
      Rails.logger.warn("Sur le dossier #{@dossier.number}, le champ #{field} est vide.") if log_empty && objects.blank?
    end
    objects
  end

Note que le résultat est toujours une liste de valeurs. Il peut y avoir plusieurs champs avec le même nom, un champ qui a plusieurs valeurs, etc...

@maatinito maatinito changed the title ETQ Administrateur, je veux un type de champ Lexpol 03 ETQ Administrateur, je veux un type de champ Lexpol 03 Variables A.B.C Nov 23, 2024
@maatinito maatinito changed the title ETQ Administrateur, je veux un type de champ Lexpol 03 Variables A.B.C ETQ Instructeur, je veux un type de champ Lexpol 03 Variables A.B.C Nov 26, 2024
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

2 participants