Projet

Général

Profil

Abs2 » Historique » Version 16

Josselin Jacquard, 22/03/2010 12:14

1 12
h1. Cahier des charges du module absences 2
2
3 1
4 13 Julien Jocal
_Avant propos_
5 1
6
Devant la nécessité de recoder le module absences, nous allons profiter de ce lieu pour établir un cahier des charges le plus complet possible. A cet effet, en fonction des discussions sur les différentes liste de diffusion de gepi, la synthèse sera mise à jour ici même. Tous ceux qui veulent participer à ces échanges sont les bienvenus.
7
8 13 Julien Jocal
h2. Quelques principes pour le développement
9 1
10 14 Julien Jocal
* Pour éviter de disperser les bonnes volontés, il serait bien qu'une version aboutie soit prête avant la fin de l'année scolaire 2009-2010 pour pouvoir tester en grandeur nature le module dans les établissements.
11
* Le choix technologique a été porté sur un outil d'ORM récent et puissant : Propel ("Doc. officielle":http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3 et [[propel|traduction partielle]]).
12 12
* Le module portera le nom de mod_abs2 dont la structure est déjà présente sur le [browser:trunk/mod_abs2 trunk].
13 14 Julien Jocal
* Il faudra que le code respecte quelques principes (conventions de nommage, DRY, POO).
14 12
* Ce module devra être lié avec le nouveau module Disciplines de Stéphane Boireau ainsi qu'avec le module emploi du temps. Pour la saisie des absences, on utilisera les AID pour constituer des groupes d'élèves-professeurs-activité. Le module AID devra donc également être lié au module absences.
15 1
* Tous les documents produits par Gepi devront être possibles sous plusieurs formats (html, [browser:trunk/class_php/odf.php open document], [browser:trunk/fpdf pdf], [browser:trunk/class_php/RSSFeed rss], csv).
16
* 3 méthodes d'envoi devront être possibles (papier, courriel et sms).
17
18 13 Julien Jocal
h2. Les fonctionnalités
19 1
20 13 Julien Jocal
h3. La saisie
21 9
22 12
* Chaque utilisateur devra pouvoir disposer de droits bien définis => un professeur ne peut saisir "absent" que des élèves qu'il a en cours par exemple.
23
** => Les informations disponibles lors de la saisie :
24
*** Les utilisateurs CPE auront l'edt de l'élève lors de la saisie des absences (popup en mouseover et click pour le fermer).
25
*** Les professeurs pourront voir leur propre edt et ainsi vérifier s'ils ont bien saisie les absences lors de leurs cours (couleur différente).
26 16 Josselin Jacquard
** => Les différents niveaux de saisie possibles sont différenciés pour les comptes de statut cpe et de statut prof :
27 12
*** l'utilisateur peut saisir seulement les élèves auxquels il est rattaché
28
**** L'interface de saisie devra permettre de voir le suivi sur chaque créneau de la journée ainsi qu'une information sur la saisie de la veille.
29
**** L'interface sera liée (à la demande de l'admin) au module emploi du temps.
30
**** L'utilisateur pourra ou pas modifier le créneau et la date de la saisie.
31 16 Josselin Jacquard
**** l'utilisateur peut saisir tous les élèves de l'établissement
32 1
**** L'utilisateur pourra ne saisir que les présents (si l'admin le permet).
33 16 Josselin Jacquard
**** L'utilisateur pourra marquer une saisie comme etant erronée, et non la supprimer pour des raison de securité.
34
**** Un professeur ne pourra saisir que certains type d'absence (informerie, retard etc...), un cpe pourra saisir tout les types possible (dispense medicale, derogation, probleme familiaux, etc...)
35 12
**** L'interface devra alors permettre de saisir un lot d'élève à partir de la liste de :
36
***** tous les élèves de l'établissement
37
***** tous les élèves d'une classe
38
***** tous les élèves d'un enseignement
39
***** tous les élèves d'une Activité Inter Disciplinaire (AID)
40
**** L'interface devra permettre par un simple coche de préciser que l'absence dure toute la journée sans devoir nécessairement préciser les créneaux d'absence.
41
** => Les "moments" possibles de la saisie
42
*** l'utilisateur peut saisir son niveau d'absence à n'importe quel moment de la journée
43
*** l'utilisateur peut saisir son niveau d'absence en respectant son emploi du temps seulement
44
*** L'utilisateur ne peut saisir/modifier des absences que sur la journée d'aujourd'hui ou sur d'autres journées (paramétrable).
45
** => Que peut saisir l'utilisateur ?
46
*** l'utilisateur peut saisir les élèves absents seulement
47
*** l'utilisateur peut corriger une absence en retard
48
*** l'utilisateur peut saisir les élèves absents et ceux en retard
49
*** l'utilisateur peut saisir tous les types d'absence (absence, retard, dispense, inclusion, ...)
50
** => Le suivi des appels
51
*** Tableau récapitulatif de toutes les saisies de la journée (avec possibilité d'imprimer et/ou d'archiver sous la forme d'un fichier)
52
**** sous la forme brute de toutes les saisies
53
**** sous sa forme traitée
54
**** Chaque professeur aura accès à un tableau récapitulatif de ses saisies (par journée, par semaine, par mois).
55
**** Permettre (paramétrable) à un professeur principal de voir toutes les saisies (par journée, par semaine, par mois) d'une classe (dont il est PP).
56
*** Toutes les saisies, même sans absent, doivent être enregistrées.
57 1
    *-> CPE doit avoir accès à un tableau récapitulatif de toutes les saisies (y compris les enregistrements "vides").
58
* Pouvoir rentrer des absences a priori sans que ça provoque l'envoi de lettres aux parents ......
59 12
* Il faudra prévoir d'utiliser les statuts personnalisés pour permettre à un administrateur de créer des utilisateurs avec des droits particuliers sur ses fonctionnalités.
60 1
61
62 13 Julien Jocal
h2. Le traitement
63 1
64 13 Julien Jocal
_Préambule_
65 1
66 12
** Seuls les personnels autorisés (CPE et statuts personnalisés qui auront ces droits) pourront accéder à cette partie du module
67 1
68 13 Julien Jocal
h3. le traitement en lui même
69 1
70 12
* Mettre un motif à une absence
71
* Mettre un type à une absence
72
* Lancer une action sur une absence
73
* Allonger/Raccourcir une absence
74 1
* Fusionner/regrouper des absences
75 15 Julien Jocal
76 12
* Envoyer un courrier/mail/sms aux responsables (responsable 1, 2 ou un simple contact)
77
** Possibilité de demander des justifications pour plusieurs absences en une seule lettre. Le fichier doit donc proposer sur une seule feuille la liste des absences à justifier.
78
** Assurer le suivi de ce courrier (réponse, relance, ...)
79 1
* Suivre le retour de ces courriers
80 15 Julien Jocal
81
* Pouvoir produire des bilans individualisés pour des périodes données (et pouvoir les imprimer + pdf)
82
83 12
* Avoir accès très rapidement sur la liste des absents à toutes les informations concernant l'élève absent (numéro de téléphone, adresse, bilan de ses absences,...)
84 1
* Prévoir un motif d'absence qui ne donne pas lieu à l'envoi de lettre comme pour les voyages scolaire, concours, journée d'appel,...
85 12
* Pouvoir faire des statistiques sur chaque classe, chaque élève, chaque type d'absence, en tenant compte du nombre de jour, de la discipline, du professeur, du régime.
86 14 Julien Jocal
*** Faire un lien fort avec le module discipline déjà existant
87 1
* Lire le bilan de la saisie "fond de salle" dans un seul tableau en précisant le nombre d'absents total (avec également une distinction par régime)
88 14 Julien Jocal
* Pouvoir faire des exportations sous plusieurs formats (csv, xml, Excell/Calc.OOo, pdf).
89 1
90 15 Julien Jocal
* Prévoir un module d'archivage des bilans (Légal : 10 ans -> production de pdf à graver par exemple)
91
92 1
h3. le suivi du courrier
93 4
94 14 Julien Jocal
* Envoyer un courrier (papier, mail, sms).
95
* Recevoir/saisir une réponse à ce courrier.
96
* Envoyer une relance et la suivre.
97
* Faire des statistiques de la gestion du courrier (par classe, par élève, par type,...)
98 7
99 13 Julien Jocal
h3. Les interfaces des utilisateurs
100 1
101
* Lors de la consultation de la fiche d'un élève par un cpe, avoir une récapitulation de ses dernières absences sans avoir à donner un intervalle de date
102
* Prévoir l'affichage du motif de l'absence (maladie, décès etc ....) dans l'interface de l'enseignant
103 15 Julien Jocal
104
h3. Gestion des droits
105
106
* Il faut qu'elle soit souple, tant dans la saisie que dans le suivi de ces absences (CPE, AED, AS, COP, chef d'établissement, ...)
107 1
108 13 Julien Jocal
h2. La structure de la base
109 3
110 13 Julien Jocal
h3. Modélisation
111 1
112
 Si des codeurs préfèrent modéliser (UML ?) avant de concevoir la base, n'hésitez pas à faire des propositions ??
113
114 13 Julien Jocal
h3. Proposition de structure
115 1
116 12
_ ébauche à continuer et à finir en fonction des échanges _
117
 -> table a_saisies :  _PRIMARY KEY  (@id@)_
118 10
119
120 13 Julien Jocal
|@id@|int(11)|NOT NULL|auto_increment|-||
121
|@utilisateur_id@|varchar(100)|NOT NULL|-|Utilisateurs::login||
122
|@eleve_id@|int(4)|NOT NULL||-|eleves::id_eleve|
123
|@created_on@|int(13)|NOT NULL|default '0'|timestamp UNIX||
124
|@updated_on@|int(13)|NOT NULL|default '0'|timestamp UNIX||
125
|@debut_abs@|int(12)|NOT NULL|default '0'|timestamp UNIX||
126 5
|@fin_abs@|int(12)|NOT NULL|default '0'|timestamp UNIX||
127
128
129 12
130 5
 -> table a_traitements : _PRIMARY KEY_ (@id@)
131 3
132 13 Julien Jocal
133
|@id@|int(11)|NOT NULL|auto_increment|-|
134
|@utilisateur_id@|int(13)|NOT NULL|-|utilisateurs::login|
135
|@created_on@|int(13)|NOT NULL|default '0'|timestamp UNIX|
136
|@updated_on@|int(13)|NOT NULL|default '0'|timestamp UNIX|
137
|@a_type_id@|int(4)|NOT NULL|-|a_types::id|
138
|@a_motif_id@|int(4)|NOT NULL|default '0'|a_motifs_id|
139
|@a_justification_id@|int(4)|NOT NULL|default '0'|a_justications::id|
140
|@texte_justification@|varchar(250)|NOT NULL|-|-|
141
|@a_action_id@|int(4)|NOT NULL|default '0'|a_actions::id|
142 1
143 5
144
145 12
 -> table a_justifications : _PRIMARY KEY_ (@id@)
146 6
147
148 12
||@id@||int(11)||NOT NULL||auto_increment||-||
149
||@nom@||varchar(100)||NOT NULL||-||-||
150
||@ordre@||int(3)||NOT NULL||-||-||
151 5
152 6
153 12
154
 -> table a_motifs : _PRIMARY KEY_ (@id@)
155
156
157
||@id@||int(11)||NOT NULL||auto_increment||-||
158
||@nom@||varchar(100)||NOT NULL||-||-||
159
||@ordre@||int(3)||NOT NULL||-||-||
160
161
162
163
 -> table a_types : _PRIMARY KEY_ (@id@)
164
165
166
||@id@||int(11)||NOT NULL||auto_increment||-||
167
||@nom@||varchar(100)||NOT NULL||-||-||
168
||@ordre@||int(3)||NOT NULL||-||-||
169
170
171
172
 -> table a_actions : _PRIMARY KEY_ (@id@)
173
174
175
||@id@||int(11)||NOT NULL||auto_increment||-||
176 1
||@nom@||varchar(100)||NOT NULL||-||-||
177 12
||@ordre@||int(3)||NOT NULL||-||-||
178
179
180
181
 -> table a_creneaux : _PRIMARY KEY_ (@id@)
182
183
184 14 Julien Jocal
||@id@||int(11)||NOT NULL||auto_increment||pk||
185 12
||@nom@||varchar(100)||NOT NULL||-||-||
186
||@debut@||int(12)||NOT NULL||-||en nombre de secondes par rapport à 00:00:00||
187
||@fin@||int(12)||NOT NULL||-||en nombre de secondes par rapport à 00:00:00||
188
||@type@||varchar(100)||NOT NULL||-||'cours', 'pause', 'repas'||
189
||@jour@||varchar(100)||NOT NULL||default '9'||-||
190 1
191 12
192 1
193 14 Julien Jocal
 -> table j_traitement_saisies
194 1
195
||@a_traitement_id@||int(11)||NOT NULL||-||a_traitements::id||
196
||@a_saisie_id@||int(11)||NOT NULL||-||a_saisies::id||
197 12
198 1
199 14 Julien Jocal
 -> table a_courriers
200 1
201 14 Julien Jocal
||@id@||int(11)||NOT NULL||-||pk||
202
||@type@||char(1)||NOT NULL||-||p/m/s||
203
||@contenu@||longtext||NOT NULL||-||-||
204
||@signature@||varchar(255)||NOT NULL||-||-||
205
||@a_gabarit_id@||int(11)||NOT NULL||-||a_courrier_gabarit::id||
206 1
207 14 Julien Jocal
208
 -> table a_courrier_gabarits
209
210
||@id@||int(11)||NOT NULL||-||pk||
211
||@entete@||varchar(255)||NOT NULL||-||-||
212
||@adresse@||varchar(255)||NOT NULL||-||-||
213
||@contenu@||varchar(255)||NOT NULL||-||-||
214
||@signature@||varchar(255)||NOT NULL||-||-||
215
||@pied@||varchar(255)||NOT NULL||-||-||
216
217
218
 -> table j_courrier_traitements
219
220
||@a_courrier_id@||int(11)||NOT NULL||-||a_courriers::id||
221
||@a_traitement_id@||int(11)||NOT NULL||-||a_traitements::id||
222 12
223
224
225
226
227
228
229 1
230
... @ suivre ...