Implementation des fonctionnalité SQLAlchemy

This commit is contained in:
Éric Li 2021-05-06 14:33:10 +02:00
parent 92bb40d585
commit e70b3e70f5
5 changed files with 113 additions and 20 deletions

BIN
app.db

Binary file not shown.

View File

@ -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"

View File

@ -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 "<PN {}>".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 "<AC {}>".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 "<SAE {}>".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 "<Ressource {}>".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 "<Compétence {}>".format(self.code)

View File

@ -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:
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:
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:
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:
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:
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)

View File

@ -20,6 +20,12 @@
{% block formulaire %}{% endblock %}
<div class="field is-grouped">
<div class="control">
{{ form.sauvegarder(class="button")}}
</div>
<div class="control">
{{ form.charger(class="button is-static")}}
</div>
<div class="control">
{{ form.exporter(class="button")}}
</div>