summaryrefslogtreecommitdiff
path: root/addons/project_issue
diff options
context:
space:
mode:
authoratp (Open ERP) <atp@tinyerp.co.in>2010-06-22 10:45:44 +0530
committeratp (Open ERP) <atp@tinyerp.co.in>2010-06-22 10:45:44 +0530
commitb0efd26edd9f4e2aa75424b787ea46d2be15cd04 (patch)
treee78cdb693e62a5c9a17f77a395eec51fb34becbf /addons/project_issue
parent46bb1ea51be702758d68a5f69db32c82dbccf9bd (diff)
parent2319190c5a20cb8095f85cacca89a33164ba93d7 (diff)
[MERGE]: merge with lp:~openerp-dev/openobject-addons/trunk-dev-addons2
bzr revid: atp@tinyerp.co.in-20100622051544-c7hig73zk2at66cy
Diffstat (limited to 'addons/project_issue')
-rw-r--r--addons/project_issue/__openerp__.py5
-rw-r--r--addons/project_issue/board_project_issue_view.xml93
-rw-r--r--addons/project_issue/project_issue.py2
-rw-r--r--addons/project_issue/project_issue_menu.xml3
-rw-r--r--addons/project_issue/project_issue_view.xml2
-rw-r--r--addons/project_issue/report/project_issue_report_view.xml6
-rw-r--r--addons/project_issue/test/convert_issue_to_task.yml32
-rw-r--r--addons/project_issue/test/test_project_issue_states.yml112
8 files changed, 249 insertions, 6 deletions
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index 982d1688014..7339399cc08 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -45,8 +45,13 @@
'report/project_issue_report_view.xml',
'security/project_issue_security.xml',
'security/ir.model.access.csv',
+ "board_project_issue_view.xml",
],
'demo_xml': ['project_issue_demo.xml'],
+ 'test' : [
+ 'test/convert_issue_to_task.yml',
+ 'test/test_project_issue_states.yml'
+ ],
'installable': True,
'active': False,
}
diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml
new file mode 100644
index 00000000000..8b038d1036a
--- /dev/null
+++ b/addons/project_issue/board_project_issue_view.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="action_view_current_project_issue_tree" model="ir.actions.act_window">
+ <field name="name">Project issues</field>
+ <field name="res_model">project.issue</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="domain">[('user_id','=',uid),('state','in',['draft','open'])]</field>
+ <field name="view_id" ref="project_issue.project_issue_tree_view"/>
+ </record>
+
+ <record id="action_view_pending_project_issue_tree" model="ir.actions.act_window">
+ <field name="name">Project issues</field>
+ <field name="res_model">project.issue</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="domain">[('user_id','=',uid),('state','=','pending')]</field>
+ <field name="view_id" ref="project_issue.project_issue_tree_view"/>
+ </record>
+
+ <record id="action_project_issue_graph_state" model="ir.actions.act_window">
+ <field name="name">Project Issue</field>
+ <field name="res_model">project.issue.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">graph</field>
+ <field name="domain">[('user_id','=',uid)]</field>
+ <field name="view_id" ref="project_issue.view_project_issue_report_graph"/>
+ </record>
+
+ <record id="view_project_issue_graph_stage" model="ir.ui.view">
+ <field name="name">project.issue.report.graph</field>
+ <field name="model">project.issue.report</field>
+ <field name="type">graph</field>
+ <field name="arch" type="xml">
+ <graph orientation="vertical" string="Project Issue" type="bar">
+ <field name="stage_id"/>
+ <field name="nbr" operator="+"/>
+ <field group="True" name="user_id"/>
+ </graph>
+ </field>
+ </record>
+
+ <record id="action_project_issue_graph_stage" model="ir.actions.act_window">
+ <field name="name">Project Issue</field>
+ <field name="res_model">project.issue.report</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">graph</field>
+ <field name="domain">[('user_id','=',uid)]</field>
+ <field name="view_id" ref="view_project_issue_graph_stage"/>
+ </record>
+
+ <record id="board_project_issue_form" model="ir.ui.view">
+ <field name="name">board.project.issue.form</field>
+ <field name="model">board.board</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="My Board">
+ <hpaned>
+ <child1>
+ <action colspan="4" name="%(action_view_current_project_issue_tree)d" string="Current Issues" width="510"/>
+ <action colspan="4" name="%(action_view_pending_project_issue_tree)d" string="Pending Issues" width="510"/>
+ </child1>
+ <child2>
+ <vpaned>
+ <child1>
+ <action colspan="4" name="%(action_project_issue_graph_state)d" string="Issues By State" />
+ </child1>
+ <child2>
+ <action colspan="4" name="%(action_project_issue_graph_stage)d" string="Issues By Stage" />
+ </child2>
+ </vpaned>
+ </child2>
+ </hpaned>
+ </form>
+ </field>
+ </record>
+
+ <record id="open_board_project_issue" model="ir.actions.act_window">
+ <field name="name">Project Issue Dashboard</field>
+ <field name="res_model">board.board</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="usage">menu</field>
+ <field name="view_id" ref="board_project_issue_form"/>
+ </record>
+ <menuitem
+ id="menu_deshboard_project_issue"
+ name="Project Issue Dashboard" parent="project.next_id_86"
+ icon="terp-graph" action="open_board_project_issue"/>
+ </data>
+</openerp>
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 0f6979cca9c..c763306e602 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -182,7 +182,7 @@ class project_issue(osv.osv, crm.crm_case):
}
def _get_project(self, cr, uid, context):
- user = self.pool.get('res.users').browse(cr,uid,uid, context=context)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if user.context_project_id:
return user.context_project_id.id
return False
diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml
index c9bb771a2ac..ea902ea599f 100644
--- a/addons/project_issue/project_issue_menu.xml
+++ b/addons/project_issue/project_issue_menu.xml
@@ -46,6 +46,7 @@
view_type="form"/>
<!--<menuitem id="menu_aftertask" name="Bug" parent="project.menu_main" visible="False"/>-->
- <menuitem name="Issues" id="menu_project_issue_track" parent="project.menu_project_management" action="project_issue_categ_act0"/>
+ <menuitem name="Issues" id="menu_project_issue_track" parent="project.menu_project_management"
+ action="project_issue_categ_act0" sequence="3"/>
</data>
</openerp>
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 673f4239971..973e0a1a20c 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -2,7 +2,7 @@
<openerp>
<data>
- <menuitem id="menu_project_confi" name="Project Issue" parent="project.menu_definitions" sequence="1"/>
+ <menuitem id="menu_project_confi" name="Project Issue" parent="project.menu_definitions" sequence="2"/>
<record id="project_issue_categ_action" model="ir.actions.act_window">
<field name="name">Issue Categories</field>
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index b4d0af02185..47ae02005f2 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -93,7 +93,7 @@
<filter string="Project" name="project" icon="terp-folder-blue" context="{'group_by':'project_id'}" />
<filter string="Task" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'task_id'}"/>
<separator orientation="vertical" />
- <filter name="User" string="Responsible" icon="terp-personal"
+ <filter name="User" string="Responsible" icon="terp-personal"
domain="[]" context="{'group_by':'user_id'}" />
<filter string="Assigned to" name="Responsible" icon="terp-personal"
domain="[]" context="{'group_by':'assigned_to'}" />
@@ -118,7 +118,7 @@
context="{'group_by':'company_id'}" />
<separator orientation="vertical" />
- <filter string="Day" icon="terp-sale"
+ <filter string="Day" icon="terp-go-today"
domain="[]" context="{'group_by':'day'}"/>
<filter string="Month" icon="terp-go-month"
@@ -172,7 +172,7 @@
<field name="view_id" ref="view_project_issue_report_graph"/>
<field name="act_window_id" ref="action_project_issue_report"/>
</record>
- <menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
+ <menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<menuitem id="base.menu_project_report" name="Reporting" parent="base.menu_main_pm" sequence="50"/>
<menuitem action="action_project_issue_report" id="menu_project_issue_report_tree" parent="base.menu_project_report"/>
diff --git a/addons/project_issue/test/convert_issue_to_task.yml b/addons/project_issue/test/convert_issue_to_task.yml
new file mode 100644
index 00000000000..13ddef69251
--- /dev/null
+++ b/addons/project_issue/test/convert_issue_to_task.yml
@@ -0,0 +1,32 @@
+-
+ Create an issue
+-
+ !record {model: project.issue, id: project_issue_onchangeevent0}:
+ categ_id: project_issue.bug_categ
+ name: on_change event does not pass context to the method
+ project_id: project.project_project_22
+ working_hours_close: 0.0
+ working_hours_open: 0.0
+
+-
+ Check there is no task attached to issue
+-
+ !assert {model: project.issue, id: project_issue_onchangeevent0, string: There must not be any task attached to issue}:
+ - task_id.id == False
+
+-
+ Convert issue to task
+-
+ !python {model: project.issue}: |
+ self.convert_issue_task(cr, uid, [ref("project_issue_onchangeevent0")],
+ {"lang": "en_US", "project_id": False, "tz": False, "active_model": "ir.ui.menu",
+ "department_id": False, "section_id": False, "search_default_project_id":
+ False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
+ 1, "active_ids": [ref("project_issue.menu_project_issue_track")], "active_id":
+ ref("project_issue.menu_project_issue_track"), })
+
+-
+ Check there is a task attached to issue
+-
+ !assert {model: project.issue, id: project_issue_onchangeevent0, string: After creating a task for the issue there must be a task attached to it}:
+ - task_id.id != False
diff --git a/addons/project_issue/test/test_project_issue_states.yml b/addons/project_issue/test/test_project_issue_states.yml
new file mode 100644
index 00000000000..ee48c9a9df0
--- /dev/null
+++ b/addons/project_issue/test/test_project_issue_states.yml
@@ -0,0 +1,112 @@
+-
+ Create an issue
+-
+ !record {model: project.issue, id: project_issue_stockmovedates0}:
+ categ_id: project_issue.bug_categ
+ name: Stock Move dates
+ project_id: project.project_project_22
+ working_hours_close: 0.0
+ working_hours_open: 0.0
+-
+ Check if issue in 'draft' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}:
+ - state == 'draft'
+
+-
+ Open the issue
+-
+ !python {model: project.issue}: |
+ self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang":
+ "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz":
+ False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs":
+ 1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id":
+ False, "active_id": ref("project_issue.menu_project_issue_track"), })
+-
+ Check if issue in 'open' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}:
+ - state == 'open'
+
+-
+ Keep issue pending
+-
+ !python {model: project.issue}: |
+ self.case_pending(cr, uid, [ref("project_issue_stockmovedates0")],
+ {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
+ "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
+ False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
+ 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
+ })
+-
+ Check if issue in 'pending' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in pending state}:
+ - state == 'pending'
+
+
+-
+ Open the issue
+-
+ !python {model: project.issue}: |
+ self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang":
+ "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz":
+ False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs":
+ 1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id":
+ False, "active_id": ref("project_issue.menu_project_issue_track"), })
+-
+ Check if issue in 'open' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}:
+ - state == 'open'
+
+
+-
+ Cancel the issue
+-
+ !python {model: project.issue}: |
+ self.case_cancel(cr, uid, [ref("project_issue_stockmovedates0")],
+ {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
+ "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
+ False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
+ 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
+ })
+-
+ Check if issue in 'cancel' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in cancel state}:
+ - state == 'cancel'
+
+
+-
+ Reset the issue
+-
+ !python {model: project.issue}: |
+ self.case_reset(cr, uid, [ref("project_issue_stockmovedates0")],
+ {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
+ "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
+ False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
+ 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
+ })
+-
+ Check if issue in 'draft' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}:
+ - state == 'draft'
+
+
+-
+ Close the issue
+-
+ !python {model: project.issue}: |
+ self.case_close(cr, uid, [ref("project_issue_stockmovedates0")],
+ {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
+ "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
+ False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
+ 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
+ })
+-
+ Check if issue in 'done' state
+-
+ !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in done state}:
+ - state == 'done'