[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'
_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):
@ -41,6 +41,7 @@ class ir_attachment(orm.Model):
user_login = user_obj.browse(cr, uid, uid, context=context).login
session = ConnectorSession(cr, uid, context=context)
value = {
'name': values.get('name'),
'datas_fname': values.get('datas_fname'),
'file_type': values.get('file_type') or '',
'datas': values.get('datas'),
@ -64,18 +65,16 @@ class ir_attachment(orm.Model):
for one_field in list_fields:
dict_metadata['cmis:' + one_field] = result[one_field]
values['datas'] = None
res = super(ir_attachment, self).create(cr, uid, values,
context=context)
# Create Job
# if bool_testdoc in context, we don't need to create
# the doc in the DMS
if not context.get('bool_testdoc'):
create_doc_in_edm.delay(session,
'ir.attachment',
value,
res,
dict_metadata,
user_login)
create_doc_in_edm.delay(
session, 'ir.attachment', value, res, dict_metadata,
user_login)
return res
@ -86,12 +85,11 @@ def create_doc_in_edm(session, model_name, value, res,
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)
repo = client.defaultRepository
# login with the cmis account
repo = cmis_backend_obj._auth(session.cr, session.uid,
context=session.context)
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(
session.cr, session.uid,
@ -99,8 +97,14 @@ def create_doc_in_edm(session, model_name, value, res,
['initial_directory_write'],
context=session.context)[0]['initial_directory_write']
# 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 = {
'cmis:name': value['datas_fname'],
'cmis:name': file_name,
'cmis:description': value['description'],
'cmis:createdBy': user_login,
}
@ -113,14 +117,16 @@ def create_doc_in_edm(session, model_name, value, res,
else:
sub1 = root
someDoc = sub1.createDocumentFromString(value['datas_fname'], props,
someDoc = sub1.createDocumentFromString(value['datas_fname'],
contentString=base64.b64decode(
value['datas']),
contentType=value['file_type'])
# TODO: create custom properties on a document (Alfresco)
#someDoc.getProperties().update(props)
# 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)
'id_dms': someDoc.getObjectId()}, session.context)
return True
# 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):
@ -38,10 +38,12 @@ class metadata(orm.Model):
_description = "Metadata"
_columns = {
'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',
'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'),
}
@ -52,10 +54,13 @@ class metadata(orm.Model):
return {'value': {'model_ids': [(6, 0, [])]}}
model_ids = [model_id]
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:
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
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
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