def create_from_node(cls, user, schema, node=None, data=None, provider=None): if not provider: provider = RegistrationProvider.get_default() if provider.is_default: # If the default provider doesn't have schemas specified yet, allow all schemas if provider.schemas.exists(): provider.validate_schema(schema) else: provider.validate_schema(schema) if not node: # If no node provided, a DraftNode is created for you node = DraftNode.objects.create(creator=user, title='Untitled') if not (isinstance(node, Node) or isinstance(node, DraftNode)): raise DraftRegistrationStateError() draft = cls( initiator=user, branched_from=node, registration_schema=schema, registration_metadata=data or {}, provider=provider, ) draft.save() draft.copy_editable_fields(node, Auth(user), save=True, contributors=False) draft.update(data) return draft
def create_from_node(cls, node, user, schema, data=None, provider=None): if not provider: provider = RegistrationProvider.load('osf') draft = cls( initiator=user, branched_from=node, registration_schema=schema, registration_metadata=data or {}, provider=provider, ) draft.save() return draft
def create_from_node(cls, user, schema, node=None, data=None, provider=None): if not provider: provider = RegistrationProvider.load('osf') if not node: # If no node provided, a DraftNode is created for you node = DraftNode.objects.create(creator=user, title='Untitled') if not (isinstance(node, Node) or isinstance(node, DraftNode)): raise DraftRegistrationStateError() draft = cls( initiator=user, branched_from=node, registration_schema=schema, registration_metadata=data or {}, provider=provider, ) draft.save() draft.copy_editable_fields(node, Auth(user), save=True, contributors=False) draft.update(data) return draft
def get_default_id(): from django.apps import apps RegistrationProvider = apps.get_model('osf', 'RegistrationProvider') return RegistrationProvider.get_default().id