Added Caroussel for Room pictures
Fix mail from Damien remarks Added room pictures Added tiers deletion Added Redirect to login when not logged
This commit is contained in:
+2
-1
@@ -67,6 +67,7 @@ def main(global_config, **settings):
|
|||||||
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+)}')
|
||||||
|
config.add_route('pict_salle', '/salle_picture/{salle_id:(\d+)}')
|
||||||
|
|
||||||
# HTML Routes - Public
|
# HTML Routes - Public
|
||||||
config.add_route('home', '/{year:(\d+/)?}')
|
config.add_route('home', '/{year:(\d+/)?}')
|
||||||
@@ -87,9 +88,9 @@ def main(global_config, **settings):
|
|||||||
## Entities
|
## Entities
|
||||||
config.add_route('entities', '/entities') #{sep:/*}{Nature:\w+?}')
|
config.add_route('entities', '/entities') #{sep:/*}{Nature:\w+?}')
|
||||||
config.add_route('add_entity', '/entity')
|
config.add_route('add_entity', '/entity')
|
||||||
|
config.add_route('delete_entity', '/entity/{entity_id:(\d+)}/delete')
|
||||||
config.add_route('show_entity', '/entity/{tiers_type:(\w+)}/{entity_id:([\w-]+)?}')
|
config.add_route('show_entity', '/entity/{tiers_type:(\w+)}/{entity_id:([\w-]+)?}')
|
||||||
config.add_route('edit_entity', '/entity/{tiers_type:(\w+)}/{entity_id:([\w-]+)}/edit')
|
config.add_route('edit_entity', '/entity/{tiers_type:(\w+)}/{entity_id:([\w-]+)}/edit')
|
||||||
|
|
||||||
config.add_route('edit_entity_cat', '/categorie/entity')
|
config.add_route('edit_entity_cat', '/categorie/entity')
|
||||||
|
|
||||||
## Users
|
## Users
|
||||||
|
|||||||
+7
-2
@@ -260,8 +260,8 @@ class Tiers(Base):
|
|||||||
roles = relationship('Role_Tiers', backref="roles_tiers") #secondary='role_tiers_link' )
|
roles = relationship('Role_Tiers', backref="roles_tiers") #secondary='role_tiers_link' )
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def by_id(cls, id):
|
def by_id(cls, uid):
|
||||||
return DBSession.query(cls).filter(cls.uid == id).first()
|
return DBSession.query(cls).filter(cls.uid == uid).first()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def by_slug(cls, slug):
|
def by_slug(cls, slug):
|
||||||
@@ -349,6 +349,11 @@ class SallePhy(Base):
|
|||||||
def by_id(cls, uid):
|
def by_id(cls, uid):
|
||||||
return DBSession.query(cls).filter(cls.uid == uid).first()
|
return DBSession.query(cls).filter(cls.uid == uid).first()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def PhotosLinks(self):
|
||||||
|
from .upload import MediaPath
|
||||||
|
return MediaPath().get_list('salle', self.uid, 'Image')
|
||||||
|
|
||||||
class Salles(Base):
|
class Salles(Base):
|
||||||
__tablename__ = 'salle'
|
__tablename__ = 'salle'
|
||||||
salle_id = Column(Integer, primary_key=True)
|
salle_id = Column(Integer, primary_key=True)
|
||||||
|
|||||||
@@ -205,8 +205,8 @@ a {
|
|||||||
border: 1px solid #d4d4d4;
|
border: 1px solid #d4d4d4;
|
||||||
}
|
}
|
||||||
.ShowEntities td img {
|
.ShowEntities td img {
|
||||||
width: 100%;
|
width: 5em;
|
||||||
height: 100%;
|
height: 5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ShowEntities td:hover {
|
.ShowEntities td:hover {
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
@@ -0,0 +1,2 @@
|
|||||||
|
<%namespace name="helpers" file="jm2l:templates/helpers.mako"/>
|
||||||
|
${helpers.show_salles(Salles, IdSalle)}
|
||||||
@@ -20,6 +20,9 @@
|
|||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span10 offset1">
|
<div class="span10 offset1">
|
||||||
|
|
||||||
|
<div id="SalleCarousel">
|
||||||
|
${helpers.show_salles( Salles, form.salle_uid.data or form.salle_uid.choices[0][0] )}
|
||||||
|
</div>
|
||||||
|
|
||||||
% if 'uid' in form._fields:
|
% if 'uid' in form._fields:
|
||||||
<div class="borderboxtime">
|
<div class="borderboxtime">
|
||||||
@@ -31,6 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
%endif
|
%endif
|
||||||
<h3 style="line-height:30px;" class="lowshadow">${form.event_type.data}</h3>
|
<h3 style="line-height:30px;" class="lowshadow">${form.event_type.data}</h3>
|
||||||
|
|
||||||
% if 'uid' in form._fields:
|
% if 'uid' in form._fields:
|
||||||
<div class="borderbox">
|
<div class="borderbox">
|
||||||
Intrevenants programmés:
|
Intrevenants programmés:
|
||||||
@@ -186,6 +190,20 @@ DicForm = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$(document.body).on("change","#salle_uid",function(){
|
||||||
|
$.ajax({
|
||||||
|
url:'/salle_picture/' + this.value,
|
||||||
|
success:function(result, status, jqXHR){
|
||||||
|
var pictureresult = $('<div />').append(result).find('#MyPictureCarousel').html();
|
||||||
|
var picturename = $('<div />').append(result).find('#CarName').html();
|
||||||
|
$('#MyPictureCarousel').html(pictureresult);
|
||||||
|
$('#CarName').html(picturename);
|
||||||
|
},
|
||||||
|
error:function(result, error){
|
||||||
|
alert(error);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</%def>
|
</%def>
|
||||||
|
|||||||
@@ -12,7 +12,11 @@
|
|||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span10 offset1">
|
<div class="span10 offset1">
|
||||||
|
|
||||||
|
% if 'uid' in form._fields.keys():
|
||||||
|
<a class="btn btn-danger btn-mini pull-right" href="${request.route_path('delete_entity', action='delete_entity', entity_id=form.uid.data)}">
|
||||||
|
<i class="icon-remove icon-white"></i> Supprimer cette entitée
|
||||||
|
</a>
|
||||||
|
%endif
|
||||||
<a class="pull-right" href="/categorie/entity">Editer les catégories</a>
|
<a class="pull-right" href="/categorie/entity">Editer les catégories</a>
|
||||||
<br>
|
<br>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
@@ -196,12 +200,17 @@ DicForm = {
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
% endif
|
% endif
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<center>
|
||||||
|
<button type="submit" class="btn btn-large btn-primary" />
|
||||||
% if 'uid' in form._fields:
|
% if 'uid' in form._fields:
|
||||||
<button class="btn btn-primary" type="submit">Enregistrer</button>
|
<i class="icon-ok icon-white"></i> Mettre à jour
|
||||||
% else:
|
% else:
|
||||||
<button class="btn btn-primary" type="submit">Proposer</button>
|
<i class="icon-ok icon-white"></i> Proposer
|
||||||
|
</button>
|
||||||
% endif
|
% endif
|
||||||
|
</center>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
% if 'uid' in form._fields:
|
% if 'uid' in form._fields:
|
||||||
% if request.user:
|
% if request.user:
|
||||||
|
|||||||
@@ -506,6 +506,47 @@ TabJs = {'select':[], 'desc':[]}
|
|||||||
</div>
|
</div>
|
||||||
</%def> \
|
</%def> \
|
||||||
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
|
<%def name="show_salles(Salles, IdSalle)"> \
|
||||||
|
<div class="profile-icon pull-right" style="padding: 0 15px;">
|
||||||
|
<%
|
||||||
|
if not IdSalle:
|
||||||
|
return ""
|
||||||
|
SallePhy = Salles.by_id(IdSalle).phy
|
||||||
|
if not SallePhy:
|
||||||
|
return ""
|
||||||
|
photos = SallePhy.PhotosLinks
|
||||||
|
%>
|
||||||
|
<div id="CarName" style="text-align: center;line-height:20px;"><strong>Salle</strong>: ${Salles.by_id(IdSalle).name}</div>
|
||||||
|
<div id="MyPictureCarousel" class="carousel slide">
|
||||||
|
% if len(photos)>1:
|
||||||
|
<!-- Carousel nav -->
|
||||||
|
<a class="Ucarousel-control left" href="#MyPictureCarousel" data-slide="prev">‹</a>
|
||||||
|
<a class="Ucarousel-control right" href="#MyPictureCarousel" 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 style="margin:auto;width:170px;">
|
||||||
|
<center>
|
||||||
|
<img src="/img/no-image.jpg" class="img-polaroid" alt="Photo ${SallePhy.name}" style="max-height:130px;" />
|
||||||
|
<center>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
% endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</%def> \
|
||||||
|
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
## Wrapper pour les échanges utilisateurs
|
## Wrapper pour les échanges utilisateurs
|
||||||
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
<%def name="show_exchange(Exchange, Asker, Provider)"> \
|
<%def name="show_exchange(Exchange, Asker, Provider)"> \
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ ${helpers.uploader_js()}
|
|||||||
% if request.user.Staff:
|
% if request.user.Staff:
|
||||||
<li><a href="/Staff">Partie Staff</a></li>
|
<li><a href="/Staff">Partie Staff</a></li>
|
||||||
<li><a href="/ListSalles">Gérer les salles</a></li>
|
<li><a href="/ListSalles">Gérer les salles</a></li>
|
||||||
|
<li><a href="/entities">Gérer les entités</a></li>
|
||||||
% endif
|
% endif
|
||||||
<li><a href="/sign/out">Me déconnecter</a></li>
|
<li><a href="/sign/out">Me déconnecter</a></li>
|
||||||
% else:
|
% else:
|
||||||
|
|||||||
@@ -5,24 +5,24 @@ Bonjour ${User.prenom},<br>
|
|||||||
<br>
|
<br>
|
||||||
Vous venez de vous inscrire sur le site des JM2L et c'est une bonne idée :).<br>
|
Vous venez de vous inscrire sur le site des JM2L et c'est une bonne idée :).<br>
|
||||||
<br>
|
<br>
|
||||||
Pour accéder à votre espace il vous suffit dorénavant de cliquer sur le lien suivant :<br>
|
Pour accéder à votre espace il vous suffit dorénavant de cliquer sur le lien suivant :<br>
|
||||||
<a href="${request.route_url('bymail', hash=User.my_hash)}">Votre lien !</a>
|
<a href="${request.route_url('bymail', hash=User.my_hash)}">Votre lien !</a>
|
||||||
<br>
|
<br>
|
||||||
À partir de là vous avez la possibilité de :
|
À partir de là vous avez la possibilité de :
|
||||||
<ul>
|
<ul>
|
||||||
<li>inscrire votre stand pour la journée du 28 novembre</li>
|
<li>inscrire votre stand pour la journée du 28 novembre</li>
|
||||||
<li>inscrire une conférence</li>
|
<li>inscrire une conférence</li>
|
||||||
<li>inscrire un atelier</li>
|
<li>inscrire un atelier</li>
|
||||||
<li>chercher/proposer du covoiturage</li>
|
<li>chercher/proposer du covoiturage</li>
|
||||||
<li>chercher/proposer un hébergement</li>
|
<li>chercher/proposer un hébergement</li>
|
||||||
<li>vous faire rembourser vos frais</li>
|
<li>vous faire rembourser vos frais</li>
|
||||||
<li>chercher proposer du matériel (câbles, etc)</li>
|
<li>chercher proposer du matériel (câbles, etc)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Pour plus d'information vous pouvez vous connectez au site des JM2L : http://jm2l.linux-azur.org ou
|
Pour plus d'information vous pouvez vous connectez au site des JM2L : http://jm2l.linux-azur.org ou
|
||||||
nous envoyer un mail à «contact at jm2l.linux-azur.org ». Et si vous êtes vraiment perdu vous pouvez
|
nous envoyer un mail à «contact at jm2l.linux-azur.org ». Et si vous êtes vraiment perdu vous pouvez
|
||||||
toujours nous téléphoner au +33 6 52 42 31 37.
|
toujours nous téléphoner au +33 6 52 42 31 37.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Nous vous attendons avec impatience le 28 novembre à Sophia Antipolis pour fêter le libre et partager
|
Nous vous attendons avec impatience le 28 novembre à Sophia Antipolis pour fêter le libre et partager
|
||||||
@@ -38,29 +38,27 @@ Bonjour ${User.prenom},<br>
|
|||||||
<br>
|
<br>
|
||||||
Vous venez de demander le renvoi de vos identifiants sur le site des JM2L.<br>
|
Vous venez de demander le renvoi de vos identifiants sur le site des JM2L.<br>
|
||||||
<br>
|
<br>
|
||||||
Pour accéder à votre espace il vous suffit dorénavant de cliquer sur le lien suivant :<br>
|
Pour accéder à votre espace il vous suffit dorénavant de cliquer sur le lien suivant :<br>
|
||||||
<a href="${request.route_url('bymail', hash=User.my_hash)}">Votre lien !</a>
|
<a href="${request.route_url('bymail', hash=User.my_hash)}">Votre lien !</a>
|
||||||
<br>
|
<br>
|
||||||
N'hésitez pas à l'ajouter à vos liens favoris.
|
N'hésitez pas à l'ajouter à vos liens favoris.
|
||||||
<br>
|
<br>
|
||||||
Vos identifiants de connection sont les suivants:
|
Vos identifiants de connection sont les suivants:
|
||||||
<br>
|
<br>
|
||||||
<b>Login</b>: ${User.slug}
|
<b>Login</b>: ${User.slug}<br>
|
||||||
<br>
|
<b>Password</b>: ${User.password}<br>
|
||||||
<b>Password</b>: ${User.password}
|
Une fois connecté vous pouvez changer votre mot de passe sur votre fiche.
|
||||||
<br>
|
|
||||||
Une fois connecté vous pouvez changer votre mot de passe sur votre fiche.
|
|
||||||
<br>
|
<br>
|
||||||
<p>
|
<p>
|
||||||
Pour plus d'information vous pouvez nous envoyer un mail à «contact at jm2l.linux-azur.org ». Et si vous êtes vraiment perdu vous pouvez
|
Pour plus d'information vous pouvez nous envoyer un mail à «contact at jm2l.linux-azur.org ». Et si vous êtes vraiment perdu vous pouvez
|
||||||
toujours nous téléphoner au +33 6 52 42 31 37.
|
toujours nous téléphoner au +33 6 52 42 31 37.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Nous vous attendons avec impatience le 28 novembre 2015 à Sophia Antipolis pour fêter le libre et partager
|
Nous vous attendons avec impatience le 28 novembre 2015 à Sophia Antipolis pour fêter le libre et partager
|
||||||
de la connaissance, de la bonne humeur et du soleil :)
|
de la connaissance, de la bonne humeur et du soleil :)
|
||||||
</p>
|
</p>
|
||||||
<br>
|
<br>
|
||||||
L'équipe des <b>JM2L</b>
|
L'équipe des <b>JM2L</b>
|
||||||
<br>
|
<br>
|
||||||
</%def> \
|
</%def> \
|
||||||
% if action=='Welcome':
|
% if action=='Welcome':
|
||||||
|
|||||||
@@ -8,14 +8,16 @@
|
|||||||
</%def>
|
</%def>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span10 offset1">
|
<div class="span10 offset1">
|
||||||
|
<div id="SalleCarousel">
|
||||||
|
${helpers.show_salles( Salles, event.Salle.salle_id )}
|
||||||
|
</div>
|
||||||
<strong>${event.event_type}</strong>:
|
<strong>${event.event_type}</strong>:
|
||||||
<div class="borderboxtime">
|
<div class="borderboxtime">
|
||||||
${event.start_time.strftime('%d %b %Y').decode('utf-8')} -
|
${event.start_time.strftime('%d %b %Y').decode('utf-8')} -
|
||||||
${event.start_time.strftime('%H:%M')} à ${event.end_time.strftime('%H:%M')}
|
${event.start_time.strftime('%H:%M')} à ${event.end_time.strftime('%H:%M')}
|
||||||
%if event.Salle:
|
##%if event.Salle:
|
||||||
- <strong>Salle</strong>: ${event.Salle.name}
|
## - <strong>Salle</strong>: ${event.Salle.name}
|
||||||
%endif
|
##%endif
|
||||||
</div>
|
</div>
|
||||||
##%if event.event_uid:
|
##%if event.event_uid:
|
||||||
## <a href="http://jm2l.linux-azur.org/node/${event.event_uid}">Link</a> -
|
## <a href="http://jm2l.linux-azur.org/node/${event.event_uid}">Link</a> -
|
||||||
@@ -26,7 +28,6 @@ ${event.start_time.strftime('%H:%M')} à ${event.end_time.strftime('%H:%M')}
|
|||||||
<a href="/MesJM2L/${event.for_year}/${event.event_type}/${event.slug}">Editer</a>
|
<a href="/MesJM2L/${event.for_year}/${event.event_type}/${event.slug}">Editer</a>
|
||||||
% endif
|
% endif
|
||||||
<h3 style="line-height:30px;">${event.name}</h3>
|
<h3 style="line-height:30px;">${event.name}</h3>
|
||||||
|
|
||||||
% if event.description :
|
% if event.description :
|
||||||
<div class="borderbox">
|
<div class="borderbox">
|
||||||
${event.description | n}
|
${event.description | n}
|
||||||
|
|||||||
@@ -17,7 +17,12 @@ ${The_entity_type.entity_subtype}
|
|||||||
## <a href="http://jm2l.linux-azur.org/node/${entity.tiers_id}">Link</a> -
|
## <a href="http://jm2l.linux-azur.org/node/${entity.tiers_id}">Link</a> -
|
||||||
##%endif
|
##%endif
|
||||||
% if request.user and (request.user.Staff or request.user in entity.members):
|
% if request.user and (request.user.Staff or request.user in entity.members):
|
||||||
<a href="/entity/${entity.get_entity_type.entity_type}/${entity.slug}/edit">Editer</a>
|
<a href="/entity/${entity.get_entity_type.slug_entity_type}/${entity.slug}/edit">Editer</a>
|
||||||
|
% endif
|
||||||
|
% if request.user and (request.user.Staff or request.user in entity.members):
|
||||||
|
<a class="btn btn-danger btn-mini pull-right" href="${request.route_path('delete_entity', action='delete_entity', entity_id=entity.uid)}">
|
||||||
|
<i class="icon-remove icon-white"></i> Supprimer cette entitée
|
||||||
|
</a>
|
||||||
% endif
|
% endif
|
||||||
<div clear='both'></div>
|
<div clear='both'></div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
+9
-3
@@ -2,6 +2,7 @@
|
|||||||
from pyramid.view import view_config, view_defaults
|
from pyramid.view import view_config, view_defaults
|
||||||
from pyramid.response import Response
|
from pyramid.response import Response
|
||||||
from pyramid.exceptions import NotFound
|
from pyramid.exceptions import NotFound
|
||||||
|
from pyramid.httpexceptions import HTTPNotFound
|
||||||
from pyramid.request import Request
|
from pyramid.request import Request
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
import re, os, shutil
|
import re, os, shutil
|
||||||
@@ -13,6 +14,7 @@ import cStringIO as StringIO
|
|||||||
# Database access imports
|
# Database access imports
|
||||||
from .models import User, Place, Tiers, Event, SallePhy
|
from .models import User, Place, Tiers, Event, SallePhy
|
||||||
|
|
||||||
|
CurrentYear = 2015
|
||||||
MIN_FILE_SIZE = 1 # bytes
|
MIN_FILE_SIZE = 1 # bytes
|
||||||
MAX_FILE_SIZE = 500000000 # bytes
|
MAX_FILE_SIZE = 500000000 # bytes
|
||||||
IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)')
|
IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)')
|
||||||
@@ -103,15 +105,19 @@ class MediaPath():
|
|||||||
p = IMAGEPATH + [ media_table ] + [ linked_id ]
|
p = IMAGEPATH + [ media_table ] + [ linked_id ]
|
||||||
elif media_table=='tasks':
|
elif media_table=='tasks':
|
||||||
# Use Current Year
|
# Use Current Year
|
||||||
p = IMAGEPATH + [ str(2015), media_table ] + [ linked_id ]
|
p = IMAGEPATH + [ str(CurrentYear), media_table ] + [ linked_id ]
|
||||||
elif media_table=='poles':
|
elif media_table=='poles':
|
||||||
# Use Current Year
|
# Use Current Year
|
||||||
p = IMAGEPATH + [ str(2015), media_table ] + [ linked_id ]
|
p = IMAGEPATH + [ str(CurrentYear), media_table ] + [ linked_id ]
|
||||||
elif media_table in ['RIB', 'Justif']:
|
elif media_table in ['RIB', 'Justif']:
|
||||||
slug = User.by_id(linked_id).slug
|
slug = User.by_id(linked_id).slug
|
||||||
p = IMAGEPATH + ['users'] + [ slug ] + [ self.media_table ]
|
p = IMAGEPATH + ['users'] + [ slug ] + [ self.media_table ]
|
||||||
elif media_table=='users':
|
elif media_table=='users':
|
||||||
slug = User.by_id(linked_id).slug
|
user = User.by_id(linked_id)
|
||||||
|
if not user:
|
||||||
|
raise HTTPNotFound()
|
||||||
|
else:
|
||||||
|
slug = user.slug
|
||||||
p = IMAGEPATH + ['users'] + [ slug ]
|
p = IMAGEPATH + ['users'] + [ slug ]
|
||||||
elif media_table=='event':
|
elif media_table=='event':
|
||||||
ev = Event.by_id(linked_id)
|
ev = Event.by_id(linked_id)
|
||||||
|
|||||||
+43
-6
@@ -911,6 +911,11 @@ def change_year(request):
|
|||||||
def pict_user(request):
|
def pict_user(request):
|
||||||
return {"uprofil":request.user}
|
return {"uprofil":request.user}
|
||||||
|
|
||||||
|
@view_config(route_name='pict_salle', renderer="jm2l:templates/Salles/pict_salle.mako")
|
||||||
|
def pict_salle(request):
|
||||||
|
salle_id = int(request.matchdict.get('salle_id', -1))
|
||||||
|
return {"Salles":Salles, "IdSalle":salle_id}
|
||||||
|
|
||||||
@view_config(route_name='event', renderer="jm2l:templates/view_event.mako")
|
@view_config(route_name='event', renderer="jm2l:templates/view_event.mako")
|
||||||
def show_event(request):
|
def show_event(request):
|
||||||
year = int(request.matchdict.get('year', -1))
|
year = int(request.matchdict.get('year', -1))
|
||||||
@@ -924,7 +929,7 @@ def show_event(request):
|
|||||||
if TheEvent is None:
|
if TheEvent is None:
|
||||||
raise HTTPNotFound()
|
raise HTTPNotFound()
|
||||||
MainTab = {'programme':'','presse':'', 'plan':'', 'participer':'',
|
MainTab = {'programme':'','presse':'', 'plan':'', 'participer':'',
|
||||||
'event':TheEvent, 'logged_in':request.authenticated_userid }
|
'event':TheEvent, 'logged_in':request.authenticated_userid, "Salles":Salles }
|
||||||
return MainTab
|
return MainTab
|
||||||
|
|
||||||
@view_config(route_name='link_event_user')
|
@view_config(route_name='link_event_user')
|
||||||
@@ -1121,6 +1126,7 @@ def edit_event(request):
|
|||||||
|
|
||||||
MainTab = {'programme':'','presse':'', 'plan':'', 'participer':'',
|
MainTab = {'programme':'','presse':'', 'plan':'', 'participer':'',
|
||||||
'event':TheEvent, 'form':form, 'formAdd':formAdd, 'formAddT':formAddT,
|
'event':TheEvent, 'form':form, 'formAdd':formAdd, 'formAddT':formAddT,
|
||||||
|
'Salles':Salles,
|
||||||
'logged_in':request.authenticated_userid }
|
'logged_in':request.authenticated_userid }
|
||||||
|
|
||||||
return MainTab
|
return MainTab
|
||||||
@@ -1154,6 +1160,32 @@ def show_tiers(request):
|
|||||||
'entity':TheTiers, 'logged_in':request.authenticated_userid }
|
'entity':TheTiers, 'logged_in':request.authenticated_userid }
|
||||||
return MainTab
|
return MainTab
|
||||||
|
|
||||||
|
|
||||||
|
@view_config(route_name='delete_entity')
|
||||||
|
def delete_tiers(request):
|
||||||
|
entity_id = request.matchdict.get('entity_id', None)
|
||||||
|
if entity_id:
|
||||||
|
if entity_id.isdigit():
|
||||||
|
TheTiers = Tiers.by_id(int(entity_id))
|
||||||
|
if TheTiers is None:
|
||||||
|
raise HTTPNotFound()
|
||||||
|
else:
|
||||||
|
TheTiers = Tiers.by_slug(entity_id)
|
||||||
|
if TheTiers is None:
|
||||||
|
raise HTTPNotFound()
|
||||||
|
if len(TheTiers.membership)!=0:
|
||||||
|
request.session.flash(('error', u"Vous devez supprimer tous les membres liés avant la suppression d'une entitée."))
|
||||||
|
return HTTPFound(location=request.route_url('show_entity', entity_id=TheTiers.slug, tiers_type=TheTiers.get_entity_type.slug_entity_type))
|
||||||
|
if len(TheTiers.membership)!=0:
|
||||||
|
request.session.flash(('error', u"Vous devez supprimer tous les roles liés avant la suppression d'une entitée."))
|
||||||
|
return HTTPFound(location=request.route_url('show_entity', entity_id=TheTiers.slug, tiers_type=TheTiers.get_entity_type.slug_entity_type))
|
||||||
|
DBSession.delete(TheTiers)
|
||||||
|
request.session.flash(('info', u"L'entitée a bien été supprimée"))
|
||||||
|
return HTTPFound(location=request.route_url('entities'))
|
||||||
|
else:
|
||||||
|
raise HTTPNotFound()
|
||||||
|
|
||||||
|
|
||||||
@view_config(route_name='add_entity', renderer="jm2l:templates/edit_tiers.mako")
|
@view_config(route_name='add_entity', renderer="jm2l:templates/edit_tiers.mako")
|
||||||
@view_config(route_name='edit_entity', renderer="jm2l:templates/edit_tiers.mako")
|
@view_config(route_name='edit_entity', renderer="jm2l:templates/edit_tiers.mako")
|
||||||
def edit_tiers(request):
|
def edit_tiers(request):
|
||||||
@@ -1241,7 +1273,9 @@ def edit_tiers(request):
|
|||||||
return HTTPFound(location=request.route_url('edit_entity', sep='/',
|
return HTTPFound(location=request.route_url('edit_entity', sep='/',
|
||||||
entity_id=str(TheTiers.slug), tiers_type=TheTiers.get_entity_type.entity_type))
|
entity_id=str(TheTiers.slug), tiers_type=TheTiers.get_entity_type.entity_type))
|
||||||
DBSession.merge(TheTiers)
|
DBSession.merge(TheTiers)
|
||||||
return HTTPFound(location=request.route_url('entities'))
|
return HTTPFound(location=request.route_url('show_entity', entity_id=TheTiers.slug,
|
||||||
|
tiers_type=TheTiers.get_entity_type.slug_entity_type))
|
||||||
|
|
||||||
MainTab = {'programme':'','presse':'', 'plan':'', 'participer':'',
|
MainTab = {'programme':'','presse':'', 'plan':'', 'participer':'',
|
||||||
'form':form, 'DBUser':User, 'UserOptions':UserOptions,
|
'form':form, 'DBUser':User, 'UserOptions':UserOptions,
|
||||||
'logged_in':request.authenticated_userid }
|
'logged_in':request.authenticated_userid }
|
||||||
@@ -1355,10 +1389,13 @@ def link_role_entity(request):
|
|||||||
|
|
||||||
@forbidden_view_config()
|
@forbidden_view_config()
|
||||||
def forbidden(reason, request):
|
def forbidden(reason, request):
|
||||||
#return Response('forbidden')
|
if 'ident' in reason.detail:
|
||||||
request.response.status = 403
|
request.session.flash(('info', reason.detail))
|
||||||
return render_to_response('jm2l:templates/Errors/403.mako', { "reason":reason },
|
return HTTPFound(location='/sign/login' )
|
||||||
request=request)
|
else:
|
||||||
|
request.response.status = 403
|
||||||
|
return render_to_response('jm2l:templates/Errors/403.mako', { "reason":reason },
|
||||||
|
request=request)
|
||||||
|
|
||||||
@notfound_view_config()
|
@notfound_view_config()
|
||||||
def notfound(reason, request):
|
def notfound(reason, request):
|
||||||
|
|||||||
Reference in New Issue
Block a user