From 75e1ae7cbb81ff7a7596138fb6a90a058a166bd8 Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Thu, 6 May 2010 13:01:09 +0530 Subject: [PATCH] [IMP]: crm_helpdesk: Improvement in helpdesk for inheriting python class crm case from crm + Improvement in reports, Added missing fields bzr revid: rpa@tinyerp.com-20100506073109-2ce22j3x0auri0l1 --- addons/crm_helpdesk/__openerp__.py | 39 ++++++------ addons/crm_helpdesk/crm_helpdesk.py | 44 ++++++++++--- addons/crm_helpdesk/crm_helpdesk_view.xml | 3 +- .../report/crm_helpdesk_report.py | 62 ++++++++++++++++++- .../report/crm_helpdesk_report_view.xml | 19 +++--- 5 files changed, 130 insertions(+), 37 deletions(-) diff --git a/addons/crm_helpdesk/__openerp__.py b/addons/crm_helpdesk/__openerp__.py index 93bb5af70c9..b8d2409fcb2 100644 --- a/addons/crm_helpdesk/__openerp__.py +++ b/addons/crm_helpdesk/__openerp__.py @@ -21,29 +21,28 @@ { - 'name': 'CRM Helpdesk', - 'version': '1.0', - 'category': 'Generic Modules/CRM & SRM', - 'description': """Helpdesk Management""", - 'author': 'Tiny', - 'website': 'http://www.openerp.com', - 'depends': ['crm'], + 'name': 'CRM Helpdesk', + 'version': '1.0', + 'category': 'Generic Modules/CRM & SRM', + 'description': """Helpdesk Management""", + 'author': 'Tiny', + 'website': 'http://www.openerp.com', + 'depends': ['crm'], 'init_xml': [ - 'crm_helpdesk_data.xml', - ], - + 'crm_helpdesk_data.xml', + ], 'update_xml': [ - 'crm_helpdesk_view.xml', - 'crm_helpdesk_menu.xml', - 'security/ir.model.access.csv', - 'report/crm_helpdesk_report_view.xml', - ], + 'crm_helpdesk_view.xml', + 'crm_helpdesk_menu.xml', + 'security/ir.model.access.csv', + 'report/crm_helpdesk_report_view.xml', + ], 'demo_xml': [ - 'crm_helpdesk_demo.xml', - 'test/test_crm_helpdesk.yml' - ], - 'installable': True, - 'active': False, + 'crm_helpdesk_demo.xml', + ], + 'test': ['test/test_crm_helpdesk.yml'], + 'installable': True, + 'active': False, } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py index a467e80fefb..f304cd860a0 100644 --- a/addons/crm_helpdesk/crm_helpdesk.py +++ b/addons/crm_helpdesk/crm_helpdesk.py @@ -19,12 +19,10 @@ # ############################################################################## -from osv import fields -from osv import orm -from osv import osv from crm import crm +from osv import fields, osv -class crm_helpdesk(osv.osv): +class crm_helpdesk(osv.osv, crm.crm_case): """ Helpdesk Cases """ _name = "crm.helpdesk" @@ -33,7 +31,25 @@ class crm_helpdesk(osv.osv): _inherit = 'mailgate.thread' _columns = { + 'id': fields.integer('ID', readonly=True), + 'name': fields.char('Name', size=128, required=True), + 'description': fields.text('Description'), + 'create_date': fields.datetime('Creation Date' , readonly=True), + 'write_date': fields.datetime('Update Date' , readonly=True), + 'date_deadline': fields.date('Deadline'), + 'user_id': fields.many2one('res.users', 'Responsible'), + 'section_id': fields.many2one('crm.case.section', 'Sales Team', \ + select=True, help='Sales team to which Case belongs to.\ + Define Responsible user and Email account for mail gateway.'), + 'company_id': fields.many2one('res.company', 'Company'), 'date_closed': fields.datetime('Closed', readonly=True), + 'partner_id': fields.many2one('res.partner', 'Partner'), + 'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \ + domain="[('partner_id','=',partner_id)]"), + 'email_cc': fields.text('Watchers Emails', size=252 , help="These people\ + will receive a copy of the future" \ + " communication between partner and users by email"), + 'email_from': fields.char('Email', size=128, help="These people will receive email."), 'date': fields.datetime('Date'), 'ref' : fields.reference('Reference', selection=crm._links_get, size=128), 'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128), @@ -53,13 +69,25 @@ class crm_helpdesk(osv.osv): (Very dissatisfied) to 10 (Extremely satisfied)."), 'categ_id': fields.many2one('crm.case.categ', 'Category', \ domain="[('section_id','=',section_id),\ - ('object_id.model', '=', 'crm.helpdesk')]"), - 'duration': fields.float('Duration'), + ('object_id.model', '=', 'crm.helpdesk')]"), + 'duration': fields.float('Duration'), + 'state': fields.selection(crm.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\'.\ + \nWhen the case is over, the state is set to \'Done\'.\ + \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), } _defaults = { - 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), - 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], + 'active': lambda *a: 1, + 'user_id': crm.crm_case._get_default_user, + 'partner_id': crm.crm_case._get_default_partner, + 'partner_address_id': crm.crm_case._get_default_partner_address, + 'email_from': crm.crm_case. _get_default_email, + 'state': lambda *a: 'draft', + 'section_id': crm.crm_case. _get_section, + 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), + 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], } crm_helpdesk() diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml index 15f00e66cf5..03f3d989da1 100644 --- a/addons/crm_helpdesk/crm_helpdesk_view.xml +++ b/addons/crm_helpdesk/crm_helpdesk_view.xml @@ -112,7 +112,7 @@ - +
@@ -163,6 +163,7 @@ +