Merge lp:~openerp-dev/openobject-addons/trunk-radio-button-tpa into lp:openobject-addons

Proposed by Turkesh Patel (openERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-addons/trunk-radio-button-tpa
Merge into: lp:openobject-addons
Diff against target: 467 lines (+49/-51)
28 files modified
account/account_view.xml (+1/-1)
account/res_config.py (+2/-2)
account/res_config_view.xml (+1/-2)
account/wizard/account_report_account_balance_view.xml (+1/-1)
account/wizard/account_report_aged_partner_balance_view.xml (+1/-1)
account/wizard/account_report_common.py (+1/-1)
account/wizard/account_report_common_account.py (+2/-2)
account/wizard/account_report_common_view.xml (+3/-3)
account/wizard/account_report_general_ledger_view.xml (+3/-3)
account/wizard/account_report_partner_balance.py (+1/-1)
account/wizard/account_report_partner_balance_view.xml (+1/-1)
account/wizard/account_report_print_journal_view.xml (+1/-1)
account_asset/account_asset.py (+2/-2)
account_asset/account_asset_view.xml (+2/-2)
account_voucher/account_voucher.py (+2/-2)
account_voucher/voucher_payment_receipt_view.xml (+4/-2)
analytic/analytic_view.xml (+2/-2)
calendar/calendar.py (+2/-1)
calendar/calendar_view.xml (+1/-1)
mail/mail_group.py (+1/-1)
mail/mail_group_view.xml (+1/-1)
mail/tests/test_mail_features.py (+4/-4)
mrp/mrp.py (+1/-1)
mrp/mrp_view.xml (+1/-1)
purchase/res_config.py (+3/-3)
purchase/res_config_view.xml (+2/-5)
sale_stock/res_config.py (+1/-1)
sale_stock/res_config_view.xml (+2/-3)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/trunk-radio-button-tpa
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+216666@code.launchpad.net

Description of the change

[IMP] added radio widget on selection fields

To post a comment you must log in.
8690. By Sunil Sharma(OpenERP)

[MRG]:lp:openobject-addons

8691. By Sunil Sharma(OpenERP)

[imp]:improve radio widget for target_move field

8692. By Sunil Sharma(OpenERP)

[MRG]:lp:openobject-addons

8693. By Sunil Sharma(OpenERP)

[mrg]:lp:openobject-addons

8694. By Sunil Sharma(OpenERP)

[mrg]:lp:openobject-addons

Unmerged revisions

8694. By Sunil Sharma(OpenERP)

[mrg]:lp:openobject-addons

8693. By Sunil Sharma(OpenERP)

[mrg]:lp:openobject-addons

8692. By Sunil Sharma(OpenERP)

[MRG]:lp:openobject-addons

8691. By Sunil Sharma(OpenERP)

[imp]:improve radio widget for target_move field

8690. By Sunil Sharma(OpenERP)

[MRG]:lp:openobject-addons

8689. By Turkesh Patel (openERP)

[IMP] improved mistek of resolving conflict by avo

8688. By Turkesh Patel (openERP)

[MRG] merge with lp:openobject-addons

8687. By Amit Vora(OpenERP)

[IMP] resolve conflict

8686. By Amit Vora(OpenERP)

[MRG] merge with main branch

8685. By Turkesh Patel (openERP)

[MRG] merge with lp:openobject-addons

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'account/account_view.xml'
--- account/account_view.xml 2014-05-02 13:07:53 +0000
+++ account/account_view.xml 2014-05-16 06:39:28 +0000
@@ -1603,7 +1603,7 @@
1603 <form string="Payment Term" version="7.0">1603 <form string="Payment Term" version="7.0">
1604 <group>1604 <group>
1605 <group string="Amount Computation">1605 <group string="Amount Computation">
1606 <field name="value"/>1606 <field name="value" widget="radio" nolabel="1" colspan="4"/>
1607 <label for="value_amount" string="Amount To Pay" attrs="{'invisible':[('value','=','balance')]}"/>1607 <label for="value_amount" string="Amount To Pay" attrs="{'invisible':[('value','=','balance')]}"/>
1608 <div attrs="{'invisible':[('value','=','balance')]}">1608 <div attrs="{'invisible':[('value','=','balance')]}">
1609 <field name="value_amount" class="oe_inline"/>1609 <field name="value_amount" class="oe_inline"/>
16101610
=== modified file 'account/res_config.py'
--- account/res_config.py 2014-04-23 11:40:53 +0000
+++ account/res_config.py 2014-05-16 06:39:28 +0000
@@ -51,8 +51,8 @@
51 'code_digits': fields.integer('# of Digits', help="No. of digits to use for account code"),51 'code_digits': fields.integer('# of Digits', help="No. of digits to use for account code"),
52 'tax_calculation_rounding_method': fields.related('company_id',52 'tax_calculation_rounding_method': fields.related('company_id',
53 'tax_calculation_rounding_method', type='selection', selection=[53 'tax_calculation_rounding_method', type='selection', selection=[
54 ('round_per_line', 'Round per line'),54 ('round_per_line', 'Round calculation of taxes per line'),
55 ('round_globally', 'Round globally'),55 ('round_globally', 'Round globally calculation of taxes '),
56 ], string='Tax calculation rounding method',56 ], string='Tax calculation rounding method',
57 help="If you select 'Round per line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."),57 help="If you select 'Round per line' : for each tax, the tax amount will first be computed and rounded for each PO/SO/invoice line and then these rounded amounts will be summed, leading to the total amount for that tax. If you select 'Round globally': for each tax, the tax amount will be computed for each PO/SO/invoice line, then these amounts will be summed and eventually this total tax amount will be rounded. If you sell with tax included, you should choose 'Round per line' because you certainly want the sum of your tax-included line subtotals to be equal to the total amount with taxes."),
58 'sale_tax': fields.many2one("account.tax.template", "Default sale tax"),58 'sale_tax': fields.many2one("account.tax.template", "Default sale tax"),
5959
=== modified file 'account/res_config_view.xml'
--- account/res_config_view.xml 2014-04-21 05:34:56 +0000
+++ account/res_config_view.xml 2014-05-16 06:39:28 +0000
@@ -115,8 +115,7 @@
115 <field name="decimal_precision" class="oe_inline"/>115 <field name="decimal_precision" class="oe_inline"/>
116 </div>116 </div>
117 <div>117 <div>
118 <label for="tax_calculation_rounding_method"/>118 <field name="tax_calculation_rounding_method" widget="radio" class="oe_inline" />
119 <field name="tax_calculation_rounding_method" class="oe_inline"/>
120 </div>119 </div>
121 </div>120 </div>
122 <label for="id" string="Features"/>121 <label for="id" string="Features"/>
123122
=== modified file 'account/wizard/account_report_account_balance_view.xml'
--- account/wizard/account_report_account_balance_view.xml 2012-11-29 22:26:45 +0000
+++ account/wizard/account_report_account_balance_view.xml 2014-05-16 06:39:28 +0000
@@ -12,7 +12,7 @@
12 <xpath expr="//notebook/page[@string='Journals']" position="replace">12 <xpath expr="//notebook/page[@string='Journals']" position="replace">
13 </xpath>13 </xpath>
14 <xpath expr="//field[@name='target_move']" position="after">14 <xpath expr="//field[@name='target_move']" position="after">
15 <field name="display_account"/>15 <field name="display_account" widget="radio"/>
16 <newline/>16 <newline/>
17 </xpath>17 </xpath>
18 </data>18 </data>
1919
=== modified file 'account/wizard/account_report_aged_partner_balance_view.xml'
--- account/wizard/account_report_aged_partner_balance_view.xml 2014-03-19 14:33:46 +0000
+++ account/wizard/account_report_aged_partner_balance_view.xml 2014-05-16 06:39:28 +0000
@@ -19,7 +19,7 @@
19 <newline/>19 <newline/>
20 <field name="result_selection"/>20 <field name="result_selection"/>
21 <field name="direction_selection"/>21 <field name="direction_selection"/>
22 <field name="target_move"/>22 <field name="target_move" widget="radio"/>
23 </group>23 </group>
24 <field name="journal_ids" required="0" invisible="1"/>24 <field name="journal_ids" required="0" invisible="1"/>
25 <footer>25 <footer>
2626
=== modified file 'account/wizard/account_report_common.py'
--- account/wizard/account_report_common.py 2013-10-27 12:31:04 +0000
+++ account/wizard/account_report_common.py 2014-05-16 06:39:28 +0000
@@ -44,7 +44,7 @@
44 'chart_account_id': fields.many2one('account.account', 'Chart of Account', help='Select Charts of Accounts', required=True, domain = [('parent_id','=',False)]),44 'chart_account_id': fields.many2one('account.account', 'Chart of Account', help='Select Charts of Accounts', required=True, domain = [('parent_id','=',False)]),
45 'company_id': fields.related('chart_account_id', 'company_id', type='many2one', relation='res.company', string='Company', readonly=True),45 'company_id': fields.related('chart_account_id', 'company_id', type='many2one', relation='res.company', string='Company', readonly=True),
46 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', help='Keep empty for all open fiscal year'),46 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', help='Keep empty for all open fiscal year'),
47 'filter': fields.selection([('filter_no', 'No Filters'), ('filter_date', 'Date'), ('filter_period', 'Periods')], "Filter by", required=True),47 'filter': fields.selection([('filter_no', 'Do not apply filter'), ('filter_date', 'Filter by date'), ('filter_period', 'Filter by period')], "Filter by", required=True),
48 'period_from': fields.many2one('account.period', 'Start Period'),48 'period_from': fields.many2one('account.period', 'Start Period'),
49 'period_to': fields.many2one('account.period', 'End Period'),49 'period_to': fields.many2one('account.period', 'End Period'),
50 'journal_ids': fields.many2many('account.journal', string='Journals', required=True),50 'journal_ids': fields.many2many('account.journal', string='Journals', required=True),
5151
=== modified file 'account/wizard/account_report_common_account.py'
--- account/wizard/account_report_common_account.py 2013-10-27 12:31:04 +0000
+++ account/wizard/account_report_common_account.py 2014-05-16 06:39:28 +0000
@@ -26,8 +26,8 @@
26 _description = 'Account Common Account Report'26 _description = 'Account Common Account Report'
27 _inherit = "account.common.report"27 _inherit = "account.common.report"
28 _columns = {28 _columns = {
29 'display_account': fields.selection([('all','All'), ('movement','With movements'),29 'display_account': fields.selection([('all','Display all Accounts'), ('movement','Display Accounts with movements'),
30 ('not_zero','With balance is not equal to 0'),30 ('not_zero','Display Account where balance is not equal to 0'),
31 ],'Display Accounts', required=True),31 ],'Display Accounts', required=True),
3232
33 }33 }
3434
=== modified file 'account/wizard/account_report_common_view.xml'
--- account/wizard/account_report_common_view.xml 2012-11-29 22:26:45 +0000
+++ account/wizard/account_report_common_view.xml 2014-05-16 06:39:28 +0000
@@ -12,12 +12,12 @@
12 <field name="chart_account_id" widget='selection' on_change="onchange_chart_id(chart_account_id, context)"/>12 <field name="chart_account_id" widget='selection' on_change="onchange_chart_id(chart_account_id, context)"/>
13 <field name="company_id" invisible="1"/>13 <field name="company_id" invisible="1"/>
14 <field name="fiscalyear_id" domain="[('company_id','=',company_id)]"/>14 <field name="fiscalyear_id" domain="[('company_id','=',company_id)]"/>
15 <field name="target_move"/>15 <field name="target_move" widget="radio" nolable="1"/>
16 </group>16 </group>
17 <notebook tabpos="up" colspan="4">17 <notebook tabpos="up" colspan="4">
18 <page string="Filters" name="filters">18 <page string="Filters" name="filters">
19 <group>19 <group col="4">
20 <field name="filter" on_change="onchange_filter(filter, fiscalyear_id)"/>20 <field name="filter" on_change="onchange_filter(filter, fiscalyear_id)" widget="radio" nolabel="1"/>
21 </group>21 </group>
22 <group string="Dates" attrs="{'invisible':[('filter', '!=', 'filter_date')], 'required':[('filter', '=', 'filter_date')]}">22 <group string="Dates" attrs="{'invisible':[('filter', '!=', 'filter_date')], 'required':[('filter', '=', 'filter_date')]}">
23 <field name="date_from" />23 <field name="date_from" />
2424
=== modified file 'account/wizard/account_report_general_ledger_view.xml'
--- account/wizard/account_report_general_ledger_view.xml 2012-11-29 22:26:45 +0000
+++ account/wizard/account_report_general_ledger_view.xml 2014-05-16 06:39:28 +0000
@@ -9,14 +9,14 @@
9 <field name="arch" type="xml">9 <field name="arch" type="xml">
10 <data>10 <data>
11 <xpath expr="//field[@name='target_move']" position="after">11 <xpath expr="//field[@name='target_move']" position="after">
12 <field name="display_account"/>12 <field name="display_account" widget="radio"/>
13 <field name="sortby"/>13 <field name="sortby" widget="radio"/>
14 <field name="landscape"/>14 <field name="landscape"/>
15 <field name="amount_currency"/>15 <field name="amount_currency"/>
16 <newline/>16 <newline/>
17 </xpath>17 </xpath>
18 <xpath expr="//field[@name='filter']" position="after">18 <xpath expr="//field[@name='filter']" position="after">
19 <field name="initial_balance" attrs="{'readonly':[('filter', 'in', ('filter_no'))]}" />19 <field name="initial_balance" attrs="{'readonly':[('filter', 'in', ('filter_no'))]}"/>
20 </xpath>20 </xpath>
21 </data>21 </data>
22 </field>22 </field>
2323
=== modified file 'account/wizard/account_report_partner_balance.py'
--- account/wizard/account_report_partner_balance.py 2014-05-02 13:03:10 +0000
+++ account/wizard/account_report_partner_balance.py 2014-05-16 06:39:28 +0000
@@ -30,7 +30,7 @@
30 _name = 'account.partner.balance'30 _name = 'account.partner.balance'
31 _description = 'Print Account Partner Balance'31 _description = 'Print Account Partner Balance'
32 _columns = {32 _columns = {
33 'display_partner': fields.selection([('non-zero_balance', 'With balance is not equal to 0'), ('all', 'All Partners')]33 'display_partner': fields.selection([('non-zero_balance', 'Display partners with balance is not equal to 0'), ('all', 'Display all partners')]
34 ,'Display Partners'),34 ,'Display Partners'),
35 'journal_ids': fields.many2many('account.journal', 'account_partner_balance_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),35 'journal_ids': fields.many2many('account.journal', 'account_partner_balance_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
36 }36 }
3737
=== modified file 'account/wizard/account_report_partner_balance_view.xml'
--- account/wizard/account_report_partner_balance_view.xml 2012-11-29 22:26:45 +0000
+++ account/wizard/account_report_partner_balance_view.xml 2014-05-16 06:39:28 +0000
@@ -10,7 +10,7 @@
10 <data>10 <data>
11 <xpath expr="//field[@name='target_move']" position="after">11 <xpath expr="//field[@name='target_move']" position="after">
12 <field name="result_selection"/>12 <field name="result_selection"/>
13 <field name="display_partner"/>13 <field name="display_partner" widget="radio"/>
14 <newline/>14 <newline/>
15 </xpath>15 </xpath>
16 </data>16 </data>
1717
=== modified file 'account/wizard/account_report_print_journal_view.xml'
--- account/wizard/account_report_print_journal_view.xml 2012-11-29 22:26:45 +0000
+++ account/wizard/account_report_print_journal_view.xml 2014-05-16 06:39:28 +0000
@@ -9,7 +9,7 @@
9 <field name="arch" type="xml">9 <field name="arch" type="xml">
10 <data>10 <data>
11 <xpath expr="//field[@name='target_move']" position="after">11 <xpath expr="//field[@name='target_move']" position="after">
12 <field name="sort_selection"/>12 <field name="sort_selection" widget="radio"/>
13 <field name="amount_currency"/>13 <field name="amount_currency"/>
14 <newline/>14 <newline/>
15 <field name="filter" on_change="onchange_filter(filter, fiscalyear_id)" colspan="4" invisible="1"/>15 <field name="filter" on_change="onchange_filter(filter, fiscalyear_id)" colspan="4" invisible="1"/>
1616
=== modified file 'account_asset/account_asset.py'
--- account_asset/account_asset.py 2014-05-07 13:45:44 +0000
+++ account_asset/account_asset.py 2014-05-16 06:39:28 +0000
@@ -40,7 +40,7 @@
40 'account_expense_depreciation_id': fields.many2one('account.account', 'Depr. Expense Account', required=True, domain=[('type','=','other')]),40 'account_expense_depreciation_id': fields.many2one('account.account', 'Depr. Expense Account', required=True, domain=[('type','=','other')]),
41 'journal_id': fields.many2one('account.journal', 'Journal', required=True),41 'journal_id': fields.many2one('account.journal', 'Journal', required=True),
42 'company_id': fields.many2one('res.company', 'Company', required=True),42 'company_id': fields.many2one('res.company', 'Company', required=True),
43 'method': fields.selection([('linear','Linear'),('degressive','Degressive')], 'Computation Method', required=True, help="Choose the method to use to compute the amount of depreciation lines.\n"\43 'method': fields.selection([('linear','Linear: Computed on basis of Gross Value / Number of Depreciations'),('degressive','Degressive: Computed on basis of Residual Value * Degressive Factor')], 'Computation Method', required=True, help="Choose the method to use to compute the amount of depreciation lines.\n"\
44 " * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" \44 " * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" \
45 " * Degressive: Calculated on basis of: Residual Value * Degressive Factor"),45 " * Degressive: Calculated on basis of: Residual Value * Degressive Factor"),
46 'method_number': fields.integer('Number of Depreciations', help="The number of depreciations needed to depreciate your asset"),46 'method_number': fields.integer('Number of Depreciations', help="The number of depreciations needed to depreciate your asset"),
@@ -262,7 +262,7 @@
262 "You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that status."),262 "You can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that status."),
263 'active': fields.boolean('Active'),263 'active': fields.boolean('Active'),
264 'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}),264 'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}),
265 'method': fields.selection([('linear','Linear'),('degressive','Degressive')], 'Computation Method', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose the method to use to compute the amount of depreciation lines.\n"\265 'method': fields.selection([('linear','Linear: Computed on basis of Gross Value / Number of Depreciations'),('degressive','Degressive: Computed on basis of Residual Value * Degressive Factor')], 'Computation Method', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose the method to use to compute the amount of depreciation lines.\n"\
266 " * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" \266 " * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" \
267 " * Degressive: Calculated on basis of: Residual Value * Degressive Factor"),267 " * Degressive: Calculated on basis of: Residual Value * Degressive Factor"),
268 'method_number': fields.integer('Number of Depreciations', readonly=True, states={'draft':[('readonly',False)]}, help="The number of depreciations needed to depreciate your asset"),268 'method_number': fields.integer('Number of Depreciations', readonly=True, states={'draft':[('readonly',False)]}, help="The number of depreciations needed to depreciate your asset"),
269269
=== modified file 'account_asset/account_asset_view.xml'
--- account_asset/account_asset_view.xml 2014-03-28 14:06:51 +0000
+++ account_asset/account_asset_view.xml 2014-05-16 06:39:28 +0000
@@ -28,7 +28,7 @@
28 <field name="method_end" attrs="{'required': [('method_time','=','end')], 'invisible':[('method_time','=','number')]}"/>28 <field name="method_end" attrs="{'required': [('method_time','=','end')], 'invisible':[('method_time','=','number')]}"/>
29 </group>29 </group>
30 <group string="Depreciation Method">30 <group string="Depreciation Method">
31 <field name="method"/>31 <field name="method" widget="radio"/>
32 <field name="method_progress_factor" attrs="{'invisible':[('method','=','linear')], 'required':[('method','=','degressive')]}"/>32 <field name="method_progress_factor" attrs="{'invisible':[('method','=','linear')], 'required':[('method','=','degressive')]}"/>
33 <field name="prorata"/>33 <field name="prorata"/>
34 <field name="open_asset"/>34 <field name="open_asset"/>
@@ -116,7 +116,7 @@
116 <field name="partner_id"/>116 <field name="partner_id"/>
117 </group>117 </group>
118 <group>118 <group>
119 <field name="method"/>119 <field name="method" widget="radio"/>
120 <field name="method_progress_factor" attrs="{'invisible':[('method','=','linear')], 'required':[('method','=','degressive')]}"/>120 <field name="method_progress_factor" attrs="{'invisible':[('method','=','linear')], 'required':[('method','=','degressive')]}"/>
121 <label for="method_time"/>121 <label for="method_time"/>
122 <div>122 <div>
123123
=== modified file 'account_voucher/account_voucher.py'
--- account_voucher/account_voucher.py 2014-05-02 13:03:52 +0000
+++ account_voucher/account_voucher.py 2014-05-16 06:39:28 +0000
@@ -374,8 +374,8 @@
374 'pre_line':fields.boolean('Previous Payments ?', required=False),374 'pre_line':fields.boolean('Previous Payments ?', required=False),
375 'date_due': fields.date('Due Date', readonly=True, select=True, states={'draft':[('readonly',False)]}),375 'date_due': fields.date('Due Date', readonly=True, select=True, states={'draft':[('readonly',False)]}),
376 'payment_option':fields.selection([376 'payment_option':fields.selection([
377 ('without_writeoff', 'Keep Open'),377 ('without_writeoff', 'Keep it open'),
378 ('with_writeoff', 'Reconcile Payment Balance'),378 ('with_writeoff', 'Reconcile payment balance'),
379 ], 'Payment Difference', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="This field helps you to choose what you want to do with the eventual difference between the paid amount and the sum of allocated amounts. You can either choose to keep open this difference on the partner's account, or reconcile it with the payment(s)"),379 ], 'Payment Difference', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="This field helps you to choose what you want to do with the eventual difference between the paid amount and the sum of allocated amounts. You can either choose to keep open this difference on the partner's account, or reconcile it with the payment(s)"),
380 'writeoff_acc_id': fields.many2one('account.account', 'Counterpart Account', readonly=True, states={'draft': [('readonly', False)]}),380 'writeoff_acc_id': fields.many2one('account.account', 'Counterpart Account', readonly=True, states={'draft': [('readonly', False)]}),
381 'comment': fields.char('Counterpart Comment', size=64, required=True, readonly=True, states={'draft': [('readonly', False)]}),381 'comment': fields.char('Counterpart Comment', size=64, required=True, readonly=True, states={'draft': [('readonly', False)]}),
382382
=== modified file 'account_voucher/voucher_payment_receipt_view.xml'
--- account_voucher/voucher_payment_receipt_view.xml 2013-10-27 12:31:04 +0000
+++ account_voucher/voucher_payment_receipt_view.xml 2014-05-16 06:39:28 +0000
@@ -211,13 +211,15 @@
211 <group col="2">211 <group col="2">
212 <separator string="Payment Options" colspan="2"/>212 <separator string="Payment Options" colspan="2"/>
213 <field name="writeoff_amount" widget='monetary' options='{"currency_field": "currency_id"}'/>213 <field name="writeoff_amount" widget='monetary' options='{"currency_field": "currency_id"}'/>
214 <field name="payment_option" required="1"/>214 <label for="payment_option" string="Difference of payment amount" class="oe_inline"/>
215 <field name="payment_option" widget="radio" required="1" nolabel="1"/>
215 <field name="writeoff_acc_id"216 <field name="writeoff_acc_id"
216 attrs="{'invisible':[('payment_option','!=','with_writeoff')], 'required':[('payment_option','=','with_writeoff')]}"217 attrs="{'invisible':[('payment_option','!=','with_writeoff')], 'required':[('payment_option','=','with_writeoff')]}"
217 domain="[('type','=','other')]"/>218 domain="[('type','=','other')]"/>
218 <field name="comment"219 <field name="comment"
219 attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"/>220 attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"/>
220 <field name="analytic_id"221 <field name="analytic_id"
222 attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"
221 groups="analytic.group_analytic_accounting"/>223 groups="analytic.group_analytic_accounting"/>
222 </group>224 </group>
223 </group>225 </group>
@@ -495,7 +497,7 @@
495 </group>497 </group>
496 <group>498 <group>
497 <field name="writeoff_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>499 <field name="writeoff_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
498 <field name="payment_option" required="1" attrs="{'invisible':[('writeoff_amount','=',0)]}"/>500 <field name="payment_option" required="1" widget="radio" attrs="{'invisible':[('writeoff_amount','=',0)]}"/>
499 <field name="writeoff_acc_id"501 <field name="writeoff_acc_id"
500 attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)], 'required':[('payment_option','=','with_writeoff')]}"502 attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)], 'required':[('payment_option','=','with_writeoff')]}"
501 domain="[('type','=','other')]"/>503 domain="[('type','=','other')]"/>
502504
=== modified file 'analytic/analytic_view.xml'
--- analytic/analytic_view.xml 2014-04-01 12:36:57 +0000
+++ analytic/analytic_view.xml 2014-05-16 06:39:28 +0000
@@ -26,8 +26,8 @@
26 <field name="currency_id" attrs="{'invisible': ['|',('type', '&lt;&gt;', 'view'), ('company_id', '&lt;&gt;', False)]}"/>26 <field name="currency_id" attrs="{'invisible': ['|',('type', '&lt;&gt;', 'view'), ('company_id', '&lt;&gt;', False)]}"/>
27 </group>27 </group>
28 <group>28 <group>
29 <field name="type" invisible="context.get('default_type', False)"/>29 <field name="type" invisible="context.get('default_type', False)" widget="radio"/>
30 <field name="template_id" on_change="on_change_template(template_id, date_start)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>30 <field name="template_id" on_change="on_change_template(template_id,date_start)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>
31 <field name="code"/>31 <field name="code"/>
32 <field name="parent_id" on_change="on_change_parent(parent_id)" attrs="{'invisible': [('type','in',['contract'])]}"/>32 <field name="parent_id" on_change="on_change_parent(parent_id)" attrs="{'invisible': [('type','in',['contract'])]}"/>
33 <field name="company_id" on_change="on_change_company(company_id)" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>33 <field name="company_id" on_change="on_change_company(company_id)" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
3434
=== modified file 'calendar/calendar.py'
--- calendar/calendar.py 2014-05-14 08:28:10 +0000
+++ calendar/calendar.py 2014-05-16 06:39:28 +0000
@@ -869,7 +869,8 @@
869 'stop_datetime': fields.datetime('End Datetime', states={'done': [('readonly', True)]}, track_visibility='onchange'), # old date_deadline869 'stop_datetime': fields.datetime('End Datetime', states={'done': [('readonly', True)]}, track_visibility='onchange'), # old date_deadline
870 'duration': fields.float('Duration', states={'done': [('readonly', True)]}),870 'duration': fields.float('Duration', states={'done': [('readonly', True)]}),
871 'description': fields.text('Description', states={'done': [('readonly', True)]}),871 'description': fields.text('Description', states={'done': [('readonly', True)]}),
872 'class': fields.selection([('public', 'Public'), ('private', 'Private'), ('confidential', 'Public for Employees')], 'Privacy', states={'done': [('readonly', True)]}),872 'class': fields.selection([('public', 'Everyone'), ('private', 'Only me'), \
873 ('confidential', 'Only internal users')], 'Privacy', states={'done': [('readonly', True)]}),
873 'location': fields.char('Location', help="Location of Event", track_visibility='onchange', states={'done': [('readonly', True)]}),874 'location': fields.char('Location', help="Location of Event", track_visibility='onchange', states={'done': [('readonly', True)]}),
874 'show_as': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Show Time as', states={'done': [('readonly', True)]}),875 'show_as': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Show Time as', states={'done': [('readonly', True)]}),
875876
876877
=== modified file 'calendar/calendar_view.xml'
--- calendar/calendar_view.xml 2014-05-05 15:42:46 +0000
+++ calendar/calendar_view.xml 2014-05-16 06:39:28 +0000
@@ -127,7 +127,7 @@
127 </group>127 </group>
128 </group>128 </group>
129 <group>129 <group>
130 <field name="class"/>130 <field name="class" widget="radio"/>
131 <field name="show_as"/>131 <field name="show_as"/>
132 <field name="rrule" invisible="1" readonly="0" /> 132 <field name="rrule" invisible="1" readonly="0" />
133 <field name="recurrent_id" invisible="1" />133 <field name="recurrent_id" invisible="1" />
134134
=== modified file 'mail/mail_group.py'
--- mail/mail_group.py 2014-03-20 15:08:55 +0000
+++ mail/mail_group.py 2014-05-16 06:39:28 +0000
@@ -48,7 +48,7 @@
48 'name': fields.char('Name', size=64, required=True, translate=True),48 'name': fields.char('Name', size=64, required=True, translate=True),
49 'description': fields.text('Description'),49 'description': fields.text('Description'),
50 'menu_id': fields.many2one('ir.ui.menu', string='Related Menu', required=True, ondelete="cascade"),50 'menu_id': fields.many2one('ir.ui.menu', string='Related Menu', required=True, ondelete="cascade"),
51 'public': fields.selection([('public', 'Public'), ('private', 'Private'), ('groups', 'Selected Group Only')], 'Privacy', required=True,51 'public': fields.selection([('public', 'Everyone'), ('private', 'Invited people only'), ('groups', 'Selected group of users')], 'Privacy', required=True,
52 help='This group is visible by non members. \52 help='This group is visible by non members. \
53 Invisible groups can add members through the invite button.'),53 Invisible groups can add members through the invite button.'),
54 'group_public_id': fields.many2one('res.groups', string='Authorized Group'),54 'group_public_id': fields.many2one('res.groups', string='Authorized Group'),
5555
=== modified file 'mail/mail_group_view.xml'
--- mail/mail_group_view.xml 2013-10-27 12:31:04 +0000
+++ mail/mail_group_view.xml 2014-05-16 06:39:28 +0000
@@ -95,7 +95,7 @@
95 <field name="description" placeholder="Topics discussed in this group..."/>95 <field name="description" placeholder="Topics discussed in this group..."/>
96 <div class="oe_clear"/>96 <div class="oe_clear"/>
97 <group class="oe_edit_only">97 <group class="oe_edit_only">
98 <field name="public"/>98 <field name="public" widget="radio" string="Who can follow the group's activities?"/>
99 <field name="group_public_id"99 <field name="group_public_id"
100 attrs="{'invisible': [('public','&lt;&gt;','groups')], 'required': [('public','=','groups')]}"100 attrs="{'invisible': [('public','&lt;&gt;','groups')], 'required': [('public','=','groups')]}"
101 />101 />
102102
=== modified file 'mail/tests/test_mail_features.py'
--- mail/tests/test_mail_features.py 2014-04-17 09:41:33 +0000
+++ mail/tests/test_mail_features.py 2014-05-16 06:39:28 +0000
@@ -862,7 +862,7 @@
862 # Test: first produced message: no subtype, name change tracked862 # Test: first produced message: no subtype, name change tracked
863 last_msg = self.group_pigs.message_ids[-1]863 last_msg = self.group_pigs.message_ids[-1]
864 self.assertFalse(last_msg.subtype_id, 'tracked: message should not have been linked to a subtype')864 self.assertFalse(last_msg.subtype_id, 'tracked: message should not have been linked to a subtype')
865 self.assertIn(u'SelectedGroupOnly\u2192Public', _strip_string_spaces(last_msg.body), 'tracked: message body incorrect')865 self.assertIn(u"Selectedgroupofusers\u2192Everyone", _strip_string_spaces(last_msg.body), 'tracked: message body incorrect')
866 self.assertIn('Pigs', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold always tracked field')866 self.assertIn('Pigs', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold always tracked field')
867867
868 # Test: change name as supername, public as private -> 2 subtypes868 # Test: change name as supername, public as private -> 2 subtypes
@@ -878,7 +878,7 @@
878 last_msg = self.group_pigs.message_ids[-3]878 last_msg = self.group_pigs.message_ids[-3]
879 self.assertEqual(last_msg.subtype_id.id, mt_name_supername_id, 'tracked: message should be linked to mt_name_supername subtype')879 self.assertEqual(last_msg.subtype_id.id, mt_name_supername_id, 'tracked: message should be linked to mt_name_supername subtype')
880 self.assertIn('Supername name', last_msg.body, 'tracked: message body does not hold the subtype description')880 self.assertIn('Supername name', last_msg.body, 'tracked: message body does not hold the subtype description')
881 self.assertIn(u'Public\u2192Private', _strip_string_spaces(last_msg.body), 'tracked: message body incorrect')881 self.assertIn(u"Everyone\u2192Invitedpeopleonly", _strip_string_spaces(last_msg.body), 'tracked: message body incorrect')
882 self.assertIn(u'Pigs\u2192supername', _strip_string_spaces(last_msg.body), 'tracked feature: message body does not hold always tracked field')882 self.assertIn(u'Pigs\u2192supername', _strip_string_spaces(last_msg.body), 'tracked feature: message body does not hold always tracked field')
883883
884 # Test: change public as public, group_public_id -> 2 subtypes, name always tracked884 # Test: change public as public, group_public_id -> 2 subtypes, name always tracked
@@ -889,13 +889,13 @@
889 last_msg = self.group_pigs.message_ids[-4]889 last_msg = self.group_pigs.message_ids[-4]
890 self.assertEqual(last_msg.subtype_id.id, mt_group_public_set_id, 'tracked: message should be linked to mt_group_public_set_id')890 self.assertEqual(last_msg.subtype_id.id, mt_group_public_set_id, 'tracked: message should be linked to mt_group_public_set_id')
891 self.assertIn('Group set', last_msg.body, 'tracked: message body does not hold the subtype description')891 self.assertIn('Group set', last_msg.body, 'tracked: message body does not hold the subtype description')
892 self.assertIn(u'Private\u2192Public', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold changed tracked field')892 self.assertIn(u"Invitedpeopleonly\u2192Everyone", _strip_string_spaces(last_msg.body), 'tracked: message body does not hold changed tracked field')
893 self.assertIn(u'HumanResources/Employee\u2192Administration/Settings', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold always tracked field')893 self.assertIn(u'HumanResources/Employee\u2192Administration/Settings', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold always tracked field')
894 # Test: second produced message: mt_group_public_id, with name always tracked, public tracked on change894 # Test: second produced message: mt_group_public_id, with name always tracked, public tracked on change
895 last_msg = self.group_pigs.message_ids[-5]895 last_msg = self.group_pigs.message_ids[-5]
896 self.assertEqual(last_msg.subtype_id.id, mt_group_public_id, 'tracked: message should be linked to mt_group_public_id')896 self.assertEqual(last_msg.subtype_id.id, mt_group_public_id, 'tracked: message should be linked to mt_group_public_id')
897 self.assertIn('Group changed', last_msg.body, 'tracked: message body does not hold the subtype description')897 self.assertIn('Group changed', last_msg.body, 'tracked: message body does not hold the subtype description')
898 self.assertIn(u'Private\u2192Public', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold changed tracked field')898 self.assertIn(u"Invitedpeopleonly\u2192Everyone", _strip_string_spaces(last_msg.body), 'tracked: message body does not hold changed tracked field')
899 self.assertIn(u'HumanResources/Employee\u2192Administration/Settings', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold always tracked field')899 self.assertIn(u'HumanResources/Employee\u2192Administration/Settings', _strip_string_spaces(last_msg.body), 'tracked: message body does not hold always tracked field')
900900
901 # Test: change group_public_id to False -> 1 subtype, name always tracked901 # Test: change group_public_id to False -> 1 subtype, name always tracked
902902
=== modified file 'mrp/mrp.py'
--- mrp/mrp.py 2014-05-08 11:59:17 +0000
+++ mrp/mrp.py 2014-05-16 06:39:28 +0000
@@ -196,7 +196,7 @@
196 'name': fields.char('Name', size=64),196 'name': fields.char('Name', size=64),
197 'code': fields.char('Reference', size=16),197 'code': fields.char('Reference', size=16),
198 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the bills of material without removing it."),198 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the bills of material without removing it."),
199 'type': fields.selection([('normal', 'Normal BoM'), ('phantom', 'Sets / Phantom')], 'BoM Type', required=True,199 'type': fields.selection([('normal','Manufacture this product as a normal bill of material'),('phantom','Sell and ship this product as a set of components(phantom)')], 'BoM Type', required=True,
200 help= "If a by-product is used in several products, it can be useful to create its own BoM. "\200 help= "If a by-product is used in several products, it can be useful to create its own BoM. "\
201 "Though if you don't want separated production orders for this by-product, select Set/Phantom as BoM type. "\201 "Though if you don't want separated production orders for this by-product, select Set/Phantom as BoM type. "\
202 "If a Phantom BoM is used for a root product, it will be sold and shipped as a set of components, instead of being produced."),202 "If a Phantom BoM is used for a root product, it will be sold and shipped as a set of components, instead of being produced."),
203203
=== modified file 'mrp/mrp_view.xml'
--- mrp/mrp_view.xml 2014-05-07 18:29:17 +0000
+++ mrp/mrp_view.xml 2014-05-16 06:39:28 +0000
@@ -368,7 +368,7 @@
368 <group>368 <group>
369 <field name="name" groups="product.group_mrp_properties"/>369 <field name="name" groups="product.group_mrp_properties"/>
370 <field name="code" string="Reference"/>370 <field name="code" string="Reference"/>
371 <field name="type"/>371 <field name="type" widget="radio"/>
372 <p colspan="2" class="oe_grey" attrs="{'invisible': [('type','=','normal')]}">372 <p colspan="2" class="oe_grey" attrs="{'invisible': [('type','=','normal')]}">
373 When processing a sales order for this product, the delivery order373 When processing a sales order for this product, the delivery order
374 will contain the raw materials, instead of the finished product.374 will contain the raw materials, instead of the finished product.
375375
=== modified file 'purchase/res_config.py'
--- purchase/res_config.py 2014-04-15 11:29:15 +0000
+++ purchase/res_config.py 2014-05-16 06:39:28 +0000
@@ -28,9 +28,9 @@
2828
29 _columns = {29 _columns = {
30 'default_invoice_method': fields.selection(30 'default_invoice_method': fields.selection(
31 [('manual', 'Based on purchase order lines'),31 [('manual', 'Control supplier invoice on purchase order line'),
32 ('picking', 'Based on incoming shipments'),32 ('picking', 'Control supplier invoice on incoming shipments'),
33 ('order', 'Pre-generate draft invoices based on purchase orders'),33 ('order', 'Control supplier invoice on a pregenerated draft invoice'),
34 ], 'Default invoicing control method', required=True, default_model='purchase.order'),34 ], 'Default invoicing control method', required=True, default_model='purchase.order'),
35 'group_purchase_pricelist':fields.boolean("Manage pricelist per supplier",35 'group_purchase_pricelist':fields.boolean("Manage pricelist per supplier",
36 implied_group='product.group_purchase_pricelist',36 implied_group='product.group_purchase_pricelist',
3737
=== modified file 'purchase/res_config_view.xml'
--- purchase/res_config_view.xml 2013-12-03 13:44:48 +0000
+++ purchase/res_config_view.xml 2014-05-16 06:39:28 +0000
@@ -25,12 +25,9 @@
25 </header>25 </header>
26 <separator string="Invoicing Process"/>26 <separator string="Invoicing Process"/>
27 <group>27 <group>
28 <label for="id" string="Invoicing Settings"/>28 <label for="id" string="Default Invoicing Settings"/>
29 <div>29 <div>
30 <div>30 <field name="default_invoice_method" widget="radio" class="oe_inline"/>
31 <label for="default_invoice_method"/>
32 <field name="default_invoice_method" class="oe_inline"/>
33 </div>
34 </div>31 </div>
35 </group>32 </group>
36 <separator string="Purchase Order"/>33 <separator string="Purchase Order"/>
3734
=== modified file 'sale_stock/res_config.py'
--- sale_stock/res_config.py 2014-05-08 14:39:40 +0000
+++ sale_stock/res_config.py 2014-05-16 06:39:28 +0000
@@ -37,7 +37,7 @@
37 'and to automatically creates project tasks from procurement lines.\n'37 'and to automatically creates project tasks from procurement lines.\n'
38 '-This installs the modules project_timesheet and project_mrp.'),38 '-This installs the modules project_timesheet and project_mrp.'),
39 'default_order_policy': fields.selection(39 'default_order_policy': fields.selection(
40 [('manual', 'Invoice based on sales orders'), ('picking', 'Invoice based on deliveries')],40 [('manual', 'Create invoice on sales order'), ('picking', 'Create invoice on deliveries')],
41 'The default invoicing method is', default_model='sale.order',41 'The default invoicing method is', default_model='sale.order',
42 help="You can generate invoices based on sales orders or based on shippings."),42 help="You can generate invoices based on sales orders or based on shippings."),
43 'module_delivery': fields.boolean('Allow adding shipping costs',43 'module_delivery': fields.boolean('Allow adding shipping costs',
4444
=== modified file 'sale_stock/res_config_view.xml'
--- sale_stock/res_config_view.xml 2014-04-14 09:47:43 +0000
+++ sale_stock/res_config_view.xml 2014-05-16 06:39:28 +0000
@@ -28,8 +28,7 @@
28 </xpath>28 </xpath>
29 <xpath expr="//div[@name='time_unit']" position="before">29 <xpath expr="//div[@name='time_unit']" position="before">
30 <div attrs="{'invisible':['|',('group_invoice_so_lines','=',False),('group_invoice_deli_orders','=',False)],'required': ['|',('group_invoice_so_lines','=',True),('group_invoice_deli_orders','=',True)]}">30 <div attrs="{'invisible':['|',('group_invoice_so_lines','=',False),('group_invoice_deli_orders','=',False)],'required': ['|',('group_invoice_so_lines','=',True),('group_invoice_deli_orders','=',True)]}">
31 <label for="default_order_policy"/>31 <field name="default_order_policy" class="oe_inline" widget="radio"/>
32 <field name="default_order_policy" class="oe_inline"/>
33 </div>32 </div>
34 <div>33 <div>
35 <field name="module_delivery" class="oe_inline"/>34 <field name="module_delivery" class="oe_inline"/>
@@ -71,4 +70,4 @@
71 </field>70 </field>
72 </record>71 </record>
73 </data>72 </data>
74</openerp>
75\ No newline at end of file73\ No newline at end of file
74</openerp>

Subscribers

People subscribed via source and target branches

to all changes: