diff --git a/addons/crm/__terp__.py b/addons/crm/__terp__.py
index d01f083c2d9..5ef83f99cbe 100644
--- a/addons/crm/__terp__.py
+++ b/addons/crm/__terp__.py
@@ -85,7 +85,7 @@ between mails and Open ERP.""",
'crm_helpdesk_menu.xml',
#'crm_report.xml',
'security/crm_security.xml',
- #'security/ir.model.access.csv',
+ 'security/ir.model.access.csv',
'process/crm_configuration_process.xml'
],
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index d30fc07a73f..7339832b083 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -6,6 +6,13 @@
"access_crm_case_rule","crm.case.rule","model_crm_case_rule","crm.group_crm_user",1,0,0,0
"access_crm_case_manger","crm.case manager","model_crm_case","crm.group_crm_user",1,1,1,1
"access_crm_case","crm.case","model_crm_case","crm.group_crm_manager",1,1,1,1
+"access_crm_claim","crm.claim","model_crm_claim","crm.group_crm_manager",1,1,1,1
+"access_crm_fundraising","crm.fundraising","model_crm_fundraising","crm.group_crm_manager",1,1,1,1
+"access_crm_helpdesk","crm.helpdesk","model_crm_helpdesk","crm.group_crm_manager",1,1,1,1
+"access_crm_meeting","crm.meeting","model_crm_meeting","crm.group_crm_manager",1,1,1,1
+"access_crm_lead","crm.lead","model_crm_lead","crm.group_crm_manager",1,1,1,1
+"access_crm_opportunity","crm.opportunity","model_crm_opportunity","crm.group_crm_manager",1,1,1,1
+"access_crm_phonecall","crm.phonecall","model_crm_phonecall","crm.group_crm_manager",1,1,1,1
"access_crm_case_log","crm.case.log","model_crm_case_log","crm.group_crm_user",1,1,1,1
"access_crm_case_history","crm.case.history","model_crm_case_history","crm.group_crm_user",1,1,1,1
"access_crm_case_section_manager","crm.case.section.manager","model_crm_case_section","crm.group_crm_manager",1,1,1,1
@@ -16,12 +23,6 @@
"access_crm_email_add_cc_manager","crm.email.add.cc","model_crm_email_add_cc","crm.group_crm_manager",1,1,1,1
"access_crm_email_add_cc_user","crm.email.add.cc","model_crm_email_add_cc","crm.group_crm_user",1,0,0,0
"access_crm_case_stage","crm.case.stage","model_crm_case_stage","crm.group_crm_user",1,0,0,0
-"access_report_crm_case_section_stage","report.crm.case.section.stage","model_report_crm_case_section_stage","crm.group_crm_manager",1,0,0,0
-"access_report_crm_case_section_categ_stage","report.crm.case.section.categ.stage","model_report_crm_case_section_categ_stage","crm.group_crm_manager",1,0,0,0
-"access_report_crm_case_section_categ_categ2","report.crm.case.section.categ.categ2","model_report_crm_case_section_categ_categ2","crm.group_crm_manager",1,0,0,
-"access_report_crm_case_section_categ2","report.crm.case.section.categ2","model_report_crm_case_section_categ2","crm.group_crm_manager",1,0,0,
"access_crm_case_stage_manager","crm.case.stage","model_crm_case_stage","crm.group_crm_manager",1,1,1,1
-"access_crm_menu_config_wizard","crm config wizard manager","model_crm_menu_config_wizard","crm.group_crm_manager",1,1,1,1
-"access_crm_menu_config_wizard system","crm config wizard manager system","model_crm_menu_config_wizard","base.group_system",1,1,1,1
-"access_crm_case_category2_user","crm_case_category2 user","model_crm_case_category2","crm.group_crm_user",1,0,0,0
-"access_crm_case_category2_manager","crm_case_category2 manager","model_crm_case_category2","crm.group_crm_manager",1,1,1,1
+"access_crm_case_resource_type_user","crm_case_resource_type user","model_crm_case_resource_type","crm.group_crm_user",1,0,0,0
+"access_crm_case_resource_type_manager","crm_case_resource_type manager","model_crm_case_resource_type","crm.group_crm_manager",1,1,1,1
diff --git a/addons/crm_hr/__terp__.py b/addons/crm_hr/__terp__.py
index 3faec9b3b96..a4715123679 100644
--- a/addons/crm_hr/__terp__.py
+++ b/addons/crm_hr/__terp__.py
@@ -40,6 +40,7 @@
'crm_hr_menu.xml',
'report_crm_hr_view.xml',
'security/crm_hr_security.xml',
+ 'security/ir.model.access.csv',
'board_crm_hr_statistical_view.xml',
],
'demo_xml': [
diff --git a/addons/crm_hr/security/crm_hr_security.xml b/addons/crm_hr/security/crm_hr_security.xml
index da970de6aa2..15fc8ce82d4 100644
--- a/addons/crm_hr/security/crm_hr_security.xml
+++ b/addons/crm_hr/security/crm_hr_security.xml
@@ -5,7 +5,7 @@
- crm.meeting.rule
+ crm.job.rule
diff --git a/addons/crm_hr/security/ir.model.access.csv b/addons/crm_hr/security/ir.model.access.csv
new file mode 100644
index 00000000000..a237d65ad78
--- /dev/null
+++ b/addons/crm_hr/security/ir.model.access.csv
@@ -0,0 +1,5 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_crm_job","crm.job","model_crm_job","crm.group_crm_manager",1,1,1,1
+"access_report_crm_job_user","report.crm.job.user","model_report_crm_job_user","crm.group_crm_manager",1,0,0,0
+"access_report_crm_job_categ","report.crm.job.categ","model_report_crm_job_categ","crm.group_crm_manager",1,0,0,0
+"access_repor_crm_job_section","report.crm.job.section","model_report_crm_job_section","crm.group_crm_manager",1,0,0,0
diff --git a/addons/crm_project/__terp__.py b/addons/crm_project/__terp__.py
index 2e05fcc0bae..7a63ce1d1f4 100644
--- a/addons/crm_project/__terp__.py
+++ b/addons/crm_project/__terp__.py
@@ -40,7 +40,8 @@
'crm_feature_view.xml',
'crm_feature_menu.xml',
'report_crm_project_bug_view.xml',
- 'security/crm_project_security.xml'
+ 'security/crm_project_security.xml',
+ 'security/ir.model.access.csv',
],
'demo_xml': ['crm_bugs_demo.xml'],
'installable': True,
diff --git a/addons/crm_project/security/ir.model.access.csv b/addons/crm_project/security/ir.model.access.csv
new file mode 100644
index 00000000000..189470f765f
--- /dev/null
+++ b/addons/crm_project/security/ir.model.access.csv
@@ -0,0 +1,6 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_crm_project_bug","crm.project.bug","model_crm_project_bug","crm.group_crm_manager",1,1,1,1
+"access_crm_project_future","crm.project.future","model_crm_project_future","crm.group_crm_manager",1,1,1,1
+"access_report_crm_project_bug_user","report.crm.project.bug.user","model_report_crm_project_bug_user","crm.group_crm_manager",1,0,0,0
+"access_report_crm_project_bug_categ","report.crm.project.bug.categ","model_report_crm_project_bug_categ","crm.group_crm_manager",1,0,0,0
+"access_repor_crm_project_bug_section","report.crm.project.bug.section","model_report_crm_project_bug_section","crm.group_crm_manager",1,0,0,0
diff --git a/addons/report_crm/report_crm.py b/addons/report_crm/report_crm.py
index c55f6ce69d5..b0ab10b82d8 100644
--- a/addons/report_crm/report_crm.py
+++ b/addons/report_crm/report_crm.py
@@ -191,5 +191,104 @@ class report_crm_case_section_stage(osv.osv):
report_crm_case_section_stage()
+class report_crm_case_section_type(osv.osv):
+ _name = "report.crm.case.section.type"
+ _description = "Cases by Section and Type"
+ _auto = False
+ _columns = {
+ 'name': fields.char('Year',size=64,required=False, readonly=True),
+ 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
+ ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
+ '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, 'State', size=16, readonly=True),
+ }
+ _order = 'section_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_case_section_type")
+ cr.execute("""
+ create view report_crm_case_section_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.section_id,
+ count(*) as nbr
+ from
+ crm_case c
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.section_id, c.state)""")
+
+report_crm_case_section_type()
+
+class report_crm_case_section_categ_stage(osv.osv):
+ _name = "report.crm.case.section.categ.stage"
+ _description = "Cases by Section, Category and Stage"
+ _auto = False
+ _columns = {
+ 'name': fields.char('Year',size=64,required=False, readonly=True),
+ 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
+ ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
+ '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, 'State', size=16, readonly=True),
+ }
+ _order = 'section_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_case_section_categ_stage")
+ cr.execute("""
+ create view report_crm_case_section_categ_stage as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.section_id,
+ count(*) as nbr
+ from
+ crm_case c
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.state, c.section_id)""")
+
+report_crm_case_section_categ_stage()
+
+class report_crm_case_section_categ_type(osv.osv):
+ _name = "report.crm.case.section.categ.type"
+ _description = "Cases by Section, Category and Type"
+ _auto = False
+ _columns = {
+ 'name': fields.char('Year',size=64,required=False, readonly=True),
+ 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
+ ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
+ '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, 'State', size=16, readonly=True),
+ }
+ _order = 'section_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_case_section_categ_type")
+ cr.execute("""
+ create view report_crm_case_section_categ_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date, 'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.section_id,
+ count(*) as nbr
+ from
+ crm_case c
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.state, c.section_id)""")
+
+report_crm_case_section_categ_type()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_crm/report_crm_claim.py b/addons/report_crm/report_crm_claim.py
index 57c0df8793f..2586ad2131e 100644
--- a/addons/report_crm/report_crm_claim.py
+++ b/addons/report_crm/report_crm_claim.py
@@ -128,4 +128,110 @@ class report_crm_claim_section(osv.osv):
)""")
report_crm_claim_section()
+class report_crm_claim_section_type(osv.osv):
+ _name = "report.crm.claim.section.type"
+ _inherit = "report.crm.case.section.type"
+ _description = "Claims by section and type"
+ _auto = False
+ _columns = {
+ 'type_id': fields.many2one('crm.case.resource.type', 'Claim Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_claim_section_type")
+ cr.execute("""
+ create view report_crm_claim_section_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.type_id,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ sum(planned_revenue) as amount_revenue,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_claim c
+ where c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""")
+
+report_crm_claim_section_type()
+
+class report_crm_claim_section_categ_stage(osv.osv):
+ _name = "report.crm.claim.section.categ.stage"
+ _inherit = "report.crm.case.section.categ.stage"
+ _description = "Claims by Section, Category and Stage"
+ _auto = False
+ _columns = {
+ 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'stage_id, categ_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_claim_section_categ_stage")
+ cr.execute("""
+ create view report_crm_claim_section_categ_stage as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_claim c
+ where c.categ_id is not null AND c.stage_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_claim_section_categ_stage()
+
+class report_crm_claim_section_categ_type(osv.osv):
+ _name = "report.crm.claim.section.categ.type"
+ _inherit = "report.crm.case.section.categ.type"
+ _description = "Claims by Section, Category and Type"
+ _auto = False
+ _columns = {
+ 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'type_id': fields.many2one('crm.case.resource.type', 'Claim Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'categ_id, type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_claim_section_categ_type")
+ cr.execute("""
+ create view report_crm_claim_section_categ_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date, 'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.type_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_claim c
+ where c.categ_id is not null AND c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_claim_section_categ_type()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/report_crm/report_crm_claim_view.xml b/addons/report_crm/report_crm_claim_view.xml
index 562ccbec8a4..43d57306596 100644
--- a/addons/report_crm/report_crm_claim_view.xml
+++ b/addons/report_crm/report_crm_claim_view.xml
@@ -186,6 +186,242 @@
-
+
+
+ #
+ # Claims by section and type
+ #
+
+
+ CRM Report - Sections and Type(Tree)
+ report.crm.claim.section.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Form)
+ report.crm.claim.section.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Graph)
+ report.crm.claim.section.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Select)
+ report.crm.claim.section.type
+
+ search
+
+
+
+
+
+
+
+
+ report.crm.claim.section.type
+ Claims by section and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Claims by section, category and stage
+ #
+
+
+ CRM Report - Section, Category and Stage(Tree)
+ report.crm.claim.section.categ.stage
+
+ tree
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Form)
+ report.crm.claim.section.categ.stage
+
+ form
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.claim.section.categ.stage
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.claim.section.categ.stage
+
+ search
+
+
+
+
+
+
+
+
+
+ report.crm.claim.section.categ.stage
+ Claims by section, category and stage
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Claims by section, category and type
+ #
+
+
+ CRM Report - Section, Category and Type(Tree)
+ report.crm.claim.section.categ.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Form)
+ report.crm.claim.section.categ.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.claim.section.categ.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.claim.section.categ.type
+
+ search
+
+
+
+
+
+
+
+
+
+
+ report.crm.claim.section.categ.type
+ Claims by section, category and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/report_crm/report_crm_fundraising.py b/addons/report_crm/report_crm_fundraising.py
index 4ee8911a776..2cf752ea9ce 100644
--- a/addons/report_crm/report_crm_fundraising.py
+++ b/addons/report_crm/report_crm_fundraising.py
@@ -128,4 +128,110 @@ class report_crm_fundraising_section(osv.osv):
)""")
report_crm_fundraising_section()
+class report_crm_fundraising_section_type(osv.osv):
+ _name = "report.crm.fundraising.section.type"
+ _inherit = "report.crm.case.section.type"
+ _description = "Fundraising by section and type"
+ _auto = False
+ _columns = {
+ 'type_id': fields.many2one('crm.case.resource.type', 'Fundraising Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_fundraising_section_type")
+ cr.execute("""
+ create view report_crm_fundraising_section_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.type_id,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ sum(planned_revenue) as amount_revenue,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_fundraising c
+ where c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""")
+
+report_crm_fundraising_section_type()
+
+class report_crm_fundraising_section_categ_stage(osv.osv):
+ _name = "report.crm.fundraising.section.categ.stage"
+ _inherit = "report.crm.case.section.categ.stage"
+ _description = "Fundraising by Section, Category and Stage"
+ _auto = False
+ _columns = {
+ 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'stage_id, categ_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_fundraising_section_categ_stage")
+ cr.execute("""
+ create view report_crm_fundraising_section_categ_stage as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_fundraising c
+ where c.categ_id is not null AND c.stage_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_fundraising_section_categ_stage()
+
+class report_crm_fundraising_section_categ_type(osv.osv):
+ _name = "report.crm.fundraising.section.categ.type"
+ _inherit = "report.crm.case.section.categ.type"
+ _description = "Fundraising by Section, Category and Type"
+ _auto = False
+ _columns = {
+ 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'type_id': fields.many2one('crm.case.resource.type', 'Fundraising Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.fundraising')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'categ_id, type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_fundraising_section_categ_type")
+ cr.execute("""
+ create view report_crm_fundraising_section_categ_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date, 'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.type_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_fundraising c
+ where c.categ_id is not null AND c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_fundraising_section_categ_type()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/report_crm/report_crm_fundraising_view.xml b/addons/report_crm/report_crm_fundraising_view.xml
index 0ee491fc5b0..bada63a0ae5 100644
--- a/addons/report_crm/report_crm_fundraising_view.xml
+++ b/addons/report_crm/report_crm_fundraising_view.xml
@@ -71,7 +71,7 @@
-
+
report.crm.fundraising.categ.tree
@@ -138,7 +138,7 @@
-
+
report.crm.fundraising.section.tree
@@ -187,5 +187,240 @@
+
+ #
+ # Fundraising by section and type
+ #
+
+
+ CRM Report - Sections and Type(Tree)
+ report.crm.fundraising.section.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Form)
+ report.crm.fundraising.section.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Graph)
+ report.crm.fundraising.section.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Select)
+ report.crm.fundraising.section.type
+
+ search
+
+
+
+
+
+
+
+
+ report.crm.fundraising.section.type
+ Fundraising by section and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Fundraising by section, category and stage
+ #
+
+
+ CRM Report - Section, Category and Stage(Tree)
+ report.crm.fundraising.section.categ.stage
+
+ tree
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Form)
+ report.crm.fundraising.section.categ.stage
+
+ form
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.fundraising.section.categ.stage
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.fundraising.section.categ.stage
+
+ search
+
+
+
+
+
+
+
+
+
+ report.crm.fundraising.section.categ.stage
+ Fundraising by section, category and stage
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Fundraising by section, category and type
+ #
+
+
+ CRM Report - Section, Category and Type(Tree)
+ report.crm.fundraising.section.categ.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Form)
+ report.crm.fundraising.section.categ.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.fundraising.section.categ.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.fundraising.section.categ.type
+
+ search
+
+
+
+
+
+
+
+
+
+
+ report.crm.fundraising.section.categ.type
+ Fundraising by section, category and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
diff --git a/addons/report_crm/report_crm_lead.py b/addons/report_crm/report_crm_lead.py
index 35b0b799235..479b93445c4 100644
--- a/addons/report_crm/report_crm_lead.py
+++ b/addons/report_crm/report_crm_lead.py
@@ -164,4 +164,110 @@ class report_crm_lead_section_stage(osv.osv):
report_crm_lead_section_stage()
+class report_crm_lead_section_type(osv.osv):
+ _name = "report.crm.lead.section.type"
+ _inherit = "report.crm.case.section.type"
+ _description = "Leads by section and type"
+ _auto = False
+ _columns = {
+ 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_type")
+ cr.execute("""
+ create view report_crm_lead_section_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.type_id,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ sum(planned_revenue) as amount_revenue,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_lead c
+ where c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""")
+
+report_crm_lead_section_type()
+
+class report_crm_lead_section_categ_stage(osv.osv):
+ _name = "report.crm.lead.section.categ.stage"
+ _inherit = "report.crm.case.section.categ.stage"
+ _description = "Leads by Section, Category and Stage"
+ _auto = False
+ _columns = {
+ 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'stage_id, categ_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_stage")
+ cr.execute("""
+ create view report_crm_lead_section_categ_stage as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_lead c
+ where c.categ_id is not null AND c.stage_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_lead_section_categ_stage()
+
+class report_crm_lead_section_categ_type(osv.osv):
+ _name = "report.crm.lead.section.categ.type"
+ _inherit = "report.crm.case.section.categ.type"
+ _description = "Leads by Section, Category and Type"
+ _auto = False
+ _columns = {
+ 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'categ_id, type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_type")
+ cr.execute("""
+ create view report_crm_lead_section_categ_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date, 'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.type_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_lead c
+ where c.categ_id is not null AND c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_lead_section_categ_type()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/report_crm/report_crm_lead_view.xml b/addons/report_crm/report_crm_lead_view.xml
index 10782abeab3..8dbec663dd2 100644
--- a/addons/report_crm/report_crm_lead_view.xml
+++ b/addons/report_crm/report_crm_lead_view.xml
@@ -246,5 +246,240 @@
+
+ #
+ # Leads by section and type
+ #
+
+
+ CRM Report - Sections and Type(Tree)
+ report.crm.lead.section.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Form)
+ report.crm.lead.section.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Graph)
+ report.crm.lead.section.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Select)
+ report.crm.lead.section.type
+
+ search
+
+
+
+
+
+
+
+
+ report.crm.lead.section.type
+ Leads by section and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Leads by section, category and stage
+ #
+
+
+ CRM Report - Section, Category and Stage(Tree)
+ report.crm.lead.section.categ.stage
+
+ tree
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Form)
+ report.crm.lead.section.categ.stage
+
+ form
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.lead.section.categ.stage
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.lead.section.categ.stage
+
+ search
+
+
+
+
+
+
+
+
+
+ report.crm.lead.section.categ.stage
+ Leads by section, category and stage
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Leads by section, category and type
+ #
+
+
+ CRM Report - Section, Category and Type(Tree)
+ report.crm.lead.section.categ.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Form)
+ report.crm.lead.section.categ.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.lead.section.categ.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.lead.section.categ.type
+
+ search
+
+
+
+
+
+
+
+
+
+
+ report.crm.lead.section.categ.type
+ Leads by section, category and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
diff --git a/addons/report_crm/report_crm_opportunity.py b/addons/report_crm/report_crm_opportunity.py
index dbd3149556d..796ae488442 100644
--- a/addons/report_crm/report_crm_opportunity.py
+++ b/addons/report_crm/report_crm_opportunity.py
@@ -128,4 +128,109 @@ class report_crm_opportunity_section(osv.osv):
)""")
report_crm_opportunity_section()
+class report_crm_opportunity_section_type(osv.osv):
+ _name = "report.crm.opportunity.section.type"
+ _inherit = "report.crm.case.section.type"
+ _description = "Opportunity by section and type"
+ _auto = False
+ _columns = {
+ 'type_id': fields.many2one('crm.case.resource.type', 'Opportunity Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_opportunity_section_type")
+ cr.execute("""
+ create view report_crm_opportunity_section_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.state,
+ c.type_id,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ sum(planned_revenue) as amount_revenue,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_opportunity c
+ where c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""")
+
+report_crm_opportunity_section_type()
+
+class report_crm_opportunity_section_categ_stage(osv.osv):
+ _name = "report.crm.opportunity.section.categ.stage"
+ _inherit = "report.crm.case.section.categ.stage"
+ _description = "Opportunity by Section, Category and Stage"
+ _auto = False
+ _columns = {
+ 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'stage_id, categ_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_opportunity_section_categ_stage")
+ cr.execute("""
+ create view report_crm_opportunity_section_categ_stage as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date,'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_opportunity c
+ where c.categ_id is not null AND c.stage_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_opportunity_section_categ_stage()
+
+class report_crm_opportunity_section_categ_type(osv.osv):
+ _name = "report.crm.opportunity.section.categ.type"
+ _inherit = "report.crm.case.section.categ.type"
+ _description = "Opportunity by Section, Category and Type"
+ _auto = False
+ _columns = {
+ 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'type_id': fields.many2one('crm.case.resource.type', 'Opportunity Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True),
+ 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+ }
+ _order = 'categ_id, type_id'
+
+ def init(self, cr):
+ tools.sql.drop_view_if_exists(cr, "report_crm_opportunity_section_categ_type")
+ cr.execute("""
+ create view report_crm_opportunity_section_categ_type as (
+ select
+ min(c.id) as id,
+ to_char(c.create_date, 'YYYY') as name,
+ to_char(c.create_date, 'MM') as month,
+ c.user_id,
+ c.categ_id,
+ c.type_id,
+ c.state,
+ c.stage_id,
+ c.section_id,
+ count(*) as nbr,
+ to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ from
+ crm_opportunity c
+ where c.categ_id is not null AND c.type_id is not null
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""")
+
+report_crm_opportunity_section_categ_type()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/report_crm/report_crm_opportunity_view.xml b/addons/report_crm/report_crm_opportunity_view.xml
index 6e2f82d99fa..17310cfd0aa 100644
--- a/addons/report_crm/report_crm_opportunity_view.xml
+++ b/addons/report_crm/report_crm_opportunity_view.xml
@@ -187,5 +187,240 @@
+
+ #
+ # Opportunity by section and type
+ #
+
+
+ CRM Report - Sections and Type(Tree)
+ report.crm.opportunity.section.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Form)
+ report.crm.opportunity.section.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Graph)
+ report.crm.opportunity.section.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Select)
+ report.crm.opportunity.section.type
+
+ search
+
+
+
+
+
+
+
+
+ report.crm.opportunity.section.type
+ Opportunity by section and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # Opportunity by section, category and stage
+ #
+
+
+ CRM Report - Section, Category and Stage(Tree)
+ report.crm.opportunity.section.categ.stage
+
+ tree
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Form)
+ report.crm.opportunity.section.categ.stage
+
+ form
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.opportunity.section.categ.stage
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.opportunity.section.categ.stage
+
+ search
+
+
+
+
+
+
+
+
+
+ report.crm.opportunity.section.categ.stage
+ Opportunity by section, category and stage
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
+
+ #
+ # opportunitys by section, category and type
+ #
+
+
+ CRM Report - Section, Category and Type(Tree)
+ report.crm.opportunity.section.categ.type
+
+ tree
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Form)
+ report.crm.opportunity.section.categ.type
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.opportunity.section.categ.type
+ graph
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.opportunity.section.categ.type
+
+ search
+
+
+
+
+
+
+
+
+
+
+ report.crm.opportunity.section.categ.type
+ Opportunity by section, category and type
+ form
+ graph,tree
+
+
+
+
+ graph
+
+
+
+
+
+ tree
+
+
+
+
diff --git a/addons/report_crm/report_crm_phonecall.py b/addons/report_crm/report_crm_phonecall.py
index c23e3357329..a9aad6241e7 100644
--- a/addons/report_crm/report_crm_phonecall.py
+++ b/addons/report_crm/report_crm_phonecall.py
@@ -36,7 +36,7 @@ report_crm_phonecall_user()
class report_crm_phonecall_categ(osv.osv):
_name = "report.crm.phonecall.categ"
- _description = "Phone Calls by section and category"
+ _description = "Phone calls by section and category"
_auto = False
_inherit = "report.crm.case.categ"
_columns = {
@@ -71,7 +71,7 @@ report_crm_phonecall_categ()
class report_crm_phonecall_section(osv.osv):
_name = "report.crm.phonecall.section"
- _description = "Phonecalls by Section"
+ _description = "Phone calls by Section"
_auto = False
_inherit = "report.crm.case.section"
diff --git a/addons/report_crm/report_crm_view.xml b/addons/report_crm/report_crm_view.xml
index d2cbc4e7bc9..a5ac4a942b5 100644
--- a/addons/report_crm/report_crm_view.xml
+++ b/addons/report_crm/report_crm_view.xml
@@ -3,8 +3,8 @@
+ Cases by user and section
+ -->
report.crm.case.user.tree
@@ -268,6 +268,186 @@
tree
+
+ #
+ # Cases by section and type of case
+ #
+
+
+ CRM Report - Sections and Type(Tree)
+ report.crm.case.section.type
+ tree
+
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Sections and Type(Form)
+ report.crm.case.section.type
+ form
+
+
+
+
+
+
+ CRM Report - Sections and Type(Select)
+ report.crm.case.section.type
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ report.crm.case.section.type
+ form
+ tree
+
+
+
+ #
+ # Cases by section, category and stage
+ #
+
+
+ CRM Report - Section, Category and Stage(Tree)
+ report.crm.case.section.categ.stage
+ tree
+
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Form)
+ report.crm.case.section.categ.stage
+ form
+
+
+
+
+
+
+ CRM Report - Section, Category and Stage(Select)
+ report.crm.case.section.categ.stage
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ report.crm.case.section.categ.stage
+ form
+ tree
+
+
+
+ #
+ # Cases by section, category and type
+ #
+
+
+ CRM Report - Section, Category and Type(Tree)
+ report.crm.case.section.categ.type
+ tree
+
+
+
+
+
+
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Form)
+ report.crm.case.section.categ.type
+ form
+
+
+
+
+
+
+ CRM Report - Section, Category and Type(Select)
+ report.crm.case.section.categ.type
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ report.crm.case.section.categ.type
+ form
+ tree
+
+
@@ -318,6 +498,6 @@
[('state','=','open')]
-
+
diff --git a/addons/report_crm/security/ir.model.access.csv b/addons/report_crm/security/ir.model.access.csv
index 12746e5d274..8130bd8ddcb 100644
--- a/addons/report_crm/security/ir.model.access.csv
+++ b/addons/report_crm/security/ir.model.access.csv
@@ -3,4 +3,35 @@ access_report_crm_case_user,report.crm.case.user,model_report_crm_case_user,crm.
access_report_crm_case_categ,report.crm.case.categ,model_report_crm_case_categ,crm.group_crm_manager,1,0,0,0
access_repor_crm_case_section,report.crm.case.section,model_report_crm_case_section,crm.group_crm_manager,1,0,0,0
access_report_crm_case_service_dashboard,report.crm.case.service.dashboard,model_report_crm_case_service_dashboard,crm.group_crm_manager,1,0,0,0
-
+access_report_crm_case_section_stage,report.crm.case.section.stage,model_report_crm_case_section_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_case_section_categ_stage,report.crm.case.section.categ.stage,model_report_crm_case_section_categ_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_case_section_categ_type,report.crm.case.section.categ.type,model_report_crm_case_section_categ_type,crm.group_crm_manager,1,0,0,
+access_report_crm_case_section_type,report.crm.case.section.type,model_report_crm_case_section_type,crm.group_crm_manager,1,0,0,
+access_report_crm_claim_user,report.crm.claim.user,model_report_crm_claim_user,crm.group_crm_manager,1,0,0,0
+access_report_crm_claim_categ,report.crm.claim.categ,model_report_crm_claim_categ,crm.group_crm_manager,1,0,0,0
+access_repor_crm_claim_section,report.crm.claim.section,model_report_crm_claim_section,crm.group_crm_manager,1,0,0,0
+access_report_crm_claim_section_categ_stage,report.crm.claim.section.categ.stage,model_report_crm_claim_section_categ_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_claim_section_categ_type,report.crm.claim.section.categ.type,model_report_crm_claim_section_categ_type,crm.group_crm_manager,1,0,0,
+access_report_crm_claim_section_type,report.crm.claim.section.type,model_report_crm_claim_section_type,crm.group_crm_manager,1,0,0,
+access_report_crm_fundraising_user,report.crm.fundraising.user,model_report_crm_fundraising_user,crm.group_crm_manager,1,0,0,0
+access_report_crm_fundraising_categ,report.crm.fundraising.categ,model_report_crm_fundraising_categ,crm.group_crm_manager,1,0,0,0
+access_repor_crm_fundraising_section,report.crm.fundraising.section,model_report_crm_fundraising_section,crm.group_crm_manager,1,0,0,0
+access_report_crm_fundraising_section_categ_stage,report.crm.fundraising.section.categ.stage,model_report_crm_fundraising_section_categ_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_fundraising_section_categ_type,report.crm.fundraising.section.categ.type,model_report_crm_fundraising_section_categ_type,crm.group_crm_manager,1,0,0,
+access_report_crm_fundraising_section_type,report.crm.fundraising.section.type,model_report_crm_fundraising_section_type,crm.group_crm_manager,1,0,0,
+access_report_crm_lead_user,report.crm.lead.user,model_report_crm_lead_user,crm.group_crm_manager,1,0,0,0
+access_report_crm_lead_categ,report.crm.lead.categ,model_report_crm_lead_categ,crm.group_crm_manager,1,0,0,0
+access_repor_crm_lead_section,report.crm.lead.section,model_report_crm_lead_section,crm.group_crm_manager,1,0,0,0
+access_report_crm_lead_section_stage,report.crm.lead.section.stage,model_report_crm_lead_section_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_lead_section_categ_stage,report.crm.lead.section.categ.stage,model_report_crm_lead_section_categ_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_lead_section_categ_type,report.crm.lead.section.categ.type,model_report_crm_lead_section_categ_type,crm.group_crm_manager,1,0,0,
+access_report_crm_lead_section_type,report.crm.lead.section.type,model_report_crm_lead_section_type,crm.group_crm_manager,1,0,0,
+access_report_crm_opportunity_user,report.crm.opportunity.user,model_report_crm_opportunity_user,crm.group_crm_manager,1,0,0,0
+access_report_crm_opportunity_categ,report.crm.opportunity.categ,model_report_crm_opportunity_categ,crm.group_crm_manager,1,0,0,0
+access_repor_crm_opportunity_section,report.crm.opportunity.section,model_report_crm_opportunity_section,crm.group_crm_manager,1,0,0,0
+access_report_crm_opportunity_section_categ_stage,report.crm.opportunity.section.categ.stage,model_report_crm_opportunity_section_categ_stage,crm.group_crm_manager,1,0,0,0
+access_report_crm_opportunity_section_categ_type,report.crm.opportunity.section.categ.type,model_report_crm_opportunity_section_categ_type,crm.group_crm_manager,1,0,0,
+access_report_crm_opportunity_section_type,report.crm.opportunity.section.type,model_report_crm_opportunity_section_type,crm.group_crm_manager,1,0,0,
+access_report_crm_phonecall_user,report.crm.phonecall.user,model_report_crm_phonecall_user,crm.group_crm_manager,1,0,0,0
+access_report_crm_phonecall_categ,report.crm.phonecall.categ,model_report_crm_phonecall_categ,crm.group_crm_manager,1,0,0,0
+access_repor_crm_phonecall_section,report.crm.phonecall.section,model_report_crm_phonecall_section,crm.group_crm_manager,1,0,0,0