<menuitem id="menu_project_management" name="Project" parent="base.menu_main_pm" sequence="1"/>
<menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
+
+ <act_window
+ context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"
+ id="act_project_project_2_project_task_all"
+ name="Tasks"
+ res_model="project.task"
+ src_model="project.project"
+ view_mode="kanban,tree,form,calendar,graph"
+ view_type="form"/>
<!-- Project -->
<record id="edit_project" model="ir.ui.view">
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Project" layout="manual">
- <div class="oe_form_topbar">
+ <header>
<button name="set_done" string="Done" type="object" states="open,pending"/>
<button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close"/>
<button name="set_pending" string="Pending" type="object" states="open"/>
<button string="New Project Based on Template" name="duplicate_template" type="object" states="template" context="{'parent_id':parent_id}"/>
<button name="reset_project" string="Reset as Project" type="object" states="template"/>
<button name="set_cancel" string="Cancel" type="object" states="open,pending"/>
- <div class="oe_right">
- <field name="state" nolabel="1" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' select="1" readonly="1"/>
- </div>
- <div class="oe_clear"/>
- </div>
+ <field name="state" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' readonly="1"/>
+ </header>
<sheet string="Project" layout="auto">
- <group colspan="6" col="6">
- <field name="name" string="Project Name" select="1"/>
- <field name="analytic_account_id" invisible="1" required="0"/>
- <field name="parent_id" string="Parent" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
- <field name="user_id" string="Project Manager" select="1" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
- <field name="date_start" string="Start Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
- <field name="date" string="End Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
- <field name="progress_rate" widget="progressbar"/>
+ <group col="4" colspan="4">
+ <group col="2" colspan="2" class="oe_form_group_label_border">
+ <field name="name" string="Project Name" select="1"/>
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)" select="1"/>
+ <field name="user_id" string="Project Manager" select="1" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>
+ <field name="analytic_account_id" invisible="1" required="0"/>
+ <field name="parent_id" invisible="1" string="Parent" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
+ <field name="privacy_visibility"/>
+ <!--<field name="date_start" string="Start Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>-->
+ <!--<field name="date" string="End Date" attrs="{'readonly':[('state','in',['close', 'cancelled'])]}"/>-->
+ <!--<field name="progress_rate" widget="progressbar"/>-->
+ </group>
+ <group col="2" colspan="2" class="oe_form_group_label_border">
+ <table border="0">
+ <tr name="use_tasks_row">
+ <th style="border-right:1px solid #DDD;" width="140px">Tasks Management</th>
+ <td><field name="use_tasks" nolabel="1"/></td>
+ <td style="text-align:right;" width="110px"><button icon="terp-stock_align_left_24" class="oe_btn_width" name="%(act_project_project_2_project_task_all)d" string="Tasks" type="action" attrs="{'invisible':[('use_tasks','=', 0)]}"/></td>
+ </tr>
+ <tr name="use_attachment_row">
+ <th/>
+ <td/>
+ <td style="text-align:right;" width="110px"><button icon="gtk-dnd-multiple" class="oe_btn_width" name="%(base.action_attachment)d" string="Documents" type="action" /></td>
+ </tr>
+ </table>
+ </group>
</group>
<notebook colspan="4">
<page string="Administration">
- <group col="2" colspan="2" name="kanban">
- <separator colspan="2" string="Project Management"/>
- <field name="use_tasks"/>
- </group>
<group col="2" colspan="2">
<separator colspan="4" string="Performance"/>
<field name="planned_hours" widget="float_time"/>
<field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
</group>
</page>
- <page string="Members">
- <field colspan="4" name="members" nolabel="1">
+ <page name="team" string="Team" attrs="{'invisible':[('use_tasks','=', 0)]}">
+ <field colspan="4" name="members" nolabel="1" help="Project's members are users who can have an access to the tasks related to this project.">
<tree string="Members">
<field name="name"/>
<field name="user_email"/>
</field>
</page>
<page string="Billing" groups="account.group_account_invoice">
- <field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" string="Customer"/>
+ <!--<field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" string="Customer"/>-->
<field name="warn_customer"/>
<field name="currency_id" select="1" groups="base.group_multi_company" required="1"/>
<newline/>
<page string="Tasks Stages">
<field nolabel="1" name="type_ids" colspan="4"/>
</page>
- <page string="Notes">
- <field colspan="4" name="description" nolabel="1"/>
- </page>
</notebook>
<newline/>
</sheet>
<div class="oe_form_bottom">
- <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
+ <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>
<act_window
- context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"
+ context="{'search_default_project_id': active_id, 'default_project_id': active_id}"
id="act_project_project_2_project_task_all"
name="Tasks"
res_model="project.task"
<field name="task_count"/>
<templates>
<t t-name="kanban-box">
- <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height">
+ <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height oe_kanban_global_click">
<a class="oe_kanban_menuaction oe_i">B</a>
<ul class="oe_kanban_menu">
<li><a type="edit">Edit...</a></li>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<form string="Project" layout="manual">
- <div class="oe_form_topbar">
+ <header>
<button name="do_open" string="Start Task" type="object"
- states="pending,draft"/>
- <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action" context="{'button_reactivate':True}"
- states="done,cancelled"/>
+ 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="pending,open,draft"/>
<button name="do_cancel" string="Cancel" type="object"
states="draft,open,pending" />
- <button name="stage_previous" string="Previous" type="object"
- states="open" icon="gtk-go-back"/>
- <button name="stage_next" string="Next" type="object"
- states="open" icon="gtk-go-forward"/>
- <div class="oe_right">
- <field name="stage_id" nolabel="1" widget="statusbar"/>
- </div>
- <div class="oe_clear"/>
- </div>
+ <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)]}"/>
+ <field name="stage_id" widget="statusbar"/>
+ </header>
<sheet string="Task edition" layout="auto">
<group colspan="6" col="6">
<field name="name" select="1"/>
</notebook>
</sheet>
<div class="oe_form_bottom">
- <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
+ <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
type="object" class="oe_kanban_button"><t t-esc="time[0]"/></a
><b t-if="time[1]" class="oe_kanban_button oe_kanban_button_active"><t t-esc="Math.round(hours)"/></b
></t>
- <a name="do_open" states="draft" string="Validate planned time and open task" type="object" class="oe_kanban_button oe_kanban_button_active" groups="base.group_no_one">!</a>
+ <a name="do_open" states="draft" string="Validate planned time and open task" type="object" class="oe_kanban_button oe_kanban_button_active">!</a>
</span>
</div>
<div class="oe_kanban_clear"/>
<a string="Edit" icon="gtk-edit" type="edit"/>
<a string="Change Color" icon="color-picker" type="color" name="color"/>
<a name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal"/>
- <a name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" groups="base.group_no_one"/>
+ <a name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close"/>
</div>
<div class="oe_kanban_right">
- <a name="set_kanban_state_blocked" string="Mark as Blocked" kanban_states="normal,done" type="object" icon="kanban-stop"/>
- <a name="set_kanban_state_normal" string="Normal" kanban_states="blocked,done" type="object" icon="gtk-media-play"/>
- <a name="set_kanban_state_done" string="Done" kanban_states="blocked,normal" type="object" icon="kanban-apply"/>
+ <a name="set_kanban_state_blocked" string="Mark as Blocked" attrs="{'invisible' : [('kanban_state', 'not in', ('normal', 'done'))]}" type="object" icon="kanban-stop"/>
+ <a name="set_kanban_state_normal" string="Normal" attrs="{'invisible' : [('kanban_state', 'not in', ('blocked', 'done'))]}" type="object" icon="gtk-media-play"/>
+ <a name="set_kanban_state_done" string="Done" attrs="{'invisible' : [('kanban_state', 'not in', ('blocked', 'normal'))]}" type="object" icon="kanban-apply"/>
</div>
<div class="oe_kanban_clear"/>
</div>
<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)"/>
<field name="stage_id" invisible="context.get('set_visible',False)"/>
- <button name="next_type" invisible="context.get('set_visible',False)"
- states="open,pending"
- string="Change Stage"
- type="object"
- icon="gtk-go-forward"
- help="Change Type" attrs="{'invisible': [('stage_id','=', False)]}"/>
+ <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"/>
<field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
- <field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/>
- <button name="do_open" states="pending,draft,done,cancelled" string="Start Task" type="object" icon="gtk-media-play" help="For changing to open state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/>
- <button name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal" help="For changing to delegate state"/>
- <button name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state" groups="base.group_no_one"/>
</tree>
</field>
</record>
<field name="arch" type="xml">
<search string="Tasks">
<group>
- <filter icon="terp-check" name="inbox" string="Inbox" domain="[('message_state','=','unread')]"/>
<filter name="draft" string="New" domain="[('state','=','draft')]" help="New Tasks" icon="terp-check"/>
<filter name="open" string="In Progress" domain="[('state','=','open')]" help="In Progress Tasks" icon="terp-camera_test"/>
<filter string="Pending" domain="[('state','=','pending')]" context="{'show_delegated':False}" help="Pending Tasks" icon="terp-gtk-media-pause"/>
<filter string="Deadlines" context="{'deadline_visible': False}" domain="[('date_deadline','<>',False)]" help="Show only tasks having a deadline" icon="terp-gnome-cpu-frequency-applet+"/>
<separator orientation="vertical"/>
<field name="name"/>
+ <field name="project_id" invisible="1"/>
<filter name="project" string="Project" domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-check"/>
+ <field name="project_id"/>
<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-" />
</search>
</field>
</record>
+
+ <record id="analytic_account_inherited_form" model="ir.ui.view">
+ <field name="name">account.analytic.account.form.inherit</field>
+ <field name="model">account.analytic.account</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
+ <field eval="18" name="priority"/>
+ <field name="arch" type="xml">
+ <xpath expr='//separator[@name="project_sep"]' position='replace'>
+ <separator colspan="2" string="Project" name="project_sep"/>
+ </xpath>
+ <xpath expr='//group[@name="project"]' position='inside'>
+ <field name="use_tasks" />
+ </xpath>
+ </field>
+ </record>
<record id="action_view_task" model="ir.actions.act_window">
<field name="name">Tasks</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Task Stage">
- <group colspan="4" col="6">
- <field name="name"/>
- <field name="case_default"/>
- <field name="sequence"/>
- <field name="state"/>
+ <group colspan="2" col="2">
+ <field name="name"/>
+ <field name="state"/>
+ </group>
+ <group colspan="2" col="4">
+ <field name="case_default"/>
+ <field name="sequence"/>
+ <field name="fold"/>
</group>
<separator string="Description" colspan="4"/>
<field colspan="4" name="description" nolabel="1"/>
<menuitem id="menu_tasks_config" name="GTD" parent="project.menu_definitions" sequence="1"/>
- <menuitem id="menu_project_config_project" name="Stages" parent="menu_definitions" sequence="1"/>
+ <menuitem id="menu_project_config_project" name="Stages" parent="project.menu_definitions" sequence="1"/>
- <menuitem action="open_task_type_form" id="menu_task_types_view" parent="menu_project_config_project" sequence="2"/>
- <menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1" groups="base.group_no_one"/>
+ <menuitem action="open_task_type_form" name="Task Stages" id="menu_task_types_view" parent="menu_project_config_project" sequence="2"/>
+ <menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1"/>
- <act_window context="{'search_default_user_id': [active_id], 'default_user_id': 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 context="{'search_default_user_id': active_id, 'default_user_id': 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"/>
<record id="task_company" model="ir.ui.view">
<field name="name">res.company.task.config</field>