[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:
parent
03dcaabc64
commit
a704f7bd8d
|
@ -37,7 +37,6 @@
|
|||
],
|
||||
'installable': True,
|
||||
'auto_install':True,
|
||||
'category':'Hidden',
|
||||
|
||||
'category':'Hidden',
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -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
|
||||
|
|
|
|
@ -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/>
|
||||
|
|
|
@ -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 -->
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue