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()
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()
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))
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))
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)