From f7b0b985d54cefa3be8defc762fc326225a9f9cf Mon Sep 17 00:00:00 2001 From: tr4ck3ur Date: Sun, 5 Nov 2017 13:26:33 +0100 Subject: [PATCH] fix upload with accents, added enhancement on ical --- jm2l/upload.py | 19 ++++++++++--------- jm2l/views.py | 18 +++++++++++++++++- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/jm2l/upload.py b/jm2l/upload.py index c5a8dcd..360b82f 100644 --- a/jm2l/upload.py +++ b/jm2l/upload.py @@ -504,25 +504,26 @@ class MediaUpload(MediaPath): result['size'] = self.get_file_size(fieldStorage.file) if self.validate(result, fieldStorage.file): + local_filename = slugify( result['name'] ) # Keep mime-type in .type file - with open( self.mediapath( result['name'] ) + '.type', 'w') as f: + with open( self.mediapath( local_filename ) + '.type', 'w') as f: f.write(result['type']) # Store uploaded file fieldStorage.file.seek(0) - with open( self.mediapath(result['name'] ), 'wb') as f: + with open( self.mediapath( local_filename ), 'wb') as f: shutil.copyfileobj( fieldStorage.file , f) if re.match(IMAGE_TYPES, result['type']): - result['thumbnailUrl'] = self.createthumbnail(result['name']) + result['thumbnailUrl'] = self.createthumbnail(local_filename) elif result['type']=='application/pdf': - result['thumbnailUrl'] = self.pdfthumbnail(result['name']) + result['thumbnailUrl'] = self.pdfthumbnail(local_filename) elif result['type']=='image/svg+xml': - result['thumbnailUrl'] = self.svgthumbnail(result['name']) + result['thumbnailUrl'] = self.svgthumbnail(local_filename) elif result['type'].startswith('application/vnd'): - result['thumbnailUrl'] = self.docthumbnail(result['name']) + result['thumbnailUrl'] = self.docthumbnail(local_filename) elif result['type']=='application/x-blender': - result['thumbnailUrl'] = self.blendthumbnail(result['name']) + result['thumbnailUrl'] = self.blendthumbnail(local_filename) else: result['thumbnailUrl'] = self.ExtMimeIcon(result['type']) @@ -531,11 +532,11 @@ class MediaUpload(MediaPath): sep='', name='', media_table=self.media_table, - uid=self.linked_id) + '/' + result['name'] + uid=self.linked_id) + '/' + local_filename result['url'] = self.request.route_url('media_view', media_table=self.media_table, uid=self.linked_id, - name=result['name']) + name=local_filename) if DELETEMETHOD != 'DELETE': result['deleteUrl'] += '&_method=DELETE' results.append(result) diff --git a/jm2l/views.py b/jm2l/views.py index b2f6fe0..1c27ae3 100644 --- a/jm2l/views.py +++ b/jm2l/views.py @@ -86,6 +86,16 @@ def ICal_Progamme_Request(request): event.add('description', "http://www.linux-azur.org/event/%s/%s" % (ev.for_year, ev.slug) ) event.add('url', "http://www.linux-azur.org/event/%s/%s" % (ev.for_year, ev.slug) ) event.add('priority', 5) + for interv in ev.intervenants: + event.add('organizer', + interv.slug, + parameters={ + "CN": "%s %s" % (interv.prenom, interv.nom), + "DIR": "https://jm2l.linux-azur.org/user/%s" % interv.slug + } + ) + event.add('location', ev.Salle.name) + event.add('categories', ev.event_type) cal.add_component(event) request.response.content_type = "text/calendar" return cal.to_ical() @@ -498,6 +508,9 @@ def expenses(request): dic_out = {} for name in glob.glob('jm2l/upload/images/users/*/RIB/*'): tab_path = name.split('/') + u = User.by_slug(tab_path[4]) + if u is None: + continue if tab_path[6]=='thumbnails' or tab_path[6].endswith('.type'): continue if dic_out.get(tab_path[4]) is None: @@ -516,6 +529,9 @@ def expenses(request): for name in glob.glob('jm2l/upload/images/users/*/Justif/*'): tab_path = name.split('/') + u = User.by_slug(tab_path[4]) + if u is None: + continue if tab_path[6]=='thumbnails' or tab_path[6].endswith('.type'): continue if dic_out.get(tab_path[4]) is None: @@ -756,7 +772,7 @@ def handle_salle_phy(request): try: mp = MediaPath().move_mediapath('salle', orig_slug, dest_slug) except RuntimeError, err: - request.session.flash(('error', "Le nom de cette salle est déjà utilisé : " + err.message)) + request.session.flash(('error', u"Le nom de cette salle est déjà utilisé : " + err.message)) return {'form': form} Salle.slug = slugify(Salle.name)