From 8cc67a3b2efd9a4a4ee1fd53fd7548cf80567969 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Fri, 19 Feb 2010 16:35:41 +0530 Subject: [PATCH 1/8] [IMP] base: Improve get_companymethod in res.user model bzr revid: hmo@tinyerp.com-20100219110541-9g1oh5pg0krb2sve --- bin/addons/base/res/res_user.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/addons/base/res/res_user.py b/bin/addons/base/res/res_user.py index 550a1a056d3..eb4ca575391 100644 --- a/bin/addons/base/res/res_user.py +++ b/bin/addons/base/res/res_user.py @@ -229,8 +229,9 @@ class users(osv.osv): def _get_company(self,cr, uid, context={}, uid2=False): if not uid2: uid2 = uid - user = self.pool.get('res.users').browse(cr, uid, uid2, context) - return user.company_id.id + user = self.pool.get('res.users').read(cr, uid, uid2, ['company_id'], context) + company_id = user.get('company_id', False) + return company_id and company_id[0] or False def _get_menu(self,cr, uid, context={}): ids = self.pool.get('ir.actions.act_window').search(cr, uid, [('usage','=','menu')]) From bb0711c62191e1d5ef7a0e37482f0f09bb5c73d0 Mon Sep 17 00:00:00 2001 From: "RGA(OpenERP)" <> Date: Fri, 19 Feb 2010 19:16:56 +0530 Subject: [PATCH 2/8] Added auto_search field in action bzr revid: hda@tinyerp.com-20100219134656-1a2uu86vrl2xdbnz --- bin/addons/base/ir/ir.xml | 3 ++- bin/addons/base/ir/ir_actions.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 27049f4c89e..a13764e8733 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -360,7 +360,8 @@ - + + diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index abbc4877f0c..849d1b5064b 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -245,6 +245,7 @@ class act_window(osv.osv): 'act_id', 'gid', 'Groups'), 'search_view_id': fields.many2one('ir.ui.view', 'Search View Ref.'), 'filter': fields.boolean('Filter'), + 'auto_search':fields.boolean('Auto Search'), 'default_user_ids': fields.many2many('res.users', 'ir_act_window_user_rel', 'act_id', 'uid', 'Users'), 'search_view' : fields.function(_search_view, type='text', method=True, string='Search View'), 'menus': fields.char('Menus', size=4096) @@ -257,6 +258,7 @@ class act_window(osv.osv): 'limit': lambda *a: 80, 'target': lambda *a: 'current', 'auto_refresh': lambda *a: 0, + 'auto_search':lambda *a: True } act_window() From 2c8ded68ead1770eca04821ed946c9d0b60c6015 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Fri, 19 Feb 2010 21:31:17 +0530 Subject: [PATCH 3/8] [FIX] stock: set high priority of sock location tree view bzr revid: hmo@tinyerp.com-20100219160117-ily58ahwlq79lo2t --- addons/stock/stock_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 9c67c73ccbc..9cc79afae68 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -389,6 +389,7 @@ stock.location.tree stock.location tree + From c81ff6dd2e8dea98188e94f5db8c263635edfe1a Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 19 Feb 2010 18:15:16 +0100 Subject: [PATCH 4/8] [IMP] better views for crm bzr revid: fp@tinyerp.com-20100219171516-o0qlqs1e4kc2mwoj --- addons/crm/crm.py | 11 +- addons/crm/crm_lead.py | 44 ++-- addons/crm/crm_lead_view.xml | 273 ++++++++++---------- addons/crm/crm_opportunity.py | 27 +- addons/crm/crm_opportunity_menu.xml | 2 +- addons/crm/crm_opportunity_view.xml | 211 ++++++++------- addons/crm/crm_phonecall.py | 10 +- addons/crm/crm_phonecall_view.xml | 187 +++++++------- addons/crm/crm_view.xml | 6 +- addons/crm/wizard/crm_lead_wizard.py | 1 - addons/crm/wizard/crm_opportunity_wizard.py | 2 +- addons/crm/wizard/crm_phonecall_wizard.py | 5 +- 12 files changed, 386 insertions(+), 393 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 1289b44a0cd..07028680a78 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -227,12 +227,14 @@ class crm_case(osv.osv): string='Latest E-Mail', type='text'), 'partner_id': fields.many2one('res.partner', 'Partner'), 'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', domain="[('partner_id','=',partner_id)]"), - 'date': fields.datetime('Date'), - 'create_date': fields.datetime('Created' ,readonly=True), - 'date_deadline': fields.datetime('Deadline'), + 'create_date': fields.datetime('Creation Date' ,readonly=True), + 'write_date': fields.datetime('Update Date' ,readonly=True), + 'partner_phone': fields.char('Phone', size=32), + 'date_deadline': fields.date('Deadline'), 'user_id': fields.many2one('res.users', 'Responsible'), 'history_line': fields.function(_get_log_ids, method=True, type='one2many', multi="history_line", relation="crm.case.history", string="Communication"), 'log_ids': fields.function(_get_log_ids, method=True, type='one2many', multi="log_ids", relation="crm.case.log", string="Logs History"), + 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"), 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True, help='The state is set to \'Draft\', when a case is created.\ \nIf the case is in progress the state is set to \'Open\'.\ @@ -274,7 +276,6 @@ class crm_case(osv.osv): 'partner_address_id': _get_default_partner_address, 'email_from': _get_default_email, 'state': lambda *a: 'draft', - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), 'date_deadline': lambda *a:(datetime.today() + timedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S'), 'section_id': _get_section, } @@ -430,6 +431,7 @@ class crm_case(osv.osv): if not part: return {'value':{'partner_address_id': False, 'email_from': False, + 'partner_phone': False, 'partner_name2': False}} addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) data = {'partner_address_id': addr['contact']} @@ -442,6 +444,7 @@ class crm_case(osv.osv): return {'value': {'email_from': False, 'partner_name2': False}} address= self.pool.get('res.partner.address').browse(cr, uid, add) data['email_from'] = address.email + data['partner_phone'] = address.phone or '' data['partner_name2'] = address.name or '' return {'value': data} diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 74dc267439a..f6197d14ab4 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -31,29 +31,29 @@ class crm_lead(osv.osv): _name = "crm.lead" _description = "Leads Cases" _order = "id desc" - _inherit = 'crm.case' + _inherit = 'crm.case' _columns = { - 'name': fields.char('Lead Subject', size=64), - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"), - 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type Name', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"), - 'partner_name': fields.char("Lead Name", size=64), - 'partner_name2': fields.char('Email', size=64), - 'partner_phone': fields.char('Phone', size=32), - 'partner_mobile': fields.char('Mobile', size=32), - 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), - 'probability': fields.float('Probability (%)'), - 'date_closed': fields.datetime('Closed', readonly=True), - 'ref' : fields.reference('Reference', selection=crm._links_get, size=128), - 'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128), - 'canal_id': fields.many2one('res.partner.canal', 'Channel',help="The channels represent the different communication modes available with the customer." \ - " With each commercial opportunity, you can indicate the canall which is this opportunity source."), - 'planned_revenue': fields.float('Planned Revenue'), - 'planned_cost': fields.float('Planned Costs'), - 'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"), - 'som': fields.many2one('res.partner.som', 'State of Mind', help="The minds states allow to define a value scale which represents" \ - "the partner mentality in relation to our services.The scale has" \ - "to be created with a factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."), - 'opportunity_id': fields.many2one('crm.opportunity', 'Opportunity'), + 'name': fields.char('Lead Subject', size=64), + 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"), + 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type Name', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"), + 'partner_name': fields.char("Lead Name", size=64), + 'partner_name2': fields.char('Contact', size=64), + 'partner_phone': fields.char('Phone', size=32), + 'partner_mobile': fields.char('Mobile', size=32), + 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), + 'probability': fields.float('Probability (%)'), + 'date_closed': fields.datetime('Closed', readonly=True), + 'ref' : fields.reference('Reference', selection=crm._links_get, size=128), + 'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128), + 'canal_id': fields.many2one('res.partner.canal', 'Channel',help="The channels represent the different communication modes available with the customer." \ + " With each commercial opportunity, you can indicate the canall which is this opportunity source."), + 'planned_revenue': fields.float('Planned Revenue'), + 'planned_cost': fields.float('Planned Costs'), + 'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"), + 'som': fields.many2one('res.partner.som', 'State of Mind', help="The minds states allow to define a value scale which represents" \ + "the partner mentality in relation to our services.The scale has" \ + "to be created with a factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."), + 'opportunity_id': fields.many2one('crm.opportunity', 'Opportunity'), } crm_lead() diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 03c51064bd7..288ee84196b 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -4,18 +4,19 @@ - # ------------------------------------------------------ - # Stage - # ------------------------------------------------------ - - Lead Stages - crm.case.stage - form - - [('object_id.model', '=', 'crm.lead')] - {'object_id':'crm.lead'} - - + # ------------------------------------------------------ + # Stage + # ------------------------------------------------------ + + Lead Stages + crm.case.stage + form + + [('object_id.model', '=', 'crm.lead')] + {'object_id':'crm.lead'} + + + # ------------------------------------------------------ # Leads # ------------------------------------------------------ @@ -26,102 +27,113 @@ form
+ + + + +