1
0
forked from ScoDoc/ScoDoc

not found module gestion entreprises

This commit is contained in:
Arthur ZHU 2022-02-21 20:22:27 +01:00
parent 9b21157fb7
commit 663daa564b
3 changed files with 108 additions and 24 deletions

View File

@ -190,6 +190,7 @@ def create_app(config_class=DevConfig):
app.register_error_handler(ScoGenError, handle_sco_value_error) app.register_error_handler(ScoGenError, handle_sco_value_error)
app.register_error_handler(ScoValueError, handle_sco_value_error) app.register_error_handler(ScoValueError, handle_sco_value_error)
app.register_error_handler(404, handle_sco_value_error)
app.register_error_handler(AccessDenied, handle_access_denied) app.register_error_handler(AccessDenied, handle_access_denied)
app.register_error_handler(500, internal_server_error) app.register_error_handler(500, internal_server_error)
@ -201,7 +202,7 @@ def create_app(config_class=DevConfig):
app.register_blueprint(auth_bp, url_prefix="/auth") app.register_blueprint(auth_bp, url_prefix="/auth")
from app.entreprises import bp as entreprises_bp from app.entreprises import bp as entreprises_bp
app.register_blueprint(entreprises_bp, url_prefix="/ScoDoc/entreprises") app.register_blueprint(entreprises_bp, url_prefix="/ScoDoc/entreprises")
from app.views import scodoc_bp from app.views import scodoc_bp

View File

@ -123,7 +123,9 @@ def fiche_entreprise(id):
La fiche entreprise comporte les informations de l'entreprise, les contacts de l'entreprise et La fiche entreprise comporte les informations de l'entreprise, les contacts de l'entreprise et
les offres de l'entreprise. les offres de l'entreprise.
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"fiche entreprise {id} inconnu"
)
offres_with_files = [] offres_with_files = []
depts = are.get_depts() depts = are.get_depts()
for offre in entreprise.offres: for offre in entreprise.offres:
@ -163,7 +165,9 @@ def logs_entreprise(id):
Permet d'afficher les logs (toutes les entreprises) Permet d'afficher les logs (toutes les entreprises)
""" """
page = request.args.get("page", 1, type=int) page = request.args.get("page", 1, type=int)
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"logs fiche entreprise {id} inconnu"
)
logs = ( logs = (
EntrepriseLog.query.order_by(EntrepriseLog.date.desc()) EntrepriseLog.query.order_by(EntrepriseLog.date.desc())
.filter_by(object=id) .filter_by(object=id)
@ -183,7 +187,9 @@ def fiche_entreprise_validation(id):
""" """
Permet d'afficher la fiche entreprise d'une entreprise a valider Permet d'afficher la fiche entreprise d'une entreprise a valider
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404(
description=f"fiche entreprise (validation) {id} inconnu"
)
contacts = entreprise.contacts contacts = entreprise.contacts
return render_template( return render_template(
"entreprises/fiche_entreprise_validation.html", "entreprises/fiche_entreprise_validation.html",
@ -235,7 +241,9 @@ def offres_expirees(id):
""" """
Permet d'afficher la liste des offres expirés d'une entreprise Permet d'afficher la liste des offres expirés d'une entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"fiche entreprise {id} inconnu"
)
offres_expirees_with_files = [] offres_expirees_with_files = []
depts = are.get_depts() depts = are.get_depts()
for offre in entreprise.offres: for offre in entreprise.offres:
@ -309,7 +317,9 @@ def edit_entreprise(id):
""" """
Permet de modifier une entreprise de la base avec un formulaire Permet de modifier une entreprise de la base avec un formulaire
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"entreprise {id} inconnu"
)
form = EntrepriseModificationForm() form = EntrepriseModificationForm()
if form.validate_on_submit(): if form.validate_on_submit():
nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{form.nom.data.strip()}</a>" nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{form.nom.data.strip()}</a>"
@ -376,7 +386,9 @@ def delete_entreprise(id):
""" """
Permet de supprimer une entreprise de la base avec un formulaire de confirmation Permet de supprimer une entreprise de la base avec un formulaire de confirmation
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"entreprise {id} inconnu"
)
form = SuppressionConfirmationForm() form = SuppressionConfirmationForm()
if form.validate_on_submit(): if form.validate_on_submit():
db.session.delete(entreprise) db.session.delete(entreprise)
@ -411,7 +423,9 @@ def validate_entreprise(id):
Permet de valider une entreprise Permet de valider une entreprise
""" """
form = ValidationConfirmationForm() form = ValidationConfirmationForm()
entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404(
description=f"entreprise (validation) {id} inconnu"
)
if form.validate_on_submit(): if form.validate_on_submit():
entreprise.visible = True entreprise.visible = True
nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{entreprise.nom}</a>" nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{entreprise.nom}</a>"
@ -436,7 +450,9 @@ def delete_validation_entreprise(id):
""" """
Permet de supprimer une entreprise en attente de validation avec une formulaire de validation Permet de supprimer une entreprise en attente de validation avec une formulaire de validation
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404(
description=f"entreprise (validation) {id} inconnu"
)
form = SuppressionConfirmationForm() form = SuppressionConfirmationForm()
if form.validate_on_submit(): if form.validate_on_submit():
db.session.delete(entreprise) db.session.delete(entreprise)
@ -456,7 +472,9 @@ def add_offre(id):
""" """
Permet d'ajouter une offre a une entreprise Permet d'ajouter une offre a une entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"entreprise {id} inconnu"
)
form = OffreCreationForm() form = OffreCreationForm()
if form.validate_on_submit(): if form.validate_on_submit():
offre = EntrepriseOffre( offre = EntrepriseOffre(
@ -499,7 +517,9 @@ def edit_offre(id):
""" """
Permet de modifier une offre Permet de modifier une offre
""" """
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404() offre = EntrepriseOffre.query.filter_by(id=id).first_or_404(
description=f"offre {id} inconnu"
)
offre_depts = EntrepriseOffreDepartement.query.filter_by(offre_id=offre.id).all() offre_depts = EntrepriseOffreDepartement.query.filter_by(offre_id=offre.id).all()
form = OffreModificationForm() form = OffreModificationForm()
offre_depts_list = [(offre_dept.dept_id) for offre_dept in offre_depts] offre_depts_list = [(offre_dept.dept_id) for offre_dept in offre_depts]
@ -554,7 +574,9 @@ def delete_offre(id):
""" """
Permet de supprimer une offre Permet de supprimer une offre
""" """
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404() offre = EntrepriseOffre.query.filter_by(id=id).first_or_404(
description=f"offre {id} inconnu"
)
entreprise_id = offre.entreprise.id entreprise_id = offre.entreprise.id
form = SuppressionConfirmationForm() form = SuppressionConfirmationForm()
if form.validate_on_submit(): if form.validate_on_submit():
@ -588,7 +610,7 @@ def delete_offre(id):
def delete_offre_recue(id): def delete_offre_recue(id):
offre_recue = EntrepriseEnvoiOffre.query.filter_by( offre_recue = EntrepriseEnvoiOffre.query.filter_by(
id=id, receiver_id=current_user.id id=id, receiver_id=current_user.id
).first_or_404() ).first_or_404(description=f"offre recu {id} inconnu")
db.session.delete(offre_recue) db.session.delete(offre_recue)
db.session.commit() db.session.commit()
return redirect(url_for("entreprises.offres_recues")) return redirect(url_for("entreprises.offres_recues"))
@ -600,7 +622,9 @@ def add_contact(id):
""" """
Permet d'ajouter un contact a une entreprise Permet d'ajouter un contact a une entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"entreprise {id} inconnu"
)
form = ContactCreationForm(hidden_entreprise_id=entreprise.id) form = ContactCreationForm(hidden_entreprise_id=entreprise.id)
if form.validate_on_submit(): if form.validate_on_submit():
contact = EntrepriseContact( contact = EntrepriseContact(
@ -635,7 +659,9 @@ def edit_contact(id):
""" """
Permet de modifier un contact Permet de modifier un contact
""" """
contact = EntrepriseContact.query.filter_by(id=id).first_or_404() contact = EntrepriseContact.query.filter_by(id=id).first_or_404(
description=f"contact {id} inconnu"
)
form = ContactModificationForm( form = ContactModificationForm(
hidden_entreprise_id=contact.entreprise_id, hidden_entreprise_id=contact.entreprise_id,
hidden_contact_id=contact.id, hidden_contact_id=contact.id,
@ -678,7 +704,9 @@ def delete_contact(id):
""" """
Permet de supprimer un contact Permet de supprimer un contact
""" """
contact = EntrepriseContact.query.filter_by(id=id).first_or_404() contact = EntrepriseContact.query.filter_by(id=id).first_or_404(
description=f"contact {id} inconnu"
)
form = SuppressionConfirmationForm() form = SuppressionConfirmationForm()
if form.validate_on_submit(): if form.validate_on_submit():
contact_count = EntrepriseContact.query.filter_by( contact_count = EntrepriseContact.query.filter_by(
@ -717,7 +745,9 @@ def add_historique(id):
""" """
Permet d'ajouter un étudiant ayant réalisé un stage ou une alternance sur la fiche entreprise de l'entreprise Permet d'ajouter un étudiant ayant réalisé un stage ou une alternance sur la fiche entreprise de l'entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
description=f"entreprise {id} inconnu"
)
form = HistoriqueCreationForm() form = HistoriqueCreationForm()
if form.validate_on_submit(): if form.validate_on_submit():
etudiant_nomcomplet = form.etudiant.data.upper().strip() etudiant_nomcomplet = form.etudiant.data.upper().strip()
@ -760,7 +790,9 @@ def envoyer_offre(id):
""" """
Permet d'envoyer une offre à un utilisateur Permet d'envoyer une offre à un utilisateur
""" """
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404() offre = EntrepriseOffre.query.filter_by(id=id).first_or_404(
description=f"offre {id} inconnu"
)
form = EnvoiOffreForm() form = EnvoiOffreForm()
if form.validate_on_submit(): if form.validate_on_submit():
responsable_data = form.responsable.data.upper().strip() responsable_data = form.responsable.data.upper().strip()
@ -794,7 +826,7 @@ def json_etudiants():
""" """
Permet de récuperer un JSON avec tous les étudiants Permet de récuperer un JSON avec tous les étudiants
""" """
if request.args.get("term") == None: if request.args.get("term") is None:
abort(400) abort(400)
term = request.args.get("term").strip() term = request.args.get("term").strip()
etudiants = Identite.query.filter(Identite.nom.ilike(f"%{term}%")).all() etudiants = Identite.query.filter(Identite.nom.ilike(f"%{term}%")).all()
@ -820,7 +852,7 @@ def json_responsables():
""" """
Permet de récuperer un JSON avec tous les étudiants Permet de récuperer un JSON avec tous les étudiants
""" """
if request.args.get("term") == None: if request.args.get("term") is None:
abort(400) abort(400)
term = request.args.get("term").strip() term = request.args.get("term").strip()
responsables = User.query.filter( responsables = User.query.filter(
@ -873,8 +905,9 @@ def get_import_entreprises_file_sample():
"pays", "pays",
] ]
titles = keys[:] titles = keys[:]
# lines = [["" for x in range(6)] for y in range(100)]
title = "ImportEntreprises" title = "ImportEntreprises"
xlsx = sco_excel.excel_simple_table(titles=titles, sheet_name="Entreprises") xlsx = sco_excel.excel_simple_table_test(titles=titles, sheet_name="Entreprises")
filename = title filename = title
return scu.send_file(xlsx, filename, scu.XLSX_SUFFIX, scu.XLSX_MIMETYPE) return scu.send_file(xlsx, filename, scu.XLSX_SUFFIX, scu.XLSX_MIMETYPE)
@ -1126,7 +1159,7 @@ def get_offre_file(entreprise_id, offre_id, filedir, filename):
as_attachment=True, as_attachment=True,
) )
else: else:
abort(404) abort(404, description=f"fichier {filename} inconnu")
@bp.route("/add_offre_file/<int:offre_id>", methods=["GET", "POST"]) @bp.route("/add_offre_file/<int:offre_id>", methods=["GET", "POST"])
@ -1135,7 +1168,9 @@ def add_offre_file(offre_id):
""" """
Permet d'ajouter un fichier à une offre Permet d'ajouter un fichier à une offre
""" """
offre = EntrepriseOffre.query.filter_by(id=offre_id).first_or_404() offre = EntrepriseOffre.query.filter_by(id=offre_id).first_or_404(
description=f"offre {offre_id} inconnu"
)
form = AjoutFichierForm() form = AjoutFichierForm()
if form.validate_on_submit(): if form.validate_on_submit():
date = f"{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}" date = f"{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}"
@ -1165,7 +1200,9 @@ def delete_offre_file(offre_id, filedir):
""" """
Permet de supprimer un fichier d'une offre Permet de supprimer un fichier d'une offre
""" """
offre = EntrepriseOffre.query.filter_by(id=offre_id).first_or_404() offre = EntrepriseOffre.query.filter_by(id=offre_id).first_or_404(
description=f"offre {offre_id} inconnu"
)
form = SuppressionConfirmationForm() form = SuppressionConfirmationForm()
if form.validate_on_submit(): if form.validate_on_submit():
path = os.path.join( path = os.path.join(

View File

@ -428,6 +428,52 @@ def excel_simple_table(
return ws.generate() return ws.generate()
def excel_simple_table_test(
titles=None, lines=None, sheet_name=b"feuille", titles_styles=None, comments=None
):
"""Export simple type 'CSV': 1ere ligne en gras, le reste tel quel"""
ws = ScoExcelSheet(sheet_name)
if titles is None:
titles = []
if lines is None:
lines = [[]]
if titles_styles is None:
style = excel_make_style(bold=True)
titles_styles = [style] * len(titles)
if comments is None:
comments = [None] * len(titles)
# ligne de titres
ws.append_row(
[
ws.make_cell(it, style, comment)
for (it, style, comment) in zip(titles, titles_styles, comments)
]
)
default_style = excel_make_style()
text_style = excel_make_style(number_format=FORMAT_GENERAL)
int_style = excel_make_style()
float_style = excel_make_style(number_format=FORMAT_NUMBER_00)
for line in lines:
cells = []
for it in line:
cell_style = default_style
if type(it) == float:
cell_style = float_style
elif type(it) == int:
cell_style = int_style
else:
cell_style = text_style
cells.append(ws.make_cell(it, cell_style))
ws.append_row(cells)
# sheet = ws.wb.active
# for cell in sheet["A2":"A100"]:
# cell.number_format = FORMAT_GENERAL
return ws.generate()
def excel_feuille_saisie(e, titreannee, description, lines): def excel_feuille_saisie(e, titreannee, description, lines):
"""Genere feuille excel pour saisie des notes. """Genere feuille excel pour saisie des notes.
E: evaluation (dict) E: evaluation (dict)