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)
|
||||
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)
|
||||
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
||||
|
@ -86,7 +86,7 @@ def logs():
|
|||
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||
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()
|
||||
return render_template(
|
||||
|
@ -100,7 +100,7 @@ def validation():
|
|||
@permission_required(Permission.RelationsEntreprisesView)
|
||||
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 = (
|
||||
db.session.query(EntrepriseContact, Entreprise)
|
||||
|
@ -170,7 +170,7 @@ def fiche_entreprise(id):
|
|||
@permission_required(Permission.RelationsEntreprisesView)
|
||||
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)
|
||||
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)
|
||||
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 = (
|
||||
db.session.query(EntrepriseEnvoiOffre, EntrepriseOffre)
|
||||
|
@ -624,6 +624,9 @@ def delete_offre(id):
|
|||
@bp.route("/delete_offre_recue/<int:id>", methods=["GET", "POST"])
|
||||
@permission_required(Permission.RelationsEntreprisesView)
|
||||
def delete_offre_recue(id):
|
||||
"""
|
||||
Permet de supprimer une offre reçue
|
||||
"""
|
||||
offre_recue = EntrepriseEnvoiOffre.query.filter_by(
|
||||
id=id, receiver_id=current_user.id
|
||||
).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"])
|
||||
@permission_required(Permission.RelationsEntreprisesChange)
|
||||
def expired(id):
|
||||
"""
|
||||
Permet de rendre expirée et non expirée une offre
|
||||
"""
|
||||
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404(
|
||||
description=f"offre {id} inconnue"
|
||||
)
|
||||
offre.expired = not offre.expired
|
||||
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))
|
||||
|
||||
|
||||
|
@ -815,7 +825,7 @@ def add_historique(id):
|
|||
@permission_required(Permission.RelationsEntreprisesSend)
|
||||
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(
|
||||
description=f"offre {id} inconnue"
|
||||
|
@ -877,7 +887,7 @@ def json_etudiants():
|
|||
@permission_required(Permission.RelationsEntreprisesChange)
|
||||
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:
|
||||
abort(400)
|
||||
|
@ -921,7 +931,7 @@ def export_entreprises():
|
|||
@permission_required(Permission.RelationsEntreprisesExport)
|
||||
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 = [
|
||||
"siret",
|
||||
|
@ -1052,7 +1062,7 @@ def export_contacts():
|
|||
@permission_required(Permission.RelationsEntreprisesExport)
|
||||
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 = [
|
||||
"nom",
|
||||
|
@ -1254,6 +1264,9 @@ def delete_offre_file(offre_id, filedir):
|
|||
@bp.route("/preferences", methods=["GET", "POST"])
|
||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||
def preferences():
|
||||
"""
|
||||
Permet d'afficher la page des préférences du module gestion des relations entreprises
|
||||
"""
|
||||
form = PreferencesForm()
|
||||
if form.validate_on_submit():
|
||||
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_permissions_check
|
||||
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_permissions import Permission
|
||||
from app.scodoc.TrivialFormulator import TrivialFormulator
|
||||
|
@ -1609,6 +1610,27 @@ def make_query_groups(group_ids):
|
|||
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):
|
||||
"""Sert à retrouver l'id d'un groupe dans un semestre donné
|
||||
à partir de son nom.
|
||||
|
|
|
@ -826,6 +826,8 @@ def tab_absences_html(groups_infos, etat=None):
|
|||
% groups_infos.groups_query_args,
|
||||
"""<li><a class="stdlink" href="trombino?%s&format=pdflist">Liste d'appel avec photos</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
"""<li><a class="stdlink" href="exportAnnotations?%s">Feuille annotations</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
"</ul>",
|
||||
]
|
||||
)
|
||||
|
|
|
@ -2193,3 +2193,6 @@ def stat_bac(formsemestre_id):
|
|||
sco_publish(
|
||||
"/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