| @@ -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('action_task_area', '/{year:\d+}/Staff/pole/{action:(\w+)}/{pole_id:(\d+)}') | ||||
| config.add_route('list_salles', '/ListSalles') | 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', '/Salles{sep:/*}{salle_id:(\d+)?}') | ||||
| config.add_route('handle_salle_phy', '/PhySalles{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+)}') | 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> | ||||
| </div> | </div> | ||||
| </%def> \ | </%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 | ## Wrapper pour les photos de l'année | ||||
| ## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | ## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | ||||
| @@ -126,16 +126,17 @@ ${helpers.uploader_js()} | |||||
| % if request.user: | % if request.user: | ||||
| % if request.user.Staff: | % if request.user.Staff: | ||||
| <li><a href="/${DisplayYear}/Staff">Partie Staff</a></li> | <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> | <li role="separator" class="divider"></li> | ||||
| % endif | % endif | ||||
| <li><a href="/MesJM2L">Mon profil</a></li> | <li><a href="/MesJM2L">Mon profil</a></li> | ||||
| <li><a href="/user/${request.user.slug}">Mon profil public</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: | % else: | ||||
| <li><a href="/participer-l-evenement#inscription">Je m'inscris</a></li> | <li><a href="/participer-l-evenement#inscription">Je m'inscris</a></li> | ||||
| <li><a href="/sign/login">Je m'identifie</a></li> | <li><a href="/sign/login">Je m'identifie</a></li> | ||||
| @@ -190,7 +191,7 @@ ${helpers.uploader_js()} | |||||
| <div class="container"> | <div class="container"> | ||||
| <h4>JM2L 2005-2017</h4> | <h4>JM2L 2005-2017</h4> | ||||
| <p> | <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> | <a href="http://creativecommons.org/licenses/by-sa/4.0/">CopyFriendly</a> | ||||
| </p> | </p> | ||||
| <p> | <p> | ||||
| @@ -198,10 +199,10 @@ ${helpers.uploader_js()} | |||||
| </p> | </p> | ||||
| <p> | <p> | ||||
| Conception et construction en <a href="http://git.linux-azur.org/JM2L/jm2l/src/master">DIY</a> ~ | 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> | ||||
| <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> | </p> | ||||
| </div> | </div> | ||||
| </footer> | </footer> | ||||
| @@ -247,7 +248,7 @@ function handlevote() { | |||||
| $('.carousel-vote a').attr('href', "/vote_logo/" + currentIndex ) | $('.carousel-vote a').attr('href', "/vote_logo/" + currentIndex ) | ||||
| if (currentIndex==${request.user.vote_logo or 0}) { | if (currentIndex==${request.user.vote_logo or 0}) { | ||||
| $('.carousel-vote a').removeClass('btn-primary').addClass('btn-success') | $('.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 { | } else { | ||||
| $('.carousel-vote a').removeClass('btn-success').addClass('btn-primary'); | $('.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 ! "); | $('.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 | DicSalle[year] = salles | ||||
| return {'DicSalle': DicSalle } | 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') | @view_config(route_name='handle_salle', renderer='jm2l:templates/Salles/salle.mako') | ||||
| def handle_salle(request): | def handle_salle(request): | ||||
| if request.user is None: | if request.user is None: | ||||