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 | <field name="arch" type="xml"> |
6 | <xpath expr="//div[@name='import_buttons']" position="inside"> |
7 | <button name="button_journal_entries" |
8 | - string="Journal Items" type="object" |
9 | + string="Journal Items" type="object" class="oe_link" |
10 | attrs="{'invisible':[('state','!=','confirm')]}"/> |
11 | </xpath> |
12 | </field> |
13 | |
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 | help="This payment term will be used instead of the default one for purchase orders and supplier invoices"), |
19 | 'ref_companies': fields.one2many('res.company', 'partner_id', |
20 | 'Companies that refers to partner'), |
21 | - '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.') |
22 | + '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 | + 'ref_companies': fields.one2many('res.company', 'partner_id', |
24 | + 'Companies that refers to partner'), |
25 | + 'invoice_ids': fields.one2many('account.invoice', 'partner_id', 'Invoices'), |
26 | + 'contract_ids': fields.one2many('account.analytic.account', 'partner_id', 'Contracts'), |
27 | } |
28 | |
29 | def _commercial_fields(self, cr, uid, context=None): |
30 | |
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 | </field> |
36 | </record> |
37 | |
38 | - <record id="action_open_partner_analytic_accounts" model="ir.actions.act_window"> |
39 | - <field name="context">{'search_default_partner_id': [active_id], 'default_partner_id': active_id}</field> |
40 | - <field name="name">Contracts/Analytic Accounts</field> |
41 | - <field name="res_model">account.analytic.account</field> |
42 | - <field name="view_id" ref="view_account_analytic_account_tree"/> |
43 | - <field name="search_view_id" ref="view_account_analytic_account_search"/> |
44 | - </record> |
45 | <record model="ir.ui.view" id="partner_view_buttons"> |
46 | <field name="name">partner.view.buttons</field> |
47 | <field name="model">res.partner</field> |
48 | @@ -64,12 +57,14 @@ |
49 | <field name="priority" eval="20"/> |
50 | <field name="arch" type="xml"> |
51 | <xpath expr="//div[@name='buttons']" position="inside"> |
52 | - <button type="action" string="Invoices" |
53 | - name="%(account.action_invoice_tree)d" |
54 | + <field name="invoice_ids" |
55 | + widget="x2many_counter" class="oe_vertical_separator" |
56 | + options='{"views": [[false, "list"], [false, "form"]]}' |
57 | context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"/> |
58 | - <button type="action" string="Journal Items" name="%(account.action_account_moves_all_tree)d" groups="account.group_account_user"/> |
59 | - <button type="action" string="Contracts" name="%(account.action_open_partner_analytic_accounts)d" |
60 | - groups="analytic.group_analytic_accounting"/> |
61 | + <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 | + <field name="contract_ids" groups="analytic.group_analytic_accounting" |
63 | + widget="x2many_counter" class="oe_vertical_separator" |
64 | + options='{"views": [[false, "list"], [false, "form"]]}'/> |
65 | </xpath> |
66 | </field> |
67 | </record> |
68 | |
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 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
74 | <field name="arch" type="xml"> |
75 | <xpath expr="//div[@name='buttons']" position="inside"> |
76 | - <button string="Analytic Rules" name= "%(action_product_default_list)d" type="action" groups="analytic.group_analytic_accounting" /> |
77 | + <button string="Analytic Rules" class="oe_link oe_vertical_separator" name= "%(action_product_default_list)d" type="action" groups="analytic.group_analytic_accounting" /> |
78 | </xpath> |
79 | </field> |
80 | </record> |
81 | |
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 | </header> |
87 | <sheet> |
88 | <div class="oe_button_box oe_right"> |
89 | - <button name="open_entries" string="Entries" type="object" class="oe_inline"/> |
90 | + <button name="open_entries" string="Entries" type="object" class="oe_inline oe_link"/> |
91 | </div> |
92 | <div class="oe_title"> |
93 | <label for="name" class="oe_edit_only"/> |
94 | |
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 | </header> |
100 | <sheet string="Payment order"> |
101 | <div class="oe_button_box"> |
102 | - <button name="%(action_create_payment_order)d" string="Select Invoices to Pay" |
103 | + <button class="oe_link oe_vertical_separator" name="%(action_create_payment_order)d" string="Select Invoices to Pay" |
104 | type="action" attrs="{'invisible':[('state','=','done')]}" icon="gtk-find"/> |
105 | </div> |
106 | <div class="oe_title"> |
107 | |
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 | <field name="arch" type="xml"> |
113 | <xpath expr="//div[@name='import_buttons']" position="inside"> |
114 | <button name="%(action_view_account_statement_from_invoice_lines)d" |
115 | - string="Import Invoices" type="action" |
116 | + string="Import Invoices" type="action" class="oe_link oe_vertical_separator" |
117 | attrs="{'invisible':[('state','=','confirm')]}"/> |
118 | </xpath> |
119 | </field> |
120 | |
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 | type="object" name="action_reset_password" |
126 | attrs="{'invisible': [('state', '!=', 'active')]}"/> |
127 | <button string="Send an Invitation Email" |
128 | - class="oe_link" |
129 | + class="oe_link oe_vertical_separator" |
130 | type="object" name="action_reset_password" context="{'create_user': 1}" |
131 | attrs="{'invisible': [('state', '!=', 'new')]}"/> |
132 | </xpath> |
133 | |
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 | <field name="arch" type="xml"> |
139 | <xpath expr="/form/sheet/h1" position="before"> |
140 | <div class="oe_right oe_button_box"> |
141 | - <button name="%(action_claim_from_delivery)d" string="Claims" type="action"/> |
142 | + <button name="%(action_claim_from_delivery)d" class="oe_link" string="Claims" type="action"/> |
143 | </div> |
144 | </xpath> |
145 | </field> |
146 | |
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 | <sheet> |
152 | <div class="oe_right oe_button_box" name="buttons"> |
153 | <button string="Schedule/Log Call" |
154 | + class="oe_link" |
155 | name="%(opportunity2phonecall_act)d" |
156 | type="action"/> |
157 | </div> |
158 | @@ -389,9 +390,9 @@ |
159 | <sheet> |
160 | <div class="oe_right oe_button_box"> |
161 | <button string="Schedule/Log Call" type="action" |
162 | - name="%(opportunity2phonecall_act)d"/> |
163 | + name="%(opportunity2phonecall_act)d" class="oe_link"/> |
164 | <button string="Meeting" type="object" |
165 | - name="action_makeMeeting" |
166 | + name="action_makeMeeting" class="oe_link oe_vertical_separator" |
167 | context="{'search_default_attendee_id': active_id, 'default_attendee_id' : active_id}"/> |
168 | </div> |
169 | <div class="oe_title"> |
170 | |
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 | <field name="section_id" completion="1" groups="base.group_multi_salesteams"/> |
176 | </field> |
177 | <xpath expr="//div[@name='buttons']" position="inside"> |
178 | - <button class="oe_inline" type="action" string="Opportunities" |
179 | + <field string="Opportunities" |
180 | attrs="{'invisible': [('customer', '=', False)]}" |
181 | - name="%(crm.crm_case_category_act_oppor11)d" |
182 | + name="opportunity_ids" |
183 | + widget="x2many_counter" class="oe_vertical_separator" |
184 | + options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' |
185 | context="{'search_default_partner_id': active_id}"/> |
186 | - <button class="oe_inline" type="action" |
187 | - string="Meetings" |
188 | - name="%(base_calendar.action_crm_meeting)d" |
189 | + <field string="Meetings" |
190 | + name="meeting_ids" |
191 | + widget="x2many_counter" class="oe_vertical_separator" |
192 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "gantt"]]}' |
193 | context="{'search_default_partner_ids': active_id, 'default_partner_ids' : [active_id]}"/> |
194 | - <button class="oe_inline" type="action" string="Calls" |
195 | - name="%(crm.crm_case_categ_phone_incoming0)d" |
196 | + <field string="Calls" |
197 | + name="phonecall_ids" |
198 | + widget="x2many_counter" class="oe_vertical_separator" |
199 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' |
200 | context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" /> |
201 | </xpath> |
202 | </data> |
203 | |
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 | <field name="priority" eval="50"/> |
209 | <field name="arch" type="xml"> |
210 | <xpath expr="//div[@name='buttons']" position="inside"> |
211 | - <button class="oe_inline" type="action" |
212 | - name="%(crm_case_categ_claim0)d" |
213 | - string="Claims" |
214 | + <field name="claims_ids" |
215 | + widget="x2many_counter" class="oe_vertical_separator" |
216 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' |
217 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" |
218 | groups="base.group_sale_salesman" /> |
219 | </xpath> |
220 | |
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 | <div class="oe_right oe_button_box" name="buttons"> |
226 | <field name="ref_ir_act_window" invisible="1"/> |
227 | <button name="create_action" string="Add context action" type="object" |
228 | - attrs="{'invisible':[('ref_ir_act_window','!=',False)]}" |
229 | + attrs="{'invisible':[('ref_ir_act_window','!=',False)]}" class="oe_link" |
230 | help="Display an option on related documents to open a composition wizard with this template"/> |
231 | <button name="unlink_action" string="Remove context action" type="object" |
232 | - attrs="{'invisible':[('ref_ir_act_window','=',False)]}" |
233 | + attrs="{'invisible':[('ref_ir_act_window','=',False)]}" class="oe_link" |
234 | help="Remove the contextual action to use this template on related documents"/> |
235 | <button name="%(wizard_email_template_preview)d" string="Preview" |
236 | - type="action" target="new" |
237 | + type="action" target="new" class="oe_link oe_vertical_separator" |
238 | context="{'template_id':active_id}"/> |
239 | </div> |
240 | <notebook> |
241 | |
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 | </header> |
247 | <sheet> |
248 | <div class="oe_right oe_button_box" groups="base.group_user"> |
249 | - <button name="%(event.act_event_list_register_event)d" type="action" string="Registrations" help="Register with this event"/> |
250 | + <field name="registration_ids" widget="x2many_counter" |
251 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}'/> |
252 | </div> |
253 | <div class="oe_title"> |
254 | <label for="name" class="oe_edit_only"/> |
255 | |
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 | <field name="tag_ids" widget="many2many_tags" /> |
261 | </div> |
262 | <div class="oe_right oe_button_box"> |
263 | - <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" /> |
264 | - <button name="act_show_log_cost" type="object" string="Costs" help="show all the costs for this vehicle" groups="fleet.group_fleet_manager"/> |
265 | - <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" /> |
266 | - <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" /> |
267 | - <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" /> |
268 | + <field name="log_contracts" widget="x2many_counter" class="oe_vertical_separator" |
269 | + options='{"views": [[false, "list"], [false, "form"], [false, "graph"]]}' |
270 | + string="Contracts" help="show the contract for this vehicle" /> |
271 | + <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 | + <field name="log_services" class="oe_vertical_separator" string="Services" |
273 | + options='{"views": [[false, "list"], [false, "form"], [false, "graph"]]}' widget="x2many_counter" |
274 | + help="show the services logs for this vehicle" /> |
275 | + <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 | + <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 | </div> |
278 | <group col="2" string="General Properties"> |
279 | <group > |
280 | |
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 | <field name="arch" type="xml"> |
286 | <data> |
287 | <xpath expr="//div[@name='button_box']" position="inside"> |
288 | - <button name="%(act_hr_employee_2_hr_contract)d" string="Contracts" type="action" groups="base.group_hr_manager"/> |
289 | + <field name="contract_ids" string="Contracts" widget="x2many_counter" |
290 | + groups="base.group_hr_manager" class="oe_vertical_separator" |
291 | + options='{"views": [[false, "list"], [false, "form"]]}'/> |
292 | </xpath> |
293 | <xpath expr="//field[@name='coach_id']" position="after"> |
294 | <field name="manager"/> |
295 | |
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 | </group> |
301 | </xpath> |
302 | <xpath expr="//div[@name='button_box']" position="inside"> |
303 | - <button name="%(act_hr_employee_2_hr__evaluation_interview)d" string="Appraisal Interviews" type="action"/> |
304 | + <button name="%(act_hr_employee_2_hr__evaluation_interview)d" class="oe_link oe_vertical_separator" string="Appraisal Interviews" type="action"/> |
305 | </xpath> |
306 | </field> |
307 | </record> |
308 | @@ -183,8 +183,8 @@ |
309 | <field nolabel="1" name="survey_request_ids" attrs="{'readonly': [('state', '=', 'done')]}"> |
310 | <form string="Interview Appraisal" version="7.0"> |
311 | <div class="oe_right oe_button_box"> |
312 | - <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)]}"/> |
313 | - <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)]}" /> |
314 | + <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 | + <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 | </div> |
317 | <group> |
318 | <group> |
319 | @@ -305,7 +305,7 @@ |
320 | <sheet> |
321 | <div class="oe_right oe_button_box" name="button_box"> |
322 | <button string="Send Reminder Email" name="%(mail.action_email_compose_message_wizard)d" type="action" |
323 | - states="waiting_answer" |
324 | + states="waiting_answer" class="oe_link" |
325 | context="{'default_body_text': 'Hello,\n\nKindly post your response for the survey interview.\n\nThanks', |
326 | 'default_subject': 'Reminder to fill up Survey' }"/> |
327 | </div> |
328 | |
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 | 'current_leave_id': fields.function(_get_leave_status, multi="leave_status", string="Current Leave Type",type='many2one', relation='hr.holidays.status'), |
334 | 'leave_date_from': fields.function(_get_leave_status, multi='leave_status', type='date', string='From Date'), |
335 | 'leave_date_to': fields.function(_get_leave_status, multi='leave_status', type='date', string='To Date'), |
336 | + 'leave_ids': fields.one2many('hr.holidays','employee_id',string="Leaves") |
337 | } |
338 | |
339 | |
340 | |
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 | </group> |
346 | </xpath> |
347 | <xpath expr="//div[@name='button_box']" position="inside"> |
348 | - <button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action" groups="base.group_hr_user"/> |
349 | + <field name="leave_ids" widget="x2many_counter" groups="base.group_hr_user" class="oe_vertical_separator" |
350 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}'/> |
351 | </xpath> |
352 | </field> |
353 | </record> |
354 | |
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 | </header> |
360 | <sheet> |
361 | <div class="oe_right oe_button_box"> |
362 | - <button name="%(act_payslip_lines)d" string="Payslip Computation Details" type="action"/> |
363 | + <button name="%(act_payslip_lines)d" class="oe_link" string="Payslip Computation Details" type="action"/> |
364 | </div> |
365 | <div class="oe_title"> |
366 | <label for="employee_id" class="oe_edit_only"/> |
367 | @@ -387,7 +387,8 @@ |
368 | <field name="arch" type="xml"> |
369 | <data> |
370 | <xpath expr="//div[@name='button_box']" position="inside"> |
371 | - <button name="%(act_hr_employee_payslip_list)d" string="Payslips" type="action" groups="base.group_hr_user"/> |
372 | + <field name="slip_ids" string="Payslips" widget="x2many_counter" class="oe_vertical_separator" |
373 | + groups="base.group_hr_user" options='{"views": [[false, "list"], [false, "form"]]}'/> |
374 | </xpath> |
375 | </data> |
376 | </field> |
377 | |
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 | </header> |
383 | <sheet> |
384 | <div class="oe_right oe_button_box"> |
385 | - <button name="action_makeMeeting" type="object" |
386 | + <button name="action_makeMeeting" class="oe_link" type="object" |
387 | string="Schedule Meeting" help="Schedule interview with this applicant"/> |
388 | - <button name="%(survey.action_view_survey_question_message)d" type="action" |
389 | + <button name="%(survey.action_view_survey_question_message)d" class="oe_link oe_vertical_separator" type="action" |
390 | string="Start Interview" help="Answer related job question" |
391 | context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" |
392 | - attrs="{'invisible':[('survey','=',False)]}"/> |
393 | - <button name="action_print_survey" type="object" |
394 | + attrs="{'invisible':[('survey','=',False)]}"/> |
395 | + <button name="action_print_survey" type="object" class="oe_link oe_vertical_separator" |
396 | string="Print Interview" help="Print interview report" |
397 | attrs="{'invisible':[('survey','=',False)]}"/> |
398 | </div> |
399 | |
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 | </xpath> |
405 | <xpath expr='//div[@name="buttons"]' position='inside'> |
406 | <button string="Costs and Revenues" |
407 | - name="%(act_analytic_cost_revenue)d" |
408 | + name="%(act_analytic_cost_revenue)d" class="oe_link" |
409 | type="action"/> |
410 | |
411 | </xpath> |
412 | |
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 | </header> |
418 | <sheet> |
419 | <div class="oe_right oe_button_box" name="buttons"> |
420 | - <button type="action" |
421 | + <button type="action" class="oe_link" |
422 | name="%(act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet)d" |
423 | string="Timesheet Activities" /> |
424 | <button type="action" groups="base.group_hr_attendance" |
425 | + class="oe_link oe_vertical_separator" |
426 | name="%(act_hr_timesheet_sheet_sheet_2_hr_attendance)d" |
427 | string="Attendances" /> |
428 | </div> |
429 | @@ -365,7 +366,7 @@ |
430 | <field name="inherit_id" ref="hr_timesheet.hr_timesheet_employee_extd_form"/> |
431 | <field name="arch" type="xml"> |
432 | <xpath expr="//div[@name='button_box']" position="inside"> |
433 | - <button name="%(act_hr_employee_2_hr_timesheet)d" string="Timesheets" type="action" groups="base.group_hr_manager"/> |
434 | + <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 | </xpath> |
436 | </field> |
437 | </record> |
438 | |
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 | type="object" class="oe_link" |
444 | attrs="{'invisible': ['|', ('alias_model_id', '=', False), ('alias_force_thread_id', '=', 0)]}"/> |
445 | <button name="open_parent_document" string="Open Parent Document" |
446 | - type="object" class="oe_link" |
447 | + type="object" class="oe_link oe_vertical_separator" |
448 | attrs="{'invisible': ['|', ('alias_parent_model_id', '=', False), ('alias_parent_thread_id', '=', 0)]}"/> |
449 | </div> |
450 | <group> |
451 | |
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 | 'Status',), |
457 | 'activity_ids': fields.one2many('marketing.campaign.activity', |
458 | 'campaign_id', 'Activities'), |
459 | + 'segment_ids': fields.one2many('marketing.campaign.segment', |
460 | + 'campaign_id', 'Segments'), |
461 | + 'followup_ids': fields.one2many('marketing.campaign.workitem', |
462 | + 'campaign_id', 'Follow-Up'), |
463 | '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 | } |
465 | |
466 | |
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 | |
472 | <menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/> |
473 | |
474 | - <!-- Marketing Campaign --> |
475 | - |
476 | - <record id="act_marketing_campaing_segment_opened" model="ir.actions.act_window"> |
477 | - <field name="res_model">marketing.campaign.segment</field> |
478 | - <field name="view_type">form</field> |
479 | - <field name="name">Segments</field> |
480 | - <field name="view_mode">tree,form</field> |
481 | - <field name="context">{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}</field> |
482 | - </record> |
483 | - |
484 | <!-- Campaign Follow-ups --> |
485 | |
486 | <record id="act_marketing_campaing_followup" model="ir.actions.act_window"> |
487 | @@ -65,14 +55,12 @@ |
488 | <sheet string="Campaign"> |
489 | <div class="oe_right oe_button_box" name="button_box"> |
490 | <button type="action" |
491 | - name="%(act_marketing_campaing_stat)d" |
492 | + name="%(act_marketing_campaing_stat)d" class="oe_link" |
493 | string="Campaign Statistics"/> |
494 | - <button type="action" |
495 | - name="%(act_marketing_campaing_segment_opened)d" |
496 | - string="Segments"/> |
497 | - <button type="action" |
498 | - name="%(act_marketing_campaing_followup)d" |
499 | - string="Follow-Up"/> |
500 | + <field name="segment_ids" widget="x2many_counter" class="oe_vertical_separator" |
501 | + options='{"views": [[false, "list"], [false, "form"]]}'/> |
502 | + <field name="followup_ids" widget="x2many_counter" class="oe_vertical_separator" |
503 | + options='{"views": [[false, "list"], [false, "form"]]}'/> |
504 | </div> |
505 | <div class="oe_title"> |
506 | <label for="name" class="oe_edit_only"/> |
507 | |
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 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
513 | <field name="arch" type="xml"> |
514 | <xpath expr="//div[@name='buttons']" position="inside"> |
515 | - <button string="Bill of Materials" name="%(product_open_bom)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}"/> |
516 | - <button string="BoM Structure" name="%(act_product_mrp_bom_open)d" type="action" groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> |
517 | - <button string="Manufacturing Orders" name="%(act_product_mrp_production)d" type="action" groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> |
518 | + <button string="Bill of Materials" name="%(product_open_bom)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" class="oe_link oe_vertical_separator"/> |
519 | + <button string="BoM Structure" name="%(act_product_mrp_bom_open)d" type="action" class="oe_link oe_vertical_separator" |
520 | + groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> |
521 | + <button string="Manufacturing Orders" name="%(act_product_mrp_production)d" type="action" class="oe_link oe_vertical_separator" |
522 | + groups="mrp.group_mrp_user" attrs="{'invisible':[('type', '=', 'service')]}"/> |
523 | </xpath> |
524 | </field> |
525 | </record> |
526 | |
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 | </header> |
532 | <sheet> |
533 | <div class="oe_right oe_button_box"> |
534 | - <button name="%(action_pos_box_in)d" string="Put Money In" type="action" states="opened,closing_control"/> |
535 | - <button name="%(action_pos_box_out)d" string="Take Money Out" type="action" states="opened,closing_control"/> |
536 | + <button name="%(action_pos_box_in)d" class="oe_link" string="Put Money In" type="action" states="opened,closing_control"/> |
537 | + <button name="%(action_pos_box_out)d" class="oe_link oe_vertical_separator" string="Take Money Out" type="action" states="opened,closing_control"/> |
538 | </div> |
539 | <h1 class="oe_title"> |
540 | Session: |
541 | |
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 | <button string="⇒ Request Procurement" name="%(act_make_procurement)d" type="action" class="oe_link"/> |
547 | </xpath> |
548 | <xpath expr="//div[@name='buttons']" position="inside"> |
549 | - <button string="Orderpoints" name="%(product_open_orderpoint)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}"/> |
550 | + <field string="Orderpoints" name="orderpoint_ids" widget="x2many_counter" |
551 | + class="oe_vertical_separator" options='{"views": [[false, "list"], [false, "form"]]}' |
552 | + attrs="{'invisible':[('type', '=', 'service')]}"/> |
553 | </xpath> |
554 | <xpath expr="//field[@name='cost_method']" position="before"> |
555 | <field name="procure_method" groups="base.group_user"/> |
556 | |
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 | alias_ids = [] |
562 | mail_alias = self.pool.get('mail.alias') |
563 | for proj in self.browse(cr, uid, ids, context=context): |
564 | - if proj.tasks: |
565 | + if proj.task_ids: |
566 | raise osv.except_osv(_('Invalid Action!'), |
567 | _('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 | elif proj.alias_id: |
569 | @@ -243,25 +243,25 @@ |
570 | help="Gives the sequence order when displaying the list of projects"), |
571 | 'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members', |
572 | 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)]}), |
573 | - 'tasks': fields.one2many('project.task', 'project_id', "Task Activities"), |
574 | + 'task_ids': fields.one2many('project.task', 'project_id', "Task Activities"), |
575 | '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 | store = { |
577 | - 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), |
578 | + 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
579 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
580 | }), |
581 | '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 | store = { |
583 | - 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), |
584 | + 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
585 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
586 | }), |
587 | '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 | store = { |
589 | - 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), |
590 | + 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
591 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
592 | }), |
593 | '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 | store = { |
595 | - 'project.project': (_get_project_and_parents, ['tasks', 'parent_id', 'child_ids'], 10), |
596 | + 'project.project': (_get_project_and_parents, ['task_ids', 'parent_id', 'child_ids'], 10), |
597 | 'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'stage_id'], 20), |
598 | }), |
599 | '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 | map_task_id = {} |
602 | task_obj = self.pool.get('project.task') |
603 | proj = self.browse(cr, uid, old_project_id, context=context) |
604 | - for task in proj.tasks: |
605 | + for task in proj.task_ids: |
606 | map_task_id[task.id] = task_obj.copy(cr, uid, task.id, {}, context=context) |
607 | - self.write(cr, uid, [new_project_id], {'tasks':[(6,0, map_task_id.values())]}) |
608 | + self.write(cr, uid, [new_project_id], {'task_ids':[(6,0, map_task_id.values())]}) |
609 | task_obj.duplicate_task(cr, uid, map_task_id, context=context) |
610 | return True |
611 | |
612 | @@ -358,7 +358,7 @@ |
613 | context['active_test'] = False |
614 | default['state'] = 'open' |
615 | default['line_ids'] = [] |
616 | - default['tasks'] = [] |
617 | + default['task_ids'] = [] |
618 | proj = self.browse(cr, uid, id, context=context) |
619 | if not default.get('name', False): |
620 | default.update(name=_("%s (copy)") % (proj.name)) |
621 | @@ -447,7 +447,7 @@ |
622 | u_ids = [i.id for i in project.members] |
623 | if project.user_id and (project.user_id.id not in u_ids): |
624 | u_ids.append(project.user_id.id) |
625 | - for task in project.tasks: |
626 | + for task in project.task_ids: |
627 | if task.user_id and (task.user_id.id not in u_ids): |
628 | u_ids.append(task.user_id.id) |
629 | calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False |
630 | @@ -503,7 +503,7 @@ |
631 | result = self._schedule_header(cr, uid, ids, False, context=context) |
632 | for project in projects: |
633 | result += self._schedule_project(cr, uid, project, context=context) |
634 | - result += self.pool.get('project.task')._generate_task(cr, uid, project.tasks, ident=4, context=context) |
635 | + result += self.pool.get('project.task')._generate_task(cr, uid, project.task_ids, ident=4, context=context) |
636 | |
637 | local_dict = {} |
638 | exec result in local_dict |
639 | @@ -511,7 +511,7 @@ |
640 | |
641 | for project in projects: |
642 | project_gantt = getattr(projects_gantt, 'Project_%d' % (project.id,)) |
643 | - for task in project.tasks: |
644 | + for task in project.task_ids: |
645 | if task.stage_id and task.stage_id.fold: |
646 | continue |
647 | |
648 | |
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 | </div> |
654 | </div> |
655 | <div class="oe_right oe_button_box" name="buttons" groups="base.group_user"> |
656 | - <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"]]}'/> |
657 | - <button name="attachment_tree_view" string="Documents" type="object"/> |
658 | + <field name="task_ids" widget="x2many_counter" string="Tasks" attrs="{'invisible':[('use_tasks','=', False)]}" |
659 | + options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "gantt"], [false, "graph"]]}'/> |
660 | + <button name="attachment_tree_view" class="oe_link oe_vertical_separator" string="Documents" type="object"/> |
661 | </div> |
662 | <group> |
663 | <group> |
664 | |
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 | <field name="priority" eval="50"/> |
670 | <field name="arch" type="xml"> |
671 | <xpath expr="//div[@name='buttons']" position="inside"> |
672 | - <button class="oe_inline" type="action" |
673 | - name="%(action_view_task)d" |
674 | - string="Tasks" |
675 | + <field name="task_ids" |
676 | + string="Tasks" widget="x2many_counter" class="oe_vertical_separator" |
677 | + options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "gantt"], [false, "graph"]]}' |
678 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" |
679 | groups="project.group_project_user" /> |
680 | </xpath> |
681 | |
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 | self.project_project.set_template(cr, user_projectmanager_id, [project_pigs_id]) |
687 | project.refresh() |
688 | self.assertEqual(project.state, 'template', 'project: set_template: project state should be template') |
689 | - self.assertEqual(len(project.tasks), 0, 'project: set_template: project tasks should have been set inactive') |
690 | + self.assertEqual(len(project.task_ids), 0, 'project: set_template: project tasks should have been set inactive') |
691 | |
692 | # Duplicate template |
693 | new_template_act = self.project_project.duplicate_template(cr, user_projectmanager_id, [project_pigs_id]) |
694 | new_project = self.project_project.browse(cr, user_projectmanager_id, new_template_act['res_id']) |
695 | self.assertEqual(new_project.state, 'open', 'project: incorrect duplicate_template') |
696 | - self.assertEqual(len(new_project.tasks), 2, 'project: duplicating a project template should duplicate its tasks') |
697 | + self.assertEqual(len(new_project.task_ids), 2, 'project: duplicating a project template should duplicate its tasks') |
698 | |
699 | # Convert into real project |
700 | self.project_project.reset_project(cr, user_projectmanager_id, [project_pigs_id]) |
701 | project.refresh() |
702 | self.assertEqual(project.state, 'open', 'project: resetted project should be in open state') |
703 | - self.assertEqual(len(project.tasks), 2, 'project: reset_project: project tasks should have been set active') |
704 | + self.assertEqual(len(project.task_ids), 2, 'project: reset_project: project tasks should have been set active') |
705 | |
706 | # Put as pending |
707 | self.project_project.set_pending(cr, user_projectmanager_id, [project_pigs_id]) |
708 | @@ -107,7 +107,7 @@ |
709 | # Copy the project |
710 | new_project_id = self.project_project.copy(cr, user_projectmanager_id, project_pigs_id) |
711 | new_project = self.project_project.browse(cr, user_projectmanager_id, new_project_id) |
712 | - self.assertEqual(len(new_project.tasks), 2, 'project: copied project should have copied task') |
713 | + self.assertEqual(len(new_project.task_ids), 2, 'project: copied project should have copied task') |
714 | |
715 | # Cancel the project |
716 | self.project_project.set_cancel(cr, user_projectmanager_id, [project_pigs_id]) |
717 | |
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 | states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}), |
723 | 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues", |
724 | deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."), |
725 | - 'issue_ids': fields.one2many('project.issue', 'project_id', |
726 | - domain=[('stage_id.fold', '=', False)]) |
727 | + 'issue_ids': fields.one2many('project.issue', 'project_id', 'Issues', |
728 | + domain=[('stage_id.fold', '=', False)]) |
729 | } |
730 | |
731 | def _check_escalation(self, cr, uid, ids, context=None): |
732 | @@ -576,5 +576,12 @@ |
733 | self._check_create_write_values(cr, uid, vals, context=context) |
734 | return super(project_project, self).write(cr, uid, ids, vals, context=context) |
735 | |
736 | +class res_partner(osv.osv): |
737 | + |
738 | + """ Inherits partner and adds Issues information in the partner form """ |
739 | + _inherit = 'res.partner' |
740 | + _columns = { |
741 | + 'issue_ids': fields.one2many('project.issue', 'partner_id', 'Issues'), |
742 | + } |
743 | |
744 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
745 | |
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 | <label for="use_issues"/> |
751 | </xpath> |
752 | <xpath expr='//div[@name="buttons"]' position='inside'> |
753 | - <button name="%(act_project_project_2_project_issue_all)d" string="Issues" type="action" attrs="{'invisible':[('use_issues','=', 0)]}"/> |
754 | + <field name="issue_ids" widget="x2many_counter" class="oe_vertical_separator" string="Issues" attrs="{'invisible':[('use_issues','=', 0)]}" |
755 | + options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}'/> |
756 | </xpath> |
757 | <xpath expr='//page[@name="project_stages"]' position="attributes"> |
758 | <attribute name="attrs">{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}</attribute> |
759 | @@ -374,9 +375,9 @@ |
760 | <field name="priority" eval="50"/> |
761 | <field name="arch" type="xml"> |
762 | <xpath expr="//div[@name='buttons']" position="inside"> |
763 | - <button class="oe_inline" type="action" string="Issues" |
764 | - attrs="{'invisible': [('customer', '=', False)]}" |
765 | - name="%(action_view_issues)d" |
766 | + <field name="issue_ids" attrs="{'invisible': [('customer', '=', False)]}" |
767 | + options='{"views": [[false, "kanban"], [false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' |
768 | + widget="x2many_counter" class="oe_vertical_separator" |
769 | context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}" |
770 | groups="project.group_project_user"/> |
771 | </xpath> |
772 | |
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 | <label for="use_phases"/> |
778 | </xpath> |
779 | <xpath expr="//div[@name='buttons']" position='inside'> |
780 | - <button name="%(act_project_phases)d" |
781 | - string="Phases" type="action" |
782 | - attrs="{'invisible':[('use_phases','=', 0)]}"/> |
783 | + <field name="phase_ids" class="oe_vertical_separator" widget="x2many_counter" attrs="{'invisible':[('use_phases','=', 0)]}" |
784 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}'/> |
785 | </xpath> |
786 | </field> |
787 | </record> |
788 | @@ -151,7 +150,9 @@ |
789 | <field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> |
790 | </header> |
791 | <sheet> |
792 | - <button name="%(project_phase_task_list)d" string="Related Tasks" type="action" class="oe_right"/> |
793 | + <div class="oe_right oe_button_box"> |
794 | + <button name="%(project_phase_task_list)d" string="Related Tasks" type="action" class="oe_link"/> |
795 | + </div> |
796 | <div class="oe_title"> |
797 | <label for="name" class="oe_edit_only"/> |
798 | <h1><field name="name"/></h1> |
799 | |
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 | - |
805 | !python {model: project.project}: | |
806 | prj = self.browse(cr, uid, [ref("project.project_project_1")])[0] |
807 | - for task in prj.tasks: |
808 | + for task in prj.task_ids: |
809 | if task.stage_id and task.stage_id.fold: |
810 | continue |
811 | assert task.user_id and task.date_start and task.date_end, "Project tasks not scheduled" |
812 | |
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 | <label for="use_timesheets"/> |
818 | </xpath> |
819 | <xpath expr='//div[@name="buttons"]' position="inside"> |
820 | - <button name="open_timesheets" string="Timesheets" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/> |
821 | + <button name="open_timesheets" string="Timesheets" class="oe_link oe_vertical_separator" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/> |
822 | </xpath> |
823 | </field> |
824 | </record> |
825 | |
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 | <field name="priority" eval="20"/> |
831 | <field name="arch" type="xml"> |
832 | <xpath expr="//div[@name='buttons']" position="inside"> |
833 | - <button name="%(purchase.act_res_partner_2_purchase_order)d" type="action" |
834 | + <field name="purchase_order_ids" |
835 | string="Purchase Orders" |
836 | + widget="x2many_counter" class="oe_vertical_separator" |
837 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' |
838 | attrs="{'invisible': [('supplier', '=', False)]}" |
839 | groups="purchase.group_purchase_user"/> |
840 | <button name="%(purchase.act_res_partner_2_supplier_invoices)d" type="action" |
841 | attrs="{'invisible': [('supplier', '=', False)]}" |
842 | - string="Supplier Invoices"/> |
843 | + string="Supplier Invoices" class="oe_link oe_vertical_separator"/> |
844 | </xpath> |
845 | </field> |
846 | </record> |
847 | |
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 | readonly=True), |
853 | } |
854 | |
855 | +class product_product(osv.Model): |
856 | + _inherit = "product.product" |
857 | + _columns = { |
858 | + 'purchase_ids': fields.one2many('purchase.order', 'product_id', 'Purchases'), |
859 | + } |
860 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
861 | |
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 | <field name="inherit_id" ref="account.product_normal_form_view"/> |
867 | <field name="arch" type="xml"> |
868 | <xpath expr="//div[@name='buttons']" position="inside"> |
869 | - <button string="Purchases" name="%(action_purchase_line_product_tree)d" type="action" groups="purchase.group_purchase_user"/> |
870 | + <field name="purchase_ids" class="oe_vertical_separator" widget="x2many_counter" |
871 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' |
872 | + groups="purchase.group_purchase_user"/> |
873 | </xpath> |
874 | <xpath expr="//field[@name='property_account_expense']" position="replace" > |
875 | <field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" groups="account.group_account_user"/> |
876 | |
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 | <xpath expr="//div[contains(@class, 'oe_title')]" position="before"> |
882 | <div class="oe_right oe_button_box" name="buttons"> |
883 | <button type="object" |
884 | - name="view_picking" |
885 | + name="view_picking" class="oe_link" |
886 | string="Incoming Shipments" states="approved"/> |
887 | - <button type="object" name="invoice_open" |
888 | + <button type="object" name="invoice_open" class="oe_link oe_vertical_separator" |
889 | string="Invoices" attrs="{'invisible': [('state', 'in', ['draft','sent'])]}"/> |
890 | </div> |
891 | </xpath> |
892 | |
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 | </field> |
898 | <div class="oe_right oe_button_box" style="margin-top: 10px"> |
899 | <button name="%(action_purchase_requisition_partner)d" type="action" |
900 | - string="Request a Quotation" icon="gtk-execute" |
901 | + string="Request a Quotation" class="oe_link" |
902 | attrs="{'invisible': [('line_ids','=',False),('state', 'not in', ('in_progress'))]}"/> |
903 | </div> |
904 | <separator string="Quotations"/> |
905 | |
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 | <field name="priority" eval="20"/> |
911 | <field name="arch" type="xml"> |
912 | <xpath expr="//div[@name='buttons']" position="inside"> |
913 | - <button name="%(sale.act_res_partner_2_sale_order)d" type="action" |
914 | - string="Quotations and Sales" |
915 | + <field name="sale_order_ids" |
916 | + string="Sales" widget="x2many_counter" class="oe_vertical_separator" |
917 | attrs="{'invisible': [('customer', '=', False)]}" |
918 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"], [false, "graph"]]}' |
919 | groups="base.group_sale_salesman"/> |
920 | </xpath> |
921 | </field> |
922 | |
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 | workflow.trg_validate(uid, 'account.invoice', id, 'invoice_cancel', cr) |
928 | return super(account_invoice, self).unlink(cr, uid, ids, context=context) |
929 | |
930 | +class product_product(osv.Model): |
931 | + _inherit = "product.product" |
932 | + _columns = { |
933 | + 'sale_ids': fields.one2many('sale.order.line', 'product_id', 'Sales'), |
934 | + } |
935 | + |
936 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
937 | |
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 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
943 | <field name="arch" type="xml"> |
944 | <xpath expr="//div[@name='buttons']" position="inside"> |
945 | - <button string="Sales" name="%(action_order_line_product_tree)d" type="action" groups="base.group_sale_salesman"/> |
946 | + <field name="sale_ids" class="oe_vertical_separator" widget="x2many_counter" |
947 | + options='{"views": [[false, "list"], [false, "form"]]}' |
948 | + type="action" groups="base.group_sale_salesman"/> |
949 | </xpath> |
950 | </field> |
951 | </record> |
952 | |
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 | help="If real-time valuation is enabled for a product, the system will automatically write journal entries corresponding to stock moves." \ |
958 | "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 | , required=True), |
960 | + 'move_ids': fields.one2many('stock.move', 'product_id', 'Moves'), |
961 | } |
962 | |
963 | _defaults = { |
964 | |
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 | <field name="inherit_id" ref="product.product_normal_form_view"/> |
970 | <field name="arch" type="xml"> |
971 | <xpath expr="//div[@name='buttons']" position="inside"> |
972 | - <button string="Inventory" name="%(action_product_location_tree)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_locations"/> |
973 | - <button string="Moves" name= "%(act_product_stock_move_open)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/> |
974 | + <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 | + <field name= "move_ids" class="oe_vertical_separator" widget="x2many_counter" |
976 | + options='{"views": [[false, "list"], [false, "form"], [false, "calendar"]]}' |
977 | + attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/> |
978 | </xpath> |
979 | <group name="procurement_uom" position="before"> |
980 | <group name="delay" string="Delays"> |
981 | |
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 | </header> |
987 | <sheet> |
988 | <div class="oe_right oe_button_box"> |
989 | - <button name="%(action_view_stock_fill_inventory)d" string="Fill Inventory" states="draft,confirm" type="action" /> |
990 | + <button name="%(action_view_stock_fill_inventory)d" class="oe_link" string="Fill Inventory" states="draft,confirm" type="action" /> |
991 | </div> |
992 | <group> |
993 | <group> |
994 | @@ -338,8 +338,8 @@ |
995 | <field name="arch" type="xml"> |
996 | <form string="Serial Number" version="7.0"> |
997 | <div class="oe_button_box oe_right"> |
998 | - <button name="action_traceability" string="Upstream Traceability" type="object" context="{'type': 'move_history_ids2', 'field': 'prodlot_id'}"/> |
999 | - <button name="action_traceability" string="Downstream Traceability" type="object" context="{'type': 'move_history_ids', 'field': 'prodlot_id'}"/> |
1000 | + <button name="action_traceability" string="Upstream Traceability" class="oe_link" type="object" context="{'type': 'move_history_ids2', 'field': 'prodlot_id'}"/> |
1001 | + <button name="action_traceability" string="Downstream Traceability" class="oe_link oe_vertical_separator" type="object" context="{'type': 'move_history_ids', 'field': 'prodlot_id'}"/> |
1002 | </div> |
1003 | <div class="oe_title"> |
1004 | <label for="name" class="oe_edit_only"/> |
1005 | |
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 | </header> |
1011 | <sheet> |
1012 | <div class="oe_button_box oe_right"> |
1013 | - <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)]}"/> |
1014 | - <button name="fill_survey" states="open" string="Answer Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/> |
1015 | - <button name="action_print_survey" states="open,draft,close,cancel" string="Print Answer" type="object"/> |
1016 | - <button name="edit_survey" states="open,draft,close,cancel" |
1017 | + <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 | + <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 | + <button name="action_print_survey" class="oe_link oe_vertical_separator" states="open,draft,close,cancel" string="Print Answer" type="object"/> |
1020 | + <button name="edit_survey" class="oe_link" states="open,draft,close,cancel" |
1021 | string="Edit Survey" type="object" context="{'active':True,'edit' : True,'survey_id': active_id}"/> |
1022 | |
1023 | </div> |