Interface admin django

Django propose une interface d’administration pour gérer certains éléments de la base de donnée comme les utilisateurs, groupes et permissions mais également les objects utilisés par les différentes applications. HappySchool stocke également la configuration des applications dans la base de donnée et sont donc modifiable à partir de cette interface.

Seules deux applications sont nécessaires au bon fonctionnement d’HappySchool, annuaire et core. La première contient toutes les fonctionnalités de recherches utilisées par la plupart des applications. Tandis que la deuxième, comme son nom l’indique, est la brique centrale sur laquelle se construit les autres applications.

L’interface d’administration Django est accessible à l’adresse suivante : http://ip-du-serveur/admin

Core

Paramètres généraux

C’est l’objet CoreSettingsModel qui permet d’éditer les paramètres. S’il n’existe aucun objet, créez-en un et un seul.

Vous pourrez ici modifier le nom de l’école qui apparaîtra à différents endroits dont les documents générés ainsi que l’url d’accès d’HappySchool.

Si vous utilisez un serveur distant, vous pouvez également indiquer son url ainsi que le token de l’utilisateur distant à utiliser pour la synchronisation.

Établissement/enseignement

HappySchool permet de gérer plusieurs établissements et/ou enseignements afin de compartimenter les accès en fonction des applications. Par exemple, une école possédant deux établissements qui posséde une infirmerie commune devra gérer les élèves des deux parties contrairement aux dossiers des élèves qui seront traités de manière distinctes. Ceci se reflète dans les objects TeachingModel qui seront associés aux élèves, enseignants et classes. Au moins un objet est nécessaire.

Responsables

Les responsables représentent tous les non-étudiants, qu’ils soient professeurs, éducateurs, membres de la direction ou encore secrétaires. Ils ne pourront se connecter que si un utilisateur leur est associé. L’objet associé est le ResponsibleModel.

Étudiants

Les objets concernant les étudiants sont divisés en deux modèles. Le StudentModel contient les données essentielles de l’élève. Tandis que AdditionalStudentInfo contient quant à lui les informations personnelles/confidentielles. Le but étant d’avoir une distinction clair entre les deux, HappySchool permettant de fonctionner en binôme entre un serveur local à l’école et une instance dans le cloud avec un minimum d’informations.

Courriels

Certaines applications permettent d’envoyer un courriel. Le modèle EmailModel permet de configurer ces différents courriels. En particulier, le champ year indique la responsabilité vis à vis d’une année. Ainsi, si une application envoie un courriel concernant un élève aux responsables de l’élève, HappySchool va regarder la correspondance entre l’année dans laquelle se trouve l’élève et le champ year de l’objet EmailModel pour savoir s’il doit être envoyé à cette adresse.

Utilisateurs, groupes et permissions

Une des volontés derrière HappySchool est de répondre au besoin de granularité dans l’accès à l’information. Pour cela, HappySchool utilise le système de permissions de Django. C’est la section Authentification et autorisation dans l’interface d’administration qui contient tous les objects qui nous intéresse.

Même si l’authentification se fait par service externe (LDAP, GoogleAuth, …), chaque utilisateur se retrouve ici. Il peut être intéressant de préenregistrer tous les futures utilisateurs afin des les associer avec un objet ResponsibleModel.

Afin de gérer les accès en lectures et/ou écritures pour chacune des applications, HappySchool utilise des permissions au niveau des groupes. Ainsi chaque utilisateur peut appartenir à un ou plusieurs groupes avec des permissions différentes.

De manière générale, la permission Can view modelmodel est le nom du modèle principal de l’application, donne accès à l’application et Can add/change/delete model donne accès en écriture à l’application.

Direction et sysadmin

Afin de se concentrer sur l’information utile, les responsables n’ont accès qu’aux informations concernant leurs élèves (déduit à partir de leurs classes et années). Les groupes direction et sysadmin font exceptions à cette règle et ont accès à tous les élèves. Il se peut également que l’application permette d’outrepasser cette règle.