diff --git a/Apps.md b/Apps.md new file mode 100644 index 0000000..47b0966 --- /dev/null +++ b/Apps.md @@ -0,0 +1,48 @@ +# Applications de la NoteKfet2020 + +La NoteKfet est un projet Django, décomposé en applications. +Certaines Applications sont développées uniquement pour ce projet, et sont indispensables, d'autre sont packagé et sont installées comme dépendances. +Enfin Des fonctionnalités annexes ont été rajouté, mais ne sont pas essentiel au déploiement de la NoteKfet; leur usage est cependant recommandé. + +Le front utilise le framework Bootstrap4 et quelques morceaux de javascript custom. + +### Applications indispensables: + * `note_kfet`: + Application "projet" de django, c'est ici que la config de la note est gérée. + * `member`: + Gestion des profils d'utilisateurs, des clubs et de leur membres. + * `note`: + Les notes associés a des utilisateurs ou des clubs. + * `activity`: + La gestion des Activités (créations, gestion, entrée...) + * `rights`: + Backend de droits, limites les pouvoirs des utilisateurs + * `api`: + API REST de la note, est notamment utilisée pour rendre la note dynamique + (notamment la page de conso) + + +### Applications packagées + * `polymorphic` + Utiliser pour la création de models polymorphiques (`Note` et `Transaction` notamment) cf [Note](Note). + + L'utilisation des models polymorphiques est détaillé sur la documentation du package: + [https://django-polymorphic.readthedocs.io/en/stable/](https://django-polymorphic.readthedocs.io/en/stable/) + + * `crispy_forms` + Utiliser pour générer des forms avec bootstrap4 + * `django_tables2` + utiliser pour afficher des tables de données et les formater, en python plutot qu'en HTML. + * `restframework` + Base de l'api. + +### Applications facultatives + * `logs` + Enregistre toute les modifications effectuées en base de donnée. + * `cas-server` + Serveur central d'authenfication, permet d'utiliser son compte de la NoteKfet2020 pour se connecter à d'autre application ayant intégrer un client. + * `cas` + Client d'authenfication centralisé. permet de se connecter à la note via le CAS. + * `scripts` + Ensemble de commande `./manage.py` pour la gestion de la note: import de données, verification d'intégrité, etc... + diff --git a/Apps/Logs.md b/Apps/Logs.md index d463e3d..683285b 100644 --- a/Apps/Logs.md +++ b/Apps/Logs.md @@ -1,8 +1,14 @@ Chaque modification effectuée sur un modèle est enregistrée dans la base dans données. -Dès qu'un modèle veut être sauvegardé, deux signaux sont envoyés dans `logs.signals` : un avant et un après la sauvegarde. En pré-sauvegarde, on récupère l'ancienne version du modèle, si elle existe. En post-sauvegarde, on récupère l'utilisateur et l'IP courants (voir ci-dessous), on convertit les modèles en JSON et on enregistre une entrée `Changelog` dans la base de données. +Dès qu'un modèle veut être sauvegardé, deux signaux sont envoyés dans `logs.signals` : un avant et un après la sauvegarde. +En pré-sauvegarde, on récupère l'ancienne version du modèle, si elle existe. +En post-sauvegarde, on récupère l'utilisateur et l'IP courants (voir ci-dessous), on convertit les modèles en JSON et on enregistre une entrée `Changelog` dans la base de données. -Pour récupérer l'utilisateur et son IP, le middleware `logs.middlewares.LogsMiddlewares` récupère à chaque requête l'utilisateur et l'adresse IP, et les stocke dans le processus courant, afin qu'ils puissent être récupérés par les signaux. Si jamais la modification ne provient pas d'une requête Web, on suppose qu'elle vient d'une instruction lancée avec `manage.py`. On récupère alors le nom de l'utilisateur dans l'interface de commandes, et si une note est associée à cet alias, alors on considère que c'est le détenteur de la note qui a effectué cette modification, sur l'adresse IP `127.0.0.1`. Sinon, le champ est laissé à `None`. +Pour récupérer l'utilisateur et son IP, le middleware `logs.middlewares.LogsMiddlewares` récupère à chaque requête l'utilisateur et l'adresse IP, et les stocke dans le processus courant, afin qu'ils puissent être récupérés par les signaux. + +Si jamais la modification ne provient pas d'une requête Web, on suppose qu'elle vient d'une instruction lancée avec `manage.py`. +On récupère alors le nom de l'utilisateur dans l'interface de commandes, et si une note est associée à cet alias, alors on considère que c'est le détenteur de la note qui a effectué cette modification, sur l'adresse IP `127.0.0.1`. +Sinon, le champ est laissé à `None`. Une entrée de `Changelog` contient les informations suivantes : @@ -31,4 +37,4 @@ Exemple de Changelog, pour la création d'une transaction de 42424242 centimes d } ``` -S'il est préférable de passer en console Postgresql pour parcourir les logs, ils sont trouvables via l'API dans `/api/logs`, sous réserve d'avoir les droits suffisants (ie. être respo info). \ No newline at end of file +S'il est préférable de passer en console Postgresql pour parcourir les logs, ils sont trouvables via l'API dans `/api/logs`, sous réserve d'avoir les droits suffisants (ie. être respo info). diff --git a/home.md b/home.md index a36ef5d..4b323ef 100644 --- a/home.md +++ b/home.md @@ -2,48 +2,3 @@ Bienvenu sur le Wiki de la NoteKfet2020. Ce wiki est plutot orienté vers un pub Des informations complémentaires sont également disponibles sur le [Wiki Crans](https://wiki.crans.org/NoteKfet/NoteKfet2020/) -## Structure de la NoteKfet - -La NoteKfet est un projet Django, décomposé en applications. Certaines Applications sont développé uniquement pour ce projet, et sont indispensables, d'autre sont packagé et sont installées comme dépendances. Enfin Des fonctionnalités annexes ont été rajouté, mais ne sont pas essentiel au déploiement de la NoteKfet; leur usage est cependant recommandé. - -Le front utilise le framework Bootstrap4 et quelques morceaux de javascript custom. - -### Applications indispensables: - * `note_kfet`: - Application "projet" de django, c'est ici que la config de la note est gérée. - * `member`: - Gestion des profils d'utilisateurs, des clubs et de leur membres. - * `note`: - Les notes associés a des utilisateurs ou des clubs. - * `activity`: - La gestion des Activités (créations, gestion, entrée...) - * `rights`: - Backend de droits, limites les pouvoirs des utilisateurs - * `api`: - API REST de la note, est notamment utiliser pour rendre la note dynamique (notamment la page de conso) -### Applications packagées - * `polymorphic` - Utiliser pour la création de models polymorphiques (`Note` et `Transaction` notamment) cf [Note](Note). - - L'utilisation des models polymorphiques est détaillé sur la documentation du package: [https://django-polymorphic.readthedocs.io/en/stable/](https://django-polymorphic.readthedocs.io/en/stable/) - - * `crispy_forms` - Utiliser pour générer des forms avec bootstrap4 - * `django_tables2` - utiliser pour afficher des tables de données et les formater, en python plutot qu'en HTML. - * `restframework` - Base de l'api. - -### Applications facultatives - * `logs` - Enregistre toute les modifications effectuées en base de donnée. - * `cas-server` - Serveur central d'authenfication, permet d'utiliser son compte de la NoteKfet2020 pour se connecter à d'autre application ayant intégrer un client. - * `cas` - Client d'authenfication centralisé. permet de se connecter à la note via le CAS. - * `scripts` - Ensemble de commande `./manage.py` pour la gestion de la note: import de données, verification d'intégrité, etc... - - - -