diff --git a/addons/crm/crm_fundraising.py b/addons/crm/crm_fundraising.py
index c5ed7b19d67..9bfbd10a6b8 100644
--- a/addons/crm/crm_fundraising.py
+++ b/addons/crm/crm_fundraising.py
@@ -53,6 +53,10 @@ class crm_fundraising(osv.osv):
_defaults = {
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
+ 'probability':lambda *a:0.0,
+ 'planned_cost':lambda *a:0.0,
+ 'planned_revenue':lambda *a:0.0,
+
}
crm_fundraising()
diff --git a/addons/crm_project/crm_bugs_view.xml b/addons/crm_project/crm_bugs_view.xml
index 6d89beb2f48..4179aa06cf5 100644
--- a/addons/crm_project/crm_bugs_view.xml
+++ b/addons/crm_project/crm_bugs_view.xml
@@ -73,7 +73,7 @@
-
+
diff --git a/addons/crm_project/crm_project_bug.py b/addons/crm_project/crm_project_bug.py
index ad0fdc888ae..0085ce193be 100644
--- a/addons/crm_project/crm_project_bug.py
+++ b/addons/crm_project/crm_project_bug.py
@@ -88,8 +88,20 @@ class crm_project_bug(osv.osv):
def convert_to_bug(self, cr, uid, ids, context=None):
return self._convert(cr, uid, ids, 'bug_categ', context=context)
+ def onchange_stage_id(self, cr, uid, ids, stage_id, context={}):
+ if not stage_id:
+ return {'value':{}}
+ stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context)
+ if not stage.on_change:
+ return {'value':{}}
+ return {'value':{'probability':stage.probability}}
+
_defaults = {
- 'project_id':_get_project,
+ 'project_id':_get_project,
+ 'probability':lambda *a:0.0,
+ 'planned_cost':lambda *a:0.0,
+ 'planned_revenue':lambda *a:0.0,
}
+
crm_project_bug()
diff --git a/addons/crm_project/report_crm_project_bug_view.xml b/addons/crm_project/report_crm_project_bug_view.xml
index e822d4a7f0a..97eb7678a3e 100644
--- a/addons/crm_project/report_crm_project_bug_view.xml
+++ b/addons/crm_project/report_crm_project_bug_view.xml
@@ -16,8 +16,10 @@
+
-
+
+
@@ -59,8 +61,9 @@
search
-
-
+
+
+
diff --git a/addons/report_crm/report_crm.py b/addons/report_crm/report_crm.py
index c9e22dc3af8..da9ba2e9ba3 100644
--- a/addons/report_crm/report_crm.py
+++ b/addons/report_crm/report_crm.py
@@ -45,7 +45,7 @@ class report_crm_case(osv.osv):
state = field_name[5:]
cr.execute("select count(*) from crm_opportunity where section_id =%s and state='%s'"%(case.section_id.id,state))
state_cases = cr.fetchone()[0]
- perc_state = (state_cases / float(case.nbr_cases) ) * 100
+ perc_state = (state_cases / float(case.nbr) ) * 100
res[case.id] = perc_state
else:
@@ -58,7 +58,7 @@ class report_crm_case(osv.osv):
cr.execute("select count(*) from crm_case_log l, ir_model m where l.model_id=m.id and m.model = '%s'" , model_name)
logs = cr.fetchone()[0]
- avg_ans = logs / case.nbr_cases
+ avg_ans = logs / case.nbr
res[case.id] = avg_ans
return res
@@ -68,7 +68,7 @@ class report_crm_case(osv.osv):
'user_id':fields.many2one('res.users', 'User', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
'nbr': fields.integer('# of Cases', readonly=True),
- 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True),
+ 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'avg_answers': fields.function(_get_data,string='Avg. Answers', method=True,type="integer"),
'perc_done': fields.function(_get_data,string='%Done', method=True,type="float"),
'perc_cancel': fields.function(_get_data,string='%Cancel', method=True,type="float"),
diff --git a/addons/report_crm/report_crm_claim_view.xml b/addons/report_crm/report_crm_claim_view.xml
index 8a9aa3d0273..8232d72792b 100644
--- a/addons/report_crm/report_crm_claim_view.xml
+++ b/addons/report_crm/report_crm_claim_view.xml
@@ -55,8 +55,9 @@
search
-
-
+
+
+
diff --git a/addons/report_crm/report_crm_fundraising.py b/addons/report_crm/report_crm_fundraising.py
index ef01c5246e5..397a50896bc 100644
--- a/addons/report_crm/report_crm_fundraising.py
+++ b/addons/report_crm/report_crm_fundraising.py
@@ -7,10 +7,8 @@ class report_crm_fundraising(osv.osv):
_inherit = "report.crm.case"
_columns = {
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]"),
- 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
'probability': fields.float('Avg. Probability', readonly=True),
'amount_revenue': fields.float('Est.Revenue', readonly=True),
- 'amount_costs': fields.float('Est.Cost', readonly=True),
'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True),
'delay_close': fields.char('Delay to close', size=20, readonly=True),
}
@@ -26,7 +24,6 @@ class report_crm_fundraising(osv.osv):
c.user_id,
c.section_id,
c.categ_id,
- c.stage_id,
count(*) as nbr,
0 as avg_answers,
0.0 as perc_done,
@@ -37,7 +34,7 @@ class report_crm_fundraising(osv.osv):
to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
from
crm_fundraising c
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state, c.user_id,c.section_id,c.categ_id,c.stage_id
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state, c.user_id,c.section_id,c.categ_id
)""")
report_crm_fundraising()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_crm/report_crm_fundraising_view.xml b/addons/report_crm/report_crm_fundraising_view.xml
index 633023d3b4c..1bdba2fb4a4 100644
--- a/addons/report_crm/report_crm_fundraising_view.xml
+++ b/addons/report_crm/report_crm_fundraising_view.xml
@@ -21,7 +21,6 @@
-
@@ -36,7 +35,6 @@
-
diff --git a/addons/report_crm/report_crm_lead_view.xml b/addons/report_crm/report_crm_lead_view.xml
index 4ce37467409..027238cc279 100644
--- a/addons/report_crm/report_crm_lead_view.xml
+++ b/addons/report_crm/report_crm_lead_view.xml
@@ -55,7 +55,9 @@
search
-
+
+
+
diff --git a/addons/report_crm/report_crm_opportunity_view.xml b/addons/report_crm/report_crm_opportunity_view.xml
index 9b2712ef57b..b4f149d3cfe 100644
--- a/addons/report_crm/report_crm_opportunity_view.xml
+++ b/addons/report_crm/report_crm_opportunity_view.xml
@@ -61,8 +61,9 @@
search
-
-
+
+
+
diff --git a/addons/report_crm/report_crm_phonecall_view.xml b/addons/report_crm/report_crm_phonecall_view.xml
index 27f9ceda835..b89570192ef 100644
--- a/addons/report_crm/report_crm_phonecall_view.xml
+++ b/addons/report_crm/report_crm_phonecall_view.xml
@@ -49,14 +49,13 @@
-
report.crm.phonecall.select
report.crm.phonecall
search
-
+
diff --git a/addons/report_crm/report_crm_view.xml b/addons/report_crm/report_crm_view.xml
index 61fe7766ddf..b69ee89548b 100644
--- a/addons/report_crm/report_crm_view.xml
+++ b/addons/report_crm/report_crm_view.xml
@@ -79,7 +79,6 @@
-
diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml
index bdf92843ed1..ac7201bbe2e 100644
--- a/addons/sale_crm/sale_crm_view.xml
+++ b/addons/sale_crm/sale_crm_view.xml
@@ -9,7 +9,8 @@
-
+
+
@@ -20,7 +21,7 @@
form
-
+
diff --git a/addons/sale_crm/wizard/makesale.py b/addons/sale_crm/wizard/makesale.py
index dc5d9875554..c6dc12abf11 100644
--- a/addons/sale_crm/wizard/makesale.py
+++ b/addons/sale_crm/wizard/makesale.py
@@ -130,16 +130,31 @@ class make_sale(wizard.interface):
if data['form']['close']:
case_obj.case_close(cr, uid, data['ids'])
-
- value = {
- 'domain': str([('id', 'in', new_ids)]),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'sale.order',
- 'view_id': False,
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
- }
+
+ if not new_ids:
+ return {}
+
+ if len(new_ids)<=1:
+ value = {
+ 'domain': str([('id', 'in', new_ids)]),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'sale.order',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'res_id': new_ids and new_ids[0]
+ }
+ else:
+ value = {
+ 'domain': str([('id', 'in', new_ids)]),
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'sale.order',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'res_id':new_ids
+ }
+
return value
states = {