8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-05 09:26:27 +00:00
No description
Find a file
Maxime Bombar 663ade9765 [Printer] Fix major bug. See below for more explanations :
Before, I used request.session to store some information about the current jobs to be printed.
This was because in the very beginning, I had an issue with disappearing files in my model.

I was able to fix this issue in a previous commit, but I still needed the jids.
However, because of this storage system, if someone tried to print a file, then oppened a second tab,
and tried to print anoter file, he/she would pay twice for the second file ....

I decided to add a hidden field to store the job id and deal with it, and it is readonly to avoid
changing it.
2018-12-06 17:57:57 +01:00
api [Printer] History jobs in API 2018-12-06 17:57:57 +01:00
cotisations Séparation entre utils et base (dossier re2o) 2018-11-15 18:59:06 +01:00
docs_utils Graph re2o sources dia (archi) 2017-10-12 20:03:38 +02:00
freeradius_utils Remplace raise par un appel aux fonction freeradius 2018-11-05 14:26:46 +01:00
install_utils Update schema.ldiff, limit de recherche à 50000 2018-08-09 11:04:47 +02:00
logs Séparation entre utils et base (dossier re2o) 2018-11-15 18:59:06 +01:00
machines Boostrapform pour les alias et les ouvertures de ports 2018-11-15 19:55:24 +01:00
preferences [Printer][Preference] Forgot migrations in commit 1e8d84b4c89d691a17da505358fb2f60c7d57394 2018-12-06 17:57:57 +01:00
printer [Printer] Fix major bug. See below for more explanations : 2018-12-06 17:57:57 +01:00
re2o [Printer] Move printer urlpatterns into optional urls 2018-12-06 17:57:57 +01:00
search Séparation entre utils et base (dossier re2o) 2018-11-15 18:59:06 +01:00
static Delete handlebars JavaScript library 2018-10-06 11:31:35 +02:00
templates Printer app really is optionnal 2018-12-06 17:57:37 +01:00
test_utils Add tests for details of instances of every models 2018-06-22 00:48:45 +00:00
topologie Séparation entre utils et base (dossier re2o) 2018-11-15 18:59:06 +01:00
users Séparation entre utils et base (dossier re2o) 2018-11-15 18:59:06 +01:00
.gitignore Update .gitignore to ignore more files 2018-09-21 12:47:59 +02:00
.gitlab-ci.yml Update .gitlab-ci.yml 2017-12-17 16:31:21 +01:00
apt_requirements.txt [Printer] Handles accentted filenames 2018-12-06 17:57:37 +01:00
CHANGELOG.md Add changelog information 2018-09-22 10:15:51 +02:00
install_re2o.sh Utilise des fichiers de requirements 2018-05-23 15:31:58 +00:00
LICENSE Add license file (GPLv2) 2017-01-15 18:00:42 -05:00
manage.py initial comit 2016-06-30 01:39:31 +02:00
pip_dev_requirements.txt Pip requirements for dev are in a separate file 2018-06-23 16:02:58 +00:00
pip_requirements.txt Pip requirements for dev are in a separate file 2018-06-23 16:02:58 +00:00
README.md Typos in README 2018-08-29 10:32:48 +02:00

Re2o

GNU public license v2.0

Avant propos

Re2o est un logiciel d'administration développé initialement au rezometz. Il se veut agnostique au réseau considéré, de manière à être installable en quelques clics.

Il utilise le framework django avec python3. Il permet de gérer les adhérents, les machines, les factures, les droits d'accès, les switchs et la topologie du réseau. De cette manière, il est possible de pluguer très facilement des services dessus, qui accèdent à la base de donnée en passant par django (ex : dhcp), en chargeant la liste de toutes les mac-ip, ou la liste des mac-ip autorisées sur le réseau (adhérent à jour de cotisation).

Installation

Un tutoriel pour installer le projet est disponible sur le wiki.

Installations Optionnelles

Générer le schéma des dépendances

Pour cela :

  • apt install python3-django-extensions
  • python3 manage.py graph_models -a -g -o re2o.png

Fonctionnement interne

Fonctionnement général

Re2o est séparé entre les models, qui sont visibles sur le schéma des dépendances. Il s'agit en réalité des tables sql, et les fields étant les colonnes. Ceci dit il n'est jamais nécessaire de toucher directement au sql, django procédant automatiquement à tout cela. On crée donc différents models (user, right pour les droits des users, interfaces, IpList pour l'ensemble des adresses ip, etc)

Du coté des forms, il s'agit des formulaires d'édition des models. Il s'agit de ModelForms django, qui héritent des models très simplement, voir la documentation django models forms.

Enfin les views, générent les pages web à partir des forms et des templates.

Fonctionnement avec les services

Les services dhcp.py, dns.py etc accèdent aux données via des vues rest. Celles-ci se trouvent dans machines/views.py. Elles sont générées via machines/serializers.py qui génère les vues. IL s'agit de vues en json utilisées par re2o-tools pour récupérer les données. Il est nécessaire de créer un user dans re2o avec le droit serveur qui permet d'accéder à ces vues, utilisé par re2o-tools.

Requète en base de donnée

Pour avoir un shell, lancer :

python3 manage.py shell

Pour charger des objets (exemple avec User), faire :

from users.models import User

Pour charger les objets django, il suffit de faire User.objects.all() pour tous les users par exemple. Il est ensuite aisé de faire des requêtes, par exemple User.objects.filter(pseudo='test')

Des exemples et la documentation complète sur les requêtes django sont disponible sur le site officiel.