def edit_application(application, data_dict, image, keep_images): if 'image' in data_dict: del data_dict['image'] data, errors = validate(data_dict, application_schema()) if errors: raise ValidationError(errors, error_summary(errors)) application.title = data.get('title') application.url = data.get('url') application.description = data.get('description') application.featured = data.get('featured') application.submitter = data.get('submitter') application.developer = data.get('developer') application.developer_url = data.get('developer_url') application.license = data.get('license') application.code_url = data.get('code_url') application.api_url = data.get('api_url') tags = data.get('tags', '').split(' ') application.update_tags(tags) for _image in application.images: if _image.id not in keep_images: _image.delete() if image is not None and hasattr(image, 'file'): image = ApplicationImage(name=image.filename, data=image.file.read(), application=application) image.save() application.save() return application
def create_application(data_dict, image): if 'image' in data_dict: del data_dict['image'] data, errors = validate(data_dict, application_schema()) if errors: raise ValidationError(errors, error_summary(errors)) application = Application( name=Application.generate_name(data.get('title')), title=data.get('title'), url=data.get('url'), description=data.get('description'), featured=data.get('featured'), submitter=data.get('submitter'), developer=data.get('developer'), developer_url=data.get('developer_url'), license=data.get('license'), code_url=data.get('code_url'), api_url=data.get('api_url'), ) tags = data.get('tags', '').split(' ') application.update_tags(tags) if image and image.filename and image.file: image = ApplicationImage(name=image.filename, data=image.file.read(), application=application) Session.add(image) application.save() return application