diff --git a/cmis_write/ir_attachment.py b/cmis_write/ir_attachment.py index ad1a0078..1e95fa32 100644 --- a/cmis_write/ir_attachment.py +++ b/cmis_write/ir_attachment.py @@ -47,41 +47,57 @@ class ir_attachment(orm.Model): 'description': values.get('description') or '', } + metadata_ids = metadata_obj.search(cr, uid, [], context=context) dict_metadata = {} list_fields = [] # Get list of metadata if values.get('res_model'): - for line in metadata_obj.browse(cr, uid, metadata_ids, context=context): + for line in metadata_obj.browse(cr, uid, metadata_ids, + context=context): if line.model_id.model == values.get('res_model'): if line.metadata_list_ids: for one_field in line.metadata_list_ids: list_fields.append(one_field.field_id.name) - result = self.pool.get(values.get('res_model')).read(cr, uid, [values.get('res_id')], - list_fields, context=context)[0] + result = self.pool.get(values.get('res_model')).read(cr, uid, [ + values.get('res_id')], list_fields, context=context)[0] for one_field in list_fields: dict_metadata['cmis:' + one_field] = result[one_field] - res = super(ir_attachment, self).create(cr, uid, values, context=context) + res = super(ir_attachment, self).create(cr, uid, values, + context=context) # Create Job - create_doc_in_edm.delay(session, 'ir.attachment', value, res, dict_metadata, user_login) + # if bool_testdoc in context, we don't need to create + # the doc in the DMS + if not context['bool_testdoc']: + create_doc_in_edm.delay(session, + 'ir.attachment', + value, + res, + dict_metadata, + user_login) return res @job -def create_doc_in_edm(session, model_name, value, res, dict_metadata, user_login, filters=None): +def create_doc_in_edm(session, model_name, value, res, + dict_metadata, user_login, filters=None): ir_attach_obj = session.pool.get('ir.attachment') cmis_backend_obj = session.pool.get('cmis.backend') if session.context is None: session.context = {} #login with the cmis account - client = cmis_backend_obj._auth(session.cr, session.uid, context=session.context) + client = cmis_backend_obj._auth(session.cr, session.uid, + context=session.context) repo = client.defaultRepository root = repo.rootFolder ids = cmis_backend_obj.search(session.cr, session.uid, []) - folder_path = cmis_backend_obj.read(session.cr, session.uid, - ids, ['initial_directory_write'], - context=session.context)[0]['initial_directory_write'] + + folder_path = cmis_backend_obj.read( + session.cr, session.uid, + ids, + ['initial_directory_write'], + context=session.context)[0]['initial_directory_write'] # Document properties props = { 'cmis:name': value['datas_fname'], @@ -96,11 +112,15 @@ def create_doc_in_edm(session, model_name, value, res, dict_metadata, user_login sub1 = repo.getObjectByPath(folder_path) else: sub1 = root + someDoc = sub1.createDocumentFromString(value['datas_fname'], props, - contentString=base64.b64decode(value['datas']), + contentString=base64.b64decode( + value['datas']), contentType=value['file_type']) - # Updating ir.attachment object with the new id of document generated by DMS - ir_attach_obj.write(session.cr, session.uid, res, {'id_edm': someDoc.getObjectId()}, session.context) + # Updating ir.attachment object with the new id + # of document generated by DMS + ir_attach_obj.write(session.cr, session.uid, res, { + 'id_edm': someDoc.getObjectId()}, session.context) return True # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: