diff options
Diffstat (limited to 'jm2l/views.py')
-rw-r--r-- | jm2l/views.py | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/jm2l/views.py b/jm2l/views.py index f6bae52..6889a1e 100644 --- a/jm2l/views.py +++ b/jm2l/views.py @@ -6,6 +6,7 @@ from pyramid.response import Response from pyramid.view import notfound_view_config, forbidden_view_config from pyramid.view import view_config from pyramid_mailer import get_mailer +from pyramid_mailer.message import Attachment, Message from mako.template import Template # Import Web Forms from .forms import * @@ -18,10 +19,8 @@ from slugify import slugify from icalendar import Calendar from pytz import timezone from icalendar import Event as Evt -from pyramid_mailer import get_mailer -from pyramid_mailer.message import Attachment, Message # Then, standard libs -import webhelpers.paginate as paginate +import paginate import unicodedata import time import datetime @@ -87,8 +86,8 @@ def JSON_User_Request(request): # Query database Users = DBSession.query(User.uid, User.nom, User.prenom)\ .filter(User.slug.contains( remove_accents(UserQuery) )) - page_url = paginate.PageURL_WebOb(request) - records = paginate.Page(Users, current_page, url=page_url, items_per_page=pageSize) + records = paginate.Page(Users, current_page, items_per_page=pageSize, + url_maker=lambda p: "%s?page=%s" % (request.application_url, p)) ListMatchUser = map( lambda u:{"id": u.uid, "text":"%s %s" % ( u.prenom, u.nom )}, records ) return { "Results": ListMatchUser, "Total":records.item_count, "logged_in":request.authenticated_userid } @@ -112,8 +111,8 @@ def JSON_Tiers_Request(request): # Query database JTiers = DBSession.query(Tiers.uid, Tiers.name)\ .filter(Tiers.slug.contains( remove_accents(TiersQuery) )) - page_url = paginate.PageURL_WebOb(request) - records = paginate.Page(JTiers, current_page, url=page_url, items_per_page=pageSize) + records = paginate.Page(JTiers, current_page, items_per_page=pageSize, + url_maker=lambda p: "%s?page=%s" % (request.application_url, p)) ListMatchTiers = map( lambda t:{"id": t.uid, "text": t.name }, records ) return { "Results": ListMatchTiers, "Total":records.item_count, "logged_in":request.authenticated_userid } @@ -580,20 +579,20 @@ def Modal(request): form.populate_obj(Exch) if modtype in ['AskC', 'PropC']: Exch.itin_id = Itinerary.itin_id - if form._fields.has_key("Hour_start"): + if "Hour_start" in form._fields: TargetTime = datetime.datetime.strptime('%d %d %d %s' % (year, int(Week), \ int(form.Day_start.data), form.Hour_start.data), "%Y %W %w %H:%M") Exch.start_time = TargetTime - elif form._fields.has_key("Day_start"): + elif "Day_start" in form._fields: TargetTime = datetime.datetime.strptime('%d %d %d' % (year, int(Week), \ int(form.Day_start.data)), "%Y %W %w") Exch.start_time = TargetTime - if form._fields.has_key("Hour_end"): + if "Hour_end" in form._fields: TargetTime = datetime.datetime.strptime('%d %d %d %s' % (year, int(Week), \ int(form.Day_end.data), form.Hour_end.data), "%Y %W %w %H:%M") Exch.end_time = TargetTime - elif form._fields.has_key("Day_end"): + elif "Day_end" in form._fields: TargetTime = datetime.datetime.strptime('%d %d %d' % (year, int(Week), \ int(form.Day_end.data)), "%Y %W %w") Exch.end_time = TargetTime @@ -815,7 +814,7 @@ def edit_event(request): ] if not duration in [15, 30, 60, 90]: form.duration.choices.append( (duration,u'Conférence (%d min)' % duration) ) - if not form._fields.has_key("uid"): + if not "uid" in form._fields: form.duration.data=60 elif intervention=="Stand": form.duration.choices =[ @@ -825,12 +824,12 @@ def edit_event(request): elif intervention=="Atelier": form.duration.choices = map( lambda d:(d, u'Atelier (%dh%.2d)' % (d/60, d%60) ), \ [60, 90, 120, 150, 180, 210, 240] ) - if not duration in map(lambda (d,y): d, form.duration.choices): + if not duration in map(lambda d,y: d, form.duration.choices): form.duration.choices.append( (duration,u'Atelier (%dh%.2d)' % (duration/60, duration%60) ) ) elif intervention=="Table_Ronde": form.duration.choices = map( lambda d:(d, u'Table ronde (%dh%.2d)' % (d/60, d%60) ), \ [60, 90, 120, 150] ) - if not duration in map(lambda (d,y): d, form.duration.choices): + if not duration in map(lambda d,y: d, form.duration.choices): form.duration.choices.append( (duration,u'Table ronde (%dh%.2d)' % (duration/60, duration%60) ) ) else: return HTTPForbidden(u"Pas encore disponible.") @@ -847,7 +846,7 @@ def edit_event(request): TheEvent.start_time = TheYear[0].AvailableTimeSlots[form.start_sel.data] TheEvent.end_time = TheEvent.start_time + datetime.timedelta(minutes=form.duration.data) # Ok, time to put in database - if not form._fields.has_key("uid"): + if not "uid" in form._fields: TheEvent.slug = slugify(TheEvent.name) DBSession.add(TheEvent) # Append creator by default @@ -953,7 +952,7 @@ def edit_tiers(request): form.populate_obj(TheTiers) # Handle Remove of accents TheTiers.slug = slugify(form.name.data) - if not form._fields.has_key('uid'): + if not "uid" in form._fields: TheTiers.creator_id = request.user.uid DBSession.add(TheTiers) DBSession.flush() @@ -980,32 +979,32 @@ def edit_tiers_category(request): regT= RegTitle.match(key) reg = RegExist.match(key) if reg: - if not DicResult.has_key(reg.group('slug')): + if not reg.group('slug') in DicResult: DicResult[reg.group('slug')] = dict() - if DicResult[reg.group('slug')].has_key('items'): + if 'items' in DicResult[reg.group('slug')]: DicResult[reg.group('slug')]['items'].append( ( int(reg.group('id')), value ) ) else: DicResult[reg.group('slug')]['items'] = [ ( int(reg.group('id')), value ) ] elif regN: - if not DicResult.has_key(regN.group('slug')): + if not regN.group('slug') in DicResult: DicResult[regN.group('slug')] = dict() - if DicResult[regN.group('slug')].has_key('items'): + if 'items' in DicResult[regN.group('slug')]: DicResult[regN.group('slug')]['items'].append( ( 'id', value ) ) else: DicResult[regN.group('slug')]['items'] = [ ( 'id', value ) ] ListChanges.append(('add', 0, DicResult[regN.group('slug')]['title'], value)) elif regT: - if not DicResult.has_key(regT.group('slug')): + if not regT.group('slug') in DicResult: DicResult[regT.group('slug')] = dict() DicResult[regT.group('slug')]['title'] = value else: raise for opt in DBSession.query(TiersOpt).all(): - if DicResult.has_key(opt.slug_entity_type): - found = filter( lambda (x,y): opt.uid==x, + if opt.slug_entity_type in DicResult: + found = filter( lambda x,y: opt.uid==x, DicResult[opt.slug_entity_type].get('items', [])) if not found: ListChanges.append(('remove', opt.uid, opt.entity_type, opt.entity_subtype)) |