diff options
| author | atp (Open ERP) <atp@tinyerp.co.in> | 2010-06-22 10:45:44 +0530 |
|---|---|---|
| committer | atp (Open ERP) <atp@tinyerp.co.in> | 2010-06-22 10:45:44 +0530 |
| commit | b0efd26edd9f4e2aa75424b787ea46d2be15cd04 (patch) | |
| tree | e78cdb693e62a5c9a17f77a395eec51fb34becbf /addons/project_issue | |
| parent | 46bb1ea51be702758d68a5f69db32c82dbccf9bd (diff) | |
| parent | 2319190c5a20cb8095f85cacca89a33164ba93d7 (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__.py | 5 | ||||
| -rw-r--r-- | addons/project_issue/board_project_issue_view.xml | 93 | ||||
| -rw-r--r-- | addons/project_issue/project_issue.py | 2 | ||||
| -rw-r--r-- | addons/project_issue/project_issue_menu.xml | 3 | ||||
| -rw-r--r-- | addons/project_issue/project_issue_view.xml | 2 | ||||
| -rw-r--r-- | addons/project_issue/report/project_issue_report_view.xml | 6 | ||||
| -rw-r--r-- | addons/project_issue/test/convert_issue_to_task.yml | 32 | ||||
| -rw-r--r-- | addons/project_issue/test/test_project_issue_states.yml | 112 |
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' |
