- Add dynamic fields to DocumentVersion in case the Catalog requires it.
This commit is contained in:
@@ -94,7 +94,7 @@ class DocumentVersion(db.Model):
|
||||
system_context = db.Column(db.Text, nullable=True)
|
||||
user_metadata = db.Column(JSONB, nullable=True)
|
||||
system_metadata = db.Column(JSONB, nullable=True)
|
||||
catalog_configuration = db.Column(JSONB, nullable=True)
|
||||
catalog_properties = db.Column(JSONB, nullable=True)
|
||||
|
||||
# Versioning Information
|
||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now())
|
||||
|
||||
@@ -27,6 +27,7 @@ def create_document_stack(api_input, file, filename, extension, tenant_id):
|
||||
api_input.get('language', 'en'),
|
||||
api_input.get('user_context', ''),
|
||||
api_input.get('user_metadata'),
|
||||
api_input.get('catalog_properties')
|
||||
)
|
||||
db.session.add(new_doc_vers)
|
||||
|
||||
@@ -63,7 +64,7 @@ def create_document(form, filename, catalog_id):
|
||||
return new_doc
|
||||
|
||||
|
||||
def create_version_for_document(document, tenant_id, url, language, user_context, user_metadata):
|
||||
def create_version_for_document(document, tenant_id, url, language, user_context, user_metadata, catalog_properties):
|
||||
new_doc_vers = DocumentVersion()
|
||||
if url != '':
|
||||
new_doc_vers.url = url
|
||||
@@ -79,6 +80,9 @@ def create_version_for_document(document, tenant_id, url, language, user_context
|
||||
if user_metadata != '' and user_metadata is not None:
|
||||
new_doc_vers.user_metadata = user_metadata
|
||||
|
||||
if catalog_properties != '' and catalog_properties is not None:
|
||||
new_doc_vers.catalog_properties = catalog_properties
|
||||
|
||||
new_doc_vers.document = document
|
||||
|
||||
set_logging_information(new_doc_vers, dt.now(tz.utc))
|
||||
@@ -273,9 +277,10 @@ def edit_document(document_id, name, valid_from, valid_to):
|
||||
return None, str(e)
|
||||
|
||||
|
||||
def edit_document_version(version_id, user_context):
|
||||
def edit_document_version(version_id, user_context, catalog_properties):
|
||||
doc_vers = DocumentVersion.query.get_or_404(version_id)
|
||||
doc_vers.user_context = user_context
|
||||
doc_vers.catalog_properties = catalog_properties
|
||||
update_logging_information(doc_vers, dt.now(tz.utc))
|
||||
|
||||
try:
|
||||
@@ -300,6 +305,7 @@ def refresh_document_with_info(doc_id, tenant_id, api_input):
|
||||
api_input.get('language', old_doc_vers.language),
|
||||
api_input.get('user_context', old_doc_vers.user_context),
|
||||
api_input.get('user_metadata', old_doc_vers.user_metadata),
|
||||
api_input.get('catalog_properties', old_doc_vers.catalog_properties),
|
||||
)
|
||||
|
||||
set_logging_information(new_doc_vers, dt.now(tz.utc))
|
||||
@@ -337,7 +343,8 @@ def refresh_document(doc_id, tenant_id):
|
||||
api_input = {
|
||||
'language': old_doc_vers.language,
|
||||
'user_context': old_doc_vers.user_context,
|
||||
'user_metadata': old_doc_vers.user_metadata
|
||||
'user_metadata': old_doc_vers.user_metadata,
|
||||
'catalog_properties': old_doc_vers.catalog_properties,
|
||||
}
|
||||
|
||||
return refresh_document_with_info(doc_id, tenant_id, api_input)
|
||||
@@ -348,3 +355,5 @@ def mark_tenant_storage_dirty(tenant_id):
|
||||
tenant = db.session.query(Tenant).filter_by(id=int(tenant_id)).first()
|
||||
tenant.storage_dirty = True
|
||||
db.session.commit()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user