Vue en tableau modifiable

Bonjour,

Actuellement nous utilisons une solution excel pour une gestion de présence et nous souhaitons l’adapter en lowcode, j’aimerai donc savoir s’il est possible, dans la version actuelle de simplicité, de créer une vue non pas en liste mais en tableau, semblable à l’actuelle :

En sachant que les seules cases modifiables par l’utilisateur seraient celles colorées qui représentent les présences.
Je ne sais pas si c’est très clair. :slight_smile:

Merci

Je pense que la composant FullCalendar inclus dans Simplicité + son plugin commercial “timeline” (donc non inclus dans Simplicité => à vous de l’acheter et de l’ajouter) répondrait bien à ce genre de besoins:

Nous avons plusieurs clients qui ont développé des pages specifique basés sur ce plugin qui interagissent avec des objets Simplicité, car reste du dev specifique mais pas forcément très complexe.

Il y a un exemple d’usage specifique de FullCalendar dans la démo (qui n’utilise pas ce plugin) mais c’est surement transposable

Bonjour,

Autres idées :

  1. Tableau croisé

En V5, les tableaux croisés dynamiques peuvent être éditables dès lors que votre objet contient des cellules identifiées par les lignes / colonnes.

  • donc en clé fonctionnelle avoir les champs Marguerite/Nom/Prénom (ou login ou sous-ensemble identifié) + la date de la céllule
  • un champ valeur au croisement comme un ENUM = libre | occupé | congé

mais ça ne va pas colorier les week-ends, ni les demi-journées…

  1. External object

Sinon, il faudra écrire un objet externe qui représente cette vue spécifique, dont la méthode display fabrique un tableau HTML colorié à partir des données issues du search sur votre objet métier qui contient ces informations. Il y a beaucoup d’exemples d’objets externes dans la démo et dans la documentation.

https://docs.simplicite.io/documentation/01-core/externalobject-code-examples.md

1 Like

Bonjour,

Je suis partie sur l’idée du tableau croisé mais malgré la doc et les autres posts du forum, j’ai beaucoup de mal à bien saisir de quelle façon les utiliser pour arriver au rendu espéré et je rencontre pas mal de problèmes concernant les clés fonctionnelles.
Est-ce qu’un call serait envisageable le mercredi, jeudi ou vendredi prochain ?

Bonsoir,

Paramétrer un tableau croisé est documenté ici :
https://docs2.simplicite.io/lesson/tutorial/configuration/crosstable

Il n’est pas forcement adapté à votre besoin, car tout dépend de votre objet métier initial :

  • Il lui faut tous les champs nécessaire : à priori la margueritte, nom, prenom, date, et le type d’occupation
  • Ensuite le tableau sera éditable (en V5) si le type d’occupation est déterminé par les autres champs (la clé fonctionnelle de l’objet doit être en ligne et/ou colonne = chaque cellule croisée est unique donc modifiable ce n’est pas un agrégat)

Par contre vous ne pourrez pas colorier les week-ends en colonne, ou les marguerittes en ligne, ou des demi-journée… si c’est ce que veulent les utilisateurs. Vous aurez un tableau croisé un peu comme dans Excel.

Il faut plutôt partir sur un dev spécifique pas forcement compliqué / objet externe qui calcule ce tableau au petit oignon à partir de votre objet métier. Car je ne pense pas que le fullcalendar conviennent non plus à des besoins UI trop spécifiques.

Comment vous saisissez la présence/absence dans cet Excel ?
Est-ce uniquement une publication/synthèse de données ?

Bref commencez par paramétrer l’objet qui sera la source de données de votre matrice.
Ensuite on verra comment l’utiliser en publication et/ou mise à jour.

Sinon il y a aussi en V5 la possibilité de créer un timesheet éditable sans rien coder.

Ca ressemble à ça, mais il faut prévoir le modèle de données en fonction avec une table N,N entre 2 objets métier : par exemple une Personne et une Ressource (tache, congé, maladie…)

Dans votre cas

  • la Ressource 1 serait une “Marguerite + Personne”
  • la Ressource 2 serait un espace de travail : la “DSI”
  • avec 2 axes de payload = Occupation + Congés

Chaque espace de travail donnerait un tableau de ce type.