diff --git a/addons/import_sugarcrm/import_sugarcrm.py b/addons/import_sugarcrm/import_sugarcrm.py index 9340dc795aa..e78dbc7159f 100644 --- a/addons/import_sugarcrm/import_sugarcrm.py +++ b/addons/import_sugarcrm/import_sugarcrm.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +e# -*- coding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution @@ -110,16 +110,13 @@ class sugar_import(import_framework): def get_attachment(self, val): File, Filename = sugar.attachment_search(self.context.get('port'), self.context.get('session_id'), self.TABLE_NOTE, val.get('id')) attach_xml_id = False - attachment_obj = self.obj.pool.get('ir.attachment') - model_obj = self.obj.pool.get('ir.model.data') - mailgate_obj = self.obj.pool.get('mailgate.message') if File: fields = ['name', 'datas', 'datas_fname','res_id', 'res_model'] name = 'attachment_'+ (Filename or val.get('name')) datas = [Filename or val.get('name'), File, Filename, val.get('res_id'),val.get('model',False)] attach_xml_id = self.import_object(fields, datas, 'ir.attachment', self.TABLE_HISTORY_ATTACHMNET, name, [('res_id', '=', val.get('res_id'), ('model', '=', val.get('model')))]) - return attach_xml_id - + return attach_xml_id + """ import Emails """ @@ -142,6 +139,7 @@ class sugar_import(import_framework): 'dependencies' : [self.TABLE_USER, self.TABLE_PROJECT, self.TABLE_PROJECT_TASK, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD, self.TABLE_OPPORTUNITY, self.TABLE_MEETING, self.TABLE_CALL], 'hook' : self.import_email, 'map' : {'name':'name', + 'history' : const("1"), 'date':'date_sent', 'email_from': 'from_addr_name', 'email_to': 'reply_to_addr', @@ -166,12 +164,14 @@ class sugar_import(import_framework): xml_id = self.xml_id_exist(val.get('parent_type'), val.get('parent_id')) model_ids = model_obj.search(self.cr, self.uid, [('name', 'like', xml_id)]) if model_ids: - model = model_obj.browse(self.cr, self.uid, model_ids)[0] - if model.model == 'res.partner': - val['partner_id/.id'] = model.res_id - else: - val['res_id'] = model.res_id - val['model'] = model.model + model = model_obj.browse(self.cr, self.uid, model_ids)[0] + if model.model == 'res.partner': + print "res partner" + val['partner_id/.id'] = model.res_id + val['history'] = "1" + else: + val['res_id'] = model.res_id + val['model'] = model.model return val def get_history_mapping(self): @@ -188,6 +188,7 @@ class sugar_import(import_framework): 'model': 'model', 'attachment_ids/id': self.get_attachment, 'partner_id/.id' : 'partner_id/.id', + 'history' : 'history', } } @@ -196,9 +197,9 @@ class sugar_import(import_framework): """ def get_claim_priority(self, val): priority_dict = { - 'High': '2', - 'Medium': '3', - 'Low': '4' + 'P1': '2', + 'P2': '3', + 'P3': '4' } return priority_dict.get(val.get('priority'), '') @@ -218,7 +219,6 @@ class sugar_import(import_framework): def import_crm_claim(self, val): partner_address_id, partner_phone,partner_email = self.get_contact_info_from_account(val) val['partner_address_id/.id'] = partner_address_id - val['partner_address_id/.id'] = partner_address_id val['partner_phone'] = partner_phone val['email_from'] = partner_email return val @@ -229,10 +229,10 @@ class sugar_import(import_framework): 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD], 'hook' : self.import_crm_claim, 'map' : { - 'name': 'name', + 'name': concat('case_number','name', delimiter='-'), 'date': 'date_entered', 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'description': ppconcat('description'), + 'description': ppconcat('description', 'resolution', 'work_log'), 'partner_id/id': ref(self.TABLE_ACCOUNT, 'account_id'), 'partner_address_id/.id': 'partner_address_id/.id', 'partner_phone': 'partner_phone', @@ -253,6 +253,8 @@ class sugar_import(import_framework): } def get_project_issue_priority(self, val): + print "project issue value" + pp.pprint(val) priority_dict = { 'Urgent': '1', 'High': '2', @@ -269,14 +271,15 @@ class sugar_import(import_framework): def get_project_issue_mapping(self): return { 'model' : 'project.issue', - 'dependencies' : [self.TABLE_USER, self.TABLE_PROJECT, self.TABLE_PROJECT_TASK], + 'dependencies' : [self.TABLE_USER], 'map' : { - 'name': 'name', + 'name': concat('bug_number', 'name', delimiter='-'), 'project_id/id': call(self.get_bug_project_id, 'sugarcrm_bugs'), 'categ_id/id': call(self.get_category, 'project.issue', value('type')), - 'description': ppconcat('description', 'bug_number', 'fixed_in_release_name', 'source', 'fixed_in_release', 'work_log', 'found_in_release', 'release_name', 'resolution'), + 'description': ppconcat('description', 'source', 'resolution', 'work_log', 'found_in_release', 'release_name', 'fixed_in_release_name', 'fixed_in_release'), 'priority': self.get_project_issue_priority, - 'state': map_val('status', self.project_issue_state) + 'state': map_val('status', self.project_issue_state), + 'assigned_to/id' : ref(self.TABLE_USER, 'assigned_user_id'), } } @@ -292,12 +295,12 @@ class sugar_import(import_framework): } def get_project_task_priority(self, val): - priority_dict = { + priority_dict = { 'High': '0', 'Medium': '2', 'Low': '3' } - return priority_dict.get(val.get('priority'), '') + return priority_dict.get(val.get('priority'), '') def get_project_task_mapping(self): return { @@ -307,12 +310,10 @@ class sugar_import(import_framework): 'name': 'name', 'date_start': 'date_start', 'date_end': 'date_finish', - 'progress': 'progress', 'project_id/id': ref(self.TABLE_PROJECT, 'project_id'), - 'planned_hours': 'planned_hours', - 'total_hours': 'total_hours', + 'planned_hours': 'estimated_effort', 'priority': self.get_project_task_priority, - 'description': ppconcat('description','milestone_flag', 'project_task_id', 'task_number'), + 'description': ppconcat('description','milestone_flag', 'project_task_id', 'task_number', 'percent_complete'), 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), 'partner_id/id': 'partner_id/id', 'contact_id/id': 'contact_id/id', @@ -328,6 +329,7 @@ class sugar_import(import_framework): 'In Review': 'open', 'Published': 'close' } + def import_project_account(self, val): partner_id = False partner_invoice_id = False @@ -396,7 +398,8 @@ class sugar_import(import_framework): """ import Calls - """ + """ + #TODO adapt with project trunk-crm-imp call_state = { 'Planned' : 'open', 'Held':'done', diff --git a/addons/import_sugarcrm/import_sugarcrm_view.xml b/addons/import_sugarcrm/import_sugarcrm_view.xml index 510c27ca170..7445746c112 100644 --- a/addons/import_sugarcrm/import_sugarcrm_view.xml +++ b/addons/import_sugarcrm/import_sugarcrm_view.xml @@ -40,8 +40,9 @@ - - + + +