Merge lp:~openerp-dev/openobject-addons/trunk-add-x2many-widget-sgo into lp:openobject-addons
- trunk-add-x2many-widget-sgo
- Merge into trunk
Status: | Needs review |
---|---|
Proposed branch: | lp:~openerp-dev/openobject-addons/trunk-add-x2many-widget-sgo |
Merge into: | lp:openobject-addons |
Diff against target: |
1023 lines (+174/-131) 50 files modified
account/account_view.xml (+1/-1) account/partner.py (+5/-1) account/partner_view.xml (+7/-12) account_analytic_default/account_analytic_default_view.xml (+1/-1) account_asset/account_asset_view.xml (+1/-1) account_payment/account_payment_view.xml (+1/-1) account_voucher/account_voucher_view.xml (+1/-1) auth_signup/res_users_view.xml (+1/-1) claim_from_delivery/claim_delivery_view.xml (+1/-1) crm/crm_lead_view.xml (+3/-2) crm/res_partner_view.xml (+12/-7) crm_claim/res_partner_view.xml (+3/-3) email_template/email_template_view.xml (+3/-3) event/event_view.xml (+2/-1) fleet/fleet_view.xml (+9/-5) hr_contract/hr_contract_view.xml (+3/-1) hr_evaluation/hr_evaluation_view.xml (+4/-4) hr_holidays/hr_holidays.py (+1/-0) hr_holidays/hr_holidays_view.xml (+2/-1) hr_payroll/hr_payroll_view.xml (+3/-2) hr_recruitment/hr_recruitment_view.xml (+4/-4) hr_timesheet/hr_timesheet_view.xml (+1/-1) hr_timesheet_sheet/hr_timesheet_sheet_view.xml (+3/-2) mail/mail_alias_view.xml (+1/-1) marketing_campaign/marketing_campaign.py (+4/-0) marketing_campaign/marketing_campaign_view.xml (+5/-17) mrp/mrp_view.xml (+5/-3) point_of_sale/point_of_sale_view.xml (+2/-2) procurement/procurement_view.xml (+3/-1) project/project.py (+12/-12) project/project_view.xml (+3/-2) project/res_partner_view.xml (+3/-3) project/tests/test_project_flow.py (+4/-4) project_issue/project_issue.py (+9/-2) project_issue/project_issue_view.xml (+5/-4) project_long_term/project_long_term_view.xml (+5/-4) project_long_term/test/task_process.yml (+1/-1) project_timesheet/project_timesheet_view.xml (+1/-1) purchase/partner_view.xml (+4/-2) purchase/purchase.py (+5/-0) purchase/purchase_view.xml (+3/-1) purchase/stock_view.xml (+2/-2) purchase_requisition/purchase_requisition_view.xml (+1/-1) sale/res_partner_view.xml (+3/-2) sale/sale.py (+6/-0) sale/sale_view.xml (+3/-1) stock/product.py (+1/-0) stock/product_view.xml (+4/-2) stock/stock_view.xml (+3/-3) survey/survey_view.xml (+4/-4) |
To merge this branch: | bzr merge lp:~openerp-dev/openobject-addons/trunk-add-x2many-widget-sgo |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenERP Core Team | Pending | ||
Review via email: mp+196490@code.launchpad.net |
Commit message
Description of the change
Hello,
Change in button behaviour set oe_link which lies in button_box class and also set x2many widget where is needed on one2many field. If no field is set related with another than also add new one2many field For looks like in kanban view.
Thank You.
Sanjay Gohel
- 8968. By Sanjay Gohel (Open ERP)
-
[MERGE]with trunk
- 8969. By Sanjay Gohel (Open ERP)
-
[IMP]change field name to issues to issue_ids and on long term remove kanban from options
- 8970. By Sanjay Gohel (Open ERP)
-
[IMP]add vertical seprator and remove kanban from options
- 8971. By Sanjay Gohel (Open ERP)
-
[REM/IMP]remove kanban from options and add vertical seprator
- 8972. By Sanjay Gohel (Open ERP)
-
[IMP]set oe_link
- 8973. By Sanjay Gohel (Open ERP)
-
[IMP]remove unused options and set field in product form view
- 8974. By Sanjay Gohel (Open ERP)
-
[IMP]add separator
- 8975. By Sanjay Gohel (Open ERP)
-
[IMP]remove unused code
- 8976. By RGA(OpenERP)
-
[IMP] fleet: fix dead link add type of button, project_log_term: add oe_button_box for phase from view and button to dispaly it as link
- 8977. By Sanjay Gohel (Open ERP)
-
[MERGE]sync with trunk
- 8978. By Sanjay Gohel (Open ERP)
-
[MERGE]sync with trunk
- 8979. By Sanjay Gohel (Open ERP)
-
[MERGE]sync with trunk
Unmerged revisions
- 8979. By Sanjay Gohel (Open ERP)
-
[MERGE]sync with trunk
- 8978. By Sanjay Gohel (Open ERP)
-
[MERGE]sync with trunk
- 8977. By Sanjay Gohel (Open ERP)
-
[MERGE]sync with trunk
- 8976. By RGA(OpenERP)
-
[IMP] fleet: fix dead link add type of button, project_log_term: add oe_button_box for phase from view and button to dispaly it as link
- 8975. By Sanjay Gohel (Open ERP)
-
[IMP]remove unused code
- 8974. By Sanjay Gohel (Open ERP)
-
[IMP]add separator
- 8973. By Sanjay Gohel (Open ERP)
-
[IMP]remove unused options and set field in product form view
- 8972. By Sanjay Gohel (Open ERP)
-
[IMP]set oe_link
- 8971. By Sanjay Gohel (Open ERP)
-
[REM/IMP]remove kanban from options and add vertical seprator
- 8970. By Sanjay Gohel (Open ERP)
-
[IMP]add vertical seprator and remove kanban from options
Preview Diff
1 | === modified file 'account/account_view.xml' | |||
2 | --- account/account_view.xml 2013-10-27 12:31:04 +0000 | |||
3 | +++ account/account_view.xml 2013-12-05 09:45:50 +0000 | |||
4 | @@ -631,7 +631,7 @@ | |||
5 | 631 | <field name="arch" type="xml"> | 631 | <field name="arch" type="xml"> |
6 | 632 | <xpath expr="//div[@name='import_buttons']" position="inside"> | 632 | <xpath expr="//div[@name='import_buttons']" position="inside"> |
7 | 633 | <button name="button_journal_entries" | 633 | <button name="button_journal_entries" |
9 | 634 | string="Journal Items" type="object" | 634 | string="Journal Items" type="object" class="oe_link" |
10 | 635 | attrs="{'invisible':[('state','!=','confirm')]}"/> | 635 | attrs="{'invisible':[('state','!=','confirm')]}"/> |
11 | 636 | </xpath> | 636 | </xpath> |
12 | 637 | </field> | 637 | </field> |
13 | 638 | 638 | ||
14 | === modified file 'account/partner.py' | |||
15 | --- account/partner.py 2013-11-27 15:32:57 +0000 | |||
16 | +++ account/partner.py 2013-12-05 09:45:50 +0000 | |||
17 | @@ -222,7 +222,11 @@ | |||
18 | 222 | help="This payment term will be used instead of the default one for purchase orders and supplier invoices"), | 222 | help="This payment term will be used instead of the default one for purchase orders and supplier invoices"), |
19 | 223 | 'ref_companies': fields.one2many('res.company', 'partner_id', | 223 | 'ref_companies': fields.one2many('res.company', 'partner_id', |
20 | 224 | 'Companies that refers to partner'), | 224 | 'Companies that refers to partner'), |
22 | 225 | 'last_reconciliation_date': fields.datetime('Latest Full Reconciliation Date', help='Date on which the partner accounting entries were fully reconciled last time. It differs from the last date where a reconciliation has been made for this partner, as here we depict the fact that nothing more was to be reconciled at this date. This can be achieved in 2 different ways: either the last unreconciled debit/credit entry of this partner was reconciled, either the user pressed the button "Nothing more to reconcile" during the manual reconciliation process.') | 225 | 'last_reconciliation_date': fields.datetime('Latest Full Reconciliation Date', help='Date on which the partner accounting entries were fully reconciled last time. It differs from the last date where a reconciliation has been made for this partner, as here we depict the fact that nothing more was to be reconciled at this date. This can be achieved in 2 different ways: either the last unreconciled debit/credit entry of this partner was reconciled, either the user pressed the button "Nothing more to reconcile" during the manual reconciliation process.'), |
23 | 226 | 'ref_companies': fields.one2many('res.company', 'partner_id', | ||
24 | 227 | 'Companies that refers to partner'), | ||
25 | 228 | 'invoice_ids': fields.one2many('account.invoice', 'partner_id', 'Invoices'), | ||
26 | 229 | 'contract_ids': fields.one2many('account.analytic.account', 'partner_id', 'Contracts'), | ||
27 | 226 | } | 230 | } |
28 | 227 | 231 | ||
29 | 228 | def _commercial_fields(self, cr, uid, context=None): | 232 | def _commercial_fields(self, cr, uid, context=None): |
30 | 229 | 233 | ||
31 | === modified file 'account/partner_view.xml' | |||
32 | --- account/partner_view.xml 2013-10-27 12:31:04 +0000 | |||
33 | +++ account/partner_view.xml 2013-12-05 09:45:50 +0000 | |||
34 | @@ -50,13 +50,6 @@ | |||
35 | 50 | </field> | 50 | </field> |
36 | 51 | </record> | 51 | </record> |
37 | 52 | 52 | ||
38 | 53 | <record id="action_open_partner_analytic_accounts" model="ir.actions.act_window"> | ||
39 | 54 | <field name="context">{'search_default_partner_id': [active_id], 'default_partner_id': active_id}</field> | ||
40 | 55 | <field name="name">Contracts/Analytic Accounts</field> | ||
41 | 56 | <field name="res_model">account.analytic.account</field> | ||
42 | 57 | <field name="view_id" ref="view_account_analytic_account_tree"/> | ||
43 | 58 | <field name="search_view_id" ref="view_account_analytic_account_search"/> | ||
44 | 59 | </record> | ||
45 | 60 | <record model="ir.ui.view" id="partner_view_buttons"> | 53 | <record model="ir.ui.view" id="partner_view_buttons"> |
46 | 61 | <field name="name">partner.view.buttons</field> | 54 | <field name="name">partner.view.buttons</field> |
47 | 62 | <field name="model">res.partner</field> | 55 | <field name="model">res.partner</field> |
48 | @@ -64,12 +57,14 @@ | |||
49 | 64 | <field name="priority" eval="20"/> | 57 | <field name="priority" eval="20"/> |
50 | 65 | <field name="arch" type="xml"> | 58 | <field name="arch" type="xml"> |
51 | 66 | <xpath expr="//div[@name='buttons']" position="inside"> | 59 | <xpath expr="//div[@name='buttons']" position="inside"> |
54 | 67 | <button type="action" string="Invoices" | 60 | <field name="invoice_ids" |
55 | 68 | name="%(account.action_invoice_tree)d" | 61 | widget="x2many_counter" class="oe_vertical_separator" |
56 | 62 | options='{"views": [[false, "list"], [false, "form"]]}' | ||
57 | 69 | context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"/> | 63 | context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"/> |
61 | 70 | <button type="action" string="Journal Items" name="%(account.action_account_moves_all_tree)d" groups="account.group_account_user"/> | 64 | <button type="action" string="Journal Items" class="oe_link oe_vertical_separator" name="%(account.action_account_moves_all_tree)d" groups="account.group_account_user"/> |
62 | 71 | <button type="action" string="Contracts" name="%(account.action_open_partner_analytic_accounts)d" | 65 | <field name="contract_ids" groups="analytic.group_analytic_accounting" |
63 | 72 | groups="analytic.group_analytic_accounting"/> | 66 | widget="x2many_counter" class="oe_vertical_separator" |
64 | 67 | options='{"views": [[false, "list"], [false, "form"]]}'/> | ||
65 | 73 | </xpath> | 68 | </xpath> |
66 | 74 | </field> | 69 | </field> |
67 | 75 | </record> | 70 | </record> |
68 | 76 | 71 | ||
69 | === modified file 'account_analytic_default/account_analytic_default_view.xml' | |||
70 | --- account_analytic_default/account_analytic_default_view.xml 2013-10-27 12:31:04 +0000 | |||
71 | +++ account_analytic_default/account_analytic_default_view.xml 2013-12-05 09:45:50 +0000 | |||
72 | @@ -80,7 +80,7 @@ | |||
73 | 80 | <field name="inherit_id" ref="product.product_normal_form_view"/> | 80 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
74 | 81 | <field name="arch" type="xml"> | 81 | <field name="arch" type="xml"> |
75 | 82 | <xpath expr="//div[@name='buttons']" position="inside"> | 82 | <xpath expr="//div[@name='buttons']" position="inside"> |
77 | 83 | <button string="Analytic Rules" name= "%(action_product_default_list)d" type="action" groups="analytic.group_analytic_accounting" /> | 83 | <button string="Analytic Rules" class="oe_link oe_vertical_separator" name= "%(action_product_default_list)d" type="action" groups="analytic.group_analytic_accounting" /> |
78 | 84 | </xpath> | 84 | </xpath> |
79 | 85 | </field> | 85 | </field> |
80 | 86 | </record> | 86 | </record> |
81 | 87 | 87 | ||
82 | === modified file 'account_asset/account_asset_view.xml' | |||
83 | --- account_asset/account_asset_view.xml 2013-10-27 12:31:04 +0000 | |||
84 | +++ account_asset/account_asset_view.xml 2013-12-05 09:45:50 +0000 | |||
85 | @@ -84,7 +84,7 @@ | |||
86 | 84 | </header> | 84 | </header> |
87 | 85 | <sheet> | 85 | <sheet> |
88 | 86 | <div class="oe_button_box oe_right"> | 86 | <div class="oe_button_box oe_right"> |
90 | 87 | <button name="open_entries" string="Entries" type="object" class="oe_inline"/> | 87 | <button name="open_entries" string="Entries" type="object" class="oe_inline oe_link"/> |
91 | 88 | </div> | 88 | </div> |
92 | 89 | <div class="oe_title"> | 89 | <div class="oe_title"> |
93 | 90 | <label for="name" class="oe_edit_only"/> | 90 | <label for="name" class="oe_edit_only"/> |
94 | 91 | 91 | ||
95 | === modified file 'account_payment/account_payment_view.xml' | |||
96 | --- account_payment/account_payment_view.xml 2013-11-27 15:32:57 +0000 | |||
97 | +++ account_payment/account_payment_view.xml 2013-12-05 09:45:50 +0000 | |||
98 | @@ -70,7 +70,7 @@ | |||
99 | 70 | </header> | 70 | </header> |
100 | 71 | <sheet string="Payment order"> | 71 | <sheet string="Payment order"> |
101 | 72 | <div class="oe_button_box"> | 72 | <div class="oe_button_box"> |
103 | 73 | <button name="%(action_create_payment_order)d" string="Select Invoices to Pay" | 73 | <button class="oe_link oe_vertical_separator" name="%(action_create_payment_order)d" string="Select Invoices to Pay" |
104 | 74 | type="action" attrs="{'invisible':[('state','=','done')]}" icon="gtk-find"/> | 74 | type="action" attrs="{'invisible':[('state','=','done')]}" icon="gtk-find"/> |
105 | 75 | </div> | 75 | </div> |
106 | 76 | <div class="oe_title"> | 76 | <div class="oe_title"> |
107 | 77 | 77 | ||
108 | === modified file 'account_voucher/account_voucher_view.xml' | |||
109 | --- account_voucher/account_voucher_view.xml 2013-10-27 12:31:04 +0000 | |||
110 | +++ account_voucher/account_voucher_view.xml 2013-12-05 09:45:50 +0000 | |||
111 | @@ -201,7 +201,7 @@ | |||
112 | 201 | <field name="arch" type="xml"> | 201 | <field name="arch" type="xml"> |
113 | 202 | <xpath expr="//div[@name='import_buttons']" position="inside"> | 202 | <xpath expr="//div[@name='import_buttons']" position="inside"> |
114 | 203 | <button name="%(action_view_account_statement_from_invoice_lines)d" | 203 | <button name="%(action_view_account_statement_from_invoice_lines)d" |
116 | 204 | string="Import Invoices" type="action" | 204 | string="Import Invoices" type="action" class="oe_link oe_vertical_separator" |
117 | 205 | attrs="{'invisible':[('state','=','confirm')]}"/> | 205 | attrs="{'invisible':[('state','=','confirm')]}"/> |
118 | 206 | </xpath> | 206 | </xpath> |
119 | 207 | </field> | 207 | </field> |
120 | 208 | 208 | ||
121 | === modified file 'auth_signup/res_users_view.xml' | |||
122 | --- auth_signup/res_users_view.xml 2013-11-27 15:32:57 +0000 | |||
123 | +++ auth_signup/res_users_view.xml 2013-12-05 09:45:50 +0000 | |||
124 | @@ -30,7 +30,7 @@ | |||
125 | 30 | type="object" name="action_reset_password" | 30 | type="object" name="action_reset_password" |
126 | 31 | attrs="{'invisible': [('state', '!=', 'active')]}"/> | 31 | attrs="{'invisible': [('state', '!=', 'active')]}"/> |
127 | 32 | <button string="Send an Invitation Email" | 32 | <button string="Send an Invitation Email" |
129 | 33 | class="oe_link" | 33 | class="oe_link oe_vertical_separator" |
130 | 34 | type="object" name="action_reset_password" context="{'create_user': 1}" | 34 | type="object" name="action_reset_password" context="{'create_user': 1}" |
131 | 35 | attrs="{'invisible': [('state', '!=', 'new')]}"/> | 35 | attrs="{'invisible': [('state', '!=', 'new')]}"/> |
132 | 36 | </xpath> | 36 | </xpath> |
133 | 37 | 37 | ||
134 | === modified file 'claim_from_delivery/claim_delivery_view.xml' | |||
135 | --- claim_from_delivery/claim_delivery_view.xml 2012-11-29 22:26:45 +0000 | |||
136 | +++ claim_from_delivery/claim_delivery_view.xml 2013-12-05 09:45:50 +0000 | |||
137 | @@ -17,7 +17,7 @@ | |||
138 | 17 | <field name="arch" type="xml"> | 17 | <field name="arch" type="xml"> |
139 | 18 | <xpath expr="/form/sheet/h1" position="before"> | 18 | <xpath expr="/form/sheet/h1" position="before"> |
140 | 19 | <div class="oe_right oe_button_box"> | 19 | <div class="oe_right oe_button_box"> |
142 | 20 | <button name="%(action_claim_from_delivery)d" string="Claims" type="action"/> | 20 | <button name="%(action_claim_from_delivery)d" class="oe_link" string="Claims" type="action"/> |
143 | 21 | </div> | 21 | </div> |
144 | 22 | </xpath> | 22 | </xpath> |
145 | 23 | </field> | 23 | </field> |
146 | 24 | 24 | ||
147 | === modified file 'crm/crm_lead_view.xml' | |||
148 | --- crm/crm_lead_view.xml 2013-11-29 09:46:10 +0000 | |||
149 | +++ crm/crm_lead_view.xml 2013-12-05 09:45:50 +0000 | |||
150 | @@ -105,6 +105,7 @@ | |||
151 | 105 | <sheet> | 105 | <sheet> |
152 | 106 | <div class="oe_right oe_button_box" name="buttons"> | 106 | <div class="oe_right oe_button_box" name="buttons"> |
153 | 107 | <button string="Schedule/Log Call" | 107 | <button string="Schedule/Log Call" |
154 | 108 | class="oe_link" | ||
155 | 108 | name="%(opportunity2phonecall_act)d" | 109 | name="%(opportunity2phonecall_act)d" |
156 | 109 | type="action"/> | 110 | type="action"/> |
157 | 110 | </div> | 111 | </div> |
158 | @@ -389,9 +390,9 @@ | |||
159 | 389 | <sheet> | 390 | <sheet> |
160 | 390 | <div class="oe_right oe_button_box"> | 391 | <div class="oe_right oe_button_box"> |
161 | 391 | <button string="Schedule/Log Call" type="action" | 392 | <button string="Schedule/Log Call" type="action" |
163 | 392 | name="%(opportunity2phonecall_act)d"/> | 393 | name="%(opportunity2phonecall_act)d" class="oe_link"/> |
164 | 393 | <button string="Meeting" type="object" | 394 | <button string="Meeting" type="object" |
166 | 394 | name="action_makeMeeting" | 395 | name="action_makeMeeting" class="oe_link oe_vertical_separator" |
167 | 395 | context="{'search_default_attendee_id': active_id, 'default_attendee_id' : active_id}"/> | 396 | context="{'search_default_attendee_id': active_id, 'default_attendee_id' : active_id}"/> |
168 | 396 | </div> | 397 | </div> |
169 | 397 | <div class="oe_title"> | 398 | <div class="oe_title"> |
170 | 398 | 399 | ||
171 | === modified file 'crm/res_partner_view.xml' | |||
172 | --- crm/res_partner_view.xml 2013-10-27 12:31:04 +0000 | |||
173 | +++ crm/res_partner_view.xml 2013-12-05 09:45:50 +0000 | |||
174 | @@ -90,16 +90,21 @@ | |||
175 | 90 | <field name="section_id" completion="1" groups="base.group_multi_salesteams"/> | 90 | <field name="section_id" completion="1" groups="base.group_multi_salesteams"/> |
176 | 91 | </field> | 91 | </field> |
177 | 92 | <xpath expr="//div[@name='buttons']" position="inside"> | 92 | <xpath expr="//div[@name='buttons']" position="inside"> |
179 | 93 | <button class="oe_inline" type="action" string="Opportunities" | 93 | <field string="Opportunities" |
180 | 94 | attrs="{'invisible': [('customer', '=', False)]}" | 94 | attrs="{'invisible': [('customer', '=', False)]}" |
182 | 95 | name="%(crm.crm_case_category_act_oppor11)d" | 95 | name="opportunity_ids" |
183 | 96 | widget="x2many_counter" class="oe_vertical_separator" | ||
184 | 97 | options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' | ||
185 | 96 | context="{'search_default_partner_id': active_id}"/> | 98 | context="{'search_default_partner_id': active_id}"/> |
189 | 97 | <button class="oe_inline" type="action" | 99 | <field string="Meetings" |
190 | 98 | string="Meetings" | 100 | name="meeting_ids" |
191 | 99 | name="%(base_calendar.action_crm_meeting)d" | 101 | widget="x2many_counter" class="oe_vertical_separator" |
192 | 102 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "gantt"]]}' | ||
193 | 100 | context="{'search_default_partner_ids': active_id, 'default_partner_ids' : [active_id]}"/> | 103 | context="{'search_default_partner_ids': active_id, 'default_partner_ids' : [active_id]}"/> |
196 | 101 | <button class="oe_inline" type="action" string="Calls" | 104 | <field string="Calls" |
197 | 102 | name="%(crm.crm_case_categ_phone_incoming0)d" | 105 | name="phonecall_ids" |
198 | 106 | widget="x2many_counter" class="oe_vertical_separator" | ||
199 | 107 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' | ||
200 | 103 | context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" /> | 108 | context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" /> |
201 | 104 | </xpath> | 109 | </xpath> |
202 | 105 | </data> | 110 | </data> |
203 | 106 | 111 | ||
204 | === modified file 'crm_claim/res_partner_view.xml' | |||
205 | --- crm_claim/res_partner_view.xml 2013-06-14 12:10:20 +0000 | |||
206 | +++ crm_claim/res_partner_view.xml 2013-12-05 09:45:50 +0000 | |||
207 | @@ -9,9 +9,9 @@ | |||
208 | 9 | <field name="priority" eval="50"/> | 9 | <field name="priority" eval="50"/> |
209 | 10 | <field name="arch" type="xml"> | 10 | <field name="arch" type="xml"> |
210 | 11 | <xpath expr="//div[@name='buttons']" position="inside"> | 11 | <xpath expr="//div[@name='buttons']" position="inside"> |
214 | 12 | <button class="oe_inline" type="action" | 12 | <field name="claims_ids" |
215 | 13 | name="%(crm_case_categ_claim0)d" | 13 | widget="x2many_counter" class="oe_vertical_separator" |
216 | 14 | string="Claims" | 14 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' |
217 | 15 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" | 15 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" |
218 | 16 | groups="base.group_sale_salesman" /> | 16 | groups="base.group_sale_salesman" /> |
219 | 17 | </xpath> | 17 | </xpath> |
220 | 18 | 18 | ||
221 | === modified file 'email_template/email_template_view.xml' | |||
222 | --- email_template/email_template_view.xml 2013-10-27 12:31:04 +0000 | |||
223 | +++ email_template/email_template_view.xml 2013-12-05 09:45:50 +0000 | |||
224 | @@ -15,13 +15,13 @@ | |||
225 | 15 | <div class="oe_right oe_button_box" name="buttons"> | 15 | <div class="oe_right oe_button_box" name="buttons"> |
226 | 16 | <field name="ref_ir_act_window" invisible="1"/> | 16 | <field name="ref_ir_act_window" invisible="1"/> |
227 | 17 | <button name="create_action" string="Add context action" type="object" | 17 | <button name="create_action" string="Add context action" type="object" |
229 | 18 | attrs="{'invisible':[('ref_ir_act_window','!=',False)]}" | 18 | attrs="{'invisible':[('ref_ir_act_window','!=',False)]}" class="oe_link" |
230 | 19 | help="Display an option on related documents to open a composition wizard with this template"/> | 19 | help="Display an option on related documents to open a composition wizard with this template"/> |
231 | 20 | <button name="unlink_action" string="Remove context action" type="object" | 20 | <button name="unlink_action" string="Remove context action" type="object" |
233 | 21 | attrs="{'invisible':[('ref_ir_act_window','=',False)]}" | 21 | attrs="{'invisible':[('ref_ir_act_window','=',False)]}" class="oe_link" |
234 | 22 | help="Remove the contextual action to use this template on related documents"/> | 22 | help="Remove the contextual action to use this template on related documents"/> |
235 | 23 | <button name="%(wizard_email_template_preview)d" string="Preview" | 23 | <button name="%(wizard_email_template_preview)d" string="Preview" |
237 | 24 | type="action" target="new" | 24 | type="action" target="new" class="oe_link oe_vertical_separator" |
238 | 25 | context="{'template_id':active_id}"/> | 25 | context="{'template_id':active_id}"/> |
239 | 26 | </div> | 26 | </div> |
240 | 27 | <notebook> | 27 | <notebook> |
241 | 28 | 28 | ||
242 | === modified file 'event/event_view.xml' | |||
243 | --- event/event_view.xml 2013-10-27 12:31:04 +0000 | |||
244 | +++ event/event_view.xml 2013-12-05 09:45:50 +0000 | |||
245 | @@ -71,7 +71,8 @@ | |||
246 | 71 | </header> | 71 | </header> |
247 | 72 | <sheet> | 72 | <sheet> |
248 | 73 | <div class="oe_right oe_button_box" groups="base.group_user"> | 73 | <div class="oe_right oe_button_box" groups="base.group_user"> |
250 | 74 | <button name="%(event.act_event_list_register_event)d" type="action" string="Registrations" help="Register with this event"/> | 74 | <field name="registration_ids" widget="x2many_counter" |
251 | 75 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}'/> | ||
252 | 75 | </div> | 76 | </div> |
253 | 76 | <div class="oe_title"> | 77 | <div class="oe_title"> |
254 | 77 | <label for="name" class="oe_edit_only"/> | 78 | <label for="name" class="oe_edit_only"/> |
255 | 78 | 79 | ||
256 | === modified file 'fleet/fleet_view.xml' | |||
257 | --- fleet/fleet_view.xml 2013-11-27 15:32:57 +0000 | |||
258 | +++ fleet/fleet_view.xml 2013-12-05 09:45:50 +0000 | |||
259 | @@ -211,11 +211,15 @@ | |||
260 | 211 | <field name="tag_ids" widget="many2many_tags" /> | 211 | <field name="tag_ids" widget="many2many_tags" /> |
261 | 212 | </div> | 212 | </div> |
262 | 213 | <div class="oe_right oe_button_box"> | 213 | <div class="oe_right oe_button_box"> |
268 | 214 | <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_contract_act'}" string="Contracts" help="show the contract for this vehicle" /> | 214 | <field name="log_contracts" widget="x2many_counter" class="oe_vertical_separator" |
269 | 215 | <button name="act_show_log_cost" type="object" string="Costs" help="show all the costs for this vehicle" groups="fleet.group_fleet_manager"/> | 215 | options='{"views": [[false, "list"], [false, "form"], [false, "graph"]]}' |
270 | 216 | <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_services_act'}" string="Services" help="show the services logs for this vehicle" /> | 216 | string="Contracts" help="show the contract for this vehicle" /> |
271 | 217 | <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_fuel_act'}" string="Fuel Logs" help="show the fuel logs for this vehicle" /> | 217 | <button name="act_show_log_cost" type="object" class="oe_link oe_vertical_separator" string="Costs" help="show all the costs for this vehicle" groups="fleet.group_fleet_manager"/> |
272 | 218 | <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_odometer_act'}" string="Odometer Logs" help="show the odometer logs for this vehicle" /> | 218 | <field name="log_services" class="oe_vertical_separator" string="Services" |
273 | 219 | options='{"views": [[false, "list"], [false, "form"], [false, "graph"]]}' widget="x2many_counter" | ||
274 | 220 | help="show the services logs for this vehicle" /> | ||
275 | 221 | <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_log_fuel_act'}" class="oe_link" string="Fuel Logs" help="show the fuel logs for this vehicle" /> | ||
276 | 222 | <button name="return_action_to_open" type="object" context="{'xml_id':'fleet_vehicle_odometer_act'}" class="oe_link oe_vertical_separator" string="Odometer Logs" help="show the odometer logs for this vehicle" /> | ||
277 | 219 | </div> | 223 | </div> |
278 | 220 | <group col="2" string="General Properties"> | 224 | <group col="2" string="General Properties"> |
279 | 221 | <group > | 225 | <group > |
280 | 222 | 226 | ||
281 | === modified file 'hr_contract/hr_contract_view.xml' | |||
282 | --- hr_contract/hr_contract_view.xml 2013-10-27 12:31:04 +0000 | |||
283 | +++ hr_contract/hr_contract_view.xml 2013-12-05 09:45:50 +0000 | |||
284 | @@ -21,7 +21,9 @@ | |||
285 | 21 | <field name="arch" type="xml"> | 21 | <field name="arch" type="xml"> |
286 | 22 | <data> | 22 | <data> |
287 | 23 | <xpath expr="//div[@name='button_box']" position="inside"> | 23 | <xpath expr="//div[@name='button_box']" position="inside"> |
289 | 24 | <button name="%(act_hr_employee_2_hr_contract)d" string="Contracts" type="action" groups="base.group_hr_manager"/> | 24 | <field name="contract_ids" string="Contracts" widget="x2many_counter" |
290 | 25 | groups="base.group_hr_manager" class="oe_vertical_separator" | ||
291 | 26 | options='{"views": [[false, "list"], [false, "form"]]}'/> | ||
292 | 25 | </xpath> | 27 | </xpath> |
293 | 26 | <xpath expr="//field[@name='coach_id']" position="after"> | 28 | <xpath expr="//field[@name='coach_id']" position="after"> |
294 | 27 | <field name="manager"/> | 29 | <field name="manager"/> |
295 | 28 | 30 | ||
296 | === modified file 'hr_evaluation/hr_evaluation_view.xml' | |||
297 | --- hr_evaluation/hr_evaluation_view.xml 2013-10-27 12:31:04 +0000 | |||
298 | +++ hr_evaluation/hr_evaluation_view.xml 2013-12-05 09:45:50 +0000 | |||
299 | @@ -145,7 +145,7 @@ | |||
300 | 145 | </group> | 145 | </group> |
301 | 146 | </xpath> | 146 | </xpath> |
302 | 147 | <xpath expr="//div[@name='button_box']" position="inside"> | 147 | <xpath expr="//div[@name='button_box']" position="inside"> |
304 | 148 | <button name="%(act_hr_employee_2_hr__evaluation_interview)d" string="Appraisal Interviews" type="action"/> | 148 | <button name="%(act_hr_employee_2_hr__evaluation_interview)d" class="oe_link oe_vertical_separator" string="Appraisal Interviews" type="action"/> |
305 | 149 | </xpath> | 149 | </xpath> |
306 | 150 | </field> | 150 | </field> |
307 | 151 | </record> | 151 | </record> |
308 | @@ -183,8 +183,8 @@ | |||
309 | 183 | <field nolabel="1" name="survey_request_ids" attrs="{'readonly': [('state', '=', 'done')]}"> | 183 | <field nolabel="1" name="survey_request_ids" attrs="{'readonly': [('state', '=', 'done')]}"> |
310 | 184 | <form string="Interview Appraisal" version="7.0"> | 184 | <form string="Interview Appraisal" version="7.0"> |
311 | 185 | <div class="oe_right oe_button_box"> | 185 | <div class="oe_right oe_button_box"> |
314 | 186 | <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> | 186 | <button name="%(survey.action_view_survey_question_message)d" class="oe_link" string="Answer Survey" type="action" states="waiting_answer" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> |
315 | 187 | <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" /> | 187 | <button name="%(survey.survey_browse_response)d" class="oe_link oe_vertical_separator" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" /> |
316 | 188 | </div> | 188 | </div> |
317 | 189 | <group> | 189 | <group> |
318 | 190 | <group> | 190 | <group> |
319 | @@ -305,7 +305,7 @@ | |||
320 | 305 | <sheet> | 305 | <sheet> |
321 | 306 | <div class="oe_right oe_button_box" name="button_box"> | 306 | <div class="oe_right oe_button_box" name="button_box"> |
322 | 307 | <button string="Send Reminder Email" name="%(mail.action_email_compose_message_wizard)d" type="action" | 307 | <button string="Send Reminder Email" name="%(mail.action_email_compose_message_wizard)d" type="action" |
324 | 308 | states="waiting_answer" | 308 | states="waiting_answer" class="oe_link" |
325 | 309 | context="{'default_body_text': 'Hello,\n\nKindly post your response for the survey interview.\n\nThanks', | 309 | context="{'default_body_text': 'Hello,\n\nKindly post your response for the survey interview.\n\nThanks', |
326 | 310 | 'default_subject': 'Reminder to fill up Survey' }"/> | 310 | 'default_subject': 'Reminder to fill up Survey' }"/> |
327 | 311 | </div> | 311 | </div> |
328 | 312 | 312 | ||
329 | === modified file 'hr_holidays/hr_holidays.py' | |||
330 | --- hr_holidays/hr_holidays.py 2013-11-27 15:32:57 +0000 | |||
331 | +++ hr_holidays/hr_holidays.py 2013-12-05 09:45:50 +0000 | |||
332 | @@ -548,6 +548,7 @@ | |||
333 | 548 | 'current_leave_id': fields.function(_get_leave_status, multi="leave_status", string="Current Leave Type",type='many2one', relation='hr.holidays.status'), | 548 | 'current_leave_id': fields.function(_get_leave_status, multi="leave_status", string="Current Leave Type",type='many2one', relation='hr.holidays.status'), |
334 | 549 | 'leave_date_from': fields.function(_get_leave_status, multi='leave_status', type='date', string='From Date'), | 549 | 'leave_date_from': fields.function(_get_leave_status, multi='leave_status', type='date', string='From Date'), |
335 | 550 | 'leave_date_to': fields.function(_get_leave_status, multi='leave_status', type='date', string='To Date'), | 550 | 'leave_date_to': fields.function(_get_leave_status, multi='leave_status', type='date', string='To Date'), |
336 | 551 | 'leave_ids': fields.one2many('hr.holidays','employee_id',string="Leaves") | ||
337 | 551 | } | 552 | } |
338 | 552 | 553 | ||
339 | 553 | 554 | ||
340 | 554 | 555 | ||
341 | === modified file 'hr_holidays/hr_holidays_view.xml' | |||
342 | --- hr_holidays/hr_holidays_view.xml 2013-10-27 12:31:04 +0000 | |||
343 | +++ hr_holidays/hr_holidays_view.xml 2013-12-05 09:45:50 +0000 | |||
344 | @@ -522,7 +522,8 @@ | |||
345 | 522 | </group> | 522 | </group> |
346 | 523 | </xpath> | 523 | </xpath> |
347 | 524 | <xpath expr="//div[@name='button_box']" position="inside"> | 524 | <xpath expr="//div[@name='button_box']" position="inside"> |
349 | 525 | <button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action" groups="base.group_hr_user"/> | 525 | <field name="leave_ids" widget="x2many_counter" groups="base.group_hr_user" class="oe_vertical_separator" |
350 | 526 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}'/> | ||
351 | 526 | </xpath> | 527 | </xpath> |
352 | 527 | </field> | 528 | </field> |
353 | 528 | </record> | 529 | </record> |
354 | 529 | 530 | ||
355 | === modified file 'hr_payroll/hr_payroll_view.xml' | |||
356 | --- hr_payroll/hr_payroll_view.xml 2013-10-27 12:31:04 +0000 | |||
357 | +++ hr_payroll/hr_payroll_view.xml 2013-12-05 09:45:50 +0000 | |||
358 | @@ -222,7 +222,7 @@ | |||
359 | 222 | </header> | 222 | </header> |
360 | 223 | <sheet> | 223 | <sheet> |
361 | 224 | <div class="oe_right oe_button_box"> | 224 | <div class="oe_right oe_button_box"> |
363 | 225 | <button name="%(act_payslip_lines)d" string="Payslip Computation Details" type="action"/> | 225 | <button name="%(act_payslip_lines)d" class="oe_link" string="Payslip Computation Details" type="action"/> |
364 | 226 | </div> | 226 | </div> |
365 | 227 | <div class="oe_title"> | 227 | <div class="oe_title"> |
366 | 228 | <label for="employee_id" class="oe_edit_only"/> | 228 | <label for="employee_id" class="oe_edit_only"/> |
367 | @@ -387,7 +387,8 @@ | |||
368 | 387 | <field name="arch" type="xml"> | 387 | <field name="arch" type="xml"> |
369 | 388 | <data> | 388 | <data> |
370 | 389 | <xpath expr="//div[@name='button_box']" position="inside"> | 389 | <xpath expr="//div[@name='button_box']" position="inside"> |
372 | 390 | <button name="%(act_hr_employee_payslip_list)d" string="Payslips" type="action" groups="base.group_hr_user"/> | 390 | <field name="slip_ids" string="Payslips" widget="x2many_counter" class="oe_vertical_separator" |
373 | 391 | groups="base.group_hr_user" options='{"views": [[false, "list"], [false, "form"]]}'/> | ||
374 | 391 | </xpath> | 392 | </xpath> |
375 | 392 | </data> | 393 | </data> |
376 | 393 | </field> | 394 | </field> |
377 | 394 | 395 | ||
378 | === modified file 'hr_recruitment/hr_recruitment_view.xml' | |||
379 | --- hr_recruitment/hr_recruitment_view.xml 2013-11-27 15:32:57 +0000 | |||
380 | +++ hr_recruitment/hr_recruitment_view.xml 2013-12-05 09:45:50 +0000 | |||
381 | @@ -74,13 +74,13 @@ | |||
382 | 74 | </header> | 74 | </header> |
383 | 75 | <sheet> | 75 | <sheet> |
384 | 76 | <div class="oe_right oe_button_box"> | 76 | <div class="oe_right oe_button_box"> |
386 | 77 | <button name="action_makeMeeting" type="object" | 77 | <button name="action_makeMeeting" class="oe_link" type="object" |
387 | 78 | string="Schedule Meeting" help="Schedule interview with this applicant"/> | 78 | string="Schedule Meeting" help="Schedule interview with this applicant"/> |
389 | 79 | <button name="%(survey.action_view_survey_question_message)d" type="action" | 79 | <button name="%(survey.action_view_survey_question_message)d" class="oe_link oe_vertical_separator" type="action" |
390 | 80 | string="Start Interview" help="Answer related job question" | 80 | string="Start Interview" help="Answer related job question" |
391 | 81 | context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" | 81 | context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" |
394 | 82 | attrs="{'invisible':[('survey','=',False)]}"/> | 82 | attrs="{'invisible':[('survey','=',False)]}"/> |
395 | 83 | <button name="action_print_survey" type="object" | 83 | <button name="action_print_survey" type="object" class="oe_link oe_vertical_separator" |
396 | 84 | string="Print Interview" help="Print interview report" | 84 | string="Print Interview" help="Print interview report" |
397 | 85 | attrs="{'invisible':[('survey','=',False)]}"/> | 85 | attrs="{'invisible':[('survey','=',False)]}"/> |
398 | 86 | </div> | 86 | </div> |
399 | 87 | 87 | ||
400 | === modified file 'hr_timesheet/hr_timesheet_view.xml' | |||
401 | --- hr_timesheet/hr_timesheet_view.xml 2013-11-27 15:32:57 +0000 | |||
402 | +++ hr_timesheet/hr_timesheet_view.xml 2013-12-05 09:45:50 +0000 | |||
403 | @@ -119,7 +119,7 @@ | |||
404 | 119 | </xpath> | 119 | </xpath> |
405 | 120 | <xpath expr='//div[@name="buttons"]' position='inside'> | 120 | <xpath expr='//div[@name="buttons"]' position='inside'> |
406 | 121 | <button string="Costs and Revenues" | 121 | <button string="Costs and Revenues" |
408 | 122 | name="%(act_analytic_cost_revenue)d" | 122 | name="%(act_analytic_cost_revenue)d" class="oe_link" |
409 | 123 | type="action"/> | 123 | type="action"/> |
410 | 124 | 124 | ||
411 | 125 | </xpath> | 125 | </xpath> |
412 | 126 | 126 | ||
413 | === modified file 'hr_timesheet_sheet/hr_timesheet_sheet_view.xml' | |||
414 | --- hr_timesheet_sheet/hr_timesheet_sheet_view.xml 2012-12-17 11:14:02 +0000 | |||
415 | +++ hr_timesheet_sheet/hr_timesheet_sheet_view.xml 2013-12-05 09:45:50 +0000 | |||
416 | @@ -71,10 +71,11 @@ | |||
417 | 71 | </header> | 71 | </header> |
418 | 72 | <sheet> | 72 | <sheet> |
419 | 73 | <div class="oe_right oe_button_box" name="buttons"> | 73 | <div class="oe_right oe_button_box" name="buttons"> |
421 | 74 | <button type="action" | 74 | <button type="action" class="oe_link" |
422 | 75 | name="%(act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet)d" | 75 | name="%(act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet)d" |
423 | 76 | string="Timesheet Activities" /> | 76 | string="Timesheet Activities" /> |
424 | 77 | <button type="action" groups="base.group_hr_attendance" | 77 | <button type="action" groups="base.group_hr_attendance" |
425 | 78 | class="oe_link oe_vertical_separator" | ||
426 | 78 | name="%(act_hr_timesheet_sheet_sheet_2_hr_attendance)d" | 79 | name="%(act_hr_timesheet_sheet_sheet_2_hr_attendance)d" |
427 | 79 | string="Attendances" /> | 80 | string="Attendances" /> |
428 | 80 | </div> | 81 | </div> |
429 | @@ -365,7 +366,7 @@ | |||
430 | 365 | <field name="inherit_id" ref="hr_timesheet.hr_timesheet_employee_extd_form"/> | 366 | <field name="inherit_id" ref="hr_timesheet.hr_timesheet_employee_extd_form"/> |
431 | 366 | <field name="arch" type="xml"> | 367 | <field name="arch" type="xml"> |
432 | 367 | <xpath expr="//div[@name='button_box']" position="inside"> | 368 | <xpath expr="//div[@name='button_box']" position="inside"> |
434 | 368 | <button name="%(act_hr_employee_2_hr_timesheet)d" string="Timesheets" type="action" groups="base.group_hr_manager"/> | 369 | <button name="%(act_hr_employee_2_hr_timesheet)d" string="Timesheets" class="oe_link oe_vertical_separator" type="action" groups="base.group_hr_manager"/> |
435 | 369 | </xpath> | 370 | </xpath> |
436 | 370 | </field> | 371 | </field> |
437 | 371 | </record> | 372 | </record> |
438 | 372 | 373 | ||
439 | === modified file 'mail/mail_alias_view.xml' | |||
440 | --- mail/mail_alias_view.xml 2013-10-27 12:31:04 +0000 | |||
441 | +++ mail/mail_alias_view.xml 2013-12-05 09:45:50 +0000 | |||
442 | @@ -15,7 +15,7 @@ | |||
443 | 15 | type="object" class="oe_link" | 15 | type="object" class="oe_link" |
444 | 16 | attrs="{'invisible': ['|', ('alias_model_id', '=', False), ('alias_force_thread_id', '=', 0)]}"/> | 16 | attrs="{'invisible': ['|', ('alias_model_id', '=', False), ('alias_force_thread_id', '=', 0)]}"/> |
445 | 17 | <button name="open_parent_document" string="Open Parent Document" | 17 | <button name="open_parent_document" string="Open Parent Document" |
447 | 18 | type="object" class="oe_link" | 18 | type="object" class="oe_link oe_vertical_separator" |
448 | 19 | attrs="{'invisible': ['|', ('alias_parent_model_id', '=', False), ('alias_parent_thread_id', '=', 0)]}"/> | 19 | attrs="{'invisible': ['|', ('alias_parent_model_id', '=', False), ('alias_parent_thread_id', '=', 0)]}"/> |
449 | 20 | </div> | 20 | </div> |
450 | 21 | <group> | 21 | <group> |
451 | 22 | 22 | ||
452 | === modified file 'marketing_campaign/marketing_campaign.py' | |||
453 | --- marketing_campaign/marketing_campaign.py 2013-11-27 15:32:57 +0000 | |||
454 | +++ marketing_campaign/marketing_campaign.py 2013-12-05 09:45:50 +0000 | |||
455 | @@ -120,6 +120,10 @@ | |||
456 | 120 | 'Status',), | 120 | 'Status',), |
457 | 121 | 'activity_ids': fields.one2many('marketing.campaign.activity', | 121 | 'activity_ids': fields.one2many('marketing.campaign.activity', |
458 | 122 | 'campaign_id', 'Activities'), | 122 | 'campaign_id', 'Activities'), |
459 | 123 | 'segment_ids': fields.one2many('marketing.campaign.segment', | ||
460 | 124 | 'campaign_id', 'Segments'), | ||
461 | 125 | 'followup_ids': fields.one2many('marketing.campaign.workitem', | ||
462 | 126 | 'campaign_id', 'Follow-Up'), | ||
463 | 123 | 'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for running this campaign. You may also specify variable cost and revenue on each campaign activity. Cost and Revenue statistics are included in Campaign Reporting.", digits_compute=dp.get_precision('Product Price')), | 127 | 'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for running this campaign. You may also specify variable cost and revenue on each campaign activity. Cost and Revenue statistics are included in Campaign Reporting.", digits_compute=dp.get_precision('Product Price')), |
464 | 124 | } | 128 | } |
465 | 125 | 129 | ||
466 | 126 | 130 | ||
467 | === modified file 'marketing_campaign/marketing_campaign_view.xml' | |||
468 | --- marketing_campaign/marketing_campaign_view.xml 2013-10-27 12:31:04 +0000 | |||
469 | +++ marketing_campaign/marketing_campaign_view.xml 2013-12-05 09:45:50 +0000 | |||
470 | @@ -18,16 +18,6 @@ | |||
471 | 18 | 18 | ||
472 | 19 | <menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/> | 19 | <menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/> |
473 | 20 | 20 | ||
474 | 21 | <!-- Marketing Campaign --> | ||
475 | 22 | |||
476 | 23 | <record id="act_marketing_campaing_segment_opened" model="ir.actions.act_window"> | ||
477 | 24 | <field name="res_model">marketing.campaign.segment</field> | ||
478 | 25 | <field name="view_type">form</field> | ||
479 | 26 | <field name="name">Segments</field> | ||
480 | 27 | <field name="view_mode">tree,form</field> | ||
481 | 28 | <field name="context">{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}</field> | ||
482 | 29 | </record> | ||
483 | 30 | |||
484 | 31 | <!-- Campaign Follow-ups --> | 21 | <!-- Campaign Follow-ups --> |
485 | 32 | 22 | ||
486 | 33 | <record id="act_marketing_campaing_followup" model="ir.actions.act_window"> | 23 | <record id="act_marketing_campaing_followup" model="ir.actions.act_window"> |
487 | @@ -65,14 +55,12 @@ | |||
488 | 65 | <sheet string="Campaign"> | 55 | <sheet string="Campaign"> |
489 | 66 | <div class="oe_right oe_button_box" name="button_box"> | 56 | <div class="oe_right oe_button_box" name="button_box"> |
490 | 67 | <button type="action" | 57 | <button type="action" |
492 | 68 | name="%(act_marketing_campaing_stat)d" | 58 | name="%(act_marketing_campaing_stat)d" class="oe_link" |
493 | 69 | string="Campaign Statistics"/> | 59 | string="Campaign Statistics"/> |
500 | 70 | <button type="action" | 60 | <field name="segment_ids" widget="x2many_counter" class="oe_vertical_separator" |
501 | 71 | name="%(act_marketing_campaing_segment_opened)d" | 61 | options='{"views": [[false, "list"], [false, "form"]]}'/> |
502 | 72 | string="Segments"/> | 62 | <field name="followup_ids" widget="x2many_counter" class="oe_vertical_separator" |
503 | 73 | <button type="action" | 63 | options='{"views": [[false, "list"], [false, "form"]]}'/> |
498 | 74 | name="%(act_marketing_campaing_followup)d" | ||
499 | 75 | string="Follow-Up"/> | ||
504 | 76 | </div> | 64 | </div> |
505 | 77 | <div class="oe_title"> | 65 | <div class="oe_title"> |
506 | 78 | <label for="name" class="oe_edit_only"/> | 66 | <label for="name" class="oe_edit_only"/> |
507 | 79 | 67 | ||
508 | === modified file 'mrp/mrp_view.xml' | |||
509 | --- mrp/mrp_view.xml 2013-10-27 12:31:04 +0000 | |||
510 | +++ mrp/mrp_view.xml 2013-12-05 09:45:50 +0000 | |||
511 | @@ -1041,9 +1041,11 @@ | |||
512 | 1041 | <field name="inherit_id" ref="product.product_normal_form_view"/> | 1041 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
513 | 1042 | <field name="arch" type="xml"> | 1042 | <field name="arch" type="xml"> |
514 | 1043 | <xpath expr="//div[@name='buttons']" position="inside"> | 1043 | <xpath expr="//div[@name='buttons']" position="inside"> |
518 | 1044 | <button string="Bill of Materials" name="%(product_open_bom)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}"/> | 1044 | <button string="Bill of Materials" name="%(product_open_bom)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" class="oe_link oe_vertical_separator"/> |
519 | 1045 | <button string="BoM Structure" name="%(act_product_mrp_bom_open)d" type="action" groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> | 1045 | <button string="BoM Structure" name="%(act_product_mrp_bom_open)d" type="action" class="oe_link oe_vertical_separator" |
520 | 1046 | <button string="Manufacturing Orders" name="%(act_product_mrp_production)d" type="action" groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> | 1046 | groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> |
521 | 1047 | <button string="Manufacturing Orders" name="%(act_product_mrp_production)d" type="action" class="oe_link oe_vertical_separator" | ||
522 | 1048 | groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> | ||
523 | 1047 | </xpath> | 1049 | </xpath> |
524 | 1048 | </field> | 1050 | </field> |
525 | 1049 | </record> | 1051 | </record> |
526 | 1050 | 1052 | ||
527 | === modified file 'point_of_sale/point_of_sale_view.xml' | |||
528 | --- point_of_sale/point_of_sale_view.xml 2013-11-27 15:32:57 +0000 | |||
529 | +++ point_of_sale/point_of_sale_view.xml 2013-12-05 09:45:50 +0000 | |||
530 | @@ -884,8 +884,8 @@ | |||
531 | 884 | </header> | 884 | </header> |
532 | 885 | <sheet> | 885 | <sheet> |
533 | 886 | <div class="oe_right oe_button_box"> | 886 | <div class="oe_right oe_button_box"> |
536 | 887 | <button name="%(action_pos_box_in)d" string="Put Money In" type="action" states="opened,closing_control"/> | 887 | <button name="%(action_pos_box_in)d" class="oe_link" string="Put Money In" type="action" states="opened,closing_control"/> |
537 | 888 | <button name="%(action_pos_box_out)d" string="Take Money Out" type="action" states="opened,closing_control"/> | 888 | <button name="%(action_pos_box_out)d" class="oe_link oe_vertical_separator" string="Take Money Out" type="action" states="opened,closing_control"/> |
538 | 889 | </div> | 889 | </div> |
539 | 890 | <h1 class="oe_title"> | 890 | <h1 class="oe_title"> |
540 | 891 | Session: | 891 | Session: |
541 | 892 | 892 | ||
542 | === modified file 'procurement/procurement_view.xml' | |||
543 | --- procurement/procurement_view.xml 2013-10-27 12:31:04 +0000 | |||
544 | +++ procurement/procurement_view.xml 2013-12-05 09:45:50 +0000 | |||
545 | @@ -323,7 +323,9 @@ | |||
546 | 323 | <button string="⇒ Request Procurement" name="%(act_make_procurement)d" type="action" class="oe_link"/> | 323 | <button string="⇒ Request Procurement" name="%(act_make_procurement)d" type="action" class="oe_link"/> |
547 | 324 | </xpath> | 324 | </xpath> |
548 | 325 | <xpath expr="//div[@name='buttons']" position="inside"> | 325 | <xpath expr="//div[@name='buttons']" position="inside"> |
550 | 326 | <button string="Orderpoints" name="%(product_open_orderpoint)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}"/> | 326 | <field string="Orderpoints" name="orderpoint_ids" widget="x2many_counter" |
551 | 327 | class="oe_vertical_separator" options='{"views": [[false, "list"], [false, "form"]]}' | ||
552 | 328 | attrs="{'invisible':[('type', '=', 'service')]}"/> | ||
553 | 327 | </xpath> | 329 | </xpath> |
554 | 328 | <xpath expr="//field[@name='cost_method']" position="before"> | 330 | <xpath expr="//field[@name='cost_method']" position="before"> |
555 | 329 | <field name="procure_method" groups="base.group_user"/> | 331 | <field name="procure_method" groups="base.group_user"/> |
556 | 330 | 332 | ||
557 | === modified file 'project/project.py' | |||
558 | --- project/project.py 2013-11-27 15:32:57 +0000 | |||
559 | +++ project/project.py 2013-12-05 09:45:50 +0000 | |||
560 | @@ -167,7 +167,7 @@ | |||
561 | 167 | alias_ids = [] | 167 | alias_ids = [] |
562 | 168 | mail_alias = self.pool.get('mail.alias') | 168 | mail_alias = self.pool.get('mail.alias') |
563 | 169 | for proj in self.browse(cr, uid, ids, context=context): | 169 | for proj in self.browse(cr, uid, ids, context=context): |
565 | 170 | if proj.tasks: | 170 | if proj.task_ids: |
566 | 171 | raise osv.except_osv(_('Invalid Action!'), | 171 | raise osv.except_osv(_('Invalid Action!'), |
567 | 172 | _('You cannot delete a project containing tasks. You can either delete all the project\'s tasks and then delete the project or simply deactivate the project.')) | 172 | _('You cannot delete a project containing tasks. You can either delete all the project\'s tasks and then delete the project or simply deactivate the project.')) |
568 | 173 | elif proj.alias_id: | 173 | elif proj.alias_id: |
569 | @@ -243,25 +243,25 @@ | |||
570 | 243 | help="Gives the sequence order when displaying the list of projects"), | 243 | help="Gives the sequence order when displaying the list of projects"), |
571 | 244 | 'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members', | 244 | 'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members', |
572 | 245 | help="Project's members are users who can have an access to the tasks related to this project.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), | 245 | help="Project's members are users who can have an access to the tasks related to this project.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), |
574 | 246 | 'tasks': fields.one2many('project.task', 'project_id', "Task Activities"), | 246 | 'task_ids': fields.one2many('project.task', 'project_id', "Task Activities"), |
575 | 247 | 'planned_hours': fields.function(_progress_rate, multi="progress", string='Planned Time', help="Sum of planned hours of all tasks related to this project and its child projects.", | 247 | 'planned_hours': fields.function(_progress_rate, multi="progress", string='Planned Time', help="Sum of planned hours of all tasks related to this project and its child projects.", |
576 | 248 | store = { | 248 | store = { |
578 | 249 | 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), | 249 | 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
579 | 250 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), | 250 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
580 | 251 | }), | 251 | }), |
581 | 252 | 'effective_hours': fields.function(_progress_rate, multi="progress", string='Time Spent', help="Sum of spent hours of all tasks related to this project and its child projects.", | 252 | 'effective_hours': fields.function(_progress_rate, multi="progress", string='Time Spent', help="Sum of spent hours of all tasks related to this project and its child projects.", |
582 | 253 | store = { | 253 | store = { |
584 | 254 | 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), | 254 | 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
585 | 255 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), | 255 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
586 | 256 | }), | 256 | }), |
587 | 257 | 'total_hours': fields.function(_progress_rate, multi="progress", string='Total Time', help="Sum of total hours of all tasks related to this project and its child projects.", | 257 | 'total_hours': fields.function(_progress_rate, multi="progress", string='Total Time', help="Sum of total hours of all tasks related to this project and its child projects.", |
588 | 258 | store = { | 258 | store = { |
590 | 259 | 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), | 259 | 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
591 | 260 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), | 260 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
592 | 261 | }), | 261 | }), |
593 | 262 | 'progress_rate': fields.function(_progress_rate, multi="progress", string='Progress', type='float', group_operator="avg", help="Percent of tasks closed according to the total of tasks todo.", | 262 | 'progress_rate': fields.function(_progress_rate, multi="progress", string='Progress', type='float', group_operator="avg", help="Percent of tasks closed according to the total of tasks todo.", |
594 | 263 | store = { | 263 | store = { |
596 | 264 | 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), | 264 | 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
597 | 265 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), | 265 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
598 | 266 | }), | 266 | }), |
599 | 267 | 'resource_calendar_id': fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report", states={'close':[('readonly',True)]} ), | 267 | 'resource_calendar_id': fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report", states={'close':[('readonly',True)]} ), |
600 | @@ -343,9 +343,9 @@ | |||
601 | 343 | map_task_id = {} | 343 | map_task_id = {} |
602 | 344 | task_obj = self.pool.get('project.task') | 344 | task_obj = self.pool.get('project.task') |
603 | 345 | proj = self.browse(cr, uid, old_project_id, context=context) | 345 | proj = self.browse(cr, uid, old_project_id, context=context) |
605 | 346 | for task in proj.tasks: | 346 | for task in proj.task_ids: |
606 | 347 | map_task_id[task.id] = task_obj.copy(cr, uid, task.id, {}, context=context) | 347 | map_task_id[task.id] = task_obj.copy(cr, uid, task.id, {}, context=context) |
608 | 348 | self.write(cr, uid, [new_project_id], {'tasks':[(6,0, map_task_id.values())]}) | 348 | self.write(cr, uid, [new_project_id], {'task_ids':[(6,0, map_task_id.values())]}) |
609 | 349 | task_obj.duplicate_task(cr, uid, map_task_id, context=context) | 349 | task_obj.duplicate_task(cr, uid, map_task_id, context=context) |
610 | 350 | return True | 350 | return True |
611 | 351 | 351 | ||
612 | @@ -358,7 +358,7 @@ | |||
613 | 358 | context['active_test'] = False | 358 | context['active_test'] = False |
614 | 359 | default['state'] = 'open' | 359 | default['state'] = 'open' |
615 | 360 | default['line_ids'] = [] | 360 | default['line_ids'] = [] |
617 | 361 | default['tasks'] = [] | 361 | default['task_ids'] = [] |
618 | 362 | proj = self.browse(cr, uid, id, context=context) | 362 | proj = self.browse(cr, uid, id, context=context) |
619 | 363 | if not default.get('name', False): | 363 | if not default.get('name', False): |
620 | 364 | default.update(name=_("%s (copy)") % (proj.name)) | 364 | default.update(name=_("%s (copy)") % (proj.name)) |
621 | @@ -447,7 +447,7 @@ | |||
622 | 447 | u_ids = [i.id for i in project.members] | 447 | u_ids = [i.id for i in project.members] |
623 | 448 | if project.user_id and (project.user_id.id not in u_ids): | 448 | if project.user_id and (project.user_id.id not in u_ids): |
624 | 449 | u_ids.append(project.user_id.id) | 449 | u_ids.append(project.user_id.id) |
626 | 450 | for task in project.tasks: | 450 | for task in project.task_ids: |
627 | 451 | if task.user_id and (task.user_id.id not in u_ids): | 451 | if task.user_id and (task.user_id.id not in u_ids): |
628 | 452 | u_ids.append(task.user_id.id) | 452 | u_ids.append(task.user_id.id) |
629 | 453 | calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False | 453 | calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False |
630 | @@ -503,7 +503,7 @@ | |||
631 | 503 | result = self._schedule_header(cr, uid, ids, False, context=context) | 503 | result = self._schedule_header(cr, uid, ids, False, context=context) |
632 | 504 | for project in projects: | 504 | for project in projects: |
633 | 505 | result += self._schedule_project(cr, uid, project, context=context) | 505 | result += self._schedule_project(cr, uid, project, context=context) |
635 | 506 | result += self.pool.get('project.task')._generate_task(cr, uid, project.tasks, ident=4, context=context) | 506 | result += self.pool.get('project.task')._generate_task(cr, uid, project.task_ids, ident=4, context=context) |
636 | 507 | 507 | ||
637 | 508 | local_dict = {} | 508 | local_dict = {} |
638 | 509 | exec result in local_dict | 509 | exec result in local_dict |
639 | @@ -511,7 +511,7 @@ | |||
640 | 511 | 511 | ||
641 | 512 | for project in projects: | 512 | for project in projects: |
642 | 513 | project_gantt = getattr(projects_gantt, 'Project_%d' % (project.id,)) | 513 | project_gantt = getattr(projects_gantt, 'Project_%d' % (project.id,)) |
644 | 514 | for task in project.tasks: | 514 | for task in project.task_ids: |
645 | 515 | if task.stage_id and task.stage_id.fold: | 515 | if task.stage_id and task.stage_id.fold: |
646 | 516 | continue | 516 | continue |
647 | 517 | 517 | ||
648 | 518 | 518 | ||
649 | === modified file 'project/project_view.xml' | |||
650 | --- project/project_view.xml 2013-11-29 09:46:10 +0000 | |||
651 | +++ project/project_view.xml 2013-12-05 09:45:50 +0000 | |||
652 | @@ -93,8 +93,9 @@ | |||
653 | 93 | </div> | 93 | </div> |
654 | 94 | </div> | 94 | </div> |
655 | 95 | <div class="oe_right oe_button_box" name="buttons" groups="base.group_user"> | 95 | <div class="oe_right oe_button_box" name="buttons" groups="base.group_user"> |
658 | 96 | <field name="tasks" widget="x2many_counter" string="Tasks" attrs="{'invisible':[('use_tasks','=', False)]}" options='{"views": [[false, "kanban"], [false, "tree"], [false, "form"], [false, "calendar"], [false, "gantt"], [false, "graph"]]}'/> | 96 | <field name="task_ids" widget="x2many_counter" string="Tasks" attrs="{'invisible':[('use_tasks','=', False)]}" |
659 | 97 | <button name="attachment_tree_view" string="Documents" type="object"/> | 97 | options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "gantt"], [false, "graph"]]}'/> |
660 | 98 | <button name="attachment_tree_view" class="oe_link oe_vertical_separator" string="Documents" type="object"/> | ||
661 | 98 | </div> | 99 | </div> |
662 | 99 | <group> | 100 | <group> |
663 | 100 | <group> | 101 | <group> |
664 | 101 | 102 | ||
665 | === modified file 'project/res_partner_view.xml' | |||
666 | --- project/res_partner_view.xml 2013-10-27 12:31:04 +0000 | |||
667 | +++ project/res_partner_view.xml 2013-12-05 09:45:50 +0000 | |||
668 | @@ -10,9 +10,9 @@ | |||
669 | 10 | <field name="priority" eval="50"/> | 10 | <field name="priority" eval="50"/> |
670 | 11 | <field name="arch" type="xml"> | 11 | <field name="arch" type="xml"> |
671 | 12 | <xpath expr="//div[@name='buttons']" position="inside"> | 12 | <xpath expr="//div[@name='buttons']" position="inside"> |
675 | 13 | <button class="oe_inline" type="action" | 13 | <field name="task_ids" |
676 | 14 | name="%(action_view_task)d" | 14 | string="Tasks" widget="x2many_counter" class="oe_vertical_separator" |
677 | 15 | string="Tasks" | 15 | options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "gantt"], [false, "graph"]]}' |
678 | 16 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" | 16 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" |
679 | 17 | groups="project.group_project_user" /> | 17 | groups="project.group_project_user" /> |
680 | 18 | </xpath> | 18 | </xpath> |
681 | 19 | 19 | ||
682 | === modified file 'project/tests/test_project_flow.py' | |||
683 | --- project/tests/test_project_flow.py 2013-07-10 13:29:54 +0000 | |||
684 | +++ project/tests/test_project_flow.py 2013-12-05 09:45:50 +0000 | |||
685 | @@ -67,19 +67,19 @@ | |||
686 | 67 | self.project_project.set_template(cr, user_projectmanager_id, [project_pigs_id]) | 67 | self.project_project.set_template(cr, user_projectmanager_id, [project_pigs_id]) |
687 | 68 | project.refresh() | 68 | project.refresh() |
688 | 69 | self.assertEqual(project.state, 'template', 'project: set_template: project state should be template') | 69 | self.assertEqual(project.state, 'template', 'project: set_template: project state should be template') |
690 | 70 | self.assertEqual(len(project.tasks), 0, 'project: set_template: project tasks should have been set inactive') | 70 | self.assertEqual(len(project.task_ids), 0, 'project: set_template: project tasks should have been set inactive') |
691 | 71 | 71 | ||
692 | 72 | # Duplicate template | 72 | # Duplicate template |
693 | 73 | new_template_act = self.project_project.duplicate_template(cr, user_projectmanager_id, [project_pigs_id]) | 73 | new_template_act = self.project_project.duplicate_template(cr, user_projectmanager_id, [project_pigs_id]) |
694 | 74 | new_project = self.project_project.browse(cr, user_projectmanager_id, new_template_act['res_id']) | 74 | new_project = self.project_project.browse(cr, user_projectmanager_id, new_template_act['res_id']) |
695 | 75 | self.assertEqual(new_project.state, 'open', 'project: incorrect duplicate_template') | 75 | self.assertEqual(new_project.state, 'open', 'project: incorrect duplicate_template') |
697 | 76 | self.assertEqual(len(new_project.tasks), 2, 'project: duplicating a project template should duplicate its tasks') | 76 | self.assertEqual(len(new_project.task_ids), 2, 'project: duplicating a project template should duplicate its tasks') |
698 | 77 | 77 | ||
699 | 78 | # Convert into real project | 78 | # Convert into real project |
700 | 79 | self.project_project.reset_project(cr, user_projectmanager_id, [project_pigs_id]) | 79 | self.project_project.reset_project(cr, user_projectmanager_id, [project_pigs_id]) |
701 | 80 | project.refresh() | 80 | project.refresh() |
702 | 81 | self.assertEqual(project.state, 'open', 'project: resetted project should be in open state') | 81 | self.assertEqual(project.state, 'open', 'project: resetted project should be in open state') |
704 | 82 | self.assertEqual(len(project.tasks), 2, 'project: reset_project: project tasks should have been set active') | 82 | self.assertEqual(len(project.task_ids), 2, 'project: reset_project: project tasks should have been set active') |
705 | 83 | 83 | ||
706 | 84 | # Put as pending | 84 | # Put as pending |
707 | 85 | self.project_project.set_pending(cr, user_projectmanager_id, [project_pigs_id]) | 85 | self.project_project.set_pending(cr, user_projectmanager_id, [project_pigs_id]) |
708 | @@ -107,7 +107,7 @@ | |||
709 | 107 | # Copy the project | 107 | # Copy the project |
710 | 108 | new_project_id = self.project_project.copy(cr, user_projectmanager_id, project_pigs_id) | 108 | new_project_id = self.project_project.copy(cr, user_projectmanager_id, project_pigs_id) |
711 | 109 | new_project = self.project_project.browse(cr, user_projectmanager_id, new_project_id) | 109 | new_project = self.project_project.browse(cr, user_projectmanager_id, new_project_id) |
713 | 110 | self.assertEqual(len(new_project.tasks), 2, 'project: copied project should have copied task') | 110 | self.assertEqual(len(new_project.task_ids), 2, 'project: copied project should have copied task') |
714 | 111 | 111 | ||
715 | 112 | # Cancel the project | 112 | # Cancel the project |
716 | 113 | self.project_project.set_cancel(cr, user_projectmanager_id, [project_pigs_id]) | 113 | self.project_project.set_cancel(cr, user_projectmanager_id, [project_pigs_id]) |
717 | 114 | 114 | ||
718 | === modified file 'project_issue/project_issue.py' | |||
719 | --- project_issue/project_issue.py 2013-11-27 15:32:57 +0000 | |||
720 | +++ project_issue/project_issue.py 2013-12-05 09:45:50 +0000 | |||
721 | @@ -507,8 +507,8 @@ | |||
722 | 507 | states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}), | 507 | states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}), |
723 | 508 | 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues", | 508 | 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues", |
724 | 509 | deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."), | 509 | deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."), |
727 | 510 | 'issue_ids': fields.one2many('project.issue', 'project_id', | 510 | 'issue_ids': fields.one2many('project.issue', 'project_id', 'Issues', |
728 | 511 | domain=[('stage_id.fold', '=', False)]) | 511 | domain=[('stage_id.fold', '=', False)]) |
729 | 512 | } | 512 | } |
730 | 513 | 513 | ||
731 | 514 | def _check_escalation(self, cr, uid, ids, context=None): | 514 | def _check_escalation(self, cr, uid, ids, context=None): |
732 | @@ -576,5 +576,12 @@ | |||
733 | 576 | self._check_create_write_values(cr, uid, vals, context=context) | 576 | self._check_create_write_values(cr, uid, vals, context=context) |
734 | 577 | return super(project_project, self).write(cr, uid, ids, vals, context=context) | 577 | return super(project_project, self).write(cr, uid, ids, vals, context=context) |
735 | 578 | 578 | ||
736 | 579 | class res_partner(osv.osv): | ||
737 | 580 | |||
738 | 581 | """ Inherits partner and adds Issues information in the partner form """ | ||
739 | 582 | _inherit = 'res.partner' | ||
740 | 583 | _columns = { | ||
741 | 584 | 'issue_ids': fields.one2many('project.issue', 'partner_id', 'Issues'), | ||
742 | 585 | } | ||
743 | 579 | 586 | ||
744 | 580 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | 587 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
745 | 581 | 588 | ||
746 | === modified file 'project_issue/project_issue_view.xml' | |||
747 | --- project_issue/project_issue_view.xml 2013-11-29 09:46:10 +0000 | |||
748 | +++ project_issue/project_issue_view.xml 2013-12-05 09:45:50 +0000 | |||
749 | @@ -305,7 +305,8 @@ | |||
750 | 305 | <label for="use_issues"/> | 305 | <label for="use_issues"/> |
751 | 306 | </xpath> | 306 | </xpath> |
752 | 307 | <xpath expr='//div[@name="buttons"]' position='inside'> | 307 | <xpath expr='//div[@name="buttons"]' position='inside'> |
754 | 308 | <button name="%(act_project_project_2_project_issue_all)d" string="Issues" type="action" attrs="{'invisible':[('use_issues','=', 0)]}"/> | 308 | <field name="issue_ids" widget="x2many_counter" class="oe_vertical_separator" string="Issues" attrs="{'invisible':[('use_issues','=', 0)]}" |
755 | 309 | options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}'/> | ||
756 | 309 | </xpath> | 310 | </xpath> |
757 | 310 | <xpath expr='//page[@name="project_stages"]' position="attributes"> | 311 | <xpath expr='//page[@name="project_stages"]' position="attributes"> |
758 | 311 | <attribute name="attrs">{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}</attribute> | 312 | <attribute name="attrs">{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}</attribute> |
759 | @@ -374,9 +375,9 @@ | |||
760 | 374 | <field name="priority" eval="50"/> | 375 | <field name="priority" eval="50"/> |
761 | 375 | <field name="arch" type="xml"> | 376 | <field name="arch" type="xml"> |
762 | 376 | <xpath expr="//div[@name='buttons']" position="inside"> | 377 | <xpath expr="//div[@name='buttons']" position="inside"> |
766 | 377 | <button class="oe_inline" type="action" string="Issues" | 378 | <field name="issue_ids" attrs="{'invisible': [('customer', '=', False)]}" |
767 | 378 | attrs="{'invisible': [('customer', '=', False)]}" | 379 | options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' |
768 | 379 | name="%(action_view_issues)d" | 380 | widget="x2many_counter" class="oe_vertical_separator" |
769 | 380 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" | 381 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" |
770 | 381 | groups="project.group_project_user"/> | 382 | groups="project.group_project_user"/> |
771 | 382 | </xpath> | 383 | </xpath> |
772 | 383 | 384 | ||
773 | === modified file 'project_long_term/project_long_term_view.xml' | |||
774 | --- project_long_term/project_long_term_view.xml 2013-10-27 12:31:04 +0000 | |||
775 | +++ project_long_term/project_long_term_view.xml 2013-12-05 09:45:50 +0000 | |||
776 | @@ -102,9 +102,8 @@ | |||
777 | 102 | <label for="use_phases"/> | 102 | <label for="use_phases"/> |
778 | 103 | </xpath> | 103 | </xpath> |
779 | 104 | <xpath expr="//div[@name='buttons']" position='inside'> | 104 | <xpath expr="//div[@name='buttons']" position='inside'> |
783 | 105 | <button name="%(act_project_phases)d" | 105 | <field name="phase_ids" class="oe_vertical_separator" widget="x2many_counter" attrs="{'invisible':[('use_phases','=', 0)]}" |
784 | 106 | string="Phases" type="action" | 106 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}'/> |
782 | 107 | attrs="{'invisible':[('use_phases','=', 0)]}"/> | ||
785 | 108 | </xpath> | 107 | </xpath> |
786 | 109 | </field> | 108 | </field> |
787 | 110 | </record> | 109 | </record> |
788 | @@ -151,7 +150,9 @@ | |||
789 | 151 | <field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> | 150 | <field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> |
790 | 152 | </header> | 151 | </header> |
791 | 153 | <sheet> | 152 | <sheet> |
793 | 154 | <button name="%(project_phase_task_list)d" string="Related Tasks" type="action" class="oe_right"/> | 153 | <div class="oe_right oe_button_box"> |
794 | 154 | <button name="%(project_phase_task_list)d" string="Related Tasks" type="action" class="oe_link"/> | ||
795 | 155 | </div> | ||
796 | 155 | <div class="oe_title"> | 156 | <div class="oe_title"> |
797 | 156 | <label for="name" class="oe_edit_only"/> | 157 | <label for="name" class="oe_edit_only"/> |
798 | 157 | <h1><field name="name"/></h1> | 158 | <h1><field name="name"/></h1> |
799 | 158 | 159 | ||
800 | === modified file 'project_long_term/test/task_process.yml' | |||
801 | --- project_long_term/test/task_process.yml 2013-10-27 12:31:04 +0000 | |||
802 | +++ project_long_term/test/task_process.yml 2013-12-05 09:45:50 +0000 | |||
803 | @@ -13,7 +13,7 @@ | |||
804 | 13 | - | 13 | - |
805 | 14 | !python {model: project.project}: | | 14 | !python {model: project.project}: | |
806 | 15 | prj = self.browse(cr, uid, [ref("project.project_project_1")])[0] | 15 | prj = self.browse(cr, uid, [ref("project.project_project_1")])[0] |
808 | 16 | for task in prj.tasks: | 16 | for task in prj.task_ids: |
809 | 17 | if task.stage_id and task.stage_id.fold: | 17 | if task.stage_id and task.stage_id.fold: |
810 | 18 | continue | 18 | continue |
811 | 19 | assert task.user_id and task.date_start and task.date_end, "Project tasks not scheduled" | 19 | assert task.user_id and task.date_start and task.date_end, "Project tasks not scheduled" |
812 | 20 | 20 | ||
813 | === modified file 'project_timesheet/project_timesheet_view.xml' | |||
814 | --- project_timesheet/project_timesheet_view.xml 2013-10-27 12:31:04 +0000 | |||
815 | +++ project_timesheet/project_timesheet_view.xml 2013-12-05 09:45:50 +0000 | |||
816 | @@ -30,7 +30,7 @@ | |||
817 | 30 | <label for="use_timesheets"/> | 30 | <label for="use_timesheets"/> |
818 | 31 | </xpath> | 31 | </xpath> |
819 | 32 | <xpath expr='//div[@name="buttons"]' position="inside"> | 32 | <xpath expr='//div[@name="buttons"]' position="inside"> |
821 | 33 | <button name="open_timesheets" string="Timesheets" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/> | 33 | <button name="open_timesheets" string="Timesheets" class="oe_link oe_vertical_separator" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/> |
822 | 34 | </xpath> | 34 | </xpath> |
823 | 35 | </field> | 35 | </field> |
824 | 36 | </record> | 36 | </record> |
825 | 37 | 37 | ||
826 | === modified file 'purchase/partner_view.xml' | |||
827 | --- purchase/partner_view.xml 2013-10-27 12:31:04 +0000 | |||
828 | +++ purchase/partner_view.xml 2013-12-05 09:45:50 +0000 | |||
829 | @@ -74,13 +74,15 @@ | |||
830 | 74 | <field name="priority" eval="20"/> | 74 | <field name="priority" eval="20"/> |
831 | 75 | <field name="arch" type="xml"> | 75 | <field name="arch" type="xml"> |
832 | 76 | <xpath expr="//div[@name='buttons']" position="inside"> | 76 | <xpath expr="//div[@name='buttons']" position="inside"> |
834 | 77 | <button name="%(purchase.act_res_partner_2_purchase_order)d" type="action" | 77 | <field name="purchase_order_ids" |
835 | 78 | string="Purchase Orders" | 78 | string="Purchase Orders" |
836 | 79 | widget="x2many_counter" class="oe_vertical_separator" | ||
837 | 80 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' | ||
838 | 79 | attrs="{'invisible': [('supplier', '=', False)]}" | 81 | attrs="{'invisible': [('supplier', '=', False)]}" |
839 | 80 | groups="purchase.group_purchase_user"/> | 82 | groups="purchase.group_purchase_user"/> |
840 | 81 | <button name="%(purchase.act_res_partner_2_supplier_invoices)d" type="action" | 83 | <button name="%(purchase.act_res_partner_2_supplier_invoices)d" type="action" |
841 | 82 | attrs="{'invisible': [('supplier', '=', False)]}" | 84 | attrs="{'invisible': [('supplier', '=', False)]}" |
843 | 83 | string="Supplier Invoices"/> | 85 | string="Supplier Invoices" class="oe_link oe_vertical_separator"/> |
844 | 84 | </xpath> | 86 | </xpath> |
845 | 85 | </field> | 87 | </field> |
846 | 86 | </record> | 88 | </record> |
847 | 87 | 89 | ||
848 | === modified file 'purchase/purchase.py' | |||
849 | --- purchase/purchase.py 2013-11-30 13:07:25 +0000 | |||
850 | +++ purchase/purchase.py 2013-12-05 09:45:50 +0000 | |||
851 | @@ -1311,4 +1311,9 @@ | |||
852 | 1311 | readonly=True), | 1311 | readonly=True), |
853 | 1312 | } | 1312 | } |
854 | 1313 | 1313 | ||
855 | 1314 | class product_product(osv.Model): | ||
856 | 1315 | _inherit = "product.product" | ||
857 | 1316 | _columns = { | ||
858 | 1317 | 'purchase_ids': fields.one2many('purchase.order', 'product_id', 'Purchases'), | ||
859 | 1318 | } | ||
860 | 1314 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | 1319 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
861 | 1315 | 1320 | ||
862 | === modified file 'purchase/purchase_view.xml' | |||
863 | --- purchase/purchase_view.xml 2013-11-30 13:07:25 +0000 | |||
864 | +++ purchase/purchase_view.xml 2013-12-05 09:45:50 +0000 | |||
865 | @@ -619,7 +619,9 @@ | |||
866 | 619 | <field name="inherit_id" ref="account.product_normal_form_view"/> | 619 | <field name="inherit_id" ref="account.product_normal_form_view"/> |
867 | 620 | <field name="arch" type="xml"> | 620 | <field name="arch" type="xml"> |
868 | 621 | <xpath expr="//div[@name='buttons']" position="inside"> | 621 | <xpath expr="//div[@name='buttons']" position="inside"> |
870 | 622 | <button string="Purchases" name="%(action_purchase_line_product_tree)d" type="action" groups="purchase.group_purchase_user"/> | 622 | <field name="purchase_ids" class="oe_vertical_separator" widget="x2many_counter" |
871 | 623 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' | ||
872 | 624 | groups="purchase.group_purchase_user"/> | ||
873 | 623 | </xpath> | 625 | </xpath> |
874 | 624 | <xpath expr="//field[@name='property_account_expense']" position="replace" > | 626 | <xpath expr="//field[@name='property_account_expense']" position="replace" > |
875 | 625 | <field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" groups="account.group_account_user"/> | 627 | <field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" groups="account.group_account_user"/> |
876 | 626 | 628 | ||
877 | === modified file 'purchase/stock_view.xml' | |||
878 | --- purchase/stock_view.xml 2013-10-27 12:31:04 +0000 | |||
879 | +++ purchase/stock_view.xml 2013-12-05 09:45:50 +0000 | |||
880 | @@ -46,9 +46,9 @@ | |||
881 | 46 | <xpath expr="//div[contains(@class, 'oe_title')]" position="before"> | 46 | <xpath expr="//div[contains(@class, 'oe_title')]" position="before"> |
882 | 47 | <div class="oe_right oe_button_box" name="buttons"> | 47 | <div class="oe_right oe_button_box" name="buttons"> |
883 | 48 | <button type="object" | 48 | <button type="object" |
885 | 49 | name="view_picking" | 49 | name="view_picking" class="oe_link" |
886 | 50 | string="Incoming Shipments" states="approved"/> | 50 | string="Incoming Shipments" states="approved"/> |
888 | 51 | <button type="object" name="invoice_open" | 51 | <button type="object" name="invoice_open" class="oe_link oe_vertical_separator" |
889 | 52 | string="Invoices" attrs="{'invisible': [('state', 'in', ['draft','sent'])]}"/> | 52 | string="Invoices" attrs="{'invisible': [('state', 'in', ['draft','sent'])]}"/> |
890 | 53 | </div> | 53 | </div> |
891 | 54 | </xpath> | 54 | </xpath> |
892 | 55 | 55 | ||
893 | === modified file 'purchase_requisition/purchase_requisition_view.xml' | |||
894 | --- purchase_requisition/purchase_requisition_view.xml 2013-10-27 12:31:04 +0000 | |||
895 | +++ purchase_requisition/purchase_requisition_view.xml 2013-12-05 09:45:50 +0000 | |||
896 | @@ -77,7 +77,7 @@ | |||
897 | 77 | </field> | 77 | </field> |
898 | 78 | <div class="oe_right oe_button_box" style="margin-top: 10px"> | 78 | <div class="oe_right oe_button_box" style="margin-top: 10px"> |
899 | 79 | <button name="%(action_purchase_requisition_partner)d" type="action" | 79 | <button name="%(action_purchase_requisition_partner)d" type="action" |
901 | 80 | string="Request a Quotation" icon="gtk-execute" | 80 | string="Request a Quotation" class="oe_link" |
902 | 81 | attrs="{'invisible': [('line_ids','=',False),('state', 'not in', ('in_progress'))]}"/> | 81 | attrs="{'invisible': [('line_ids','=',False),('state', 'not in', ('in_progress'))]}"/> |
903 | 82 | </div> | 82 | </div> |
904 | 83 | <separator string="Quotations"/> | 83 | <separator string="Quotations"/> |
905 | 84 | 84 | ||
906 | === modified file 'sale/res_partner_view.xml' | |||
907 | --- sale/res_partner_view.xml 2013-10-27 12:31:04 +0000 | |||
908 | +++ sale/res_partner_view.xml 2013-12-05 09:45:50 +0000 | |||
909 | @@ -48,9 +48,10 @@ | |||
910 | 48 | <field name="priority" eval="20"/> | 48 | <field name="priority" eval="20"/> |
911 | 49 | <field name="arch" type="xml"> | 49 | <field name="arch" type="xml"> |
912 | 50 | <xpath expr="//div[@name='buttons']" position="inside"> | 50 | <xpath expr="//div[@name='buttons']" position="inside"> |
915 | 51 | <button name="%(sale.act_res_partner_2_sale_order)d" type="action" | 51 | <field name="sale_order_ids" |
916 | 52 | string="Quotations and Sales" | 52 | string="Sales" widget="x2many_counter" class="oe_vertical_separator" |
917 | 53 | attrs="{'invisible': [('customer', '=', False)]}" | 53 | attrs="{'invisible': [('customer', '=', False)]}" |
918 | 54 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' | ||
919 | 54 | groups="base.group_sale_salesman"/> | 55 | groups="base.group_sale_salesman"/> |
920 | 55 | </xpath> | 56 | </xpath> |
921 | 56 | </field> | 57 | </field> |
922 | 57 | 58 | ||
923 | === modified file 'sale/sale.py' | |||
924 | --- sale/sale.py 2013-11-27 15:32:57 +0000 | |||
925 | +++ sale/sale.py 2013-12-05 09:45:50 +0000 | |||
926 | @@ -1004,4 +1004,10 @@ | |||
927 | 1004 | workflow.trg_validate(uid, 'account.invoice', id, 'invoice_cancel', cr) | 1004 | workflow.trg_validate(uid, 'account.invoice', id, 'invoice_cancel', cr) |
928 | 1005 | return super(account_invoice, self).unlink(cr, uid, ids, context=context) | 1005 | return super(account_invoice, self).unlink(cr, uid, ids, context=context) |
929 | 1006 | 1006 | ||
930 | 1007 | class product_product(osv.Model): | ||
931 | 1008 | _inherit = "product.product" | ||
932 | 1009 | _columns = { | ||
933 | 1010 | 'sale_ids': fields.one2many('sale.order.line', 'product_id', 'Sales'), | ||
934 | 1011 | } | ||
935 | 1012 | |||
936 | 1007 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | 1013 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
937 | 1008 | 1014 | ||
938 | === modified file 'sale/sale_view.xml' | |||
939 | --- sale/sale_view.xml 2013-11-27 15:32:57 +0000 | |||
940 | +++ sale/sale_view.xml 2013-12-05 09:45:50 +0000 | |||
941 | @@ -499,7 +499,9 @@ | |||
942 | 499 | <field name="inherit_id" ref="product.product_normal_form_view"/> | 499 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
943 | 500 | <field name="arch" type="xml"> | 500 | <field name="arch" type="xml"> |
944 | 501 | <xpath expr="//div[@name='buttons']" position="inside"> | 501 | <xpath expr="//div[@name='buttons']" position="inside"> |
946 | 502 | <button string="Sales" name="%(action_order_line_product_tree)d" type="action" groups="base.group_sale_salesman"/> | 502 | <field name="sale_ids" class="oe_vertical_separator" widget="x2many_counter" |
947 | 503 | options='{"views": [[false, "list"], [false, "form"]]}' | ||
948 | 504 | type="action" groups="base.group_sale_salesman"/> | ||
949 | 503 | </xpath> | 505 | </xpath> |
950 | 504 | </field> | 506 | </field> |
951 | 505 | </record> | 507 | </record> |
952 | 506 | 508 | ||
953 | === modified file 'stock/product.py' | |||
954 | --- stock/product.py 2013-10-27 12:31:04 +0000 | |||
955 | +++ stock/product.py 2013-12-05 09:45:50 +0000 | |||
956 | @@ -422,6 +422,7 @@ | |||
957 | 422 | help="If real-time valuation is enabled for a product, the system will automatically write journal entries corresponding to stock moves." \ | 422 | help="If real-time valuation is enabled for a product, the system will automatically write journal entries corresponding to stock moves." \ |
958 | 423 | "The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products." | 423 | "The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products." |
959 | 424 | , required=True), | 424 | , required=True), |
960 | 425 | 'move_ids': fields.one2many('stock.move', 'product_id', 'Moves'), | ||
961 | 425 | } | 426 | } |
962 | 426 | 427 | ||
963 | 427 | _defaults = { | 428 | _defaults = { |
964 | 428 | 429 | ||
965 | === modified file 'stock/product_view.xml' | |||
966 | --- stock/product_view.xml 2013-11-27 15:32:57 +0000 | |||
967 | +++ stock/product_view.xml 2013-12-05 09:45:50 +0000 | |||
968 | @@ -72,8 +72,10 @@ | |||
969 | 72 | <field name="inherit_id" ref="product.product_normal_form_view"/> | 72 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
970 | 73 | <field name="arch" type="xml"> | 73 | <field name="arch" type="xml"> |
971 | 74 | <xpath expr="//div[@name='buttons']" position="inside"> | 74 | <xpath expr="//div[@name='buttons']" position="inside"> |
974 | 75 | <button string="Inventory" name="%(action_product_location_tree)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_locations"/> | 75 | <button string="Inventory" name="%(action_product_location_tree)d" class="oe_link oe_vertical_separator" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_locations"/> |
975 | 76 | <button string="Moves" name= "%(act_product_stock_move_open)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/> | 76 | <field name= "move_ids" class="oe_vertical_separator" widget="x2many_counter" |
976 | 77 | options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' | ||
977 | 78 | attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/> | ||
978 | 77 | </xpath> | 79 | </xpath> |
979 | 78 | <group name="procurement_uom" position="before"> | 80 | <group name="procurement_uom" position="before"> |
980 | 79 | <group name="delay" string="Delays"> | 81 | <group name="delay" string="Delays"> |
981 | 80 | 82 | ||
982 | === modified file 'stock/stock_view.xml' | |||
983 | --- stock/stock_view.xml 2013-11-27 15:32:57 +0000 | |||
984 | +++ stock/stock_view.xml 2013-12-05 09:45:50 +0000 | |||
985 | @@ -114,7 +114,7 @@ | |||
986 | 114 | </header> | 114 | </header> |
987 | 115 | <sheet> | 115 | <sheet> |
988 | 116 | <div class="oe_right oe_button_box"> | 116 | <div class="oe_right oe_button_box"> |
990 | 117 | <button name="%(action_view_stock_fill_inventory)d" string="Fill Inventory" states="draft,confirm" type="action" /> | 117 | <button name="%(action_view_stock_fill_inventory)d" class="oe_link" string="Fill Inventory" states="draft,confirm" type="action" /> |
991 | 118 | </div> | 118 | </div> |
992 | 119 | <group> | 119 | <group> |
993 | 120 | <group> | 120 | <group> |
994 | @@ -338,8 +338,8 @@ | |||
995 | 338 | <field name="arch" type="xml"> | 338 | <field name="arch" type="xml"> |
996 | 339 | <form string="Serial Number" version="7.0"> | 339 | <form string="Serial Number" version="7.0"> |
997 | 340 | <div class="oe_button_box oe_right"> | 340 | <div class="oe_button_box oe_right"> |
1000 | 341 | <button name="action_traceability" string="Upstream Traceability" type="object" context="{'type': 'move_history_ids2', 'field': 'prodlot_id'}"/> | 341 | <button name="action_traceability" string="Upstream Traceability" class="oe_link" type="object" context="{'type': 'move_history_ids2', 'field': 'prodlot_id'}"/> |
1001 | 342 | <button name="action_traceability" string="Downstream Traceability" type="object" context="{'type': 'move_history_ids', 'field': 'prodlot_id'}"/> | 342 | <button name="action_traceability" string="Downstream Traceability" class="oe_link oe_vertical_separator" type="object" context="{'type': 'move_history_ids', 'field': 'prodlot_id'}"/> |
1002 | 343 | </div> | 343 | </div> |
1003 | 344 | <div class="oe_title"> | 344 | <div class="oe_title"> |
1004 | 345 | <label for="name" class="oe_edit_only"/> | 345 | <label for="name" class="oe_edit_only"/> |
1005 | 346 | 346 | ||
1006 | === modified file 'survey/survey_view.xml' | |||
1007 | --- survey/survey_view.xml 2013-11-27 15:32:57 +0000 | |||
1008 | +++ survey/survey_view.xml 2013-12-05 09:45:50 +0000 | |||
1009 | @@ -28,10 +28,10 @@ | |||
1010 | 28 | </header> | 28 | </header> |
1011 | 29 | <sheet> | 29 | <sheet> |
1012 | 30 | <div class="oe_button_box oe_right"> | 30 | <div class="oe_button_box oe_right"> |
1017 | 31 | <button name="test_survey" states="open,draft,close,cancel" string="Test Survey" type="object" icon="gtk-new" context="{'survey_id': active_id}" attrs="{'invisible':[('id','=',0)]}"/> | 31 | <button name="test_survey" class="oe_link" states="open,draft,close,cancel" string="Test Survey" type="object" context="{'survey_id': active_id}" attrs="{'invisible':[('id','=',0)]}"/> |
1018 | 32 | <button name="fill_survey" states="open" string="Answer Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/> | 32 | <button name="fill_survey" class="oe_link oe_vertical_separator" states="open" string="Answer Survey" type="object" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/> |
1019 | 33 | <button name="action_print_survey" states="open,draft,close,cancel" string="Print Answer" type="object"/> | 33 | <button name="action_print_survey" class="oe_link oe_vertical_separator" states="open,draft,close,cancel" string="Print Answer" type="object"/> |
1020 | 34 | <button name="edit_survey" states="open,draft,close,cancel" | 34 | <button name="edit_survey" class="oe_link" states="open,draft,close,cancel" |
1021 | 35 | string="Edit Survey" type="object" context="{'active':True,'edit' : True,'survey_id': active_id}"/> | 35 | string="Edit Survey" type="object" context="{'active':True,'edit' : True,'survey_id': active_id}"/> |
1022 | 36 | 36 | ||
1023 | 37 | </div> | 37 | </div> |