From 8e9dff3a0787cb914b3e3c5374833608ed61104a Mon Sep 17 00:00:00 2001 From: tr4ck3ur Date: Mon, 27 Jul 2015 03:37:07 +0200 Subject: [PATCH] Some fixes for organisation part handle user removing from an event --- jm2l/__init__.py | 3 ++- jm2l/helpers.py | 2 +- jm2l/models.py | 2 +- jm2l/templates/edit_event.mako | 4 ++-- jm2l/views.py | 37 +++++++++++++++++++++++++++++++++- 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/jm2l/__init__.py b/jm2l/__init__.py index 6bab5f0..10e8334 100644 --- a/jm2l/__init__.py +++ b/jm2l/__init__.py @@ -135,8 +135,9 @@ def main(global_config, **settings): ## Events config.add_route('event', '/event/{year:\d+}/{event_id:([\w-]+)?}') config.add_route('link_event_user', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}/link_user') + config.add_route('delete_link_u', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}/delete_link_user') config.add_route('link_event_tiers', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}/link_tiers') - config.add_route('delete_link', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}/delete_link') + config.add_route('delete_link_t', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}/delete_link_tiers') config.add_route('edit_event', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}{sep:/*}{event_id:([\w-]+)?}') config.add_route('delete_event', '/MesJM2L/{year:\d+}/{intervention:[\s\w]+}{sep:/*}{event_id:([\w-]+)?}/delete') diff --git a/jm2l/helpers.py b/jm2l/helpers.py index 2958ee5..cd75013 100644 --- a/jm2l/helpers.py +++ b/jm2l/helpers.py @@ -132,7 +132,7 @@ class Orga_helpers(DummySejour): def IsChecked(self, nb): nb = 2**nb - if self.Sejour: + if self.Sejour and self.Sejour.orga_part: if self.Sejour.orga_part & nb == nb: return "checked=\"checked\"" else: diff --git a/jm2l/models.py b/jm2l/models.py index 227c488..ee8971c 100644 --- a/jm2l/models.py +++ b/jm2l/models.py @@ -566,7 +566,7 @@ class Sejour(Base): repas_allerg = Column(Unicode(100)) repas_contr = Column(Unicode(100)) orga_part = Column(Integer, default=0) - #travel_detail = Column(UnicodeText) + travel_detail = Column(UnicodeText) created = Column(DateTime, default=datetime.datetime.now) last_change = Column(DateTime, default=datetime.datetime.now) diff --git a/jm2l/templates/edit_event.mako b/jm2l/templates/edit_event.mako index 46fd5a6..15a96b9 100644 --- a/jm2l/templates/edit_event.mako +++ b/jm2l/templates/edit_event.mako @@ -110,7 +110,7 @@ DicForm = { % endif <%def name="callback_Del_Summary(Entity)"> \ - + @@ -170,7 +170,7 @@ DicForm = { (${iterv.pseudo}) %endif % if iterv!=request.user: - + %endif diff --git a/jm2l/views.py b/jm2l/views.py index 8c5138c..eb82923 100644 --- a/jm2l/views.py +++ b/jm2l/views.py @@ -1218,7 +1218,42 @@ def link_event_tiers(request): return HTTPFound(location=request.route_url('edit_event', sep='/', year=str(year), intervention=intervention, event_id=str(TargetEvent.uid), _anchor="Tiers")) -@view_config(route_name='delete_link') +@view_config(route_name='delete_link_u') +def delete_link_event_user(request): + """ Create user if not exist, add it to current event """ + 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.') + year = int(request.matchdict.get('year', -1)) + intervention = request.matchdict.get('intervention', None) + + TargetEvent = Event.by_id( request.params.get('eid') ) + Exist = User.by_id( request.params.get('uid') ) + if not Exist: + request.session.flash(('error',u"Une erreur s'est produite lors de votre suppression !")) + return HTTPFound(location=request.route_url('edit_event', sep='/', + year=str(year), intervention=intervention, event_id=str(TargetEvent.uid))) + else: + TargetUser = Exist + + Matching = DBSession.query(User_Event)\ + .filter(User_Event.year_uid==year)\ + .filter(User_Event.user_uid==TargetUser.uid)\ + .filter(User_Event.event_uid==TargetEvent.uid)\ + .all() + + if len(Matching)==0: + request.session.flash(('error',u"Une erreur s'est produite lors de la suppression !")) + else: + for item in Matching: + DBSession.delete(item) + + return HTTPFound(location=request.route_url('edit_event', sep='/', + year=str(year), intervention=intervention, event_id=str(TargetEvent.uid), _anchor="Tiers")) + + + +@view_config(route_name='delete_link_t') def delete_link_event_tiers(request): """ Create user if not exist, add it to current event """ if request.user is None: