This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
collective.dms.batchimport/src/collective/dms/batchimport/utils.py

41 lines
1.3 KiB
Python

import logging
import os
from plone import api
from plone.dexterity.utils import createContentInContainer
from collective.dms.mailcontent.dmsmail import internalReferenceIncomingMailDefaultValue, receptionDateDefaultValue
from . import _
log = logging.getLogger('collective.dms.batchimport')
def createDocument(context, folder, portal_type, document_id, filename,
file_object, owner=None, metadata=None):
if owner is None:
owner = api.user.get_current().id
if not metadata:
metadata = {}
if 'title' in metadata:
document_title = metadata.get('title')
del metadata['title']
else:
document_title = document_id
if portal_type == 'dmsincomingmail':
metadata['internal_reference_no'] = internalReferenceIncomingMailDefaultValue(context)
metadata['reception_date'] = receptionDateDefaultValue(context)
log.info('creating the document for real (%s)' % document_title)
with api.env.adopt_user(username=owner):
document = createContentInContainer(folder, portal_type,
title=document_title, **metadata)
log.info('document has been created (id: %s)' % document.id)
version = createContentInContainer(document, 'dmsmainfile',
title=_('Scanned Mail'),
file=file_object)