def read(self, id): c.auth_for_update = self.authz.am_authorized(c, Action.CHANGE_STATE, System()) c.auth_for_delete = self.authz.am_authorized(c, Action.PURGE, System()) c.app = Application.by_name(id) if not c.app: abort(404) return render('app/read.html')
def delete_application(application_name): application = Application.by_name(application_name) if not application_name: abort(404) app_tags = Session.query(ApplicationTag) \ .filter(ApplicationTag.application_id==application.id) \ .all() for app_tag in app_tags: app_tag.delete() application.delete() Session.commit()
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
def edit(self, id, data={}, errors={}, error_summary={}): c.auth_for_update = self.authorizer.am_authorized(c, Action.CHANGE_STATE, System()) if not c.auth_for_update: abort(401, _('Unauthorized to edit application')) c.app = Application.by_name(id) if c.app is None: abort(404) data = c.app.as_dict() data['images'] = c.app.images data['tags'] = [t.tag.name for t in c.app.tags] if request.method == 'POST' and not errors: try: data_dict = dict(request.params) app = edit_application(c.app, data_dict, request.POST.get('image'), request.POST.getall('keep_images')) redirect('/app/%s' % app.name) except ValidationError, e: errors = e.error_dict error_summary = e.error_summary return self.edit(data_dict, errors, error_summary)
def application_id_exists(id): return Application.by_id(id) is not None
def delete_application(application_name): application = Application.by_name(application_name) if not application_name: abort(404) application.delete() Session.commit()