add possibility to set treating group

This commit is contained in:
Frédéric Péters 2014-02-24 14:31:00 +01:00
parent 46612b45e5
commit 1c831ec4c4
2 changed files with 16 additions and 2 deletions

View File

@ -28,6 +28,7 @@ class IImportFileFormSchema(form.Schema):
portal_type = schema.Text(required=False)
location = schema.Text(required=False)
owner = schema.Text(required=False)
treating_group = schema.Text(required=False)
class ImportFileForm(form.SchemaForm):
@ -69,9 +70,11 @@ class ImportFileForm(form.SchemaForm):
portal_type = data['portal_type']
filename = data['file'].filename
owner = data['owner']
treating_group = data['treating_group']
folder = self.get_folder(data['location'])
document_id = self.convertTitleToId(data.get('title') or os.path.splitext(filename)[0])
utils.createDocument(self, folder, portal_type, document_id,
filename, data['file'], owner, {'title': data.get('title')})
filename, data['file'], owner, treating_group=treating_group,
metadata={'title': data.get('title')})

View File

@ -5,6 +5,10 @@ from plone import api
from plone.dexterity.utils import createContentInContainer
from collective.dms.mailcontent.dmsmail import internalReferenceIncomingMailDefaultValue, receptionDateDefaultValue
from collective.dms.basecontent.dmsdocument import IDmsDocument
from collective.z3cform.rolefield.field import LocalRolesToPrincipalsDataManager
try:
from pfwbged.basecontent.behaviors import IDeadline, deadlineDefaultValue
@ -17,7 +21,7 @@ log = logging.getLogger('collective.dms.batchimport')
def createDocument(context, folder, portal_type, document_id, filename,
file_object, owner=None, metadata=None):
file_object, owner=None, treating_group=None, metadata=None):
if owner is None:
owner = api.user.get_current().id
@ -43,6 +47,13 @@ def createDocument(context, folder, portal_type, document_id, filename,
if IDeadline and IDeadline.providedBy(document):
document.deadline = deadlineDefaultValue(None)
if treating_group:
canwrite_dm = LocalRolesToPrincipalsDataManager(document,
IDmsDocument['treating_groups'])
canwrite_dm.set([])
canwrite_dm.set([treating_group])
document.reindexObjectSecurity()
version = createContentInContainer(document, 'dmsmainfile',
title=_('Scanned Mail'),
file=file_object)