odoo/addons/project/project_view.xml

604 lines
32 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="terp-project" id="menu_main" name="Project Management"/>
<menuitem id="menu_tasks" name="Tasks" parent="menu_main"/>
<menuitem id="menu_definitions" name="Configuration" parent="project.menu_main" sequence="1"/>
<!-- Project -->
<record id="edit_project" model="ir.ui.view">
<field name="name">project.project.form</field>
<field name="model">project.project</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Project">
<group colspan="4" col="6">
<field name="name" select="1"/>
<field name="parent_id"/>
<field name="manager" select="1"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="progress_rate" widget="progressbar"/>
</group>
<notebook colspan="4">
<page string="Administration">
<field name="warn_manager"/>
<field name="priority"/>
<field name="timesheet_id"/>
<field name="active" select="2"/>
<field name="planned_hours" widget="float_time"/>
<field name="effective_hours" widget="float_time"/>
<field name="category_id" select="2" context="{'default_name':name}"/>
<newline/>
<separator colspan="4" string="Project's members"/>
<field colspan="4" name="members" nolabel="1"/>
<group col="9" colspan="8">
<field name="state" select="1"/>
<button name="set_template" string="Set as Template" type="object" states="open" icon="gtk-convert"/>
<button name="set_open" string="Reactivate Project" type="object" states="pending,cancelled,done" icon="gtk-ok"/>
<button name="set_pending" string="Pending" type="object" states="open" icon="gtk-media-pause"/>
<button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
<button name="set_done" string="Done" type="object" states="open,pending" icon="gtk-ok"/>
<button name="reset_project" string="Reset as Project" type="object" states="template" icon="gtk-convert"/>
<button name="duplicate_template"
string="New Project Based on Template"
type="object"
states="template" icon="gtk-execute"/>
</group>
</page>
<page groups="base.group_extended" string="Partner Info">
<field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1"/>
<field domain="[('partner_id','=',partner_id)]" name="contact_id" select="2"/>
<field name="warn_customer"/>
<newline/>
<separator colspan="2" string="Mail Header"/>
<separator colspan="2" string="Mail Footer"/>
<field name="warn_header" nolabel="1" colspan="2"/>
<field name="warn_footer" nolabel="1" colspan="2"/>
<group col="3" colspan="4">
<separator string="Automatic variables for headers and footer. Use exactly the same notation." colspan="4"/>
<label string="Task: %%(name)s"/>
<label string="User: %%(user_id)s"/>
<label string="ID: %%(task_id)s"/>
<label string="Status: %%(state)s"/>
<label string="Date Start: %%(date_start)s"/>
<label string="Date Stop: %%(date_stop)s"/>
</group>
</page>
<page string="Notes">
<field colspan="4" name="notes" nolabel="1"/>
</page>
</notebook>
<newline/>
</form>
</field>
</record>
<record id="view_project_list" model="ir.ui.view">
<field name="name">project.project.list</field>
<field name="model">project.project</field>
<field name="type">tree</field>
<field name="priority" eval="5"/>
<field name="arch" type="xml">
<tree string="Projects">
<field name="complete_name"/>
<field name="manager"/>
<field name="partner_id"/>
<field name="effective_hours" widget="float_time"/>
<field name="total_hours" widget="float_time"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_project" model="ir.ui.view">
<field name="name">project.project.tree</field>
<field name="model">project.project</field>
<field name="type">tree</field>
<field name="field_parent">child_id</field>
<field name="arch" type="xml">
<tree string="Projects">
<field name="name"/>
<field name="manager"/>
<field name="partner_id"/>
<field name="planned_hours" widget="float_time"/>
<field name="total_hours" widget="float_time"/>
<field name="effective_hours" widget="float_time"/>
<field name="progress_rate" widget="progressbar"/>
<field name="state"/>
</tree>
</field>
</record>
<menuitem id="menu_all_project" parent="project.menu_main" name="Projects"/>
<record id="open_view_project_all" model="ir.actions.act_window">
<field name="name">All projects</field>
<field name="res_model">project.project</field>
<field name="view_type">form</field>
<field name="domain">[]</field>
<field name="view_id" ref="view_project"/>
</record>
<menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_all_project"/>
<record id="open_view_project_open" model="ir.actions.act_window">
<field name="name">Running projects</field>
<field name="res_model">project.project</field>
<field name="view_type">form</field>
<field name="domain">[('state','=','open')]</field>
<field name="view_id" ref="view_project"/>
</record>
<menuitem action="open_view_project_open" id="menu_open_view_project_open" parent="menu_open_view_project_all"/>
<record id="open_view_template_project" model="ir.actions.act_window">
<field name="name">Template of Projects</field>
<field name="res_model">project.project</field>
<field name="view_type">form</field>
<field name="domain">[('state','=','template')]</field>
<field name="view_id" ref="view_project"/>
</record>
<menuitem action="open_view_template_project" id="menu_template_project" parent="project.menu_definitions"/>
<record id="open_view_project" model="ir.actions.act_window">
<field name="name">New Project</field>
<field name="res_model">project.project</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,calendar</field>
<field name="view_id" eval="False"/>
</record>
<menuitem action="open_view_project" id="menu_open_view_project" parent="menu_all_project" sequence="50"/>
<record id="view_task_work_form" model="ir.ui.view">
<field name="name">project.task.work.form</field>
<field name="model">project.task.work</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Task Work">
<field colspan="4" name="name" select="1"/>
<field name="hours" select="1" widget="float_time"/>
<field name="date" select="1"/>
<field name="user_id" select="1"/>
</form>
</field>
</record>
<record id="view_task_work_tree" model="ir.ui.view">
<field name="name">project.task.work.tree</field>
<field name="model">project.task.work</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="top" string="Task Work">
<field name="date"/>
<field name="name"/>
<field name="hours" widget="float_time"/>
<field name="user_id"/>
</tree>
</field>
</record>
<record id="view_my_project" model="ir.ui.view">
<field name="name">project.project.tree</field>
<field name="model">project.project</field>
<field name="type">tree</field>
<field name="field_parent">child_id</field>
<field name="arch" type="xml">
<tree string="My projects">
<field name="name"/>
<field name="partner_id"/>
<field name="planned_hours" widget="float_time"/>
<field name="effective_hours" widget="float_time"/>
<field name="progress_rate" widget="progressbar"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="open_view_my_project" model="ir.actions.act_window">
<field name="name">My Projects</field>
<field name="res_model">project.project</field>
<field name="view_type">form</field>
<field name="domain">[('manager', '=', uid)]</field>
<field name="view_id" ref="view_my_project"/>
</record>
<menuitem action="open_view_my_project" id="menu_open_view_my_project" parent="menu_all_project"
sequence="1"/>
<record id="open_view_my_project_my_run" model="ir.actions.act_window">
<field name="name">My Running Projects</field>
<field name="res_model">project.project</field>
<field name="view_type">form</field>
<field name="domain">[('manager', '=', uid),('state','=','open')]</field>
<field name="view_id" ref="view_my_project"/>
</record>
<menuitem
action="open_view_my_project_my_run"
id="menu_open_view_my_project_my_run"
parent="menu_open_view_my_project"/>
<record id="open_view_my_project_open" model="ir.actions.act_window">
<field name="name">Projects Structure</field>
<field name="res_model">project.project</field>
<field name="view_type">tree</field>
<field name="domain">[('parent_id','=',False)]</field>
<field name="view_id" ref="view_my_project"/>
</record>
<menuitem
action="open_view_my_project_open"
id="menu_open_view_my_project_open"
parent="project.menu_all_project"/>
<!-- Wizard for compute remaining hours -->
<record id="view_config_compute_remaining" model="ir.ui.view">
<field name="name">Compute Remaining Hours </field>
<field name="model">config.compute.remaining</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Remaining Hours">
<separator colspan="4" string="Change Remaining Hours"/>
<newline/>
<field name="remaining_hours" widget="float_time"/>
<group col="4" colspan="4">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-ok" name="compute_hours" string="Update" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_config_compute_remaining" model="ir.actions.act_window">
<field name="name">Compute Remaining Hours</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">config.compute.remaining</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!-- Task -->
<record id="view_task_form2" model="ir.ui.view">
<field name="name">project.task.form</field>
<field name="model">project.task</field>
<field name="type">form</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<form string="Task edition">
<group colspan="6" col="6">
<field name="name" select="1" attrs="{'readonly':[('state','=','done')]}" />
<field name="project_id" required="1" select="1" attrs="{'readonly':[('state','=','done')]}" />
<field name="total_hours" widget="float_time"/>
<field name="user_id" select="1" attrs="{'readonly':[('state','=','done')]}" />
<field name="date_deadline" select="2" attrs="{'readonly':[('state','=','done')]}" />
<field name="progress" widget="progressbar"/>
</group>
<notebook colspan="4">
<page string="Information">
<group col="3" colspan="2">
<field
name="planned_hours"
widget="float_time"
attrs="{'readonly':[('state','!=','draft')]}"
on_change="onchange_planned(planned_hours,effective_hours)"/>
<field name="remaining_hours" select="2" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" colspan="2"/>
<button name="%(action_config_compute_remaining)d" string="Review" type="action" colspan="1" target="new" states="open,pending"/>
</group>
<group col="2" colspan="2">
<field name="delay_hours" widget="float_time"/>
<field name="effective_hours" widget="float_time"/>
</group>
<field colspan="4" name="description" nolabel="1" select="2" attrs="{'readonly':[('state','=','done')]}" />
<field colspan="4" name="work_ids" nolabel="1" attrs="{'readonly':[('state','in',['draft','done'])]}">
<tree string="Task Work" editable="top">
<field name="date" />
<field name="user_id" />
<field name="hours" widget="float_time" />
<field name="name" />
</tree>
</field>
<newline/>
<group col="11" colspan="4">
<field name="state" select="1"/>
<button name="do_draft" states="open" string="Draft" type="object" icon="gtk-indent"/>
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute"/>
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert"/>
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
<button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open" string="Delegate" type="action" icon="gtk-execute"/>
<button name="%(wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to"/>
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel"/>
</group>
</page>
<page groups="base.group_extended" string="Delegations">
<field colspan="4" name="history" nolabel="1"/>
<field colspan="4" height="150" name="child_ids" nolabel="1" attrs="{'readonly':[('state','!=','draft')]}">
<tree string="Delegated tasks">
<field name="name"/>
<field name="user_id"/>
<field name="state"/>
<field name="effective_hours" widget="float_time"/>
<field name="progress" widget="progressbar"/>
<field name="remaining_hours" widget="float_time"/>
<field name="date_deadline"/>
</tree>
</field>
<field colspan="4" name="parent_id"/>
</page>
<page groups="base.group_extended" string="Extra Info" attrs="{'readonly':[('state','in',['draft','done'])]}">
<separator string="Planning" colspan="2"/>
<separator string="Dates" colspan="2"/>
<field name="priority"/>
<field name="date_start" select="2"/>
<field name="sequence"/>
<field name="date_close" select="2"/>
<field name="type"/>
<field name="active" select="2"/>
<field name="partner_id" select="2"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="notes" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="view_task_tree2" model="ir.ui.view">
<field name="name">project.task.tree</field>
<field name="model">project.task</field>
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence"/>
<field name="name"/>
<field name="project_id"/>
<field name="user_id"/>
<field name="date_deadline"/>
<field name="planned_hours" sum="Planned" widget="float_time"/>
<field name="delay_hours" sum="Delay" widget="float_time"/>
<field name="progress" widget="progressbar"/>
<field name="priority"/>
<field name="state"/>
<field name="remaining_hours" invisible="1"/>
</tree>
</field>
</record>
<record id="my_pending_task" model="ir.ui.view">
<field name="name">my.pending.task.tree</field>
<field name="model">project.task</field>
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
<field name="sequence"/>
<field name="name"/>
<field name="project_id"/>
<field name="delegated_user_id"/>
<field name="date_deadline"/>
<field name="planned_hours" sum="Planned" widget="float_time"/>
<field name="delay_hours" sum="Delay" widget="float_time"/>
<field name="progress" widget="progressbar"/>
<field name="priority"/>
<field name="state"/>
<field name="remaining_hours" invisible="1"/>
</tree>
</field>
</record>
<record id="view_task_calendar" model="ir.ui.view">
<field name="name">project.task.calendar</field>
<field name="model">project.task</field>
<field name="type">calendar</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<calendar color="user_id" date_delay="planned_hours" date_start="date_start" string="Tasks">
<field name="name"/>
<field name="project_id"/>
</calendar>
</field>
</record>
<record id="view_task_gantt" model="ir.ui.view">
<field name="name">project.task.gantt</field>
<field name="model">project.task</field>
<field name="type">gantt</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<gantt color="user_id" date_delay="planned_hours" date_start="date_start" string="Tasks">
<level object="project.project" link="project_id" domain="[]">
<field name="name"/>
</level>
</gantt>
</field>
</record>
<record id="view_project_task_graph" model="ir.ui.view">
<field name="name">project.task.graph</field>
<field name="model">project.task</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Project Tasks" type="bar">
<field name="project_id"/>
<field name="planned_hours" operator="+"/>
<field name="delay_hours" operator="+"/>
</graph>
</field>
</record>
<record id="action_view_task" model="ir.actions.act_window">
<field name="name">All Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,gantt,graph</field>
<field eval="False" name="view_id"/>
</record>
<menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_tasks"/>
<record id="action_view_task4" model="ir.actions.act_window">
<field name="name">My Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,gantt,graph</field>
<field name="domain">[('user_id', '=', uid)]</field>
</record>
<menuitem action="action_view_task4" id="menu_action_view_task4" parent="project.menu_tasks"/>
<record id="action_view_task5_pending" model="ir.actions.act_window">
<field name="name">My Pending Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('user_id', '=', uid),('state','=','pending')]</field>
<field name="view_id" ref="my_pending_task"/>
</record>
<menuitem action="action_view_task5_pending" id="menu_tasks_yours_pending" parent="menu_action_view_task4"/>
<record id="action_view_task5_prog" model="ir.actions.act_window">
<field name="name">My Current Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('user_id', '=', uid),('state','in',('open','draft'))]</field>
</record>
<menuitem action="action_view_task5_prog" id="menu_tasks_yours_prog" parent="menu_action_view_task4"
sequence="1"/>
<record id="action_view_task5_prog_prog" model="ir.actions.act_window">
<field name="name">My Tasks in Progress</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('user_id', '=', uid),('state','=','open')]</field>
</record>
<menuitem action="action_view_task5_prog_prog" id="menu_tasks_yours_prog_prog" parent="menu_tasks_yours_prog"/>
<record id="action_view_task5_prog_draft" model="ir.actions.act_window">
<field name="name">My Draft Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('user_id', '=', uid),('state','=','draft')]</field>
</record>
<menuitem action="action_view_task5_prog_draft" id="menu_tasks_yours_prog_draft" parent="menu_tasks_yours_prog"/>
<record id="action_view_task_new" model="ir.actions.act_window">
<field name="name">New Task</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,calendar,gantt,graph</field>
</record>
<menuitem action="action_view_task_new" id="menu_action_view_task_new" parent="menu_tasks"/>
<record id="action_view_task6_prog" model="ir.actions.act_window">
<field name="name">Tasks in Progress</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph,gantt</field>
<field name="domain">[('state', '=', 'progress')]</field>
</record>
<menuitem action="action_view_task6_prog" id="menu_action_view_task6_prog" parent="project.menu_action_view_task"/>
<record id="action_view_task7" model="ir.actions.act_window">
<field name="name">Unassigned Tasks</field>
<field name="res_model">project.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph,gantt</field>
<field name="domain">[('user_id', '=', False)]</field>
</record>
<menuitem action="action_view_task7" id="menu_action_view_task7" parent="project.menu_action_view_task"/>
<!-- Opening task when double clicking on project -->
<record id="dblc_proj" model="ir.actions.act_window">
<field name="res_model">project.task</field>
<field name="name">Project's tasks</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph,gantt</field>
<field name="domain">[('project_id', 'child_of', [active_id])]</field>
<field name="context">{'project_id':active_id, 'active_test':False}</field>
</record>
<record id="ir_project_task_open" model="ir.values">
<field eval=" 'tree_but_open'" name="key2"/>
<field eval="'project.project'" name="model"/>
<field name="name">View project's tasks</field>
<field eval="'ir.actions.act_window,'+str(dblc_proj)" name="value"/>
<field eval="True" name="object"/>
</record>
<!-- Task types -->
<record id="task_type_edit" model="ir.ui.view">
<field name="name">project.task.type.form</field>
<field name="model">project.task.type</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Task type">
<field colspan="4" name="name" select="1"/>
<field colspan="4" name="description" select="1"/>
</form>
</field>
</record>
<record id="task_type_tree" model="ir.ui.view">
<field name="name">project.task.type.tree</field>
<field name="model">project.task.type</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Task type">
<field name="name"/>
</tree>
</field>
</record>
<record id="open_task_type_form" model="ir.actions.act_window">
<field name="name">Task Types</field>
<field name="res_model">project.task.type</field>
<field name="view_type">form</field>
<field name="view_id" ref="task_type_tree"/>
</record>
<menuitem action="open_task_type_form" id="menu_task_types" parent="project.menu_definitions"/>
<act_window domain="[('manager', '=', active_id)]" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/>
<act_window
domain="[('project_id', '=', active_id)]"
id="act_project_project_2_project_task_new"
name="Create a Task"
res_model="project.task"
src_model="project.project"
view_mode="form,tree,calendar,graph"
view_type="form"/>
<act_window
domain="[('project_id', '=', active_id)]"
id="act_project_project_2_project_task_all"
name="All Tasks"
res_model="project.task"
src_model="project.project"
view_mode="tree,form,calendar,graph"
view_type="form"/>
<act_window
domain="[('project_id', '=', active_id),('state', '&lt;&gt;', 'cancelled'),('state', '&lt;&gt;', 'done')]"
id="act_project_project_2_project_task_opened"
name="Tasks in Progress"
res_model="project.task"
src_model="project.project"
view_mode="tree,form,calendar,graph"
view_type="form"/>
<record id="task_company" model="ir.ui.view">
<field name="name">res.company.task.config</field>
<field name="model">res.company</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml">
<page string="Configuration" position="inside">
<separator string="Project Management" colspan="4"/>
<field name="project_time_mode"/>
<newline/>
</page>
</field>
</record>
<act_window domain="[('user_id', '=', active_id),('state', '&lt;&gt;', 'cancelled'),('state', '&lt;&gt;', 'done')]" id="act_res_users_2_project_task_opened" name="Assigned tasks" res_model="project.task" src_model="res.users" view_mode="tree,form,gantt,calendar,graph" view_type="form"/>
<act_window domain="[('user_id', '=', active_id),('date', '&gt;=', time.strftime('%Y-%m-01'))]" id="act_res_users_2_project_task_work_month" name="Month works" res_model="project.task.work" src_model="res.users" view_mode="tree,form" view_type="form"/>
</data>
</openerp>