[IMP] adapt task and issue views for portal users

- give read access rights to group_portal_member on projet.task.type and project.task.work models
- hide action buttons and priority fields in form and list views
- a question remains: how to handle states and stages ?  state seems more revelant and simple to understand for portal users (and therefore should be shown through the statusbar widget) while stage is more interesing for internal organization

bzr revid: abo@openerp.com-20120601150718-dk49583g1tko118y
This commit is contained in:
Antonin Bourguignon 2012-06-01 17:07:18 +02:00
parent 03dcaabc64
commit a704f7bd8d
5 changed files with 74 additions and 67 deletions

View File

@ -37,7 +37,6 @@
],
'installable': True,
'auto_install':True,
'category':'Hidden',
'category':'Hidden',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,3 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_issues,project_issue,project_issue.model_project_issue,portal.group_portal_member,1,0,1,0
access_task,tasks,project.model_project_task,portal.group_portal_member,1,0,0,0
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_issues,project_issue,project_issue.model_project_issue,portal.group_portal_member,1,0,1,0
access_task,tasks,project.model_project_task,portal.group_portal_member,1,0,0,0
access_task_type,task_type,project.model_project_task_type,portal.group_portal_member,1,0,0,0
access_task_work,task_work,project.model_project_task_work,portal.group_portal_member,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_issues project_issue project_issue.model_project_issue portal.group_portal_member 1 0 1 0
3 access_task tasks project.model_project_task portal.group_portal_member 1 0 0 0
4 access_task_type task_type project.model_project_task_type portal.group_portal_member 1 0 0 0
5 access_task_work task_work project.model_project_task_work portal.group_portal_member 1 0 0 0

View File

@ -51,7 +51,7 @@
<group col="2" colspan="2">
<separator colspan="4" string="Performance"/>
<field name="planned_hours" widget="float_time"/>
<field name="effective_hours" widget="float_time" />
<field name="effective_hours" widget="float_time"/>
<field name="resource_calendar_id"/>
</group>
<newline/>
@ -128,7 +128,7 @@
</field>
<field name="partner_id" string="Partner"/>
</group>
<newline />
<newline/>
<group expand="0" string="Group By...">
<filter string="Manager" name="Manager" icon="terp-personal" domain = "[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" name="Partner" icon="terp-partner" domain = "[]" context="{'group_by':'partner_id'}"/>
@ -305,24 +305,26 @@
<field name="arch" type="xml">
<form string="Project" layout="manual">
<div class="oe_form_topbar">
<button name="do_open" string="Start Task" type="object"
states="draft,pending"/>
<button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
states="done,cancelled" context="{'button_reactivate':True}"/>
<button name="do_pending" string="Pending" type="object"
states="open"/>
<button name="action_close" string="Done" type="object"
states="draft,open,pending"/>
<button name="do_draft" string="Draft" type="object"
states="cancel,done"/>
<button name="%(action_project_task_delegate)d" string="Delegate" type="action"
states="pending,open,draft"/>
<button name="do_cancel" string="Cancel" type="object"
states="draft,open,pending" />
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
<span groups="base.group_user">
<button name="do_open" string="Start Task" type="object"
states="draft,pending"/>
<button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action"
states="done,cancelled" context="{'button_reactivate':True}"/>
<button name="do_pending" string="Pending" type="object"
states="open"/>
<button name="action_close" string="Done" type="object"
states="draft,open,pending"/>
<button name="do_draft" string="Draft" type="object"
states="cancel,done"/>
<button name="%(action_project_task_delegate)d" string="Delegate" type="action"
states="pending,open,draft"/>
<button name="do_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
</span>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"/>
</div>
@ -344,7 +346,7 @@
name="planned_hours"
widget="float_time"
attrs="{'readonly':[('state','!=','draft')]}"
groups="project.group_time_work_estimation_tasks"
groups="project.group_time_work_estimation_tasks"
on_change="onchange_planned(planned_hours, effective_hours)"/>
<field
name="effective_hours"
@ -358,10 +360,10 @@
<field colspan="4" name="description" nolabel="1" attrs="{'readonly':[('state','=','done')]}"/>
<field colspan="4" name="work_ids" nolabel="1" attrs="{'readonly':[('state','in',['done','draft'])]}" groups="project.group_tasks_work_on_tasks">
<tree string="Task Work" editable="top">
<field name="name" />
<field name="name"/>
<field name="hours" widget="float_time" sum="Spent Hours"/>
<field name="user_id" />
<field name="date" />
<field name="user_id"/>
<field name="date"/>
</tree>
</field>
</page>
@ -386,13 +388,13 @@
<page string="Extra Info" attrs="{'readonly':[('state','=','done')]}">
<group colspan="2" col="2">
<separator string="Planning" colspan="2"/>
<field name="priority"/>
<field name="priority" groups="base.group_user"/>
<field name="sequence"/>
<field name="state" groups="base.group_no_one"/>
</group>
<separator string="Miscellaneous" colspan="4"/>
<field name="partner_id" />
<field name="partner_id"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
<field name="state" groups="base.group_no_one"/>
<separator colspan="4" string="Notes"/>
@ -415,7 +417,7 @@
<field name="arch" type="xml">
<kanban default_group_by="stage_id" >
<field name="color"/>
<field name="priority"/>
<field name="priority" groups="base.group_user"/>
<field name="stage_id"/>
<field name="user_id"/>
<field name="user_email"/>
@ -518,16 +520,18 @@
<field name="remaining_hours" widget="float_time" sum="Remaining Hours" on_change="onchange_remaining(remaining_hours,planned_hours)" invisible="context.get('set_visible',False)" groups="project.group_time_work_estimation_tasks"/>
<field name="date_deadline" invisible="context.get('deadline_visible',True)"/>
<button name="do_open" string="Start Task" type="object"
states="draft,pending" icon="gtk-go-forward"/>
states="draft,pending" icon="gtk-go-forward" groups="base.group_user"/>
<button name="action_close" string="Done" type="object"
states="draft,open,pending" icon="gtk-apply"/>
states="draft,open,pending" icon="gtk-apply" groups="base.group_user"/>
<button name="%(action_project_task_delegate)d" string="Delegate" type="action"
states="pending,open,draft" icon="terp-personal"/>
states="pending,open,draft" icon="terp-personal" groups="base.group_user"/>
<field name="stage_id" invisible="context.get('set_visible',False)"/>
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
states="open,pending" icon="gtk-go-back"
attrs="{'invisible': [('stage_id','=', False)]}" groups="base.group_user"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
states="open,pending" icon="gtk-go-forward"
attrs="{'invisible': [('stage_id','=', False)]}" groups="base.group_user"/>
<field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/>
<field name="date_start" invisible="1" groups="base.group_no_one"/>
<field name="date_end" invisible="1" groups="base.group_no_one"/>
@ -589,8 +593,8 @@
<field name="name"/>
<filter name="project" string="Project" domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-check"/>
<field name="user_id">
<filter string="My Tasks" domain="[('user_id','=',uid)]" help="My Tasks" icon="terp-personal" />
<filter string="Unassigned Tasks" domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="terp-personal-" />
<filter string="My Tasks" domain="[('user_id','=',uid)]" help="My Tasks" icon="terp-personal"/>
<filter string="Unassigned Tasks" domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="terp-personal-"/>
</field>
</group>
<newline/>

View File

@ -8,13 +8,13 @@
<record model="crm.case.categ" id="bug_categ">
<field name="name">Maintenance</field>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
<field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="feature_request_categ">
<field name="name">Feature Requests</field>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
<field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
</record>
<!-- Case type_id -->

View File

@ -52,24 +52,26 @@
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<button name="case_open" string="Open" type="object"
states="draft,pending"/>
<button name="case_close" string="Done" type="object"
states="draft,open,pending"/>
<button name="case_pending" string="Pending" type="object"
states="draft,open"/>
<button name="case_escalate" string="Escalate" type="object"
states="draft,open,pending"/>
<button name="case_reset" string="Reset to New" type="object"
states="cancelled,done"/>
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back"
attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward"
attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
<span groups="base.group_user">
<button name="case_open" string="Open" type="object"
states="draft,pending"/>
<button name="case_close" string="Done" type="object"
states="draft,open,pending"/>
<button name="case_pending" string="Pending" type="object"
states="draft,open"/>
<button name="case_escalate" string="Escalate" type="object"
states="draft,open,pending"/>
<button name="case_reset" string="Reset to New" type="object"
states="cancelled,done"/>
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back"
attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward"
attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
</span>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"/>
</div>
@ -98,7 +100,7 @@
</group>
<group col="3" colspan="2">
<separator colspan="3" string="Status"/>
<field name="priority" colspan="3"/>
<field name="priority" colspan="3" groups="base.group_user"/>
<field name="task_id" on_change="onchange_task_id(task_id)"/>
<button string="Convert To Task" name="convert_issue_task" icon="gtk-index" type="object"
attrs="{'invisible':[('task_id','!=',False)]}" groups="base.group_user"/>
@ -145,24 +147,24 @@
<field name="name"/>
<field name="partner_id"/>
<field name="project_id"/>
<field name="priority" string="Priority"/>
<field name="priority" string="Priority" groups="base.group_user"/>
<field name="version_id" widget="selection"/>
<field name="user_id"/>
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
<field name="stage_id" widget="selection" readonly="1"/>
<button name="stage_previous" string="Previous" type="object"
icon="gtk-go-back" help="Change to Previous Stage"
attrs="{'invisible': [('stage_id','=', False)]}"/>
attrs="{'invisible': [('stage_id','=', False)]}" groups="base.group_user"/>
<button name="stage_next" string="Next" type="object"
icon="gtk-go-forward" help="Change to Next Stage"
attrs="{'invisible': [('stage_id','=', False)]}"/>
attrs="{'invisible': [('stage_id','=', False)]}" groups="base.group_user"/>
<field name="state" groups="base.group_no_one"/>
<button name="case_open" string="Open" type="object"
icon="gtk-go-forward" states="draft,pending"/>
icon="gtk-go-forward" states="draft,pending" groups="base.group_user"/>
<button name="case_close" string="Done" type="object"
icon="gtk-close" states="draft,open,pending"/>
icon="gtk-close" states="draft,open,pending" groups="base.group_user"/>
<button name="case_cancel" string="Cancel" type="object"
icon="gtk-cancel" states="draft,open,pending"/>
icon="gtk-cancel" states="draft,open,pending" groups="base.group_user"/>
<field name="categ_id" invisible="1"/>
<field name="task_id" invisible="1"/>
</tree>
@ -239,7 +241,7 @@
<kanban default_group_by="stage_id">
<field name="color"/>
<field name="state" groups="base.group_no_one"/>
<field name="priority"/>
<field name="priority" groups="base.group_user"/>
<field name="user_email"/>
<field name="user_id"/>
<templates>