summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanjay Gohel (Open ERP) <sgo@tinyerp.com>2012-05-30 18:35:22 +0530
committerSanjay Gohel (Open ERP) <sgo@tinyerp.com>2012-05-30 18:35:22 +0530
commitb02a3684d0ad01c19ecf540232fc17c896d9bd85 (patch)
treeb3dfbcb368a2ad95bcb55608392d420098418bd6
parent11bf57f1bf45f308ad76c35fd0f42560298a86f4 (diff)
parenteddbed0f583d5d81ab61759d5e25af3c04181334 (diff)
[MERGE]merge with parent branch and resolve conflicts
bzr revid: sgo@tinyerp.com-20120530130522-f8d6vem8wwlp0z4r
-rw-r--r--addons/account_analytic_analysis/account_analytic_analysis_view.xml145
-rw-r--r--addons/account_analytic_analysis/static/src/css/account_analytic.css46
-rw-r--r--addons/project/project_view.xml54
-rw-r--r--addons/project/static/src/css/project.css3
-rw-r--r--addons/project_issue/project_issue.py2
-rw-r--r--addons/project_issue/project_issue_view.xml10
-rw-r--r--addons/project_long_term/project_long_term_view.xml30
-rw-r--r--addons/project_timesheet/project_timesheet_view.xml16
8 files changed, 147 insertions, 159 deletions
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index 139a2f5ef17..33cefae38bb 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -58,91 +58,66 @@
</xpath>
<xpath expr='//separator[@name="description"]' position='before'>
<separator colspan="4" string="Invoicing" name="invoicing"/>
- <!-- <group colspan="4">
- <group col="2" colspan="1" class="oe_form_group_label_border">
- <label string=" "/><label string=" "/>
- <field name="fix_price_invoices"/>
- <field name="invoice_on_timesheets"/>
- <field name="charge_expenses"/>
- </group>
- <group col="2" colspan="1">
- <label string="Est.Tot"/>
- <label string="Invoiced"/>
- <field name="amount_max" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/>
- <field name="ca_invoiced" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/>
- <field name="quantity_max" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
- <field name="hours_qtt_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
- </group>
- <group col="2" colspan="1" class="oe_form_group_odd_border">
- <label string="Remaining"/>
- <label string="To Invoice"/>
- <field name="remaining_ca" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/>
- <field name="ca_to_invoice" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/>
- <field name="remaining_hours" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
- <field name="hours_qtt_non_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
- </group>
- <group col="2" colspan="1">
- <label string=" "/><label string=" "/>
- <button name="%(action_sales_order_line)d" string="Sales" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/>
- <button name="%(sale.action_order_line_tree2)d" string="Lines To Invoice" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/>
- <button name="%(action_timesheet_lines_tree)d" string="Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
- <button name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d" string="Invoice Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
-
- </group>
- </group> -->
-
- <group colspan="4" name="contract_lines" class="oe_form_group_label_border">
- <table name="contract_data">
- <tr name="title" >
- <th ><div class="oe_field_label" ></div></th>
- <td><div></div></td>
- <th ><div class="oe_float_field_view" >Est. Total</div></th>
- <th ><div class="oe_field_view" >Invoiced</div></th>
- <th ><div class="oe_field_view" >Remaining</div></th>
- <th ><div class="oe_float_field_view" >Ready to Invoice</div></th>
- </tr>
- <tr>
- <th><div class="oe_field_label">Fix price Invoices</div></th>
- <td><div><field name="fix_price_invoices" nolabel="1"/></div></td>
- <td><div class="oe_float_field_view"><field name="amount_max" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></div></td>
- <td><div class="oe_field_view"><field name="ca_invoiced" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></div></td>
- <td><div class="oe_field_view"><field name="remaining_ca" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></div></td>
- <td><div class="oe_float_field_view"><field name="ca_to_invoice" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></div></td>
- <td><button class="oe_title_button_right" name="%(action_sales_order_line)d" string="Sales" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- <td><button class="oe_title_button_left" name="%(sale.action_order_line_tree2)d" string="Lines To Invoice" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
- </tr>
- <tr>
- <th><div class="oe_field_label">Invoice on timesheet</div></th>
- <td><div><field name="invoice_on_timesheets" nolabel="1"/></div></td>
- <td><div class="oe_float_field_view" ><field name="quantity_max" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></div></td>
- <td><div class="oe_field_view" ><field name="hours_qtt_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></div></td>
- <td><div class="oe_field_view" ><field name="remaining_hours" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></div></td>
- <td><div class="oe_float_field_view" ><field name="hours_qtt_non_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></div></td>
- <td><button class="oe_title_button_right" name="%(account.action_account_tree1)d" string="Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- <td><button class="oe_title_button_left" name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d" string="Invoice Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
- </tr>
- <tr>
- <th><div class="oe_field_label" >Charge Expenses</div></th>
- <td><div><field name="charge_expenses" nolabel="1"/></div></td>
- <td><div class="oe_float_field_view" ><field name="expense_max" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></div></td>
- <td><div class="oe_field_view" ><field name="expense_invoiced" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></div></td>
- <td><div class="oe_field_view" ><field name="remaining_expense" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></div></td>
- <td><div class="oe_float_field_view"><field name="expense_to_invoice" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></div></td>
- </tr>
- <tr name="total">
- <th><div class="oe_field_label" >Total</div></th>
- <td><div></div></td>
- <td><div class="oe_totals" ></div></td>
- <td><div class="oe_totals_view" ></div></td>
- <td><div class="oe_totals_view" ></div></td>
- <td><div class="oe_totals" ></div></td>
- </tr>
- </table>
- </group>
- <group colspan="4" class="oe_form_group_label_border">
- <field name="pricelist_id" />
- <field name="to_invoice" widget="selection" />
- </group>
+ <group col="1" colspan="4">
+ <table border="0">
+ <tr>
+ <th class="oe_th_150px" height="20px"></th>
+ <th width="10px"></th>
+ <th class="oe_th_110px">Est.Tot</th>
+ <th class="oe_th_110px">Invoiced</th>
+ <th class="oe_th_110px">Remaining</th>
+ <th class="oe_th_110px">Ready To Invoice</th>
+ <th width="10px"></th>
+ <th class="oe_th_150px"></th>
+ <th class="oe_th_150px"></th>
+ </tr>
+ <tr>
+ <th class="oe_border_right">Fix Price Invoices</th>
+ <td><field name="fix_price_invoices" nolabel="1"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="amount_max" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="ca_invoiced" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px oe_border_right"><field name="remaining_ca" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="ca_to_invoice" nolabel="1" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
+ <td width="10px"></td>
+ <td class="oe_th_150px"><button class= "oe_btn_width" name="%(action_sales_order_line)d" string="Sales" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
+ <td class="oe_th_150px"><button class= "oe_btn_width" name="%(sale.action_order_line_tree2)d" string="Lines To Invoice" type="action" context="{'default_project_id': active_id,'search_default_project_id': active_id}" attrs="{'invisible': [('fix_price_invoices','=',0)]}"/></td>
+ </tr>
+ <tr>
+ <th class="oe_border_right">Invoice On Timesheets</th>
+ <td><field name="invoice_on_timesheets" nolabel="1"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="quantity_max" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="hours_qtt_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px oe_border_right"><field name="remaining_hours" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="hours_qtt_non_invoiced" nolabel="1" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
+ <td width="10px"></td>
+ <td class="oe_th_150px"><button class= "oe_btn_width" name="%(action_timesheet_lines_tree)d" string="Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
+ <td class="oe_th_150px"><button class= "oe_btn_width" name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d" string="Invoice Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/></td>
+ </tr>
+ <tr>
+ <th class="oe_border_right">Charge Expenses</th>
+ <td><field name="charge_expenses" nolabel="1"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="expense_max" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="expense_invoiced" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px oe_border_right"><field name="remaining_expense" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
+ <td class="oe_amount_center oe_th_110px"><field name="expense_to_invoice" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
+ <td width="10px"></td>
+ <td class="oe_th_150px">todo</td>
+ <td class="oe_th_150px">todo</td>
+ </tr>
+ <tr>
+ <th class="oe_border_right">Total</th>
+ <td width="10px"></td>
+ <td class="oe_amount_center oe_th_110px oe_border_top">todo</td>
+ <td class="oe_amount_center oe_th_110px oe_border_top">todo</td>
+ <td class="oe_amount_center oe_th_110px oe_border_right oe_border_top">todo</td>
+ <td class="oe_amount_center oe_th_110px oe_border_top">todo</td>
+ </tr>
+ </table>
+ </group>
+ <group colspan="4" class="oe_form_group_label_border">
+ <field name="pricelist_id" />
+ <field name="to_invoice" widget="selection" />
+ </group>
</xpath>
<!-- <notebook position="inside">
<page string="Invoice Analysis">
diff --git a/addons/account_analytic_analysis/static/src/css/account_analytic.css b/addons/account_analytic_analysis/static/src/css/account_analytic.css
index b9a043ef346..e627151a342 100644
--- a/addons/account_analytic_analysis/static/src/css/account_analytic.css
+++ b/addons/account_analytic_analysis/static/src/css/account_analytic.css
@@ -1,34 +1,26 @@
-.oe_field_view {
- width: 80px;
- text-align: center;
+.oe_th_80px{
+ width:80px;
+ text-align: center !important;
+ vertical-align: middle;
}
-.oe_float_field_view {
- width: 110px;
- text-align: center;
+.oe_th_110px{
+ width:110px;
+ text-align: center !important;
+ vertical-align: middle;
}
-.oe_title_button_left {
- min-width: 140px;
- text-align: left;
- margin-left: 5px !important;
+.oe_th_150px{
+ width:150px;
+ text-align: right !important;
}
-
-.oe_title_button_right {
- min-width: 110px;
- text-align: right;
- margin-left: 55px !important;
+.oe_amount_center{
+ text-align: center !important;
}
-
-.oe_field_label {
- text-align: left;
+.oe_btn_width{
+ width: 150px;
}
-
-.oe_totals {
- width: 110px;
- text-align: center;
- border-top: groove;
+.oe_border_right{
+ border-right: 1px solid #DDD;
}
-.oe_totals_view {
- width: 80px;
- text-align: center;
- border-top: groove;
+.oe_border_top{
+ border-top: 1px solid #000000;
} \ No newline at end of file
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 29704cf3318..2835c5f542f 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -11,6 +11,15 @@
<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">
@@ -33,21 +42,29 @@
<div class="oe_clear"/>
</div>
<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="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 class="oe_btn_width" name="%(act_project_project_2_project_task_all)d" string="Tasks" type="action" attrs="{'invisible':[('use_tasks','=', 0)]}"/></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"/>
@@ -63,7 +80,7 @@
<field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
</group>
</page>
- <page string="Members">
+ <page string="Team">
<field colspan="4" name="members" nolabel="1">
<tree string="Members">
<field name="name"/>
@@ -72,7 +89,7 @@
</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/>
@@ -162,15 +179,6 @@
</field>
</record>
- <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"/>
-
<record model="ir.ui.view" id="view_project_kanban">
<field name="name">project.project.kanban</field>
<field name="model">project.project</field>
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css
index ebab44e225a..7d589675a4a 100644
--- a/addons/project/static/src/css/project.css
+++ b/addons/project/static/src/css/project.css
@@ -1,3 +1,6 @@
+.oe_btn_width {
+ width: 100px;
+}
.oe_kanban_project {
width: 300px;
}
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index d49631fb771..0c4b6af0956 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -533,7 +533,7 @@ class account_analytic_account(osv.osv):
_description = 'Analytic Account'
_columns = {
- 'use_issues' : fields.boolean('Issue Tracking:', help="Check this field if this project manages issues"),
+ 'use_issues' : fields.boolean('Issues Tracking', help="Check this field if this project manages issues"),
}
# _defaults = {
# 'use_issues': True,
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 99b4ecafc57..1dfd1ed1b5e 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -360,9 +360,13 @@
<field name="type">form</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
- <field name="use_tasks" position="after">
- <field name="use_issues"/>
- </field>
+ <xpath expr='//tr[@name="use_tasks_row"]' position='after'>
+ <tr name="use_issues_row">
+ <th style="border-right:1px solid #DDD;" width="140px">Issues Tracking</th>
+ <td><field name="use_issues" nolabel="1"/></td>
+ <td style="text-align:right;" width="110px"><button class="oe_btn_width" name="%(act_project_project_2_project_issue_all)d" string="Issues" type="action" attrs="{'invisible':[('use_issues','=', 0)]}"/></td>
+ </tr>
+ </xpath>
<field name="priority" position="before">
<field name="project_escalation_id"/>
<field name="reply_to"/>
diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml
index 2d7412f7e7d..9497b3ad6ec 100644
--- a/addons/project_long_term/project_long_term_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -97,28 +97,30 @@
# ------------------------------------------------------
# Project Phase
# ------------------------------------------------------
-
+ <act_window id="act_project_phases"
+ name="Phases"
+ src_model="project.project"
+ res_model="project.phase"
+ view_type="form"
+ view_mode="tree,form"
+ context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"/>
+
<record id="project_phase_form" model="ir.ui.view">
<field name="name">Inherit project form : Phase</field>
<field name="model">project.project</field>
<field name="type">form</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
- <field name="use_tasks" position="after">
- <field name="use_phases"/>
- </field>
+ <xpath expr='//tr[@name="use_tasks_row"]' position='after'>
+ <tr name="use_phases_row">
+ <th style="border-right:1px solid #DDD;" width="140px">Phases Planing</th>
+ <td><field name="use_phases" nolabel="1"/></td>
+ <td style="text-align:right;"><button class="oe_btn_width" name="%(act_project_phases)d" string="Phases" type="action" attrs="{'invisible':[('use_phases','=', 0)]}"/></td>
+ </tr>
+ </xpath>
</field>
</record>
- <act_window id="act_project_phases"
- name="Phases"
- src_model="project.project"
- res_model="project.phase"
- view_type="form"
- view_mode="tree,form"
- context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"
- />
-
<record id="view_project_kanban_phase" model="ir.ui.view">
<field name="name">project.project.kanban.inherited</field>
<field name="model">project.project</field>
@@ -330,7 +332,7 @@
<field name="type">search</field>
<field name="inherit_id" ref="project.view_task_search_form"/>
<field name="arch" type="xml">
- <field name="project_id" position="after">
+ <field name="name" position="after">
<field name="phase_id" select="1"/>
</field>
</field>
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml
index 0a485470bc7..c8f531be924 100644
--- a/addons/project_timesheet/project_timesheet_view.xml
+++ b/addons/project_timesheet/project_timesheet_view.xml
@@ -7,11 +7,13 @@
<field name="type">form</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
- <field name="use_tasks" position='after'>
- <field name="use_timesheets"/>
- <field name="amount_to_invoice" invisible="True"/>
- <field name="time_to_invoice" invisible="True"/>
- </field>
+ <xpath expr='//tr[@name="use_tasks_row"]' position='after'>
+ <tr name="use_timesheets_row">
+ <th style="border-right:1px solid #DDD;" width="140px">Timesheets</th>
+ <td><field name="use_timesheets" nolabel="1"/></td>
+ <td style="text-align:right;"><button class="oe_btn_width" name="open_timesheets" string="Timesheets" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/></td>
+ </tr>
+ </xpath>
<field name="warn_customer" position="after">
<group colspan="4" col="4">
<separator colspan="4" string="Invoicing Data"/>
@@ -19,6 +21,8 @@
<field name="to_invoice" widget="selection" string="Invoice Task Work"/>
<field name="amount_max"/>
<field name="amount_invoiced"/>
+ <field name="amount_to_invoice" invisible="True"/>
+ <field name="time_to_invoice" invisible="True"/>
</group>
</field>
</field>
@@ -58,7 +62,7 @@
<field name="inherit_id" ref="project_invoice_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="replace">
- <field colspan="4" name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" string="Customer" attrs="{'required':[('to_invoice','!=',False)]}"/>
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" string="Customer" attrs="{'required':[('to_invoice','!=',False)]}"/>
</field>
</field>
</record>