Ejemplo n.º 1
0
 def _process_POST(self):
     data = dict({
         'background_position': 'stretch',
         'items': []
     }, **request.json['template'])
     self.validate_json(TEMPLATE_DATA_JSON_SCHEMA, data)
     invalid_placeholders = {x['type']
                             for x in data['items']} - set(
                                 get_placeholder_options())
     if invalid_placeholders:
         raise UserValueError('Invalid item types: {}'.format(
             ', '.join(invalid_placeholders)))
     image_items = [
         item for item in data['items'] if item['type'] == 'fixed_image'
     ]
     template_images = {img.id for img in self.template.images}
     for image_item in image_items:
         if 'image_id' not in image_item:
             raise UserValueError(
                 _('A Fixed Image element must contain an image'))
         if image_item['image_id'] not in template_images:
             raise UserValueError(
                 _('The image file does not belong to this template'))
     update_template(
         self.template,
         title=request.json['title'],
         data=data,
         backside_template_id=request.json['backside_template_id'],
         is_clonable=request.json['is_clonable'],
         clear_background=request.json['clear_background'])
     flash(_('Template successfully saved.'), 'success')
     return jsonify_data()
Ejemplo n.º 2
0
 def _process_POST(self):
     data = dict({'background_position': 'stretch', 'items': []}, **request.json['template'])
     self.validate_json(TEMPLATE_DATA_JSON_SCHEMA, data)
     invalid_placeholders = {x['type'] for x in data['items']} - set(get_placeholder_options()) - {'fixed'}
     if invalid_placeholders:
         raise UserValueError('Invalid item types: {}'.format(', '.join(invalid_placeholders)))
     update_template(self.template, title=request.json['title'], data=data,
                     backside_template_id=request.json['backside_template_id'],
                     is_clonable=request.json['is_clonable'],
                     clear_background=request.json['clear_background'])
     flash(_("Template successfully saved."), 'success')
     return jsonify_data()
Ejemplo n.º 3
0
 def _process_POST(self):
     data = dict({'background_position': 'stretch', 'items': []}, **request.json['template'])
     self.validate_json(TEMPLATE_DATA_JSON_SCHEMA, data)
     invalid_placeholders = {x['type'] for x in data['items']} - set(get_placeholder_options()) - {'fixed'}
     if invalid_placeholders:
         raise UserValueError('Invalid item types: {}'.format(', '.join(invalid_placeholders)))
     update_template(self.template, title=request.json['title'], data=data,
                     backside_template_id=request.json['backside_template_id'],
                     is_clonable=request.json['is_clonable'],
                     clear_background=request.json['clear_background'])
     flash(_("Template successfully saved."), 'success')
     return jsonify_data()
Ejemplo n.º 4
0
 def _process_GET(self):
     bs_template = self.template.backside_template
     template_data = {
         'title':
         self.template.title,
         'data':
         self.template.data,
         'is_clonable':
         self.template.is_clonable,
         'background_url':
         self.template.background_image.download_url
         if self.template.background_image else None
     }
     backside_template_data = {
         'id':
         bs_template.id if bs_template else None,
         'title':
         bs_template.title if bs_template else None,
         'data':
         bs_template.data if bs_template else None,
         'background_url':
         (bs_template.background_image.download_url
          if bs_template and bs_template.background_image else None)
     }
     backside_templates = (DesignerTemplate.query.filter(
         DesignerTemplate.backside_template_id == self.template.id).all())
     related_tpls_per_owner = defaultdict(list)
     for bs_tpl in backside_templates:
         related_tpls_per_owner[bs_tpl.owner].append(bs_tpl)
     return self._render_template(
         'template.html',
         template=self.template,
         placeholders=get_placeholder_options(),
         config=DEFAULT_CONFIG[self.template.type],
         owner=self.target,
         template_data=template_data,
         backside_template_data=backside_template_data,
         related_tpls_per_owner=related_tpls_per_owner,
         tpls_count=len(backside_templates))
Ejemplo n.º 5
0
 def _process_GET(self):
     bs_template = self.template.backside_template
     template_data = {
         'title': self.template.title,
         'data': self.template.data,
         'is_clonable': self.template.is_clonable,
         'background_url': self.template.background_image.download_url if self.template.background_image else None
     }
     backside_template_data = {
         'id': bs_template.id if bs_template else None,
         'title': bs_template.title if bs_template else None,
         'data': bs_template.data if bs_template else None,
         'background_url': (bs_template.background_image.download_url
                            if bs_template and bs_template.background_image else None)
     }
     backside_templates = (DesignerTemplate.query
                           .filter(DesignerTemplate.backside_template_id == self.template.id)
                           .all())
     related_tpls_per_owner = defaultdict(list)
     for bs_tpl in backside_templates:
         related_tpls_per_owner[bs_tpl.owner].append(bs_tpl)
     return self._render_template('template.html', template=self.template, placeholders=get_placeholder_options(),
                                  config=DEFAULT_CONFIG[self.template.type], owner=self.target,
                                  template_data=template_data, backside_template_data=backside_template_data,
                                  related_tpls_per_owner=related_tpls_per_owner, tpls_count=len(backside_templates))
Ejemplo n.º 6
0
 def _process_GET(self):
     return self._render_template('template.html',
                                  template=self.template,
                                  placeholders=get_placeholder_options(),
                                  config=DEFAULT_CONFIG[self.template.type],
                                  owner=self.target)