forked from ScoDoc/ScoDoc
ajout pagination + nettoyage
This commit is contained in:
parent
2207d25e35
commit
2d9e428ebf
@ -7,7 +7,7 @@ from app.auth.models import User
|
||||
|
||||
bp = Blueprint("entreprises", __name__)
|
||||
|
||||
LOGS_LEN = 10
|
||||
LOGS_LEN = 5
|
||||
|
||||
|
||||
@bp.app_template_filter()
|
||||
|
@ -48,17 +48,11 @@ from werkzeug.utils import secure_filename
|
||||
def index():
|
||||
"""
|
||||
Permet d'afficher une page avec la liste des entreprises et une liste des dernières opérations
|
||||
|
||||
Retourne: template de la page (entreprises.html)
|
||||
Arguments du template:
|
||||
title:
|
||||
titre de la page
|
||||
entreprises:
|
||||
liste des entreprises
|
||||
logs:
|
||||
liste des logs
|
||||
"""
|
||||
entreprises = Entreprise.query.filter_by(visible=True).all()
|
||||
page = request.args.get("page", 1, type=int)
|
||||
entreprises = Entreprise.query.filter_by(visible=True).paginate(
|
||||
page=page, per_page=10
|
||||
)
|
||||
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
||||
return render_template(
|
||||
"entreprises/entreprises.html",
|
||||
@ -68,9 +62,27 @@ def index():
|
||||
)
|
||||
|
||||
|
||||
@bp.route("/logs", methods=["GET"])
|
||||
@permission_required(Permission.RelationsEntreprisesView)
|
||||
def logs():
|
||||
"""
|
||||
Permet d'afficher les logs (toutes les entreprises)
|
||||
"""
|
||||
page = request.args.get("page", 1, type=int)
|
||||
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).paginate(
|
||||
page=page, per_page=20
|
||||
)
|
||||
if logs is None:
|
||||
abort(404)
|
||||
return render_template("entreprises/logs.html", title=("Logs"), logs=logs)
|
||||
|
||||
|
||||
@bp.route("/validation", methods=["GET"])
|
||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||
def validation_entreprise():
|
||||
"""
|
||||
Permet d'afficher une page avec la liste des entreprises a valider
|
||||
"""
|
||||
entreprises = Entreprise.query.filter_by(visible=False).all()
|
||||
return render_template(
|
||||
"entreprises/entreprises_validation.html",
|
||||
@ -84,21 +96,13 @@ def validation_entreprise():
|
||||
def contacts():
|
||||
"""
|
||||
Permet d'afficher une page la liste des contacts et une liste des dernières opérations
|
||||
|
||||
Retourne: template de la page (contacts.html)
|
||||
Arguments du template:
|
||||
title:
|
||||
titre de la page
|
||||
contacts:
|
||||
liste des contacts
|
||||
logs:
|
||||
liste des logs
|
||||
"""
|
||||
page = request.args.get("page", 1, type=int)
|
||||
contacts = (
|
||||
db.session.query(EntrepriseContact, Entreprise)
|
||||
.join(Entreprise, EntrepriseContact.entreprise_id == Entreprise.id)
|
||||
.filter_by(visible=True)
|
||||
.all()
|
||||
.paginate(page=page, per_page=10)
|
||||
)
|
||||
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
||||
return render_template(
|
||||
@ -114,25 +118,6 @@ def fiche_entreprise(id):
|
||||
l'historique des étudiants ayant réaliser un stage ou une alternance dans cette entreprise.
|
||||
La fiche entreprise comporte les informations de l'entreprise, les contacts de l'entreprise et
|
||||
les offres de l'entreprise.
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'entreprise
|
||||
|
||||
Retourne: template de la page (fiche_entreprise.html)
|
||||
Arguments du template:
|
||||
title:
|
||||
titre de la page
|
||||
entreprise:
|
||||
un objet entreprise
|
||||
contacts:
|
||||
liste des contacts de l'entreprise
|
||||
offres:
|
||||
liste des offres de l'entreprise avec leurs fichiers
|
||||
logs:
|
||||
liste des logs
|
||||
historique:
|
||||
liste des étudiants ayant réaliser un stage ou une alternance dans l'entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
offres = entreprise.offres
|
||||
@ -183,6 +168,9 @@ def fiche_entreprise(id):
|
||||
@bp.route("/fiche_entreprise_validation/<int:id>", methods=["GET"])
|
||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||
def fiche_entreprise_validation(id):
|
||||
"""
|
||||
Permet d'afficher la fiche entreprise d'une entreprise a valider
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404()
|
||||
contacts = entreprise.contacts
|
||||
return render_template(
|
||||
@ -198,13 +186,6 @@ def fiche_entreprise_validation(id):
|
||||
def offres_recues():
|
||||
"""
|
||||
Permet d'afficher la page où l'on recoit les offres
|
||||
|
||||
Retourne: template de la page (offres.html)
|
||||
Arguments du template:
|
||||
title:
|
||||
titre de la page
|
||||
offres_recus:
|
||||
liste des offres reçues
|
||||
"""
|
||||
offres_recues = (
|
||||
db.session.query(EntrepriseEnvoiOffre, EntrepriseOffre)
|
||||
@ -222,6 +203,9 @@ def offres_recues():
|
||||
@bp.route("/fiche_entreprise/<int:id>/offres_expirees")
|
||||
@permission_required(Permission.RelationsEntreprisesView)
|
||||
def offres_expirees(id):
|
||||
"""
|
||||
Permet d'afficher la liste des offres expirés d'une entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
offres = entreprise.offres
|
||||
offres_expirees_with_files = []
|
||||
@ -290,7 +274,7 @@ def add_entreprise():
|
||||
return redirect(url_for("entreprises.index"))
|
||||
return render_template(
|
||||
"entreprises/ajout_entreprise.html",
|
||||
title=("Ajout entreprise + contact"),
|
||||
title=("Ajout entreprise avec contact"),
|
||||
form=form,
|
||||
)
|
||||
|
||||
@ -300,10 +284,6 @@ def add_entreprise():
|
||||
def edit_entreprise(id):
|
||||
"""
|
||||
Permet de modifier une entreprise de la base avec un formulaire
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
form = EntrepriseModificationForm()
|
||||
@ -369,10 +349,6 @@ def edit_entreprise(id):
|
||||
def delete_entreprise(id):
|
||||
"""
|
||||
Permet de supprimer une entreprise de la base avec un formulaire de confirmation
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
form = SuppressionConfirmationForm()
|
||||
@ -397,6 +373,9 @@ def delete_entreprise(id):
|
||||
@bp.route("/validate_entreprise/<int:id>", methods=["GET", "POST"])
|
||||
@permission_required(Permission.RelationsEntreprisesValidate)
|
||||
def validate_entreprise(id):
|
||||
"""
|
||||
Permet de valider une entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=False).first_or_404()
|
||||
entreprise.visible = True
|
||||
db.session.commit()
|
||||
@ -408,10 +387,6 @@ def validate_entreprise(id):
|
||||
def add_offre(id):
|
||||
"""
|
||||
Permet d'ajouter une offre a une entreprise
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
form = OffreCreationForm()
|
||||
@ -443,10 +418,6 @@ def add_offre(id):
|
||||
def edit_offre(id):
|
||||
"""
|
||||
Permet de modifier une offre
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'offre
|
||||
"""
|
||||
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404()
|
||||
form = OffreModificationForm()
|
||||
@ -483,10 +454,6 @@ def edit_offre(id):
|
||||
def delete_offre(id):
|
||||
"""
|
||||
Permet de supprimer une offre
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'offre
|
||||
"""
|
||||
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404()
|
||||
entreprise_id = offre.entreprise.id
|
||||
@ -512,10 +479,6 @@ def delete_offre(id):
|
||||
def add_contact(id):
|
||||
"""
|
||||
Permet d'ajouter un contact a une entreprise
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
form = ContactCreationForm(hidden_entreprise_id=entreprise.id)
|
||||
@ -547,10 +510,6 @@ def add_contact(id):
|
||||
def edit_contact(id):
|
||||
"""
|
||||
Permet de modifier un contact
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id du contact
|
||||
"""
|
||||
contact = EntrepriseContact.query.filter_by(id=id).first_or_404()
|
||||
form = ContactModificationForm()
|
||||
@ -589,10 +548,6 @@ def edit_contact(id):
|
||||
def delete_contact(id):
|
||||
"""
|
||||
Permet de supprimer un contact
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id du contact
|
||||
"""
|
||||
contact = EntrepriseContact.query.filter_by(id=id).first_or_404()
|
||||
entreprise_id = contact.entreprise.id
|
||||
@ -627,10 +582,6 @@ def delete_contact(id):
|
||||
def add_historique(id):
|
||||
"""
|
||||
Permet d'ajouter un étudiant ayant réalisé un stage ou une alternance sur la fiche entreprise de l'entreprise
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'entreprise
|
||||
"""
|
||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404()
|
||||
form = HistoriqueCreationForm()
|
||||
@ -672,10 +623,6 @@ def add_historique(id):
|
||||
def envoyer_offre(id):
|
||||
"""
|
||||
Permet d'envoyer une offre à un utilisateur
|
||||
|
||||
Arguments:
|
||||
id:
|
||||
l'id de l'offre
|
||||
"""
|
||||
offre = EntrepriseOffre.query.filter_by(id=id).first_or_404()
|
||||
form = EnvoiOffreForm()
|
||||
@ -706,13 +653,6 @@ def envoyer_offre(id):
|
||||
def json_etudiants():
|
||||
"""
|
||||
Permet de récuperer un JSON avec tous les étudiants
|
||||
|
||||
Arguments:
|
||||
term:
|
||||
le terme utilisé pour le filtre de l'autosuggest
|
||||
|
||||
Retourne:
|
||||
le JSON de tous les étudiants (nom, prenom, formation actuelle?) correspondant au terme
|
||||
"""
|
||||
if request.args.get("term") == None:
|
||||
abort(400)
|
||||
@ -740,13 +680,6 @@ def json_etudiants():
|
||||
def json_responsables():
|
||||
"""
|
||||
Permet de récuperer un JSON avec tous les étudiants
|
||||
|
||||
Arguments:
|
||||
term:
|
||||
le terme utilisé pour le filtre de l'autosuggest
|
||||
|
||||
Retourne:
|
||||
le JSON de tous les utilisateurs (nom, prenom, login) correspondant au terme
|
||||
"""
|
||||
if request.args.get("term") == None:
|
||||
abort(400)
|
||||
@ -792,7 +725,7 @@ def export_contacts():
|
||||
"""
|
||||
Permet d'exporter la liste des contacts sous format excel (.xlsx)
|
||||
"""
|
||||
contacts = EntrepriseContact.query.filter_by(visible=True).all()
|
||||
contacts = EntrepriseContact.query.all()
|
||||
if contacts:
|
||||
keys = ["nom", "prenom", "telephone", "mail", "poste", "service"]
|
||||
titles = keys[:]
|
||||
@ -811,7 +744,7 @@ def export_contacts_bis():
|
||||
"""
|
||||
Permet d'exporter la liste des contacts avec leur entreprise sous format excel (.xlsx)
|
||||
"""
|
||||
contacts = EntrepriseContact.query.filter_by(visible=True).all()
|
||||
contacts = EntrepriseContact.query.all()
|
||||
if contacts:
|
||||
keys = [
|
||||
"nom",
|
||||
@ -846,16 +779,6 @@ def export_contacts_bis():
|
||||
def get_offre_file(entreprise_id, offre_id, filedir, filename):
|
||||
"""
|
||||
Permet de télécharger un fichier d'une offre
|
||||
|
||||
Arguments:
|
||||
entreprise_id:
|
||||
l'id de l'entreprise
|
||||
offre_id:
|
||||
l'id de l'offre
|
||||
filedir:
|
||||
le répertoire du fichier
|
||||
filename:
|
||||
le nom du fichier
|
||||
"""
|
||||
if os.path.isfile(
|
||||
os.path.join(
|
||||
@ -887,10 +810,6 @@ def get_offre_file(entreprise_id, offre_id, filedir, filename):
|
||||
def add_offre_file(offre_id):
|
||||
"""
|
||||
Permet d'ajouter un fichier à une offre
|
||||
|
||||
Arguments:
|
||||
offre_id:
|
||||
l'id de l'offre
|
||||
"""
|
||||
offre = EntrepriseOffre.query.filter_by(id=offre_id).first_or_404()
|
||||
form = AjoutFichierForm()
|
||||
@ -919,12 +838,6 @@ def add_offre_file(offre_id):
|
||||
def delete_offre_file(offre_id, filedir):
|
||||
"""
|
||||
Permet de supprimer un fichier d'une offre
|
||||
|
||||
Arguments:
|
||||
offre_id:
|
||||
l'id de l'offre
|
||||
filedir:
|
||||
le répertoire du fichier
|
||||
"""
|
||||
offre = EntrepriseOffre.query.filter_by(id=offre_id).first_or_404()
|
||||
form = SuppressionConfirmationForm()
|
||||
|
11
app/static/css/entreprises.css
Normal file
11
app/static/css/entreprises.css
Normal file
@ -0,0 +1,11 @@
|
||||
.btn-inverse {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgb(0 0 0 / 25%);
|
||||
background-color: #363636;
|
||||
}
|
||||
|
||||
.btn-inverse:hover {
|
||||
color: #ffffff;
|
||||
background-color: #222222;
|
||||
*background-color: #151515;
|
||||
}
|
@ -4,6 +4,7 @@
|
||||
{% block styles %}
|
||||
{{super()}}
|
||||
<link rel="stylesheet" href="/ScoDoc/static/css/scodoc.css">
|
||||
<link rel="stylesheet" href="/ScoDoc/static/css/entreprises.css">
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}
|
||||
@ -35,6 +36,9 @@
|
||||
url_for('scolar.index_html', scodoc_dept=g.scodoc_dept)
|
||||
}}">Dept. {{ g.scodoc_dept }}</a></li>
|
||||
{% endif %}
|
||||
{% if not current_user.is_anonymous and current_user.has_permission(current_user.Permission.RelationsEntreprisesView, None) %}
|
||||
<li><a href="{{ url_for('entreprises.index') }}">Entreprises</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if current_user.is_anonymous %}
|
||||
|
@ -8,11 +8,12 @@
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<p>
|
||||
Les champs s'autocomplète selon le SIRET
|
||||
Les champs s'auto complète selon le SIRET
|
||||
</p>
|
||||
{{ wtf.quick_form(form, novalidate=True) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.onload = function(e){
|
||||
document.getElementById("siret").addEventListener("keyup", autocomplete);
|
||||
|
@ -16,6 +16,7 @@
|
||||
{{ wtf.quick_form(form, novalidate=True) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.onload = function(e) {
|
||||
var etudiants_options = {
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% block app_content %}
|
||||
{% if logs %}
|
||||
<div class="container">
|
||||
<h3>Dernières opérations</h3>
|
||||
<h3>Dernières opérations <a href="{{ url_for('entreprises.logs') }}">Voir tout</a></h3>
|
||||
<ul>
|
||||
{% for log in logs %}
|
||||
<li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}</span></li>
|
||||
@ -12,6 +12,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="container">
|
||||
<h1>Liste des contacts</h1>
|
||||
{% if contacts %}
|
||||
@ -26,7 +27,7 @@
|
||||
<th>Service</th>
|
||||
<th>Entreprise</th>
|
||||
</tr>
|
||||
{% for contact in contacts %}
|
||||
{% for contact in contacts.items %}
|
||||
<tr class="table-row active">
|
||||
<th>{{ contact[0].nom }}</th>
|
||||
<th>{{ contact[0].prenom }}</th>
|
||||
@ -38,10 +39,35 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{{ url_for('entreprises.contacts', page=contacts.prev_num) }}" class="btn btn-default {% if contacts.page == 1 %}disabled{% endif %}">
|
||||
«
|
||||
</a>
|
||||
{% for page_num in contacts.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}
|
||||
{% if page_num %}
|
||||
{% if contacts.page == page_num %}
|
||||
<a href="{{ url_for('entreprises.contacts', page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('entreprises.contacts', page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
...
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<a href="{{ url_for('entreprises.contacts', page=contacts.next_num) }}" class="btn btn-default {% if contacts.page == contacts.pages %}disabled{% endif %}">
|
||||
»
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="text-center">
|
||||
Page {{ contacts.page }} sur {{ contacts.pages }}
|
||||
</p>
|
||||
{% else %}
|
||||
<div>Aucun contact présent dans la base</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesExport, None) %}
|
||||
<div>
|
||||
{% if contacts %}
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% block app_content %}
|
||||
{% if logs %}
|
||||
<div class="container">
|
||||
<h3>Dernières opérations</h3>
|
||||
<h3>Dernières opérations <a href="{{ url_for('entreprises.logs') }}">Voir tout</a></h3>
|
||||
<ul>
|
||||
{% for log in logs %}
|
||||
<li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}</span></li>
|
||||
@ -12,9 +12,10 @@
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="container">
|
||||
<h1>Liste des entreprises</h1>
|
||||
{% if entreprises %}
|
||||
{% if entreprises.items %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<tr>
|
||||
@ -28,7 +29,7 @@
|
||||
<th>Action</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% for entreprise in entreprises %}
|
||||
{% for entreprise in entreprises.items %}
|
||||
<tr class="table-row active">
|
||||
<th><a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise.id) }}">{{ entreprise.siret }}</a></th>
|
||||
<th>{{ entreprise.nom }}</th>
|
||||
@ -52,11 +53,36 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{{ url_for('entreprises.index', page=entreprises.prev_num) }}" class="btn btn-default {% if entreprises.page == 1 %}disabled{% endif %}">
|
||||
«
|
||||
</a>
|
||||
{% for page_num in entreprises.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}
|
||||
{% if page_num %}
|
||||
{% if entreprises.page == page_num %}
|
||||
<a href="{{ url_for('entreprises.index', page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('entreprises.index', page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
...
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<a href="{{ url_for('entreprises.index', page=entreprises.next_num) }}" class="btn btn-default {% if entreprises.page == entreprises.pages %}disabled{% endif %}">
|
||||
»
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="text-center">
|
||||
Page {{ entreprises.page }} sur {{ entreprises.pages }}
|
||||
</p>
|
||||
{% else %}
|
||||
<div>Aucune entreprise présent dans la base</div>
|
||||
<br>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<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>
|
||||
|
@ -12,6 +12,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="container">
|
||||
<h1>Liste des entreprises à valider</h1>
|
||||
{% if entreprises %}
|
||||
|
@ -16,6 +16,7 @@
|
||||
{{ wtf.quick_form(form, novalidate=True) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.onload = function(e) {
|
||||
var responsables_options = {
|
||||
|
@ -2,78 +2,80 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block app_content %}
|
||||
{% if logs %}
|
||||
<div class="container">
|
||||
<h3>Dernières opérations sur cette fiche</h3>
|
||||
<ul>
|
||||
{% for log in logs %}
|
||||
<li>
|
||||
<span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span>
|
||||
<span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if historique %}
|
||||
<div class="container">
|
||||
<h3>Historique</h3>
|
||||
<ul>
|
||||
{% for data in historique %}
|
||||
<li>
|
||||
<span style="margin-right: 10px;">{{ data[0].date_debut.strftime('%d/%m/%Y') }} - {{
|
||||
data[0].date_fin.strftime('%d/%m/%Y') }}</span>
|
||||
<span style="margin-right: 10px;">
|
||||
{{ data[0].type_offre }} réalisé par {{ data[1].nom|format_nom }} {{ data[1].prenom|format_prenom }}
|
||||
{% if data[0].formation_text %} en {{ data[0].formation_text }}{% endif %}
|
||||
</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="container">
|
||||
<h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
|
||||
|
||||
<div>
|
||||
<p>
|
||||
SIRET : {{ entreprise.siret }}<br>
|
||||
Nom : {{ entreprise.nom }}<br>
|
||||
Adresse : {{ entreprise.adresse }}<br>
|
||||
Code postal : {{ entreprise.codepostal }}<br>
|
||||
Ville : {{ entreprise.ville }}<br>
|
||||
Pays : {{ entreprise.pays }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if contacts %}
|
||||
<div>
|
||||
{% for contact in contacts %}
|
||||
Contact {{loop.index}}
|
||||
{% include 'entreprises/_contact.html' %}
|
||||
{% endfor %}
|
||||
{% if logs %}
|
||||
<div class="container">
|
||||
<h3>Dernières opérations sur cette fiche</h3>
|
||||
<ul>
|
||||
{% for log in logs %}
|
||||
<li>
|
||||
<span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span>
|
||||
<span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if offres %}
|
||||
<div>
|
||||
{% for offre in offres %}
|
||||
Offre {{loop.index}} (ajouté le {{offre[0].date_ajout.strftime('%d/%m/%Y') }})
|
||||
{% include 'entreprises/_offre.html' %}
|
||||
{% endfor %}
|
||||
{% if historique %}
|
||||
<div class="container">
|
||||
<h3>Historique</h3>
|
||||
<ul>
|
||||
{% for data in historique %}
|
||||
<li>
|
||||
<span style="margin-right: 10px;">{{ data[0].date_debut.strftime('%d/%m/%Y') }} - {{
|
||||
data[0].date_fin.strftime('%d/%m/%Y') }}</span>
|
||||
<span style="margin-right: 10px;">
|
||||
{{ data[0].type_offre }} réalisé par {{ data[1].nom|format_nom }} {{ data[1].prenom|format_prenom }}
|
||||
{% if data[0].formation_text %} en {{ data[0].formation_text }}{% endif %}
|
||||
</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="container">
|
||||
<h2>Fiche entreprise - {{ entreprise.nom }} ({{ entreprise.siret }})</h2>
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<div>
|
||||
<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-primary" href="{{ url_for('entreprises.add_offre', id=entreprise.id) }}">Ajouter offre</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_contact', id=entreprise.id) }}">Ajouter contact</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_historique', id=entreprise.id) }}">Ajouter
|
||||
historique</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.offres_expirees', id=entreprise.id) }}">Voir les offres expirées</a>
|
||||
<div>
|
||||
<p>
|
||||
SIRET : {{ entreprise.siret }}<br>
|
||||
Nom : {{ entreprise.nom }}<br>
|
||||
Adresse : {{ entreprise.adresse }}<br>
|
||||
Code postal : {{ entreprise.codepostal }}<br>
|
||||
Ville : {{ entreprise.ville }}<br>
|
||||
Pays : {{ entreprise.pays }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if contacts %}
|
||||
<div>
|
||||
{% for contact in contacts %}
|
||||
Contact {{loop.index}}
|
||||
{% include 'entreprises/_contact.html' %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if offres %}
|
||||
<div>
|
||||
{% for offre in offres %}
|
||||
Offre {{loop.index}} (ajouté le {{offre[0].date_ajout.strftime('%d/%m/%Y') }})
|
||||
{% include 'entreprises/_offre.html' %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||
<div>
|
||||
<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-primary" href="{{ url_for('entreprises.add_offre', id=entreprise.id) }}">Ajouter offre</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_contact', id=entreprise.id) }}">Ajouter contact</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_historique', id=entreprise.id) }}">Ajouter
|
||||
historique</a>
|
||||
<a class="btn btn-primary" href="{{ url_for('entreprises.offres_expirees', id=entreprise.id) }}">Voir les offres expirées</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
37
app/templates/entreprises/logs.html
Normal file
37
app/templates/entreprises/logs.html
Normal file
@ -0,0 +1,37 @@
|
||||
{# -*- mode: jinja-html -*- #}
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block app_content %}
|
||||
<div class="container">
|
||||
<h3>Dernières opérations</h3>
|
||||
<ul>
|
||||
{% for log in logs.items %}
|
||||
<li><span style="margin-right: 10px;">{{ log.date.strftime('%d %b %Hh%M') }}</span><span>{{ log.text|safe }} par {{ log.authenticated_user|get_nomcomplet }}</span></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{{ url_for('entreprises.logs', page=logs.prev_num) }}" class="btn btn-default {% if logs.page == 1 %}disabled{% endif %}">
|
||||
«
|
||||
</a>
|
||||
{% for page_num in logs.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}
|
||||
{% if page_num %}
|
||||
{% if logs.page == page_num %}
|
||||
<a href="{{ url_for('entreprises.logs', page=page_num) }}" class="btn btn-inverse">{{ page_num }}</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('entreprises.logs', page=page_num) }}" class="btn btn-default">{{ page_num }}</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
...
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<a href="{{ url_for('entreprises.logs', page=logs.next_num) }}" class="btn btn-default {% if logs.page == logs.pages %}disabled{% endif %}">
|
||||
»
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="text-center">
|
||||
Page {{ logs.page }} sur {{ logs.pages }}
|
||||
</p>
|
||||
{% endblock %}
|
@ -2,15 +2,15 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block app_content %}
|
||||
<div class="container">
|
||||
<h1>Offres expirées de {{ entreprise.nom }}</h1>
|
||||
{% if offres_expirees %}
|
||||
{% for offre in offres_expirees%}
|
||||
Offre {{loop.index}} (ajouté le {{offre[0].date_ajout.strftime('%d/%m/%Y') }})
|
||||
{% include 'entreprises/_offre.html' %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<div>Aucune offre expirées</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="container">
|
||||
<h1>Offres expirées de {{ entreprise.nom }}</h1>
|
||||
{% if offres_expirees %}
|
||||
{% for offre in offres_expirees%}
|
||||
Offre {{loop.index}} (ajouté le {{offre[0].date_ajout.strftime('%d/%m/%Y') }})
|
||||
{% include 'entreprises/_offre.html' %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<div>Aucune offre expirées</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
@ -2,9 +2,9 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block app_content %}
|
||||
<div class="container">
|
||||
<h1>{{ title }}</h1>
|
||||
{% if offres_recus %}
|
||||
<div class="container">
|
||||
<h1>{{ title }}</h1>
|
||||
{% if offres_recus %}
|
||||
<div class="table-responsive">
|
||||
<div>
|
||||
{% for offre in offres_recus %}
|
||||
@ -25,5 +25,5 @@
|
||||
<div>Aucune offre reçue</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
Loading…
Reference in New Issue
Block a user