in gnm_deliverables/models.py [0:0]
def create_placeholder(self, user, commit=True):
"""
requests Vidispine to create a placeholder item for this deliverable, if it does not have an ID on it.
if the deliverable does already have an item id, this is a no-op.
this is automatically called from start_file_import, so you don't need to call it directly.
:param user: (string) user to run the request as
:param commit: if True, save the deliverable to the database immediately (default true)
:return: None
"""
if not isinstance(user, str):
raise TypeError("create_placeholder user must be a string, got a {0}".format(user.__class__.__name__))
if self.online_item_id is None:
new_item = VSItem(url=settings.VIDISPINE_URL,
user=settings.VIDISPINE_USER,
passwd=settings.VIDISPINE_PASSWORD,
run_as=user)
builder = new_item.get_metadata_builder()
builder.addMeta({
"title": self.get_name()
})
builder.addGroup("Asset",{
"gnm_category": "Deliverable",
"original_filename": self.absolute_path,
"gnm_owner": user,
"gnm_containing_projects": str(self.deliverable.pluto_core_project_id),
"gnm_file_created": self.modified_dt
})
builder.addGroup("Deliverable", {
"gnm_deliverable_bundle": str(self.deliverable.pluto_core_project_id),
"gnm_deliverable_id": str(self.id)
})
new_item.createPlaceholder(builder.as_xml().decode("utf8"))
if commit:
self.save()
return new_item