forked from ScoDoc/ScoDoc
Compare commits
2 Commits
626dc0157a
...
94eedcc6e8
Author | SHA1 | Date | |
---|---|---|---|
94eedcc6e8 | |||
37fa253950 |
|
@ -53,7 +53,7 @@ from werkzeug.utils import secure_filename
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def index():
|
def index():
|
||||||
"""
|
"""
|
||||||
Permet d'afficher une page avec la liste des entreprises et une liste des dernières opérations
|
Permet d'afficher une page avec la liste des entreprises (visible) et une liste des dernières opérations
|
||||||
"""
|
"""
|
||||||
entreprises = Entreprise.query.filter_by(visible=True)
|
entreprises = Entreprise.query.filter_by(visible=True)
|
||||||
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
||||||
|
@ -86,7 +86,7 @@ def logs():
|
||||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||||
def validation():
|
def validation():
|
||||||
"""
|
"""
|
||||||
Permet d'afficher une page avec la liste des entreprises a valider
|
Permet d'afficher une page avec la liste des entreprises a valider (non visible)
|
||||||
"""
|
"""
|
||||||
entreprises = Entreprise.query.filter_by(visible=False).all()
|
entreprises = Entreprise.query.filter_by(visible=False).all()
|
||||||
return render_template(
|
return render_template(
|
||||||
|
@ -100,7 +100,7 @@ def validation():
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def contacts():
|
def contacts():
|
||||||
"""
|
"""
|
||||||
Permet d'afficher une page la liste des contacts et une liste des dernières opérations
|
Permet d'afficher une page avec la liste des contacts des entreprises visibles et une liste des dernières opérations
|
||||||
"""
|
"""
|
||||||
contacts = (
|
contacts = (
|
||||||
db.session.query(EntrepriseContact, Entreprise)
|
db.session.query(EntrepriseContact, Entreprise)
|
||||||
|
@ -170,7 +170,7 @@ def fiche_entreprise(id):
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def logs_entreprise(id):
|
def logs_entreprise(id):
|
||||||
"""
|
"""
|
||||||
Permet d'afficher les logs (toutes les entreprises)
|
Permet d'afficher les logs d'une entreprise
|
||||||
"""
|
"""
|
||||||
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(
|
||||||
|
@ -211,7 +211,7 @@ def fiche_entreprise_validation(id):
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def offres_recues():
|
def offres_recues():
|
||||||
"""
|
"""
|
||||||
Permet d'afficher la page où l'on recoit les offres
|
Permet d'afficher la page où l'on peut voir les offres reçues
|
||||||
"""
|
"""
|
||||||
offres_recues = (
|
offres_recues = (
|
||||||
db.session.query(EntrepriseEnvoiOffre, EntrepriseOffre)
|
db.session.query(EntrepriseEnvoiOffre, EntrepriseOffre)
|
||||||
|
@ -624,6 +624,9 @@ def delete_offre(id):
|
||||||
@bp.route("/delete_offre_recue/<int:id>", methods=["GET", "POST"])
|
@bp.route("/delete_offre_recue/<int:id>", methods=["GET", "POST"])
|
||||||
@permission_required(Permission.RelationsEntreprisesView)
|
@permission_required(Permission.RelationsEntreprisesView)
|
||||||
def delete_offre_recue(id):
|
def delete_offre_recue(id):
|
||||||
|
"""
|
||||||
|
Permet de supprimer une offre reçue
|
||||||
|
"""
|
||||||
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(description=f"offre recu {id} inconnue")
|
).first_or_404(description=f"offre recu {id} inconnue")
|
||||||
|
@ -635,11 +638,18 @@ def delete_offre_recue(id):
|
||||||
@bp.route("/expired/<int:id>", methods=["GET", "POST"])
|
@bp.route("/expired/<int:id>", methods=["GET", "POST"])
|
||||||
@permission_required(Permission.RelationsEntreprisesChange)
|
@permission_required(Permission.RelationsEntreprisesChange)
|
||||||
def expired(id):
|
def expired(id):
|
||||||
|
"""
|
||||||
|
Permet de rendre expirée et non expirée 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} inconnue"
|
description=f"offre {id} inconnue"
|
||||||
)
|
)
|
||||||
offre.expired = not offre.expired
|
offre.expired = not offre.expired
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
if offre.expired:
|
||||||
|
flash("L'offre a été rendu expirée")
|
||||||
|
else:
|
||||||
|
flash("L'offre a été rendu non expirée")
|
||||||
return redirect(url_for("entreprises.fiche_entreprise", id=offre.entreprise_id))
|
return redirect(url_for("entreprises.fiche_entreprise", id=offre.entreprise_id))
|
||||||
|
|
||||||
|
|
||||||
|
@ -815,7 +825,7 @@ def add_historique(id):
|
||||||
@permission_required(Permission.RelationsEntreprisesSend)
|
@permission_required(Permission.RelationsEntreprisesSend)
|
||||||
def envoyer_offre(id):
|
def envoyer_offre(id):
|
||||||
"""
|
"""
|
||||||
Permet d'envoyer une offre à un utilisateur
|
Permet d'envoyer une offre à un utilisateur ScoDoc
|
||||||
"""
|
"""
|
||||||
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404(
|
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404(
|
||||||
description=f"offre {id} inconnue"
|
description=f"offre {id} inconnue"
|
||||||
|
@ -877,7 +887,7 @@ def json_etudiants():
|
||||||
@permission_required(Permission.RelationsEntreprisesChange)
|
@permission_required(Permission.RelationsEntreprisesChange)
|
||||||
def json_responsables():
|
def json_responsables():
|
||||||
"""
|
"""
|
||||||
Permet de récuperer un JSON avec tous les étudiants
|
Permet de récuperer un JSON avec tous les utilisateurs ScoDoc
|
||||||
"""
|
"""
|
||||||
if request.args.get("term") is None:
|
if request.args.get("term") is None:
|
||||||
abort(400)
|
abort(400)
|
||||||
|
@ -921,7 +931,7 @@ def export_entreprises():
|
||||||
@permission_required(Permission.RelationsEntreprisesExport)
|
@permission_required(Permission.RelationsEntreprisesExport)
|
||||||
def get_import_entreprises_file_sample():
|
def get_import_entreprises_file_sample():
|
||||||
"""
|
"""
|
||||||
Permet de récupérer un fichier pour pouvoir importer des entreprises
|
Permet de récupérer un fichier exemple vide pour pouvoir importer des entreprises
|
||||||
"""
|
"""
|
||||||
keys = [
|
keys = [
|
||||||
"siret",
|
"siret",
|
||||||
|
@ -1052,7 +1062,7 @@ def export_contacts():
|
||||||
@permission_required(Permission.RelationsEntreprisesExport)
|
@permission_required(Permission.RelationsEntreprisesExport)
|
||||||
def get_import_contacts_file_sample():
|
def get_import_contacts_file_sample():
|
||||||
"""
|
"""
|
||||||
Permet de récupérer un fichier pour pouvoir importer des contacts
|
Permet de récupérer un fichier exemple vide pour pouvoir importer des contacts
|
||||||
"""
|
"""
|
||||||
keys = [
|
keys = [
|
||||||
"nom",
|
"nom",
|
||||||
|
@ -1254,6 +1264,9 @@ def delete_offre_file(offre_id, filedir):
|
||||||
@bp.route("/preferences", methods=["GET", "POST"])
|
@bp.route("/preferences", methods=["GET", "POST"])
|
||||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||||
def preferences():
|
def preferences():
|
||||||
|
"""
|
||||||
|
Permet d'afficher la page des préférences du module gestion des relations entreprises
|
||||||
|
"""
|
||||||
form = PreferencesForm()
|
form = PreferencesForm()
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
EntreprisePreferences.set_email_notifications(form.mail_entreprise.data.strip())
|
EntreprisePreferences.set_email_notifications(form.mail_entreprise.data.strip())
|
||||||
|
|
|
@ -60,6 +60,7 @@ from app.scodoc import sco_cache
|
||||||
from app.scodoc import sco_etud
|
from app.scodoc import sco_etud
|
||||||
from app.scodoc import sco_permissions_check
|
from app.scodoc import sco_permissions_check
|
||||||
from app.scodoc import sco_xml
|
from app.scodoc import sco_xml
|
||||||
|
from app.scodoc import sco_excel
|
||||||
from app.scodoc.sco_exceptions import ScoException, AccessDenied, ScoValueError
|
from app.scodoc.sco_exceptions import ScoException, AccessDenied, ScoValueError
|
||||||
from app.scodoc.sco_permissions import Permission
|
from app.scodoc.sco_permissions import Permission
|
||||||
from app.scodoc.TrivialFormulator import TrivialFormulator
|
from app.scodoc.TrivialFormulator import TrivialFormulator
|
||||||
|
@ -1609,6 +1610,27 @@ def make_query_groups(group_ids):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def exportAnnotation(group_ids):
|
||||||
|
cnx = ndb.GetDBConnexion()
|
||||||
|
cursor = cnx.cursor()
|
||||||
|
cursor.execute(
|
||||||
|
"""SELECT i.nom, i.prenom, ea.date, ea.comment
|
||||||
|
FROM group_membership gm, identite i, etud_annotations ea
|
||||||
|
WHERE gm.group_id=%(group_ids)s
|
||||||
|
AND gm.etudid=i.id
|
||||||
|
AND i.id=ea.etudid
|
||||||
|
""",
|
||||||
|
{"group_ids": group_ids},
|
||||||
|
)
|
||||||
|
titles = ["nom", "prenom", "date", "annotation"]
|
||||||
|
title = "annotations"
|
||||||
|
xlsx = sco_excel.excel_simple_table(
|
||||||
|
titles=titles, lines=cursor.fetchall(), sheet_name=title
|
||||||
|
)
|
||||||
|
filename = title
|
||||||
|
return scu.send_file(xlsx, filename, scu.XLSX_SUFFIX, scu.XLSX_MIMETYPE)
|
||||||
|
|
||||||
|
|
||||||
class GroupIdInferer(object):
|
class GroupIdInferer(object):
|
||||||
"""Sert à retrouver l'id d'un groupe dans un semestre donné
|
"""Sert à retrouver l'id d'un groupe dans un semestre donné
|
||||||
à partir de son nom.
|
à partir de son nom.
|
||||||
|
|
|
@ -826,6 +826,8 @@ def tab_absences_html(groups_infos, etat=None):
|
||||||
% groups_infos.groups_query_args,
|
% groups_infos.groups_query_args,
|
||||||
"""<li><a class="stdlink" href="trombino?%s&format=pdflist">Liste d'appel avec photos</a></li>"""
|
"""<li><a class="stdlink" href="trombino?%s&format=pdflist">Liste d'appel avec photos</a></li>"""
|
||||||
% groups_infos.groups_query_args,
|
% groups_infos.groups_query_args,
|
||||||
|
"""<li><a class="stdlink" href="exportAnnotations?%s">Feuille annotations</a></li>"""
|
||||||
|
% groups_infos.groups_query_args,
|
||||||
"</ul>",
|
"</ul>",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
|
@ -2193,3 +2193,6 @@ def stat_bac(formsemestre_id):
|
||||||
sco_publish(
|
sco_publish(
|
||||||
"/sco_dump_and_send_db", sco_dump_db.sco_dump_and_send_db, Permission.ScoView
|
"/sco_dump_and_send_db", sco_dump_db.sco_dump_and_send_db, Permission.ScoView
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# --- Export annotations
|
||||||
|
sco_publish("/exportAnnotations", sco_groups.exportAnnotation, Permission.ScoView)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user