commit
d6daf0ff88
|
@ -307,7 +307,7 @@ class base_stage(object):
|
||||||
destination=False)
|
destination=False)
|
||||||
|
|
||||||
def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True):
|
def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True):
|
||||||
if 'message_post' in self:
|
if hasattr(self, 'message_post'):
|
||||||
for case in self.browse(cr, uid, ids, context=context):
|
for case in self.browse(cr, uid, ids, context=context):
|
||||||
if destination:
|
if destination:
|
||||||
recipient_id = case.user_id.partner_id.id
|
recipient_id = case.user_id.partner_id.id
|
||||||
|
|
|
@ -300,6 +300,10 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
'city' : partner.city,
|
'city' : partner.city,
|
||||||
'state_id' : partner.state_id and partner.state_id.id or False,
|
'state_id' : partner.state_id and partner.state_id.id or False,
|
||||||
'country_id' : partner.country_id and partner.country_id.id or False,
|
'country_id' : partner.country_id and partner.country_id.id or False,
|
||||||
|
'email_from' : partner.email,
|
||||||
|
'phone' : partner.phone,
|
||||||
|
'mobile' : partner.mobile,
|
||||||
|
'fax' : partner.fax,
|
||||||
}
|
}
|
||||||
return {'value' : values}
|
return {'value' : values}
|
||||||
|
|
||||||
|
@ -594,6 +598,8 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
'stage_id': stage_id or False,
|
'stage_id': stage_id or False,
|
||||||
'date_action': time.strftime('%Y-%m-%d %H:%M:%S'),
|
'date_action': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
'date_open': time.strftime('%Y-%m-%d %H:%M:%S'),
|
'date_open': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||||
|
'email_from': customer and customer.email or lead.email_from,
|
||||||
|
'phone': customer and customer.phone or lead.phone,
|
||||||
}
|
}
|
||||||
|
|
||||||
def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None):
|
def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None):
|
||||||
|
|
|
@ -60,5 +60,18 @@
|
||||||
<field name="domain_force">['|',('user_id','=',user.id),('show_as','=','busy')]</field>
|
<field name="domain_force">['|',('user_id','=',user.id),('show_as','=','busy')]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="crm_rule_personal_phonecall" model="ir.rule">
|
||||||
|
<field name="name">Personal Phone Calls</field>
|
||||||
|
<field ref="model_crm_phonecall" name="model_id"/>
|
||||||
|
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman'))]"/>
|
||||||
|
</record>
|
||||||
|
<record id="crm_rule_all_phones" model="ir.rule">
|
||||||
|
<field name="name">All Phones</field>
|
||||||
|
<field ref="model_crm_phonecall" name="model_id"/>
|
||||||
|
<field name="domain_force">[(1,'=',1)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -55,6 +55,8 @@ class crm_lead2partner(osv.osv_memory):
|
||||||
partner = self.pool.get('res.partner')
|
partner = self.pool.get('res.partner')
|
||||||
lead = self.pool.get('crm.lead')
|
lead = self.pool.get('crm.lead')
|
||||||
this = lead.browse(cr, uid, context.get('active_id'), context=context)
|
this = lead.browse(cr, uid, context.get('active_id'), context=context)
|
||||||
|
if this.partner_id:
|
||||||
|
return this.partner_id.id
|
||||||
partner_id = False
|
partner_id = False
|
||||||
if this.email_from:
|
if this.email_from:
|
||||||
partner_ids = partner.search(cr, uid, [('email', '=', this.email_from)], context=context)
|
partner_ids = partner.search(cr, uid, [('email', '=', this.email_from)], context=context)
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<menuitem id="base.menu_aftersale" name="After-Sale Services"
|
<menuitem id="base.menu_aftersale" name="After-Sale Services"
|
||||||
groups="base.group_sale_salesman"
|
groups="base.group_sale_salesman"
|
||||||
parent="base.menu_main_pm" sequence="2" />
|
parent="base.menu_base_partner" sequence="2" />
|
||||||
|
|
||||||
<!-- Claims Menu -->
|
<!-- Claims Menu -->
|
||||||
<record model="ir.actions.act_window" id="crm_case_categ_claim0">
|
<record model="ir.actions.act_window" id="crm_case_categ_claim0">
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
from base_status.base_state import base_state
|
from base_status.base_state import base_state
|
||||||
|
from base_status.base_stage import base_stage
|
||||||
from crm import crm
|
from crm import crm
|
||||||
from osv import fields, osv
|
from osv import fields, osv
|
||||||
import tools
|
import tools
|
||||||
|
@ -31,7 +32,7 @@ CRM_HELPDESK_STATES = (
|
||||||
crm.AVAILABLE_STATES[4][0], # Pending
|
crm.AVAILABLE_STATES[4][0], # Pending
|
||||||
)
|
)
|
||||||
|
|
||||||
class crm_helpdesk(base_state, osv.osv):
|
class crm_helpdesk(base_state, base_stage, osv.osv):
|
||||||
""" Helpdesk Cases """
|
""" Helpdesk Cases """
|
||||||
|
|
||||||
_name = "crm.helpdesk"
|
_name = "crm.helpdesk"
|
||||||
|
|
|
@ -3,11 +3,10 @@
|
||||||
<data noupdate="1">
|
<data noupdate="1">
|
||||||
|
|
||||||
<!-- Top menu item -->
|
<!-- Top menu item -->
|
||||||
<menuitem name="Project"
|
<menuitem name="Sales"
|
||||||
id="base.menu_main_pm"
|
id="base.menu_base_partner"/>
|
||||||
sequence="90"/>
|
|
||||||
|
|
||||||
<menuitem id="base.menu_aftersale" name="After-Sale Services" sequence="2" parent="base.menu_main_pm" />
|
<menuitem id="base.menu_aftersale" name="After-Sale Services" sequence="2" parent="base.menu_base_partner" />
|
||||||
|
|
||||||
<!-- Help Desk (menu) -->
|
<!-- Help Desk (menu) -->
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Open Questionnaire" version="7.0">
|
<form string="Open Questionnaire" version="7.0">
|
||||||
<separator colspan="4" string="Questionnaire"/>
|
<separator colspan="4" string="Questionnaire"/>
|
||||||
<field name="question_ans_ids" colspan="4" nolabel="1" mode="tree,form" width="550" height="200"/>
|
<field name="question_ans_ids" colspan="4" nolabel="1" mode="tree" width="550" height="200"/>
|
||||||
<footer>
|
<footer>
|
||||||
<button name="questionnaire_compute" string="Save Data" type="object" class="oe_highlight"/>
|
<button name="questionnaire_compute" string="Save Data" type="object" class="oe_highlight"/>
|
||||||
or
|
or
|
||||||
|
|
|
@ -33,7 +33,9 @@ Using this you can directly open Google Map from the URL widget.""",
|
||||||
'website': 'http://www.openerp.com',
|
'website': 'http://www.openerp.com',
|
||||||
'images': ['images/google_map.jpeg'],
|
'images': ['images/google_map.jpeg'],
|
||||||
'depends': ['base'],
|
'depends': ['base'],
|
||||||
'data': [],
|
'data': [
|
||||||
|
'google_map_view.xml'
|
||||||
|
],
|
||||||
'demo': [],
|
'demo': [],
|
||||||
'js': ['static/src/js/google_map.js'],
|
'js': ['static/src/js/google_map.js'],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
|
|
|
@ -25,8 +25,7 @@ class launch_map(osv.osv):
|
||||||
_inherit = "res.partner"
|
_inherit = "res.partner"
|
||||||
|
|
||||||
def open_map(self, cr, uid, ids, context=None):
|
def open_map(self, cr, uid, ids, context=None):
|
||||||
address_obj= self.pool.get('res.partner')
|
partner = self.browse(cr, uid, ids, context=context)[0]
|
||||||
partner = address_obj.browse(cr, uid, ids, context=context)[0]
|
|
||||||
url="http://maps.google.com/maps?oi=map&q="
|
url="http://maps.google.com/maps?oi=map&q="
|
||||||
if partner.street:
|
if partner.street:
|
||||||
url+=partner.street.replace(' ','+')
|
url+=partner.street.replace(' ','+')
|
||||||
|
@ -39,9 +38,9 @@ class launch_map(osv.osv):
|
||||||
if partner.zip:
|
if partner.zip:
|
||||||
url+='+'+partner.zip.replace(' ','+')
|
url+='+'+partner.zip.replace(' ','+')
|
||||||
return {
|
return {
|
||||||
'type': 'ir.actions.act_url',
|
'type': 'ir.actions.act_url',
|
||||||
'url':url,
|
'url':url,
|
||||||
'target': 'new'
|
'target': 'new'
|
||||||
}
|
}
|
||||||
|
|
||||||
launch_map()
|
launch_map()
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<record model="ir.ui.view" id="view_partner_google_map_inherit">
|
||||||
|
<field name="name">res.partner.google.map.inherit</field>
|
||||||
|
<field name="model">res.partner</field>
|
||||||
|
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="website" position="before">
|
||||||
|
<label for="open_map" string="Open Google Map"/>
|
||||||
|
<div>
|
||||||
|
<button name="open_map"
|
||||||
|
string="Map" type="object"/>
|
||||||
|
</div>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
||||||
|
|
|
@ -219,7 +219,7 @@
|
||||||
</record>
|
</record>
|
||||||
<menuitem
|
<menuitem
|
||||||
action="product_pricelist_action2" id="menu_product_pricelist_action2"
|
action="product_pricelist_action2" id="menu_product_pricelist_action2"
|
||||||
parent="base.menu_base_config" sequence="20" groups="product.group_sale_pricelist"/>
|
parent="product.menu_product_pricelist_main" sequence="1" groups="product.group_sale_pricelist"/>
|
||||||
|
|
||||||
<record id="product_price_type_view" model="ir.ui.view">
|
<record id="product_price_type_view" model="ir.ui.view">
|
||||||
<field name="name">product.price.type.form</field>
|
<field name="name">product.price.type.form</field>
|
||||||
|
|
Loading…
Reference in New Issue