[IMP] analytic contracts
bzr revid: fp@tinyerp.com-20120829190831-f6n1ruzsca2bo8xc
This commit is contained in:
parent
d0261477f8
commit
254489e168
|
@ -40,6 +40,9 @@ Adds menu to show relevant information to each manager.You can also view the rep
|
||||||
'account_analytic_analysis_menu.xml',
|
'account_analytic_analysis_menu.xml',
|
||||||
'account_analytic_analysis_cron.xml',
|
'account_analytic_analysis_cron.xml',
|
||||||
],
|
],
|
||||||
|
'css': [
|
||||||
|
'static/src/css/analytic.css'
|
||||||
|
],
|
||||||
'demo': [],
|
'demo': [],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
'auto_install': False,
|
'auto_install': False,
|
||||||
|
|
|
@ -451,8 +451,8 @@ class account_analytic_account(osv.osv):
|
||||||
'real_margin_rate': fields.function(_real_margin_rate_calc, type='float', string='Real Margin Rate (%)',
|
'real_margin_rate': fields.function(_real_margin_rate_calc, type='float', string='Real Margin Rate (%)',
|
||||||
help="Computes using the formula: (Real Margin / Total Costs) * 100.",
|
help="Computes using the formula: (Real Margin / Total Costs) * 100.",
|
||||||
digits_compute=dp.get_precision('Account')),
|
digits_compute=dp.get_precision('Account')),
|
||||||
'fix_price_invoices' : fields.boolean('Fix Price Invoices'),
|
'fix_price_invoices' : fields.boolean('Fixed Price'),
|
||||||
'invoice_on_timesheets' : fields.boolean("Invoice On Timesheets"),
|
'invoice_on_timesheets' : fields.boolean("On Timesheets"),
|
||||||
'month_ids': fields.function(_analysis_all, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
|
'month_ids': fields.function(_analysis_all, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
|
||||||
'user_ids': fields.function(_analysis_all, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
|
'user_ids': fields.function(_analysis_all, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
|
||||||
'hours_qtt_est': fields.float('Estimation of Hours to Invoice'),
|
'hours_qtt_est': fields.float('Estimation of Hours to Invoice'),
|
||||||
|
|
|
@ -22,30 +22,27 @@
|
||||||
<xpath expr='//div[@name="duration"]' position="after" version="7.0">
|
<xpath expr='//div[@name="duration"]' position="after" version="7.0">
|
||||||
<label for="quantity_max"/>
|
<label for="quantity_max"/>
|
||||||
<div>
|
<div>
|
||||||
<field name="quantity_max" class="oe_inline"/> / Remaining: <field name="remaining_hours" class="oe_inline"/>
|
<field name="quantity_max" class="oe_inline"/>
|
||||||
</div>
|
</div>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr='//group[@name="invoice_on_timesheets"]' position="replace">
|
<xpath expr='//group[@name="invoice_on_timesheets"]' position="replace">
|
||||||
<group name='invoice_on_timesheets' string="Invoice on Timesheets Options" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}" col="4">
|
|
||||||
<field name="pricelist_id" attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
|
|
||||||
<field name="to_invoice" widget="selection" attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
|
|
||||||
</group>
|
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr='//group[@name="master"]' position='after'>
|
<xpath expr='//separator[@name="description"]' position='before'>
|
||||||
<separator name="toinvoice" string="Invoicing"/>
|
<separator name="toinvoice" string="Invoicing"/>
|
||||||
<table width="100%%">
|
<table class="oe_form_analytic_account">
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th class="oe_grey" width="160px"></th>
|
||||||
<th></th>
|
<th class="oe_grey" width="25px"></th>
|
||||||
<th><label string="Est.Tot"/></th>
|
<th class="oe_grey" width="100px"><label string="Expected"/></th>
|
||||||
<th><label string="Invoiced"/></th>
|
<th class="oe_grey" width="100px"><label string="Invoiced"/></th>
|
||||||
<th><label string="Remaining"/></th>
|
<th class="oe_grey" width="100px"><label string="Remaining"/></th>
|
||||||
<th><label string="To Invoice"/></th>
|
<th class="oe_grey" width="100px"><label string="To Invoice"/></th>
|
||||||
|
<th width="30px"></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td>
|
<td class="oe_grey">
|
||||||
<label for="fix_price_invoices"/>
|
<label for="fix_price_invoices"/>
|
||||||
</td><td>
|
</td><td class="oe_grey">
|
||||||
<field name="fix_price_invoices" class="oe_inline"/>
|
<field name="fix_price_invoices" class="oe_inline"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
<field class="oe_inline" name="amount_max" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
<field class="oe_inline" name="amount_max" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
||||||
|
@ -56,13 +53,22 @@
|
||||||
</td><td>
|
</td><td>
|
||||||
<field class="oe_inline" name="fix_price_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
<field class="oe_inline" name="fix_price_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
<button name="%(action_sales_order)d" string="All Sales" type="action" context="{'default_partner_id': [partner_id], 'search_default_partner_id': [partner_id],'search_default_project_id': [active_id],'default_project_id': [active_id]}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
<button name="open_sale_order_lines"
|
||||||
<button name="open_sale_order_lines" string="Lines To Invoice" type="object" context="{'default_partner_id': [partner_id],'default_project_id': active_id,'search_default_uninvoiced': 1,'search_default_project_id': active_id,'search_default_partner_id': [partner_id]}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
class="oe_link oe_e"
|
||||||
</td>
|
string="/" type="object"
|
||||||
</tr><tr attrs="{'invisible':[('use_timesheets','=',False)]}">
|
context="{'default_partner_id': [partner_id],'default_project_id': active_id,'search_default_uninvoiced': 1,'search_default_project_id': active_id,'search_default_partner_id': [partner_id]}"
|
||||||
<td>
|
attrs="{'invisible': [('fix_price_to_invoice','=',0)]}"/>
|
||||||
<label for="invoice_on_timesheets"/>
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
<button name="%(action_sales_order)d" string="Sale Orders"
|
||||||
|
type="action"
|
||||||
|
class="oe_link"
|
||||||
|
context="{'default_partner_id': [partner_id], 'search_default_partner_id': [partner_id],'search_default_project_id': [active_id],'default_project_id': [active_id]}"
|
||||||
|
attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
|
||||||
|
</td>
|
||||||
|
</tr><tr>
|
||||||
|
<td class="oe_grey">
|
||||||
|
<label for="invoice_on_timesheets"/>
|
||||||
|
</td><td class="oe_grey">
|
||||||
<field name="invoice_on_timesheets"/>
|
<field name="invoice_on_timesheets"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
<field class="oe_inline" name="hours_qtt_est" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
<field class="oe_inline" name="hours_qtt_est" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
||||||
|
@ -73,25 +79,44 @@
|
||||||
</td><td>
|
</td><td>
|
||||||
<field class="oe_inline" name="ca_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
<field class="oe_inline" name="ca_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
<button name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d" string="All Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}" context="{'default_account_id': active_id,'search_default_account_id': active_id}"/>
|
<button name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d"
|
||||||
<button name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d" string="Timesheets to Invoice" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
type="action"
|
||||||
|
class="oe_link oe_e"
|
||||||
|
string="/"
|
||||||
|
attrs="{'invisible': [('ca_to_invoice','=',0.0)]}"/>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
<button name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d"
|
||||||
|
string="Timesheets" type="action"
|
||||||
|
class="oe_link"
|
||||||
|
attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"
|
||||||
|
context="{'default_account_id': active_id,'search_default_account_id': active_id}"/>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr name='total'>
|
</tr><tr name='total'>
|
||||||
<th>
|
<th class="oe_grey">
|
||||||
<label string="Total"/>
|
<label string="Total"/>
|
||||||
</th><td>
|
</th><td class="oe_grey">
|
||||||
</td><td>
|
</td><td class="oe_grey">
|
||||||
<field name="est_total" class="oe_inline" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
<field name="est_total" class="oe_inline" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
|
||||||
</td><td>
|
</td><td class="oe_grey">
|
||||||
<field name="invoiced_total" class="oe_inline"/>
|
<field name="invoiced_total" class="oe_inline"/>
|
||||||
</td><td>
|
</td><td class="oe_grey">
|
||||||
<field name="remaining_total" class="oe_inline"/>
|
<field name="remaining_total" class="oe_inline"/>
|
||||||
</td><td>
|
</td><td class="oe_grey">
|
||||||
<field name="toinvoice_total" class="oe_inline"/>
|
<field name="toinvoice_total" class="oe_inline"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
<group name='invoice_on_timesheets' attrs="{'invisible': [('invoice_on_timesheets','=',False)]}">
|
||||||
|
<field name="pricelist_id"
|
||||||
|
class="oe_inline"
|
||||||
|
attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
|
||||||
|
<field name="to_invoice"
|
||||||
|
class="oe_inline"
|
||||||
|
widget="selection"
|
||||||
|
attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
|
||||||
|
</group>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
analytic.css: analytic.sass
|
||||||
|
sass -t expanded analytic.sass analytic.css
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
.openerp .oe_form table.oe_form_analytic_account tr {
|
||||||
|
height: 28px;
|
||||||
|
}
|
||||||
|
.openerp .oe_form table.oe_form_analytic_account tr td, .openerp .oe_form table.oe_form_analytic_account tr th {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.openerp .oe_form table.oe_form_analytic_account tr td .oe_form_field_float, .openerp .oe_form table.oe_form_analytic_account tr th .oe_form_field_float {
|
||||||
|
float: right;
|
||||||
|
width: auto !important;
|
||||||
|
}
|
||||||
|
.openerp .oe_form table.oe_form_analytic_account .oe_grey {
|
||||||
|
background-color: #eeeeee;
|
||||||
|
color: #404040;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
@charset "utf-8"
|
||||||
|
|
||||||
|
.openerp .oe_form
|
||||||
|
table.oe_form_analytic_account
|
||||||
|
tr
|
||||||
|
height: 28px
|
||||||
|
td,th
|
||||||
|
vertical-align: middle
|
||||||
|
.oe_form_field_float
|
||||||
|
float: right
|
||||||
|
width: auto !important
|
||||||
|
.oe_grey
|
||||||
|
background-color: #eeeeee
|
||||||
|
color: #404040
|
||||||
|
|
|
@ -153,9 +153,9 @@ class account_analytic_account(osv.osv):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Account Name', size=128, required=True),
|
'name': fields.char('Account/Contract Name', size=128, required=True),
|
||||||
'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
|
'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
|
||||||
'code': fields.char('Code/Reference', size=24, select=True),
|
'code': fields.char('Reference', size=24, select=True),
|
||||||
'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', required=True,
|
'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', required=True,
|
||||||
help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\
|
help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\
|
||||||
"The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"\
|
"The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"\
|
||||||
|
@ -171,7 +171,7 @@ class account_analytic_account(osv.osv):
|
||||||
'debit': fields.function(_debit_credit_bal_qtty, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
|
'debit': fields.function(_debit_credit_bal_qtty, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
|
||||||
'credit': fields.function(_debit_credit_bal_qtty, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
|
'credit': fields.function(_debit_credit_bal_qtty, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
|
||||||
'quantity': fields.function(_debit_credit_bal_qtty, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
|
'quantity': fields.function(_debit_credit_bal_qtty, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
|
||||||
'quantity_max': fields.float('Maximum Time', help='Sets the higher limit of time to work on the contract.'),
|
'quantity_max': fields.float('Prepaid Units', help='Sets the higher limit of time to work on the contract.'),
|
||||||
'partner_id': fields.many2one('res.partner', 'Customer'),
|
'partner_id': fields.many2one('res.partner', 'Customer'),
|
||||||
'user_id': fields.many2one('res.users', 'Project Manager'),
|
'user_id': fields.many2one('res.users', 'Project Manager'),
|
||||||
'manager_id': fields.many2one('res.users', 'Account Manager'),
|
'manager_id': fields.many2one('res.users', 'Account Manager'),
|
||||||
|
|
|
@ -10,34 +10,36 @@
|
||||||
<sheet string="Analytic Account">
|
<sheet string="Analytic Account">
|
||||||
<label for="name" class="oe_edit_only"/>
|
<label for="name" class="oe_edit_only"/>
|
||||||
<h1>
|
<h1>
|
||||||
<field name="name"/>
|
<field name="name" class="oe_inline"/>
|
||||||
</h1>
|
</h1>
|
||||||
|
<div name="project"/>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="partner_id" on_change="on_change_partner_id(partner_id, name)" attrs="{'required':[('type','=','contract')]}"/>
|
<field name="partner_id" on_change="on_change_partner_id(partner_id, name)" attrs="{'required':[('type','=','contract')]}"/>
|
||||||
<field name="parent_id" on_change="on_change_parent(parent_id)" attrs="{'invisible': [('type','in',['contract','template'])]}"/>
|
<field name="manager_id"/>
|
||||||
<field name="type"/>
|
<field name="code"/>
|
||||||
<field name="template_id" on_change="on_change_template(template_id,context)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>
|
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="code"/>
|
<field name="type"/>
|
||||||
<field name="manager_id"/>
|
<field name="parent_id" on_change="on_change_parent(parent_id)" attrs="{'invisible': [('type','in',['contract','template'])]}"/>
|
||||||
|
<field name="template_id" on_change="on_change_template(template_id,context)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>
|
||||||
<field name="company_id" on_change="on_change_company(company_id)" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','<>','view')]}"/>
|
<field name="company_id" on_change="on_change_company(company_id)" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','<>','view')]}"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="Contract Information" name="contract_page" attrs="{'invisible':[('type','not in',['contract', 'template'])]}">
|
<page string="Contract Information" name="contract_page" attrs="{'invisible':[('type','not in',['contract', 'template'])]}">
|
||||||
<group name="master">
|
<group string="Renewal" name="contract">
|
||||||
<group string="Validity" name="contract">
|
<p colspan="2" class="oe_grey oe_edit_only">
|
||||||
<label for="date_start" string="Duration"/>
|
Once the end date of the contract is
|
||||||
|
passed or the maximum number of service
|
||||||
|
units is reached, the account manager
|
||||||
|
is warned by email to renew the contract.
|
||||||
|
</p>
|
||||||
|
<label for="date" string="End Date"/>
|
||||||
<div name="duration">
|
<div name="duration">
|
||||||
<field name="date_start" class="oe_inline"/> - <field name="date" class="oe_inline"/>
|
<field name="date" class="oe_inline"/>
|
||||||
</div>
|
</div>
|
||||||
</group>
|
</group>
|
||||||
<group name="project">
|
|
||||||
<separator string="Project Management" name="project_sep" invisible="1"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
<separator string="Terms and Conditions" name="description"/>
|
<separator string="Terms and Conditions" name="description"/>
|
||||||
<field name="description"/>
|
<field name="description"/>
|
||||||
</page>
|
</page>
|
||||||
|
|
|
@ -5,12 +5,13 @@
|
||||||
<field name="name">account.analytic.account.form.expense.inherit</field>
|
<field name="name">account.analytic.account.form.expense.inherit</field>
|
||||||
<field name="model">account.analytic.account</field>
|
<field name="model">account.analytic.account</field>
|
||||||
<field eval="60" name="priority"/>
|
<field eval="60" name="priority"/>
|
||||||
|
<field name="inherit_id" ref="account_analytic_analysis.account_analytic_account_form_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr='//tr[@name="total"]' position='before'>
|
<xpath expr='//tr[@name="total"]' position='before'>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td class="oe_grey">
|
||||||
<label for="charge_expenses"/>
|
<label for="charge_expenses"/>
|
||||||
</td><td>
|
</td><td class="oe_grey">
|
||||||
<field name="charge_expenses"/>
|
<field name="charge_expenses"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
<field class="oe_form_inline" name="est_expenses" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
<field class="oe_form_inline" name="est_expenses" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
||||||
|
@ -21,10 +22,16 @@
|
||||||
</td><td>
|
</td><td>
|
||||||
<field class="oe_form_inline" name="expense_to_invoice" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
<field class="oe_form_inline" name="expense_to_invoice" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
||||||
</td><td>
|
</td><td>
|
||||||
<group>
|
<button
|
||||||
<button name="open_hr_expense" string="All Expenses" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
name="hr_to_invoice_expense"
|
||||||
<button name="hr_to_invoice_expense" string="Expenses to Invoice" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
class="oe_link oe_e"
|
||||||
</group>
|
string="/" type="object"
|
||||||
|
attrs="{'invisible': [('expense_to_invoice','=',0)]}"/>
|
||||||
|
</td><td>
|
||||||
|
<button
|
||||||
|
name="open_hr_expense"
|
||||||
|
class="oe_link"
|
||||||
|
string="Expenses" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
|
@ -118,7 +118,7 @@
|
||||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
||||||
<field name="priority">50</field>
|
<field name="priority">50</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr='//field[@name="remaining_hours"]' position='after'>
|
<xpath expr='//field[@name="quantity_max"]' position='after'>
|
||||||
<field name="company_uom_id" readonly="1" class="oe_inline"/>
|
<field name="company_uom_id" readonly="1" class="oe_inline"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -83,11 +83,9 @@
|
||||||
<field name="model">account.analytic.account</field>
|
<field name="model">account.analytic.account</field>
|
||||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr='//separator[@name="project_sep"]' position='replace'>
|
<xpath expr='//div[@name="project"]' position='inside'>
|
||||||
<separator name="project_sep" string="Project Management" colspan="4"/> <!-- removal of invisible attribute -->
|
|
||||||
</xpath>
|
|
||||||
<xpath expr='//separator[@name="project_sep"]' position='after'>
|
|
||||||
<field name="use_timesheets"/>
|
<field name="use_timesheets"/>
|
||||||
|
<label for="use_timesheets"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -688,11 +688,9 @@
|
||||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
||||||
<field eval="18" name="priority"/>
|
<field eval="18" name="priority"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr='//separator[@name="project_sep"]' position='replace'>
|
<xpath expr='//div[@name="project"]' position='inside'>
|
||||||
<separator colspan="4" string="Project Management" name="project_sep"/> <!-- removal of invisible attribute -->
|
|
||||||
</xpath>
|
|
||||||
<xpath expr='//separator[@name="project_sep"]' position='after'>
|
|
||||||
<field name="use_tasks"/>
|
<field name="use_tasks"/>
|
||||||
|
<label for="use_tasks"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -393,11 +393,9 @@
|
||||||
<field name="inherit_id" ref="project.analytic_account_inherited_form"/>
|
<field name="inherit_id" ref="project.analytic_account_inherited_form"/>
|
||||||
<field eval="18" name="priority"/>
|
<field eval="18" name="priority"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr='//separator[@name="project_sep"]' position='replace'>
|
<xpath expr='//div[@name="project"]' position='inside'>
|
||||||
<separator colspan="4" string="Project Management" name="project_sep"/> <!-- removal of invisible attribute -->
|
|
||||||
</xpath>
|
|
||||||
<xpath expr='//separator[@name="project_sep"]' position='after'>
|
|
||||||
<field name="use_issues"/>
|
<field name="use_issues"/>
|
||||||
|
<label for="use_issues"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
Loading…
Reference in New Issue