Beispiel #1
0
 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
Beispiel #2
0
 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