page différente selon les permissions de l'utilisateur

This commit is contained in:
Arthur ZHU 2022-01-27 16:28:28 +01:00
parent 4578973f3f
commit a064d1aac8
7 changed files with 39 additions and 15 deletions

View File

@ -74,7 +74,7 @@ def validation_entreprise():
entreprises = Entreprise.query.filter_by(visible=False).all() entreprises = Entreprise.query.filter_by(visible=False).all()
return render_template( return render_template(
"entreprises/entreprises_validation.html", "entreprises/entreprises_validation.html",
title=("Entreprises"), title=("Validation entreprises"),
entreprises=entreprises, entreprises=entreprises,
) )
@ -187,7 +187,7 @@ def fiche_entreprise_validation(id):
contacts = entreprise.contacts contacts = entreprise.contacts
return render_template( return render_template(
"entreprises/fiche_entreprise_validation.html", "entreprises/fiche_entreprise_validation.html",
title=("Fiche entreprise"), title=("Validation fiche entreprise"),
entreprise=entreprise, entreprise=entreprise,
contacts=contacts, contacts=contacts,
) )
@ -195,7 +195,7 @@ def fiche_entreprise_validation(id):
@bp.route("/offres_recues", methods=["GET"]) @bp.route("/offres_recues", methods=["GET"])
@permission_required(Permission.RelationsEntreprisesView) @permission_required(Permission.RelationsEntreprisesView)
def offres(): def offres_recues():
""" """
Permet d'afficher la page où l'on recoit les offres Permet d'afficher la page où l'on recoit les offres
@ -222,7 +222,7 @@ def offres():
@bp.route("/fiche_entreprise/<int:id>/offres_expirees") @bp.route("/fiche_entreprise/<int:id>/offres_expirees")
@permission_required(Permission.RelationsEntreprisesView) @permission_required(Permission.RelationsEntreprisesView)
def offres_expirees(id): def offres_expirees(id):
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
offres = entreprise.offres offres = entreprise.offres
offres_expirees_with_files = [] offres_expirees_with_files = []
for offre in offres: for offre in offres:
@ -305,7 +305,7 @@ def edit_entreprise(id):
id: id:
l'id de l'entreprise l'id de l'entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
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>"
@ -374,7 +374,7 @@ def delete_entreprise(id):
id: id:
l'id de l'entreprise l'id de l'entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
form = SuppressionConfirmationForm() form = SuppressionConfirmationForm()
if form.validate_on_submit(): if form.validate_on_submit():
db.session.delete(entreprise) db.session.delete(entreprise)
@ -397,7 +397,7 @@ def delete_entreprise(id):
@bp.route("/validate_entreprise/<int:id>", methods=["GET", "POST"]) @bp.route("/validate_entreprise/<int:id>", methods=["GET", "POST"])
@permission_required(Permission.RelationsEntreprisesValidate) @permission_required(Permission.RelationsEntreprisesValidate)
def validate_entreprise(id): def validate_entreprise(id):
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404()
entreprise.visible = True entreprise.visible = True
db.session.commit() db.session.commit()
return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id)) return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id))
@ -413,7 +413,7 @@ def add_offre(id):
id: id:
l'id de l'entreprise l'id de l'entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
form = OffreCreationForm() form = OffreCreationForm()
if form.validate_on_submit(): if form.validate_on_submit():
offre = EntrepriseOffre( offre = EntrepriseOffre(
@ -517,7 +517,7 @@ def add_contact(id):
id: id:
l'id de l'entreprise l'id de l'entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
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(
@ -632,7 +632,7 @@ def add_historique(id):
id: id:
l'id de l'entreprise l'id de l'entreprise
""" """
entreprise = Entreprise.query.filter_by(id=id).first_or_404() entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
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()
@ -770,7 +770,7 @@ def export_entreprises():
""" """
Permet d'exporter la liste des entreprises sous format excel (.xlsx) Permet d'exporter la liste des entreprises sous format excel (.xlsx)
""" """
entreprises = Entreprise.query.all() entreprises = Entreprise.query.filter_by(visible=True).all()
if entreprises: if entreprises:
keys = ["siret", "nom", "adresse", "ville", "codepostal", "pays"] keys = ["siret", "nom", "adresse", "ville", "codepostal", "pays"]
titles = keys[:] titles = keys[:]
@ -792,7 +792,7 @@ def export_contacts():
""" """
Permet d'exporter la liste des contacts sous format excel (.xlsx) Permet d'exporter la liste des contacts sous format excel (.xlsx)
""" """
contacts = EntrepriseContact.query.all() contacts = EntrepriseContact.query.filter_by(visible=True).all()
if contacts: if contacts:
keys = ["nom", "prenom", "telephone", "mail", "poste", "service"] keys = ["nom", "prenom", "telephone", "mail", "poste", "service"]
titles = keys[:] titles = keys[:]
@ -811,7 +811,7 @@ def export_contacts_bis():
""" """
Permet d'exporter la liste des contacts avec leur entreprise sous format excel (.xlsx) Permet d'exporter la liste des contacts avec leur entreprise sous format excel (.xlsx)
""" """
contacts = EntrepriseContact.query.all() contacts = EntrepriseContact.query.filter_by(visible=True).all()
if contacts: if contacts:
keys = [ keys = [
"nom", "nom",

View File

@ -37,6 +37,7 @@ _SCO_PERMISSIONS = (
(1 << 21, "ScoEditPVJury", "Éditer les PV de jury"), (1 << 21, "ScoEditPVJury", "Éditer les PV de jury"),
# ajouter maquettes Apogee (=> chef dept et secr): # ajouter maquettes Apogee (=> chef dept et secr):
(1 << 22, "ScoEditApo", "Ajouter des maquettes Apogées"), (1 << 22, "ScoEditApo", "Ajouter des maquettes Apogées"),
# application relations entreprises
(1 << 23, "RelationsEntreprisesView", "Voir l'application relations entreprises"), (1 << 23, "RelationsEntreprisesView", "Voir l'application relations entreprises"),
(1 << 24, "RelationsEntreprisesChange", "Modifier les entreprises"), (1 << 24, "RelationsEntreprisesChange", "Modifier les entreprises"),
( (

View File

@ -13,8 +13,10 @@
{% endif %} {% endif %}
</p> </p>
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<div style="margin-bottom: 10px;"> <div style="margin-bottom: 10px;">
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_contact', id=contact.id) }}">Modifier contact</a> <a class="btn btn-primary" href="{{ url_for('entreprises.edit_contact', id=contact.id) }}">Modifier contact</a>
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_contact', id=contact.id) }}">Supprimer contact</a> <a class="btn btn-danger" href="{{ url_for('entreprises.delete_contact', id=contact.id) }}">Supprimer contact</a>
</div> </div>
{% endif %}
</div> </div>

View File

@ -8,14 +8,23 @@
Durée : {{ offre[0].duree }}<br> Durée : {{ offre[0].duree }}<br>
{% for fichier in offre[1] %} {% for fichier in offre[1] %}
<a href="{{ url_for('entreprises.get_offre_file', entreprise_id=entreprise.id, offre_id=offre[0].id, filedir=fichier[0], filename=fichier[1] )}}">{{ fichier[1] }}</a> <a href="{{ url_for('entreprises.get_offre_file', entreprise_id=entreprise.id, offre_id=offre[0].id, filedir=fichier[0], filename=fichier[1] )}}">{{ fichier[1] }}</a>
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<a href="{{ url_for('entreprises.delete_offre_file', offre_id=offre[0].id, filedir=fichier[0] )}}" style="margin-left: 5px;"><img title="Supprimer fichier" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a><br> <a href="{{ url_for('entreprises.delete_offre_file', offre_id=offre[0].id, filedir=fichier[0] )}}" style="margin-left: 5px;"><img title="Supprimer fichier" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a><br>
{% endif %}
{% endfor %} {% endfor %}
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<a href="{{ url_for('entreprises.add_offre_file', offre_id=offre[0].id) }}">Ajoutez un fichier</a> <a href="{{ url_for('entreprises.add_offre_file', offre_id=offre[0].id) }}">Ajoutez un fichier</a>
{% endif %}
</p> </p>
<div style="margin-bottom: 10px;"> <div style="margin-bottom: 10px;">
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_offre', id=offre[0].id) }}">Modifier l'offre</a> <a class="btn btn-primary" href="{{ url_for('entreprises.edit_offre', id=offre[0].id) }}">Modifier l'offre</a>
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_offre', id=offre[0].id) }}">Supprimer l'offre</a> <a class="btn btn-danger" href="{{ url_for('entreprises.delete_offre', id=offre[0].id) }}">Supprimer l'offre</a>
{% endif %}
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesSend, None) %}
<a class="btn btn-primary" href="{{ url_for('entreprises.envoyer_offre', id=offre[0].id) }}">Envoyer l'offre</a> <a class="btn btn-primary" href="{{ url_for('entreprises.envoyer_offre', id=offre[0].id) }}">Envoyer l'offre</a>
{% endif %}
</div> </div>
</div> </div>

View File

@ -42,11 +42,13 @@
<div>Aucun contact présent dans la base</div> <div>Aucun contact présent dans la base</div>
</div> </div>
{% endif %} {% endif %}
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) %}
<div> <div>
{% if contacts %} {% if contacts %}
<a class="btn btn-default" href="{{ url_for('entreprises.export_contacts') }}">Exporter la liste des contacts</a> <a class="btn btn-default" href="{{ url_for('entreprises.export_contacts') }}">Exporter la liste des contacts</a>
<a class="btn btn-default" href="{{ url_for('entreprises.export_contacts_bis') }}">Exporter la liste des contacts avec leur entreprise</a> <a class="btn btn-default" href="{{ url_for('entreprises.export_contacts_bis') }}">Exporter la liste des contacts avec leur entreprise</a>
{% endif %} {% endif %}
</div> </div>
{% endif %}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -24,7 +24,9 @@
<th>Code postal</th> <th>Code postal</th>
<th>Ville</th> <th>Ville</th>
<th>Pays</th> <th>Pays</th>
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<th>Action</th> <th>Action</th>
{% endif %}
</tr> </tr>
{% for entreprise in entreprises %} {% for entreprise in entreprises %}
<tr class="table-row active"> <tr class="table-row active">
@ -34,6 +36,7 @@
<th>{{ entreprise.codepostal }}</th> <th>{{ entreprise.codepostal }}</th>
<th>{{ entreprise.ville }}</th> <th>{{ entreprise.ville }}</th>
<th>{{ entreprise.pays }}</th> <th>{{ entreprise.pays }}</th>
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<th> <th>
<div class="btn-group"> <div class="btn-group">
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Action
@ -45,6 +48,7 @@
</ul> </ul>
</div> </div>
</th> </th>
{% endif %}
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>
@ -54,10 +58,14 @@
</div> </div>
{% endif %} {% endif %}
<div style="margin-bottom: 20px;"> <div style="margin-bottom: 20px;">
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<a class="btn btn-default" href="{{ url_for('entreprises.add_entreprise') }}">Ajouter une entreprise</a> <a class="btn btn-default" href="{{ url_for('entreprises.add_entreprise') }}">Ajouter une entreprise</a>
{% endif %}
{% if entreprises %} {% if entreprises %}
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) %}
<a class="btn btn-default" href="{{ url_for('entreprises.export_entreprises') }}">Exporter la liste des entreprises</a> <a class="btn btn-default" href="{{ url_for('entreprises.export_entreprises') }}">Exporter la liste des entreprises</a>
{% endif %} {% endif %}
{% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -64,6 +64,7 @@
</div> </div>
{% endif %} {% endif %}
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
<div> <div>
<a class="btn btn-primary" href="{{ url_for('entreprises.edit_entreprise', id=entreprise.id) }}">Modifier</a> <a class="btn btn-primary" href="{{ url_for('entreprises.edit_entreprise', id=entreprise.id) }}">Modifier</a>
<a class="btn btn-danger" href="{{ url_for('entreprises.delete_entreprise', id=entreprise.id) }}">Supprimer</a> <a class="btn btn-danger" href="{{ url_for('entreprises.delete_entreprise', id=entreprise.id) }}">Supprimer</a>
@ -73,5 +74,6 @@
historique</a> historique</a>
<a class="btn btn-primary" href="{{ url_for('entreprises.offres_expirees', id=entreprise.id) }}">Voir les offres expirées</a> <a class="btn btn-primary" href="{{ url_for('entreprises.offres_expirees', id=entreprise.id) }}">Voir les offres expirées</a>
</div> </div>
{% endif %}
</div> </div>
{% endblock %} {% endblock %}