diff --git a/app.db b/app.db index deea546..87405cc 100644 Binary files a/app.db and b/app.db differ 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")}}