def _create(cls, *args, **kwargs): branched_from = kwargs.get("branched_from") initiator = kwargs.get("initiator") registration_schema = kwargs.get("registration_schema") registration_metadata = kwargs.get("registration_metadata") if not branched_from: project_params = {} if initiator: project_params["creator"] = initiator branched_from = ProjectFactory(**project_params) initiator = branched_from.creator try: registration_schema = registration_schema or MetaSchema.find()[0] except IndexError: ensure_schemas() registration_metadata = registration_metadata or {} draft = DraftRegistration.create_from_node( branched_from, user=initiator, schema=registration_schema, data=registration_metadata ) return draft
def _create(cls, *args, **kwargs): branched_from = kwargs.get('branched_from') initiator = kwargs.get('initiator') registration_schema = kwargs.get('registration_schema') registration_metadata = kwargs.get('registration_metadata') if not branched_from: project_params = {} if initiator: project_params['creator'] = initiator branched_from = ProjectFactory(**project_params) initiator = branched_from.creator try: registration_schema = registration_schema or MetaSchema.find()[0] except IndexError: ensure_schemas() registration_metadata = registration_metadata or {} draft = DraftRegistration.create_from_node( branched_from, user=initiator, schema=registration_schema, data=registration_metadata, ) return draft
def new_draft_registration(auth, node, *args, **kwargs): """Create a new draft registration for the node :return: Redirect to the new draft's edit page :rtype: flask.redirect :raises: HTTPError """ if node.is_registration: raise HTTPError(http.FORBIDDEN, data={ 'message_short': "Can't create draft", 'message_long': "Creating draft registrations on registered projects is not allowed." }) data = request.values schema_name = data.get('schema_name') if not schema_name: raise HTTPError( http.BAD_REQUEST, data={ 'message_short': 'Must specify a schema_name', 'message_long': 'Please specify a schema_name' } ) schema_version = data.get('schema_version', 2) meta_schema = get_schema_or_fail( Q('name', 'eq', schema_name) & Q('schema_version', 'eq', int(schema_version)) ) draft = DraftRegistration.create_from_node( node, user=auth.user, schema=meta_schema, data={} ) return redirect(node.web_url_for('edit_draft_registration_page', draft_id=draft._id))
def new_draft_registration(auth, node, *args, **kwargs): """Create a new draft registration for the node :return: Redirect to the new draft's edit page :rtype: flask.redirect :raises: HTTPError """ if node.is_registration: raise HTTPError( http.FORBIDDEN, data={ 'message_short': "Can't create draft", 'message_long': "Creating draft registrations on registered projects is not allowed." }) data = request.values schema_name = data.get('schema_name') if not schema_name: raise HTTPError(http.BAD_REQUEST, data={ 'message_short': 'Must specify a schema_name', 'message_long': 'Please specify a schema_name' }) schema_version = data.get('schema_version', 2) meta_schema = get_schema_or_fail( Q('name', 'eq', schema_name) & Q('schema_version', 'eq', int(schema_version))) draft = DraftRegistration.create_from_node(node, user=auth.user, schema=meta_schema, data={}) return redirect( node.web_url_for('edit_draft_registration_page', draft_id=draft._id))