From e70b3e70f5012e33b7dfc18674cc6072d574bb7b Mon Sep 17 00:00:00 2001 From: Nekori Date: Thu, 6 May 2021 14:33:10 +0200 Subject: [PATCH] =?UTF-8?q?Implementation=20des=20fonctionnalit=C3=A9=20SQ?= =?UTF-8?q?LAlchemy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.db | Bin 20480 -> 20480 bytes app/forms.py | 4 ++- app/models.py | 58 +++++++++++++++++++++++++++++++++-- app/routes.py | 65 +++++++++++++++++++++++++++++----------- app/templates/form.html | 6 ++++ 5 files changed, 113 insertions(+), 20 deletions(-) diff --git a/app.db b/app.db index deea546c5c28437633cf4cb208483805df6c7c01..87405cc7ab5501f8b1c3c8ad5e0f022ad03050c5 100644 GIT binary patch delta 238 zcmWlUF-`+96hzmGv=LC4C?!Zt2NfV8dZO(j5po0^?}s(=+K&B~mcR+%23t@-iE@NJ z5Oq3CGsT;yk!I72O)uV$MEP-CiSpdVBJAAeM{kS=}0E z5=V-#l%N~cdJNyTsna?~<(;O;6f4pOlo*{OtfCpdo(VN29fM)x9qJBu%f%VkcMNjK zT8QM7V+57{iS}(^n!%oWAGz_5QH6%!46MS+Fr`Eo`rNB^N7m;3C&ELv0-cZci=q&6 SSIFIVa``LA5Bve#YENbW delta 45 scmZozz}T>Wae_1>>qHr6M%Il9OZ1r-1U3sgyx^ZWL5Piu0SMq+03@;uTmS$7 diff --git a/app/forms.py b/app/forms.py index 4b8138b..8aa3719 100644 --- a/app/forms.py +++ b/app/forms.py @@ -14,6 +14,8 @@ if not os.path.exists(REPERTOIRE_YAML): class Form(FlaskForm): + sauvegarder = SubmitField("Sauvegarder") + charger = SubmitField("Charger") exporter = SubmitField("Exporter") fichier = FileField("Choisir fichier", validators=[FileAllowed(["yml"], "Fichier Yaml seulement!")]) importer = SubmitField("Importer") @@ -99,7 +101,7 @@ def form_export(form): """ Si le formulaire est valide => exporte dans un fichier yaml avec les informations du formulaire """ output = {} - for categorie, valeur in list(form.data.items())[3:-1]: + for categorie, valeur in list(form.data.items())[5:-1]: output[categorie] = valeur fichier = REPERTOIRE_YAML + form.code.data + ".yml" diff --git a/app/models.py b/app/models.py index c65bb73..49ab7c8 100644 --- a/app/models.py +++ b/app/models.py @@ -5,7 +5,61 @@ class PN(db.Model): nom = db.Column(db.String(255)) diminutif = db.Column(db.String(30)) description = db.Column(db.Text()) - type = db.Column(db.Integer()) + type = db.Column(db.String(1)) def __repr__(self): - return "".format(self.code) \ No newline at end of file + return "".format(self.code) + +class AC(db.Model): + code = db.Column(db.String(6), primary_key = True) + titre = db.Column(db.String(255)) + saes = db.Column(db.String(255)) + + def __repr__(self): + return "".format(self.code) + +class SAE(db.Model): + code = db.Column(db.String(5), primary_key = True) + titre = db.Column(db.String(255)) + semestre = db.Column(db.String(255)) + heures_encadrees = db.Column(db.String(3)) + heures_tp = db.Column(db.String(3)) + projet = db.Column(db.String(3)) + description = db.Column(db.Text()) + coef = db.Column(db.String(255)) + acs = db.Column(db.String(255)) + ressources = db.Column(db.String(255)) + livrables = db.Column(db.Text()) + motscles = db.Column(db.String(255)) + + def __repr__(self): + return "".format(self.code) + +class Ressource(db.Model): + code = db.Column(db.String(4), primary_key = True) + nom = db.Column(db.String(255)) + semestre = db.Column(db.String(255)) + heures_formation = db.Column(db.String(3)) + heures_tp = db.Column(db.String(3)) + coef = db.Column(db.String(255)) + acs = db.Column(db.String(255)) + saes = db.Column(db.String(255)) + prerequis = db.Column(db.String(255)) + contexte = db.Column(db.Text()) + contenu = db.Column(db.Text()) + motscles = db.Column(db.String(255)) + + def __repr__(self): + return "".format(self.code) + +class Competence(db.Model): + code = db.Column(db.String(3), primary_key = True) + nom = db.Column(db.String(255)) + diminutif = db.Column(db.String(30)) + description = db.Column(db.Text()) + composantes = db.Column(db.Text()) + situations = db.Column(db.Text()) + niveaux = db.Column(db.Text()) + + def __repr__(self): + return "".format(self.code) \ No newline at end of file diff --git a/app/routes.py b/app/routes.py index 69b5d47..82090fe 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,7 +1,7 @@ from flask import render_template, flash, redirect, url_for, request -from app import app +from app import app, db from app.forms import * -from app.models import PN +import app.models as models import yaml @@ -15,9 +15,16 @@ def PN(): form = PNForm() form_validation = form.validate_on_submit() form = form_import(form) - if form_validation and form.exporter.data: - flash("Ajout du référentiel PN: {} ".format(form.code.data)) - form_export(form) + if form_validation: + if form.exporter.data: + flash("Ajout du référentiel PN: {} ".format(form.code.data)) + form_export(form) + if form.sauvegarder.data: + if not "pn" in locals(): + pn = models.PN() + form.populate_obj(pn) + db.session.add(pn) + db.session.commit() return redirect(url_for("PN")) return render_template("PN.html", form = form) @@ -26,9 +33,15 @@ def AC(): form = ACForm() form_validation = form.validate_on_submit() form = form_import(form) - if form_validation and form.exporter.data: - flash("Ajout du référentiel AC: {} ".format(form.code.data)) - form_export(form) + if form_validation: + if form.exporter.data: + flash("Ajout du référentiel AC: {} ".format(form.code.data)) + form_export(form) + if not "ac" in locals(): + ac = models.AC() + form.populate_obj(ac) + db.session.add(ac) + db.session.commit() return redirect(url_for("AC")) return render_template("AC.html", form = form) @@ -37,9 +50,15 @@ def SAE(): form = SAEForm() form_validation = form.validate_on_submit() form = form_import(form) - if form_validation and form.exporter.data: - flash("Ajout du référentiel SAE: {} ".format(form.code.data)) - form_export(form) + if form_validation: + if form.exporter.data: + flash("Ajout du référentiel SAE: {} ".format(form.code.data)) + form_export(form) + if not "sae" in locals(): + sae = models.SAE() + form.populate_obj(sae) + db.session.add(sae) + db.session.commit() return redirect(url_for("SAE")) return render_template("SAE.html", form = form) @@ -48,9 +67,15 @@ def Ressource(): form = RessourceForm() form_validation = form.validate_on_submit() form = form_import(form) - if form_validation and form.exporter.data: - flash("Ajout du référentiel Ressource: {} ".format(form.code.data)) - form_export(form) + if form_validation: + if form.exporter.data: + flash("Ajout du référentiel Ressource: {} ".format(form.code.data)) + form_export(form) + if not "ressource" in locals(): + ressource = models.Ressource() + form.populate_obj(ressource) + db.session.add(ressource) + db.session.commit() return redirect(url_for("Ressource")) return render_template("Ressource.html", form = form) @@ -59,8 +84,14 @@ def Competence(): form = CompetenceForm() form_validation = form.validate_on_submit() form = form_import(form) - if form_validation and form.exporter.data: - flash("Ajout du référentielCompetence: {} ".format(form.code.data)) - form_export(form) + if form_validation: + if form.exporter.data: + flash("Ajout du référentielCompetence: {} ".format(form.code.data)) + form_export(form) + if not "competence" in locals(): + competence = models.Competence() + form.populate_obj(competence) + db.session.add(competence) + db.session.commit() return redirect(url_for("Competence")) return render_template("Competence.html", form = form) \ No newline at end of file diff --git a/app/templates/form.html b/app/templates/form.html index a069ad6..ff7e518 100644 --- a/app/templates/form.html +++ b/app/templates/form.html @@ -20,6 +20,12 @@ {% block formulaire %}{% endblock %}
+
+ {{ form.sauvegarder(class="button")}} +
+
+ {{ form.charger(class="button is-static")}} +
{{ form.exporter(class="button")}}