Module commentaires

Présentation générale

APiLos permet la communication entre intructeurs et bailleurs au niveau des conventions et avenants via des commentaires.

Les commentaires concernent les conventions à instruire et en correction. Lorsqu’un instructeur instruit une convention, il peut laisser des commentaires sur des champs spécifiques du formulaire, auxquels le bailleur peut répondre. Quand la convention passe au statut en correction, le bailleur peut modifier les champs commentés.

Ainsi les commentaires servent à échanger de l’information entre instructeurs et bailleurs, mais aussi à donner la permission aux bailleurs d’éditer des champs au statut en correction.

Implémentation des commentaires

L’application comments contient le coeur du code lié aux commentaires.

La table comments_comment contient les commentaires en base de données. Une clé étrangère pointe vers la table conventions_convention, de sorte qu’une convention peut avoir entre zéro et plusieurs commentaires.

Les commentaires sont représentés dans le code par le model Comment, parmis les différents champs, on note un statut, qui peut être OUVERT, RESOLU ou CLOS, un messagequi contient le contenu du commentaire, et diverses champs permettant de savoir l’endroit exact du formulaire auquel se rattache ce commentaire.

L’application comments contient également les vues permettant de créer, mettre à jour et supprimer des commentaires.

Lien avec le formulaire

Les commentaires sont intégrés dans les templates des formulaires de l’application.

Les différents champs génériques utilisés inclus dans leur template la ligne suivante : {% include "common/utils/comments_field.html" %}

Ce bout de code contient le javascript qui va instancier l’objet CommentFactory. Le code commence par tester sur la propriété object_field est présente dans le contexte, et si la convention est dans un état où l’on veut afficher les commentaires (en correction, en instruction, à signer, signée).

L’objet javascript CommentFactory permet de faire un apparaître une icône à côté du champ concerné. En cliquant sur l’icône on peut réaliser les différentes opérations liées aux commentaires sur ce champ (consultation, création, changement de statut).

Permettre l’ajout de commentaire sur un nouveau champ

Quand on ajoute un champ à un formulaire de la convention, il suffit d’ajouter la propriété object_field pour faire apparaître l’icône des commentaires. Par exemple :

{% include "common/form/input_text.html" with form_input=form.signataire_bloc_signature object_field="bailleur__signataire_bloc_signature__"|add:form.uuid.value %}

Cette ligne utilise le template input_text, qui lui même inclut comments_field, qui va instancier CommentFactory si le statut de la convention le permet.

Implémentation de la gestion des droits

Le code qui permet de rendre un champ éditable ou non est situé dans le template disable_form_input.html, inclut par défaut dans les champs du formulaires. Ce template contient la logique pour rendre le champ éditable ou non selon la présence de commentaires.

Résumé des commentaires

Ce résumé est visible uniquement dans les status à corriger et en instruction. Il regroupe les commentaires ouverts.