def view(request): if request.unauthenticated_userid is None: msg = "Operation non authorized for anonymous users" request.session.flash(msg, 'warning') return HTTPFound(location=request.route_url("home")) if "new_ro" in request.params: session = DBSession() uid = request.params["ro_id"] created = parse(request.params["created"]) name = request.params["name"] ro_type = request.params["ro_type"] # do some checking assert len(uid) == 32 print uid, created, name, ro_type, "\n" * 10 # gather data data = dict(id=uid, owner=request.unauthenticated_userid, created=created, name=name, version=0) # create RO ro = register(session, ro_type, data) return HTTPFound(location=request.route_url("ro_view_home", uid=ro.id)) elif "submit_upload" in request.params: field_storage = request.params["upload_file"] if field_storage == "": msg = "Need to select file first" request.session.flash(msg, 'warning') else: pth = upload_file(field_storage) session = DBSession() ro = create_from_file(session, pth, request.unauthenticated_userid) rmtree(dirname(pth)) if ro is None: msg = "Unable to find a valid RO in this file" request.session.flash(msg, 'warning') else: return HTTPFound(location=request.route_url("ro_view_home", uid=ro.id)) uid = uuid1().hex created = datetime.now() ro_types = ["container", "data", "ro", "article"] return dict(uid=uid, created=created, ro_types=ro_types)
def view(request): session = DBSession() ro_def = json.loads(request.params["ro_def"]) ro_def["owner"] = request.unauthenticated_userid if "created" in ro_def: ro_def["created"] = parse(ro_def["created"]) if 'ro_type' in request.params: # create RO try: ro = register(session, request.params["ro_type"], ro_def) status = "success" msg = "" res = ro.id except KeyError as e: status = "KeyError" msg = e.message res = None except UserWarning as e: status = "UserWarning" msg = e.message res = None elif 'interface' in request.params: # create ROData try: ro_def['interface'] = request.params["interface"] ro = register_data(session, ro_def) status = "success" msg = "" res = ro.id except KeyError as e: status = "KeyError" msg = e.message res = None except UserWarning as e: status = "UserWarning" msg = e.message res = None else: status = "UnsufficientInformation" msg = "Unable to create RO with so few info" res = None ans = dict(status=status, msg=msg, res=res) return ans