Ejemplo n.º 1
0
 def __call__(self):
     self.id = self.request.form.get('id','')
     self.portlet_manager = self.request.form.get('manager','')
     self.portlet_name = self.request.form.get('name','')
     self.portlet_key = self.request.form.get('key','')
     
     if self.context.getDefaultPage():
         self.default_page = self.context.getDefaultPage()
     self.raw_absolute_url = self.context.absolute_url().replace('/' + self.default_page, '')
     
     #context_path = self.context.absolute_url_path().replace('/' + self.default_page, '')
     
     
     if 'form.buttons.apply' in self.request.form:
         # Ordering
         images = [ {} for i in self.request.form]
         for arg in sorted(self.request.form):
             if arg.startswith('form.index.'):
                 i = int(arg.split('.').pop())
                 images[i]['index'] = self.request.form.get(arg)
             if arg.startswith('form.active.'):
                 i = int(arg.split('.').pop())
                 images[i]['image_path'] = self.request.form.get(arg)
                 images[i]['restriction_path'] = get_restricted_path(self.context, self.request)
         images = filter(lambda x: x, images)
         images = filter(lambda x: 'restriction_path' in x, images)
         
         # Upload Files
         files = self.request.form.get('files', [])
         if not isinstance(files, list) and files:
             files = [files]
         for file in files:
             filename = safe_unicode(file.filename)
             data = file.read()
             img_obj = api.content.create(type='linkable_image',
                                          title=filename,
                                          container=self.slider_folder)
             wrapped_data = NamedBlobImage(data=data, filename=filename)
             img_obj.image = wrapped_data
             api.content.transition(img_obj, 'publish')
             img_obj.reindexObject()
         
             # Add to existing images
             images.append({})
             i = len(images)-1
             images[i]['index'] = str(i)
             images[i]['image_path'] = img_obj.absolute_url_path()
             images[i]['restriction_path'] = get_restricted_path(self.context, self.request)
             
         self.save_content(images)
         
         
     if 'referer' in self.request.form:
         self.request.response.redirect(self.request.form.get('referer'))
         
     return self.template()
Ejemplo n.º 2
0
 def save_content(self, incoming_image_data):
     #context_path = self.context.absolute_url_path().replace('/' + self.default_page, '')
     all_image_data = parse_images(self.portlet.data)
     keep_image_data = filter(lambda x: x['restriction_path'] != get_restricted_path(self.context, self.request), all_image_data)
     self.portlet.data.show_images = unparse_images(keep_image_data + incoming_image_data)