@@ -121,6 +121,7 @@ def main(global_config, **settings): | |||
config.add_route('action_task_area', '/{year:\d+}/Staff/pole/{action:(\w+)}/{pole_id:(\d+)}') | |||
config.add_route('list_salles', '/ListSalles') | |||
config.add_route('list_salles_phy', '/ListSallesPhy') | |||
config.add_route('handle_salle', '/Salles{sep:/*}{salle_id:(\d+)?}') | |||
config.add_route('handle_salle_phy', '/PhySalles{sep:/*}{salle_id:(\d+)?}') | |||
config.add_route('action_salle', '/Salles/{action:(\w+)}/{salle_id:(\d+)}') | |||
@@ -0,0 +1,67 @@ | |||
# -*- coding: utf-8 -*- | |||
<%inherit file="jm2l:templates/layout.mako"/> | |||
<%namespace name="helpers" file="jm2l:templates/helpers.mako"/> | |||
<% | |||
from slugify import slugify | |||
%> | |||
<a style="float:right;" class="btn btn-mini btn-info" role="button" href="/Salles"> | |||
<i class="icon-plus-sign icon-white"></i> Ajouter une Salle | |||
</a> | |||
<h3>Gestion des salles physique aux JM2L</h3> | |||
<div class="row-fluid"> | |||
<div class="span10 offset1"> | |||
<table class="table table-striped table-bordered table-hover"> | |||
<thead> | |||
<tr> | |||
<th colspan="2" style="text-align:center;"> | |||
Liste des salles physique | |||
</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
% if len(DicSallePhy)==0: | |||
<tr> | |||
<td style="text-align:center;"> | |||
<i>Il n'y a pas de salle définie pour le moment.</i> | |||
</td> | |||
</tr> | |||
% endif | |||
% for SallePhy in DicSallePhy: | |||
<tr> | |||
<td> | |||
<div class="media"> | |||
<div class="pull-left" style="min-width: 300px;"> | |||
${helpers.show_salles_phy(SallePhy)} | |||
</div> | |||
<div class="pull-right"> | |||
<div class="pull-right"> | |||
<a href="/PhySalles/${SallePhy.uid}">Modifier</a> | |||
</div> | |||
<br /> | |||
% if SallePhy.uid: | |||
[ ${SallePhy.nb_places} places ] | |||
% else: | |||
[ <a href="/PhySalles">Créer</a> ] | |||
% endif | |||
</div> | |||
<div class="media-body"> | |||
<h4 class="media-heading">${SallePhy.name | n}</h4> | |||
% if SallePhy.description: | |||
${SallePhy.description | n} | |||
% endif | |||
</div> | |||
</div> | |||
</td> | |||
</tr> | |||
% endfor | |||
</tbody> | |||
</table> | |||
</div> | |||
</div> | |||
<%def name="jsAddOn()"> | |||
</%def> |
@@ -555,6 +555,41 @@ TabJs = {'select':[], 'desc':[]} | |||
</div> | |||
</div> | |||
</%def> \ | |||
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | |||
<%def name="show_salles_phy(SallePhy)"> \ | |||
<div class="profile-icon text-center" style="padding: 0 15px;"> | |||
<% | |||
photos = SallePhy.PhotosLinks | |||
%> | |||
<div id="CarName${SallePhy.uid}" style="text-align: center;line-height:20px;"><strong>${len(photos)} Photo(s)</strong></div> | |||
<div id="MyPictureCarousel${SallePhy.uid}" class="carousel slide"> | |||
% if len(photos)>1: | |||
<!-- Carousel nav --> | |||
<a class="Ucarousel-control left" href="#MyPictureCarousel${SallePhy.uid}" data-slide="prev">‹</a> | |||
<a class="Ucarousel-control right" href="#MyPictureCarousel${SallePhy.uid}" data-slide="next">›</a> | |||
% endif | |||
<!-- Carousel items --> | |||
<div class="carousel-inner"> | |||
% if len(photos): | |||
% for num, link in enumerate(photos): | |||
<div class="${['','active '][num==0]}item" id="UserPic${num}"> | |||
<div style="margin:auto;"> | |||
<img src="${link}" class="img-polaroid" style="max-height:205px;max-width:235px;" alt="Photo ${SallePhy.name}" /> | |||
</div> | |||
</div> | |||
% endfor | |||
% else: | |||
<div class="active item" id="UserPic0"> | |||
<div class="center" style="margin:auto;width:170px;"> | |||
<img src="/img/no-image.jpg" class="img-polaroid" alt="Photo ${SallePhy.name}" style="max-height:130px;" /> | |||
</div> | |||
</div> | |||
% endif | |||
</div> | |||
</div> | |||
</div> | |||
</%def> \ | |||
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | |||
## Wrapper pour les photos de l'année | |||
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | |||
@@ -126,16 +126,17 @@ ${helpers.uploader_js()} | |||
% if request.user: | |||
% if request.user.Staff: | |||
<li><a href="/${DisplayYear}/Staff">Partie Staff</a></li> | |||
<li><a href="/${DisplayYear}/ListParticipant">Gérer les intervenants</a></li> | |||
<li><a href="/ListSalles">Gérer les salles</a></li> | |||
<li><a href="/entities">Gérer les entités</a></li> | |||
<li><a href="/${DisplayYear}/ListOrga">Participations à l'orga</a></li> | |||
<li><a href="/${DisplayYear}/Staff/compta">Comptabilité</a></li> | |||
<li><a href="/${DisplayYear}/ListParticipant">Gérer les intervenants</a></li> | |||
<li><a href="/ListSalles">Gérer les salles</a></li> | |||
<li><a href="/entities">Gérer les entités</a></li> | |||
<li><a href="/${DisplayYear}/ListOrga">Participations à l'orga</a></li> | |||
<li><a href="/${DisplayYear}/Staff/compta">Comptabilité</a></li> | |||
<li><a href="/ListSallesPhy">Les salles à Poly'tech</a></li> | |||
<li role="separator" class="divider"></li> | |||
% endif | |||
<li><a href="/MesJM2L">Mon profil</a></li> | |||
<li><a href="/user/${request.user.slug}">Mon profil public</a></li> | |||
<li><a href="/sign/out">Me déconnecter</a></li> | |||
<li><a href="/sign/out">Me déconnecter</a></li> | |||
% else: | |||
<li><a href="/participer-l-evenement#inscription">Je m'inscris</a></li> | |||
<li><a href="/sign/login">Je m'identifie</a></li> | |||
@@ -190,7 +191,7 @@ ${helpers.uploader_js()} | |||
<div class="container"> | |||
<h4>JM2L 2005-2017</h4> | |||
<p> | |||
Concocté par <a href="http://www.linux-azur.org/">Linux Azur</a> ~ | |||
Concocté par <a href="http://www.linux-azur.org/">Linux Azur</a> ~ | |||
<a href="http://creativecommons.org/licenses/by-sa/4.0/">CopyFriendly</a> | |||
</p> | |||
<p> | |||
@@ -198,10 +199,10 @@ ${helpers.uploader_js()} | |||
</p> | |||
<p> | |||
Conception et construction en <a href="http://git.linux-azur.org/JM2L/jm2l/src/master">DIY</a> ~ | |||
Hébergé par <a href="http://www.heberg-24.com/"> Heberg24 </a> | |||
Hébergé par <a href="http://www.heberg-24.com/"> Heberg24 </a> | |||
</p> | |||
<p> | |||
Vous avez trouvé un bug ? <a href="http://git.linux-azur.org/JM2L/jm2l/issues">Reportez-le ici</a> | |||
Vous avez trouvé un bug ? <a href="http://git.linux-azur.org/JM2L/jm2l/issues">Reportez-le ici</a> | |||
</p> | |||
</div> | |||
</footer> | |||
@@ -247,7 +248,7 @@ function handlevote() { | |||
$('.carousel-vote a').attr('href', "/vote_logo/" + currentIndex ) | |||
if (currentIndex==${request.user.vote_logo or 0}) { | |||
$('.carousel-vote a').removeClass('btn-primary').addClass('btn-success') | |||
$('.carousel-vote a').html("<i class='icon-ok icon-white'></i> Mon préféré ! "); | |||
$('.carousel-vote a').html("<i class='icon-ok icon-white'></i> Mon préféré ! "); | |||
} else { | |||
$('.carousel-vote a').removeClass('btn-success').addClass('btn-primary'); | |||
$('.carousel-vote a').html("<i class='icon-star icon-white'></i> Je vote pour ce logo ! "); | |||
@@ -686,6 +686,20 @@ def list_salles(request): | |||
DicSalle[year] = salles | |||
return {'DicSalle': DicSalle } | |||
@view_config(route_name='list_salles_phy', renderer='jm2l:templates/Salles/list_phy.mako') | |||
def list_salles_phy(request): | |||
if request.user is None: | |||
# Don't answer to users that aren't logged | |||
raise HTTPForbidden(u'Vous devez vous identifier pour obtenir une réponse.') | |||
if not request.user.Staff: | |||
# Don't answer to users that aren't logged | |||
raise HTTPForbidden(u'Vous n\'avez pas l\'autorité suffisante pour effectuer cette action.') | |||
salles_phy = DBSession.query( SallePhy )\ | |||
.order_by(SallePhy.name).all() | |||
return {'DicSallePhy': salles_phy } | |||
@view_config(route_name='handle_salle', renderer='jm2l:templates/Salles/salle.mako') | |||
def handle_salle(request): | |||
if request.user is None: | |||