[IMP] Take comments from LP

This commit is contained in:
EL HADJI DEM 2014-05-05 18:04:59 -04:00 committed by Sandy Carter
parent bd5d8c5267
commit ec44b6acfc
3 changed files with 32 additions and 20 deletions

View File

@ -32,7 +32,7 @@ class ir_attachment(orm.Model):
_inherit = 'ir.attachment' _inherit = 'ir.attachment'
_columns = { _columns = {
'id_edm': fields.char('Id of Dms', size=256, help="Id of Edm."), 'id_dms': fields.char('Id of Dms', size=256, help="Id of Dms."),
} }
def create(self, cr, uid, values, context=None): def create(self, cr, uid, values, context=None):
@ -41,6 +41,7 @@ class ir_attachment(orm.Model):
user_login = user_obj.browse(cr, uid, uid, context=context).login user_login = user_obj.browse(cr, uid, uid, context=context).login
session = ConnectorSession(cr, uid, context=context) session = ConnectorSession(cr, uid, context=context)
value = { value = {
'name': values.get('name'),
'datas_fname': values.get('datas_fname'), 'datas_fname': values.get('datas_fname'),
'file_type': values.get('file_type') or '', 'file_type': values.get('file_type') or '',
'datas': values.get('datas'), 'datas': values.get('datas'),
@ -64,17 +65,15 @@ class ir_attachment(orm.Model):
for one_field in list_fields: for one_field in list_fields:
dict_metadata['cmis:' + one_field] = result[one_field] dict_metadata['cmis:' + one_field] = result[one_field]
values['datas'] = None
res = super(ir_attachment, self).create(cr, uid, values, res = super(ir_attachment, self).create(cr, uid, values,
context=context) context=context)
# Create Job # Create Job
# if bool_testdoc in context, we don't need to create # if bool_testdoc in context, we don't need to create
# the doc in the DMS # the doc in the DMS
if not context.get('bool_testdoc'): if not context.get('bool_testdoc'):
create_doc_in_edm.delay(session, create_doc_in_edm.delay(
'ir.attachment', session, 'ir.attachment', value, res, dict_metadata,
value,
res,
dict_metadata,
user_login) user_login)
return res return res
@ -86,12 +85,11 @@ def create_doc_in_edm(session, model_name, value, res,
cmis_backend_obj = session.pool.get('cmis.backend') cmis_backend_obj = session.pool.get('cmis.backend')
if session.context is None: if session.context is None:
session.context = {} session.context = {}
#login with the cmis account # login with the cmis account
client = cmis_backend_obj._auth(session.cr, session.uid, repo = cmis_backend_obj._auth(session.cr, session.uid,
context=session.context) context=session.context)
repo = client.defaultRepository
root = repo.rootFolder root = repo.rootFolder
ids = cmis_backend_obj.search(session.cr, session.uid, []) ids = cmis_backend_obj.search(session.cr, session.uid, [], session.context)
folder_path = cmis_backend_obj.read( folder_path = cmis_backend_obj.read(
session.cr, session.uid, session.cr, session.uid,
@ -99,8 +97,14 @@ def create_doc_in_edm(session, model_name, value, res,
['initial_directory_write'], ['initial_directory_write'],
context=session.context)[0]['initial_directory_write'] context=session.context)[0]['initial_directory_write']
# Document properties # Document properties
if value['name']:
file_name = value['name']
elif value['datas_fname']:
file_name = value['datas_fname']
else:
file_name = value['datas_fname']
props = { props = {
'cmis:name': value['datas_fname'], 'cmis:name': file_name,
'cmis:description': value['description'], 'cmis:description': value['description'],
'cmis:createdBy': user_login, 'cmis:createdBy': user_login,
} }
@ -113,14 +117,16 @@ def create_doc_in_edm(session, model_name, value, res,
else: else:
sub1 = root sub1 = root
someDoc = sub1.createDocumentFromString(value['datas_fname'], props, someDoc = sub1.createDocumentFromString(value['datas_fname'],
contentString=base64.b64decode( contentString=base64.b64decode(
value['datas']), value['datas']),
contentType=value['file_type']) contentType=value['file_type'])
# TODO: create custom properties on a document (Alfresco)
#someDoc.getProperties().update(props)
# Updating ir.attachment object with the new id # Updating ir.attachment object with the new id
# of document generated by DMS # of document generated by DMS
ir_attach_obj.write(session.cr, session.uid, res, { ir_attach_obj.write(session.cr, session.uid, res, {
'id_edm': someDoc.getObjectId()}, session.context) 'id_dms': someDoc.getObjectId()}, session.context)
return True return True
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -20,7 +20,7 @@
# #
############################################################################## ##############################################################################
from openerp.osv import orm, fields, osv from openerp.osv import orm, fields
class metadata_list(orm.Model): class metadata_list(orm.Model):
@ -38,10 +38,12 @@ class metadata(orm.Model):
_description = "Metadata" _description = "Metadata"
_columns = { _columns = {
'name': fields.char("Name", size=64, required=True, select=1), 'name': fields.char("Name", size=64, required=True, select=1),
'model_id': fields.many2one('ir.model', 'Model', required=True, select=1), 'model_id': fields.many2one('ir.model', 'Model',
required=True, select=1),
'field_ids': fields.many2many('ir.model.fields', 'metadata_field_rel', 'field_ids': fields.many2many('ir.model.fields', 'metadata_field_rel',
'meta_id', 'field_id', 'Fields'), 'meta_id', 'field_id', 'Fields'),
'metadata_list_ids': fields.one2many('metadata.list', 'metadata_id', 'List of fields'), 'metadata_list_ids': fields.one2many('metadata.list', 'metadata_id',
'List of fields'),
'model_ids': fields.many2many('ir.model', string='Model List'), 'model_ids': fields.many2many('ir.model', string='Model List'),
} }
@ -52,10 +54,13 @@ class metadata(orm.Model):
return {'value': {'model_ids': [(6, 0, [])]}} return {'value': {'model_ids': [(6, 0, [])]}}
model_ids = [model_id] model_ids = [model_id]
model_obj = self.pool.get('ir.model') model_obj = self.pool.get('ir.model')
active_model_obj = self.pool.get(model_obj.browse(cr, uid, model_id).model) active_model_obj = self.pool.get(model_obj.browse(cr, uid,
model_id).model)
if active_model_obj._inherits: if active_model_obj._inherits:
for key, val in active_model_obj._inherits.items(): for key, val in active_model_obj._inherits.items():
found_model_ids = model_obj.search(cr, uid, [('model', '=', key)], context=context) found_model_ids = model_obj.search(cr,
uid, [('model', '=', key)],
context=context)
model_ids += found_model_ids model_ids += found_model_ids
return {'value': {'model_ids': [(6, 0, model_ids)]}} return {'value': {'model_ids': [(6, 0, model_ids)]}}

View File

@ -1,2 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_metadata_list_group_user,metadata.list user,model_metadata_list,base.group_document_user,1,1,1,1 access_metadata_list_group_user,metadata.list user,model_metadata_list,base.group_document_user,1,1,1,1
access_metadata,access_metadata,model_metadata,base.group_document_user,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_metadata_list_group_user metadata.list user model_metadata_list base.group_document_user 1 1 1 1
3 access_metadata access_metadata model_metadata base.group_document_user 1 1 1 1