[IMP]: crm_claim: Improvements in crm_claim as per testing on http://piratepad.net/openerp-mod2-crm-bugs

bzr revid: rpa@tinyerp.com-20100624131538-oavcx3r8kx2l58u4
This commit is contained in:
rpa (Open ERP)
2010-06-24 18:45:38 +05:30
parent 903e0c69d1
commit 40a073ad72
2 changed files with 76 additions and 12 deletions
+40 -3
View File
@@ -21,7 +21,7 @@
from osv import fields, osv
from crm import crm
import time
class crm_claim(osv.osv, crm.crm_case):
"""
Crm claim
@@ -88,8 +88,8 @@ class crm_claim(osv.osv, crm.crm_case):
\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\'.'),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('res_model','=',_name)]),
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('res_model','=',_name)]),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('model','=',_name)]),
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]),
}
_defaults = {
@@ -100,9 +100,46 @@ class crm_claim(osv.osv, crm.crm_case):
'email_from':crm.crm_case. _get_default_email,
'state': lambda *a: 'draft',
'section_id':crm.crm_case. _get_section,
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
def onchange_partner_id(self, cr, uid, ids, part, email=False):
"""This function returns value of partner address based on partner
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of case IDs
@param part: Partner's id
@email: Partner's email ID
"""
if not part:
return {'value': {'partner_address_id': False,
'email_from': False,
'partner_phone': False,
'partner_mobile': False
}}
addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
data = {'partner_address_id': addr['contact']}
data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
print data
return {'value': data}
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
"""This function returns value of partner email based on Partner Address
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of case IDs
@param add: Id of Partner's address
@email: Partner's email ID
"""
if not add:
return {'value': {'email_from': False}}
address = self.pool.get('res.partner.address').browse(cr, uid, add)
return {'value': {'email_from': address.email, 'partner_phone': address.phone, 'partner_mobile': address.mobile}}
crm_claim()
+36 -9
View File
@@ -58,7 +58,6 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Claims" colors="blue:state=='pending';black:state=='open';grey:state in ('close', 'cancel')">
<field name="id"/>
<field name="name"/>
<field name="partner_id"/>
<field name="user_id" />
@@ -67,6 +66,8 @@
<field name="date_deadline" string="Deadline"/>
<field name="date_closed" string="Closure Date"/>
<field name="categ_id" string="Type" select="1"/>
<field name="stage_id" invisible="1"/>
<field name="som" invisible="1"/>
<field name="state"/>
<button name="case_open" string="Open"
states="draft,pending" type="object"
@@ -123,8 +124,9 @@
<field name="user_id" string="Responsible"/>
<field name="section_id" widget="selection"/>
<label string="Stage: " align="1.0"/>
<group colspan="1" col="2">
<group colspan="1" col="3">
<field name="stage_id" select="1" nolabel="1"/>
<button name="stage_previous" string="" type="object" icon="gtk-go-back" />
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
</group>
<field name="categ_id" select="1" widget="selection"
@@ -143,18 +145,18 @@
<separator colspan="4" string=""/>
<group col="8" colspan="4">
<field name="state" select="1"/>
<button name="case_close" string="Done"
states="open,draft,pending" type="object"
icon="gtk-jump-to" />
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
<button name="case_pending" string="Pending"
states="draft,open" type="object"
icon="gtk-media-pause" />
<button name="case_close" string="Done"
states="open,draft,pending" type="object"
icon="gtk-jump-to" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
<button name="case_reset"
string="Reset to Draft" states="done,cancel"
type="object" icon="gtk-convert" />
@@ -291,12 +293,37 @@
widget="selection"/>
<newline/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner"
domain="[]" help="Partner"
context="{'group_by':'partner_id'}" />
<filter string="Responsible" icon="terp-personal"
domain="[]" help="Responsible User"
context="{'group_by':'user_id'}" />
<filter string="Sales Team" icon="terp-personal+"
domain="[]" help="Sales Team"
context="{'group_by':'section_id'}" />
<separator orientation="vertical"/>
<filter string="Stage" icon="terp-stage"
domain="[]" context="{'group_by':'stage_id'}" />
<filter string="Type" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'categ_id'}" />
<filter string="State"
icon="terp-stock_effects-object-colorize"
domain="[]" context="{'group_by':'state'}" />
<separator orientation="vertical"/>
<filter string="Claim Date" icon="terp-go-month"
domain="[]" help="Claim Date"
context="{'group_by':'date'}" />
<filter string="Deadline" icon="terp-go-month"
domain="[]"
context="{'group_by':'date_deadline'}" />
<filter string="Closure" icon="terp-go-month"
domain="[]"
domain="[]" help="Date Closed"
context="{'group_by':'date_closed'}" />
<separator orientation="vertical"/>
<filter string="State of Mind"
icon="terp-face-plain"
domain="[]" context="{'group_by':'som'}" />
</group>
</search>
</field>