Merge lp:~openerp-dev/openobject-server/trunk-res-country-state-cleaning-mme into lp:openobject-server
- trunk-res-country-state-cleaning-mme
- Merge into trunk
Proposed by
Thibault Delavallée (OpenERP)
Status: | Needs review |
---|---|
Proposed branch: | lp:~openerp-dev/openobject-server/trunk-res-country-state-cleaning-mme |
Merge into: | lp:openobject-server |
Diff against target: |
584 lines (+29/-139) 21 files modified
doc/03_module_dev_02.rst (+0/-1) doc/03_module_dev_03.rst (+1/-1) doc/form-view-guidelines.rst (+1/-1) openerp/addons/base/__openerp__.py (+0/-1) openerp/addons/base/report/corporate_defaults.xml (+1/-1) openerp/addons/base/res/res_bank.py (+6/-8) openerp/addons/base/res/res_bank_view.xml (+1/-1) openerp/addons/base/res/res_company.py (+2/-15) openerp/addons/base/res/res_company_view.xml (+1/-1) openerp/addons/base/res/res_country.py (+0/-16) openerp/addons/base/res/res_country_view.xml (+0/-42) openerp/addons/base/res/res_partner.py (+7/-15) openerp/addons/base/res/res_partner_demo.xml (+0/-6) openerp/addons/base/res/res_partner_report_address.xml (+1/-1) openerp/addons/base/res/res_partner_view.xml (+2/-2) openerp/addons/base/res/res_users.py (+0/-4) openerp/addons/base/security/ir.model.access.csv (+0/-2) openerp/addons/base/tests/test_expression.py (+0/-4) openerp/addons/base/tests/test_mail_examples.py (+1/-1) openerp/addons/base/tests/test_search.py (+5/-6) openerp/osv/expression.py (+0/-10) |
To merge this branch: | bzr merge lp:~openerp-dev/openobject-server/trunk-res-country-state-cleaning-mme |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenERP Core Team | Pending | ||
Review via email: mp+208115@code.launchpad.net |
Commit message
Description of the change
[Fix] remove res.country.state model and replace all many2one state by a char field
To post a comment you must log in.
- 5092. By Mehul Mehta(OpenERP)
-
[IMP] improvement in code
Unmerged revisions
- 5092. By Mehul Mehta(OpenERP)
-
[IMP] improvement in code
- 5091. By Mehul Mehta(OpenERP)
-
[MERGE] Merged lp:openobject-server
- 5090. By Mehul Mehta(OpenERP)
-
[Fix] remove res.country.state model and replace all many2one state by a char field
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'doc/03_module_dev_02.rst' |
2 | --- doc/03_module_dev_02.rst 2013-06-19 09:13:32 +0000 |
3 | +++ doc/03_module_dev_02.rst 2014-02-26 13:35:37 +0000 |
4 | @@ -600,7 +600,6 @@ |
5 | the Country from a City, you can define a field as below in the City object:: |
6 | |
7 | 'country_id': fields.related( |
8 | - 'state_id', |
9 | 'country_id', |
10 | type="many2one", |
11 | relation="res.country", |
12 | |
13 | === modified file 'doc/03_module_dev_03.rst' |
14 | --- doc/03_module_dev_03.rst 2013-09-04 12:58:42 +0000 |
15 | +++ doc/03_module_dev_03.rst 2014-02-26 13:35:37 +0000 |
16 | @@ -878,7 +878,7 @@ |
17 | <field name="city" select="2"/> |
18 | <newline/> |
19 | <field completion="1" name="country_id" select="2"/> |
20 | - <field name="state_id" select="2"/> |
21 | + <field name="state" select="2"/> |
22 | <newline/> |
23 | <field name="phone"/> |
24 | <field name="fax"/> |
25 | |
26 | === modified file 'doc/form-view-guidelines.rst' |
27 | --- doc/form-view-guidelines.rst 2013-03-28 16:30:59 +0000 |
28 | +++ doc/form-view-guidelines.rst 2014-02-26 13:35:37 +0000 |
29 | @@ -228,7 +228,7 @@ |
30 | <field name="zip" class="oe_inline" placeholder="ZIP"/> |
31 | <field name="city" class="oe_inline" placeholder="City"/> |
32 | </div> |
33 | - <field name="state_id" placeholder="State"/> |
34 | + <field name="state" placeholder="State"/> |
35 | <field name="country_id" placeholder="Country"/> |
36 | </div> |
37 | </group> |
38 | |
39 | === modified file 'openerp/addons/base/__openerp__.py' |
40 | --- openerp/addons/base/__openerp__.py 2014-02-09 00:37:45 +0000 |
41 | +++ openerp/addons/base/__openerp__.py 2014-02-26 13:35:37 +0000 |
42 | @@ -41,7 +41,6 @@ |
43 | 'base_menu.xml', |
44 | 'res/res_security.xml', |
45 | 'res/res_config.xml', |
46 | - 'res/res.country.state.csv', |
47 | 'ir/ir_actions.xml', |
48 | 'ir/ir_config_parameter_view.xml', |
49 | 'ir/ir_cron_view.xml', |
50 | |
51 | === modified file 'openerp/addons/base/report/corporate_defaults.xml' |
52 | --- openerp/addons/base/report/corporate_defaults.xml 2012-08-20 10:20:22 +0000 |
53 | +++ openerp/addons/base/report/corporate_defaults.xml 2014-02-26 13:35:37 +0000 |
54 | @@ -8,7 +8,7 @@ |
55 | <street type="field" name="street"/> |
56 | <zip type="field" name="zip"/> |
57 | <city type="field" name="city"/> |
58 | - <state type="field" name="state_id.name"/> |
59 | + <state type="field" name="state"/> |
60 | <country type="field" name="country_id.name"/> |
61 | <phone type="field" name="phone"/> |
62 | <email type="field" name="email"/> |
63 | |
64 | === modified file 'openerp/addons/base/res/res_bank.py' |
65 | --- openerp/addons/base/res/res_bank.py 2013-04-12 13:30:08 +0000 |
66 | +++ openerp/addons/base/res/res_bank.py 2014-02-26 13:35:37 +0000 |
67 | @@ -32,8 +32,7 @@ |
68 | 'street2': fields.char('Street2', size=128), |
69 | 'zip': fields.char('Zip', change_default=True, size=24), |
70 | 'city': fields.char('City', size=128), |
71 | - 'state': fields.many2one("res.country.state", 'Fed. State', |
72 | - domain="[('country_id', '=', country)]"), |
73 | + 'state': fields.char('Fed. State'), |
74 | 'country': fields.many2one('res.country', 'Country'), |
75 | 'email': fields.char('Email', size=64), |
76 | 'phone': fields.char('Phone', size=64), |
77 | @@ -102,7 +101,7 @@ |
78 | |
79 | def _default_value(self, cursor, user, field, context=None): |
80 | if context is None: context = {} |
81 | - if field in ('country_id', 'state_id'): |
82 | + if field in ('country_id'): |
83 | value = False |
84 | else: |
85 | value = '' |
86 | @@ -130,8 +129,7 @@ |
87 | 'city': fields.char('City', size=128), |
88 | 'country_id': fields.many2one('res.country', 'Country', |
89 | change_default=True), |
90 | - 'state_id': fields.many2one("res.country.state", 'Fed. State', |
91 | - change_default=True, domain="[('country_id','=',country_id)]"), |
92 | + 'state': fields.char('Fed. State'), |
93 | 'company_id': fields.many2one('res.company', 'Company', |
94 | ondelete='cascade', help="Only if this bank account belong to your company"), |
95 | 'partner_id': fields.many2one('res.partner', 'Account Owner', required=True, |
96 | @@ -153,8 +151,8 @@ |
97 | cursor, user, 'zip', context=context), |
98 | 'country_id': lambda obj, cursor, user, context: obj._default_value( |
99 | cursor, user, 'country_id', context=context), |
100 | - 'state_id': lambda obj, cursor, user, context: obj._default_value( |
101 | - cursor, user, 'state_id', context=context), |
102 | + 'state': lambda obj, cursor, user, context: obj._default_value( |
103 | + cursor, user, 'state', context=context), |
104 | 'name': '/' |
105 | } |
106 | |
107 | @@ -231,7 +229,7 @@ |
108 | result['city'] = part.city or False |
109 | result['zip'] = part.zip or False |
110 | result['country_id'] = part.country_id.id |
111 | - result['state_id'] = part.state_id.id |
112 | + result['state'] = part.state |
113 | return {'value': result} |
114 | |
115 | res_partner_bank() |
116 | |
117 | === modified file 'openerp/addons/base/res/res_bank_view.xml' |
118 | --- openerp/addons/base/res/res_bank_view.xml 2013-06-13 17:54:53 +0000 |
119 | +++ openerp/addons/base/res/res_bank_view.xml 2014-02-26 13:35:37 +0000 |
120 | @@ -112,7 +112,7 @@ |
121 | <field name="zip" class="oe_inline" placeholder="ZIP"/> |
122 | <field name="city" class="oe_inline" placeholder="City"/> |
123 | </div> |
124 | - <field name="state_id" placeholder="State" options='{"no_open": True}'/> |
125 | + <field name="state" placeholder="State"/> |
126 | <field name="country_id" placeholder="Country" options='{"no_open": True}'/> |
127 | </div> |
128 | </group> |
129 | |
130 | === modified file 'openerp/addons/base/res/res_company.py' |
131 | --- openerp/addons/base/res/res_company.py 2014-02-20 16:05:48 +0000 |
132 | +++ openerp/addons/base/res/res_company.py 2014-02-26 13:35:37 +0000 |
133 | @@ -139,7 +139,7 @@ |
134 | 'street2': fields.function(_get_address_data, fnct_inv=_set_address_data, size=128, type='char', string="Street2", multi='address'), |
135 | 'zip': fields.function(_get_address_data, fnct_inv=_set_address_data, size=24, type='char', string="Zip", multi='address'), |
136 | 'city': fields.function(_get_address_data, fnct_inv=_set_address_data, size=24, type='char', string="City", multi='address'), |
137 | - 'state_id': fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', relation='res.country.state', string="Fed. State", multi='address'), |
138 | + 'state': fields.function(_get_address_data, fnct_inv=_set_address_data, type='char', string="Fed. State", multi='address'), |
139 | 'bank_ids': fields.one2many('res.partner.bank','company_id', 'Bank Accounts', help='Bank accounts related to this company'), |
140 | 'country_id': fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', relation='res.country', string="Country", multi='address'), |
141 | 'email': fields.related('partner_id', 'email', size=64, type='char', string="Email", store=True), |
142 | @@ -176,11 +176,7 @@ |
143 | res += '\n%s: %s' % (title, ', '.join(name for id, name in account_names)) |
144 | |
145 | return {'value': {'rml_footer': res, 'rml_footer_readonly': res}} |
146 | - def onchange_state(self, cr, uid, ids, state_id, context=None): |
147 | - if state_id: |
148 | - return {'value':{'country_id': self.pool.get('res.country.state').browse(cr, uid, state_id, context).country_id.id }} |
149 | - return {} |
150 | - |
151 | + |
152 | def onchange_font_name(self, cr, uid, ids, font, rml_header, rml_header2, rml_header3, context=None): |
153 | """ To change default header style of all <para> and drawstring. """ |
154 | |
155 | @@ -199,15 +195,6 @@ |
156 | 'rml_header3':_change_header(rml_header3, fontname) |
157 | }} |
158 | |
159 | - def on_change_country(self, cr, uid, ids, country_id, context=None): |
160 | - res = {'domain': {'state_id': []}} |
161 | - currency_id = self._get_euro(cr, uid, context=context) |
162 | - if country_id: |
163 | - currency_id = self.pool.get('res.country').browse(cr, uid, country_id, context=context).currency_id.id |
164 | - res['domain'] = {'state_id': [('country_id','=',country_id)]} |
165 | - res['value'] = {'currency_id': currency_id} |
166 | - return res |
167 | - |
168 | def _search(self, cr, uid, args, offset=0, limit=None, order=None, |
169 | context=None, count=False, access_rights_uid=None): |
170 | if context is None: |
171 | |
172 | === modified file 'openerp/addons/base/res/res_company_view.xml' |
173 | --- openerp/addons/base/res/res_company_view.xml 2014-02-20 16:05:48 +0000 |
174 | +++ openerp/addons/base/res/res_company_view.xml 2014-02-26 13:35:37 +0000 |
175 | @@ -48,7 +48,7 @@ |
176 | <field name="street2"/> |
177 | <div> |
178 | <field name="city" placeholder="City" style="width: 40%%"/> |
179 | - <field name="state_id" class="oe_no_button" placeholder="State" on_change="onchange_state(state_id)" style="width: 24%%" options='{"no_open": True}'/> |
180 | + <field name="state" placeholder="State" style="width: 24%%"/> |
181 | <field name="zip" placeholder="ZIP" style="width: 34%%"/> |
182 | </div> |
183 | <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}' on_change="on_change_country(country_id)"/> |
184 | |
185 | === modified file 'openerp/addons/base/res/res_country.py' |
186 | --- openerp/addons/base/res/res_country.py 2014-01-07 14:15:24 +0000 |
187 | +++ openerp/addons/base/res/res_country.py 2014-02-26 13:35:37 +0000 |
188 | @@ -82,21 +82,5 @@ |
189 | return super(Country, self).write(cursor, user, ids, vals, |
190 | context=context) |
191 | |
192 | - |
193 | -class CountryState(osv.osv): |
194 | - _description="Country state" |
195 | - _name = 'res.country.state' |
196 | - _columns = { |
197 | - 'country_id': fields.many2one('res.country', 'Country', |
198 | - required=True), |
199 | - 'name': fields.char('State Name', size=64, required=True, |
200 | - help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'), |
201 | - 'code': fields.char('State Code', size=3, |
202 | - help='The state code in max. three chars.', required=True), |
203 | - } |
204 | - _order = 'code' |
205 | - |
206 | - name_search = location_name_search |
207 | - |
208 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
209 | |
210 | |
211 | === modified file 'openerp/addons/base/res/res_country_view.xml' |
212 | --- openerp/addons/base/res/res_country_view.xml 2012-10-26 06:51:43 +0000 |
213 | +++ openerp/addons/base/res/res_country_view.xml 2014-02-26 13:35:37 +0000 |
214 | @@ -47,47 +47,5 @@ |
215 | <menuitem id="menu_localisation" name="Localization" parent="menu_config_address_book" sequence="1" groups="base.group_no_one"/> |
216 | |
217 | <menuitem action="action_country" id="menu_country_partner" parent="menu_localisation" sequence="0" groups="base.group_no_one"/> |
218 | - |
219 | - <!-- |
220 | - State |
221 | - --> |
222 | - |
223 | - <record id="view_country_state_tree" model="ir.ui.view"> |
224 | - <field name="name">res.country.state.tree</field> |
225 | - <field name="model">res.country.state</field> |
226 | - <field name="arch" type="xml"> |
227 | - <tree string="State"> |
228 | - <field name="name"/> |
229 | - <field name="code"/> |
230 | - <field name="country_id"/> |
231 | - </tree> |
232 | - </field> |
233 | - </record> |
234 | - |
235 | - <record id="view_country_state_form" model="ir.ui.view"> |
236 | - <field name="name">res.country.state.form</field> |
237 | - <field name="model">res.country.state</field> |
238 | - <field name="arch" type="xml"> |
239 | - <form string="State" version="7.0"> |
240 | - <group> |
241 | - <field name="name"/> |
242 | - <field name="code"/> |
243 | - <field name="country_id" options='{"no_open": True}'/> |
244 | - </group> |
245 | - </form> |
246 | - </field> |
247 | - </record> |
248 | - |
249 | - <record id="action_country_state" model="ir.actions.act_window"> |
250 | - <field name="name">Fed. States</field> |
251 | - <field name="type">ir.actions.act_window</field> |
252 | - <field name="res_model">res.country.state</field> |
253 | - <field name="view_type">form</field> |
254 | - <field name="view_id" ref="view_country_state_tree"/> |
255 | - <field name="help">If you are working on the American market, you can manage the different federal states you are working on from here. Each state is attached to one country.</field> |
256 | - </record> |
257 | - |
258 | - <menuitem action="action_country_state" id="menu_country_state_partner" parent="menu_localisation" sequence="1" groups="base.group_no_one"/> |
259 | - |
260 | </data> |
261 | </openerp> |
262 | |
263 | === modified file 'openerp/addons/base/res/res_partner.py' |
264 | --- openerp/addons/base/res/res_partner.py 2014-02-12 08:03:31 +0000 |
265 | +++ openerp/addons/base/res/res_partner.py 2014-02-26 13:35:37 +0000 |
266 | @@ -36,10 +36,10 @@ |
267 | fmt = user_obj.browse(cr, SUPERUSER_ID, uid, context).company_id.country_id |
268 | fmt = fmt and fmt.address_format |
269 | layouts = { |
270 | - '%(city)s %(state_code)s\n%(zip)s': """ |
271 | + '%(city)s\n%(zip)s': """ |
272 | <div class="address_format"> |
273 | <field name="city" placeholder="City" style="width: 50%%"/> |
274 | - <field name="state_id" class="oe_no_button" placeholder="State" style="width: 47%%" options='{"no_open": true}'/> |
275 | + <field name="state" placeholder="State" style="width: 47%%"/> |
276 | <br/> |
277 | <field name="zip" placeholder="ZIP"/> |
278 | </div> |
279 | @@ -49,13 +49,13 @@ |
280 | <field name="zip" placeholder="ZIP" style="width: 40%%"/> |
281 | <field name="city" placeholder="City" style="width: 57%%"/> |
282 | <br/> |
283 | - <field name="state_id" class="oe_no_button" placeholder="State" options='{"no_open": true}'/> |
284 | + <field name="state" placeholder="State"/> |
285 | </div> |
286 | """, |
287 | - '%(city)s\n%(state_name)s\n%(zip)s': """ |
288 | + '%(city)s\n%(zip)s': """ |
289 | <div class="address_format"> |
290 | <field name="city" placeholder="City"/> |
291 | - <field name="state_id" class="oe_no_button" placeholder="State" options='{"no_open": true}'/> |
292 | + <field name="state" placeholder="State"/> |
293 | <field name="zip" placeholder="ZIP"/> |
294 | </div> |
295 | """ |
296 | @@ -262,7 +262,7 @@ |
297 | 'street2': fields.char('Street2', size=128), |
298 | 'zip': fields.char('Zip', change_default=True, size=24), |
299 | 'city': fields.char('City', size=128), |
300 | - 'state_id': fields.many2one("res.country.state", 'State', ondelete='restrict'), |
301 | + 'state_id': fields.char('State'), |
302 | 'country_id': fields.many2one('res.country', 'Country', ondelete='restrict'), |
303 | 'country': fields.related('country_id', type='many2one', relation='res.country', string='Country', |
304 | deprecated="This field will be removed as of OpenERP 7.1, use country_id instead"), |
305 | @@ -384,12 +384,6 @@ |
306 | result['value'] = {'use_parent_address': False} |
307 | return result |
308 | |
309 | - def onchange_state(self, cr, uid, ids, state_id, context=None): |
310 | - if state_id: |
311 | - country_id = self.pool['res.country.state'].browse(cr, uid, state_id, context).country_id.id |
312 | - return {'value':{'country_id':country_id}} |
313 | - return {} |
314 | - |
315 | def _check_ean_key(self, cr, uid, ids, context=None): |
316 | for partner_o in self.pool['res.partner'].read(cr, uid, ids, ['ean13',]): |
317 | thisean=partner_o['ean13'] |
318 | @@ -749,10 +743,8 @@ |
319 | # get the information that will be injected into the display format |
320 | # get the address format |
321 | address_format = address.country_id and address.country_id.address_format or \ |
322 | - "%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s" |
323 | + "%(street)s\n%(street2)s\n%(city)s %(zip)s\n%(country_name)s" |
324 | args = { |
325 | - 'state_code': address.state_id and address.state_id.code or '', |
326 | - 'state_name': address.state_id and address.state_id.name or '', |
327 | 'country_code': address.country_id and address.country_id.code or '', |
328 | 'country_name': address.country_id and address.country_id.name or '', |
329 | 'company_name': address.parent_id and address.parent_id.name or '', |
330 | |
331 | === modified file 'openerp/addons/base/res/res_partner_demo.xml' |
332 | --- openerp/addons/base/res/res_partner_demo.xml 2014-01-16 09:17:16 +0000 |
333 | +++ openerp/addons/base/res/res_partner_demo.xml 2014-02-26 13:35:37 +0000 |
334 | @@ -118,7 +118,6 @@ |
335 | <field name="city">Fremont</field> |
336 | <field name="zip">94538</field> |
337 | <field name="country_id" ref="base.us"/> |
338 | - <field model="res.country.state" name="state_id" search="[('code','ilike','ca')]"/> |
339 | <field name="street">3661 Station Street</field> |
340 | <field name="email">deltapc@yourcompany.example.com</field> |
341 | <field name="phone">+1 510 340 2385</field> |
342 | @@ -132,7 +131,6 @@ |
343 | <field name="is_company">1</field> |
344 | <field eval="0" name="customer"/> |
345 | <field name="country_id" ref="base.us"/> |
346 | - <field model="res.country.state" name="state_id" search="[('code','ilike','il')]"/> |
347 | <field name="zip">60610</field> |
348 | <field name="city">Chicago</field> |
349 | <field name="email">epic@yourcompany.example.com</field> |
350 | @@ -150,7 +148,6 @@ |
351 | <field name="zip">90001</field> |
352 | <field name="city">Los Angeles</field> |
353 | <field name="country_id" ref="base.us"/> |
354 | - <field model="res.country.state" name="state_id" search="[('code','ilike','ca')]"/> |
355 | <field name="street">23 Rockwell Lane</field> |
356 | <field name="email">openelecapplications@yourcompany.example.com</field> |
357 | <field name="phone">+1 312 349 2121</field> |
358 | @@ -209,7 +206,6 @@ |
359 | <field name="city">Miami</field> |
360 | <field name="zip">33169</field> |
361 | <field name="country_id" ref="base.us"/> |
362 | - <field model="res.country.state" name="state_id" search="[('code','=','FL')]"/> |
363 | <field name="email">jackson@yourcompany.example.com</field> |
364 | <field name="phone">+1 786 525 0724</field> |
365 | <field name="street">3203 Lamberts Branch Road</field> |
366 | @@ -274,7 +270,6 @@ |
367 | <field name="city">Detroit</field> |
368 | <field name="zip">48212</field> |
369 | <field name="country_id" ref="base.us"/> |
370 | - <field model="res.country.state" name="state_id" search="[('code','ilike','mi')]"/> |
371 | <field name="street">60, Rosewood Court</field> |
372 | <field name="email">chamberworks@yourcompany.example.com</field> |
373 | <field name="phone">+1 313 222 3456</field> |
374 | @@ -349,7 +344,6 @@ |
375 | <field name="city">Cupertino</field> |
376 | <field name="zip">95014</field> |
377 | <field name="country_id" ref="base.us"/> |
378 | - <field model="res.country.state" name="state_id" search="[('code','ilike','ca')]"/> |
379 | <field name="street">10200 S. De Anza Blvd</field> |
380 | <field name="email">seagate@yourcompany.example.com</field> |
381 | <field name="phone">+1 800 732 4283</field> |
382 | |
383 | === modified file 'openerp/addons/base/res/res_partner_report_address.xml' |
384 | --- openerp/addons/base/res/res_partner_report_address.xml 2013-10-06 14:40:20 +0000 |
385 | +++ openerp/addons/base/res/res_partner_report_address.xml 2014-02-26 13:35:37 +0000 |
386 | @@ -8,7 +8,7 @@ |
387 | <street2 type="field" name="street2"/> |
388 | <zip type="field" name="zip"/> |
389 | <city type="field" name="city"/> |
390 | - <state type="field" name="state_id.name"/> |
391 | + <state type="field" name="state"/> |
392 | <country type="field" name="country_id.name"/> |
393 | </address> |
394 | </addresses> |
395 | |
396 | === modified file 'openerp/addons/base/res/res_partner_view.xml' |
397 | --- openerp/addons/base/res/res_partner_view.xml 2014-02-03 16:30:52 +0000 |
398 | +++ openerp/addons/base/res/res_partner_view.xml 2014-02-26 13:35:37 +0000 |
399 | @@ -166,7 +166,7 @@ |
400 | <field name="street2" attrs="{'readonly': [('use_parent_address','=',True)]}"/> |
401 | <div class="address_format"> |
402 | <field name="city" placeholder="City" style="width: 40%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/> |
403 | - <field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}' on_change="onchange_state(state_id)" attrs="{'readonly': [('use_parent_address','=',True)]}"/> |
404 | + <field name="state_id" placeholder="State" style="width: 37%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/> |
405 | <field name="zip" placeholder="ZIP" style="width: 20%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/> |
406 | </div> |
407 | <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}' attrs="{'readonly': [('use_parent_address','=',True)]}"/> |
408 | @@ -281,7 +281,7 @@ |
409 | <field name="street2"/> |
410 | <div class="address_format"> |
411 | <field name="city" placeholder="City" style="width: 40%%"/> |
412 | - <field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}' on_change="onchange_state(state_id)"/> |
413 | + <field name="state_id" placeholder="State" style="width: 37%%"/> |
414 | <field name="zip" placeholder="ZIP" style="width: 20%%"/> |
415 | </div> |
416 | <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}'/> |
417 | |
418 | === modified file 'openerp/addons/base/res/res_users.py' |
419 | --- openerp/addons/base/res/res_users.py 2014-02-19 14:06:17 +0000 |
420 | +++ openerp/addons/base/res/res_users.py 2014-02-26 13:35:37 +0000 |
421 | @@ -172,10 +172,6 @@ |
422 | v = {'email': login} if tools.single_email_re.match(login) else {} |
423 | return {'value': v} |
424 | |
425 | - def onchange_state(self, cr, uid, ids, state_id, context=None): |
426 | - partner_ids = [user.partner_id.id for user in self.browse(cr, uid, ids, context=context)] |
427 | - return self.pool.get('res.partner').onchange_state(cr, uid, partner_ids, state_id, context=context) |
428 | - |
429 | def onchange_type(self, cr, uid, ids, is_company, context=None): |
430 | """ Wrapper on the user.partner onchange_type, because some calls to the |
431 | partner form view applied to the user may trigger the |
432 | |
433 | === modified file 'openerp/addons/base/security/ir.model.access.csv' |
434 | --- openerp/addons/base/security/ir.model.access.csv 2014-01-16 14:06:21 +0000 |
435 | +++ openerp/addons/base/security/ir.model.access.csv 2014-02-26 13:35:37 +0000 |
436 | @@ -44,9 +44,7 @@ |
437 | "access_res_company_group_erp_manager","res_company group_erp_manager","model_res_company","group_erp_manager",1,1,1,1 |
438 | "access_res_company_group_user","res_company group_user","model_res_company",,1,0,0,0 |
439 | "access_res_country_group_all","res_country group_user_all","model_res_country",,1,0,0,0 |
440 | -"access_res_country_state_group_all","res_country_state group_user_all","model_res_country_state",,1,0,0,0 |
441 | "access_res_country_group_user","res_country group_user","model_res_country","group_partner_manager",1,1,1,1 |
442 | -"access_res_country_state_group_user","res_country_state group_user","model_res_country_state","group_partner_manager",1,1,1,1 |
443 | "access_res_currency_group_all","res_currency group_all","model_res_currency",,1,0,0,0 |
444 | "access_res_currency_rate_group_all","res_currency_rate group_all","model_res_currency_rate",,1,0,0,0 |
445 | "access_res_currency_rate_type_group_all","res_currency_rate_type group_all","model_res_currency_rate_type",,1,0,0,0 |
446 | |
447 | === modified file 'openerp/addons/base/tests/test_expression.py' |
448 | --- openerp/addons/base/tests/test_expression.py 2014-02-09 00:37:45 +0000 |
449 | +++ openerp/addons/base/tests/test_expression.py 2014-02-26 13:35:37 +0000 |
450 | @@ -127,13 +127,10 @@ |
451 | |
452 | # Get models |
453 | partner_obj = registry('res.partner') |
454 | - state_obj = registry('res.country.state') |
455 | bank_obj = registry('res.partner.bank') |
456 | |
457 | # Get test columns |
458 | - partner_state_id_col = partner_obj._columns.get('state_id') # many2one on res.partner to res.country.state |
459 | partner_parent_id_col = partner_obj._columns.get('parent_id') # many2one on res.partner to res.partner |
460 | - state_country_id_col = state_obj._columns.get('country_id') # many2one on res.country.state on res.country |
461 | partner_child_ids_col = partner_obj._columns.get('child_ids') # one2many on res.partner to res.partner |
462 | partner_bank_ids_col = partner_obj._columns.get('bank_ids') # one2many on res.partner to res.partner.bank |
463 | category_id_col = partner_obj._columns.get('category_id') # many2many on res.partner to res.partner.category |
464 | @@ -142,7 +139,6 @@ |
465 | bank_type = bank_obj._bank_type_get(cr, uid)[0] |
466 | # Get country/state data |
467 | country_us_id = registry('res.country').search(cr, uid, [('code', 'like', 'US')])[0] |
468 | - state_ids = registry('res.country.state').search(cr, uid, [('country_id', '=', country_us_id)], limit=2) |
469 | |
470 | # Create demo data: partners and bank object |
471 | p_a = partner_obj.create(cr, uid, {'name': 'test__A', 'state_id': state_ids[0]}) |
472 | |
473 | === modified file 'openerp/addons/base/tests/test_mail_examples.py' |
474 | --- openerp/addons/base/tests/test_mail_examples.py 2014-02-09 00:37:45 +0000 |
475 | +++ openerp/addons/base/tests/test_mail_examples.py 2014-02-26 13:35:37 +0000 |
476 | @@ -49,7 +49,7 @@ |
477 | ${object.company_id.street}<br/> |
478 | ${object.company_id.street2}<br/> |
479 | ${object.company_id.zip} ${object.company_id.city}<br/> |
480 | - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/> |
481 | + ${object.company_id.state}<br/> |
482 | </span> |
483 | <div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "> |
484 | Phone: ${object.company_id.phone} |
485 | |
486 | === modified file 'openerp/addons/base/tests/test_search.py' |
487 | --- openerp/addons/base/tests/test_search.py 2012-12-07 15:58:25 +0000 |
488 | +++ openerp/addons/base/tests/test_search.py 2014-02-26 13:35:37 +0000 |
489 | @@ -68,14 +68,13 @@ |
490 | |
491 | # Get country/state data |
492 | country_us_id = registry('res.country').search(cr, uid, [('code', 'like', 'US')])[0] |
493 | - state_ids = registry('res.country.state').search(cr, uid, [('country_id', '=', country_us_id)], limit=2) |
494 | country_be_id = registry('res.country').search(cr, uid, [('code', 'like', 'BE')])[0] |
495 | |
496 | # Create test users |
497 | search_user = users_obj.create(cr, uid, {'name': '__search', 'login': '__search', 'groups_id': [(6, 0, [group_employee_id])]}) |
498 | - a = users_obj.create(cr, uid, {'name': '__test_A', 'login': '__test_A', 'country_id': country_be_id, 'state_id': country_be_id}) |
499 | - b = users_obj.create(cr, uid, {'name': '__test_B', 'login': '__a_test_B', 'country_id': country_us_id, 'state_id': state_ids[1]}) |
500 | - c = users_obj.create(cr, uid, {'name': '__test_B', 'login': '__z_test_B', 'country_id': country_us_id, 'state_id': state_ids[0]}) |
501 | + a = users_obj.create(cr, uid, {'name': '__test_A', 'login': '__test_A', 'country_id': country_be_id}) |
502 | + b = users_obj.create(cr, uid, {'name': '__test_B', 'login': '__a_test_B', 'country_id': country_us_id}) |
503 | + c = users_obj.create(cr, uid, {'name': '__test_B', 'login': '__z_test_B', 'country_id': country_us_id}) |
504 | |
505 | # Do: search on res.users, order on a field on res.partner to try inherits'd fields, then res.users |
506 | user_ids = users_obj.search(cr, search_user, [], order='name asc, login desc') |
507 | @@ -84,13 +83,13 @@ |
508 | self.assertEqual(test_user_ids, expected_ids, 'search on res_users did not provide expected ids or expected order') |
509 | |
510 | # Do: order on many2one and inherits'd fields |
511 | - user_ids = users_obj.search(cr, search_user, [], order='state_id asc, country_id desc, name asc, login desc') |
512 | + user_ids = users_obj.search(cr, search_user, [], order='country_id desc, name asc, login desc') |
513 | expected_ids = [c, b, a, search_user] |
514 | test_user_ids = filter(lambda x: x in expected_ids, user_ids) |
515 | self.assertEqual(test_user_ids, expected_ids, 'search on res_users did not provide expected ids or expected order') |
516 | |
517 | # Do: order on many2one and inherits'd fields |
518 | - user_ids = users_obj.search(cr, search_user, [], order='country_id desc, state_id desc, name asc, login desc') |
519 | + user_ids = users_obj.search(cr, search_user, [], order='country_id desc, name asc, login desc') |
520 | expected_ids = [search_user, b, c, a] |
521 | test_user_ids = filter(lambda x: x in expected_ids, user_ids) |
522 | self.assertEqual(test_user_ids, expected_ids, 'search on res_users did not provide expected ids or expected order') |
523 | |
524 | === modified file 'openerp/osv/expression.py' |
525 | --- openerp/osv/expression.py 2014-02-06 11:04:23 +0000 |
526 | +++ openerp/osv/expression.py 2014-02-26 13:35:37 +0000 |
527 | @@ -445,25 +445,20 @@ |
528 | # running examples: |
529 | # - res_users.name, like, foo: name is on res_partner, not on res_users |
530 | # - res_partner.bank_ids.name, like, foo: bank_ids is a one2many with _auto_join |
531 | - # - res_partner.state_id.name, like, foo: state_id is a many2one with _auto_join |
532 | # A join: |
533 | # - link between src_table and dst_table, using src_field and dst_field |
534 | # i.e.: inherits: res_users.partner_id = res_partner.id |
535 | # i.e.: one2many: res_partner.id = res_partner_bank.partner_id |
536 | - # i.e.: many2one: res_partner.state_id = res_country_state.id |
537 | # - done in the context of a field |
538 | # i.e.: inherits: 'partner_id' |
539 | # i.e.: one2many: 'bank_ids' |
540 | - # i.e.: many2one: 'state_id' |
541 | # - table names use aliases: initial table followed by the context field |
542 | # names, joined using a '__' |
543 | # i.e.: inherits: res_partner as res_users__partner_id |
544 | # i.e.: one2many: res_partner_bank as res_partner__bank_ids |
545 | - # i.e.: many2one: res_country_state as res_partner__state_id |
546 | # - join condition use aliases |
547 | # i.e.: inherits: res_users.partner_id = res_users__partner_id.id |
548 | # i.e.: one2many: res_partner.id = res_partner__bank_ids.parr_id |
549 | - # i.e.: many2one: res_partner.state_id = res_partner__state_id.id |
550 | # Variables explanation: |
551 | # - src_table: working table before the join |
552 | # -> res_users, res_partner, res_partner |
553 | @@ -473,7 +468,6 @@ |
554 | # necessarily a field (because 'id' is not a field instance) |
555 | # i.e.: inherits: 'partner_id', found in the inherits of the current table |
556 | # i.e.: one2many: 'id', not a field |
557 | - # i.e.: many2one: 'state_id', the current field name |
558 | # - dst_table_link_name: field name used to link the dst table, not |
559 | # necessarily a field (because 'id' is not a field instance) |
560 | # i.e.: inherits: 'id', not a field |
561 | @@ -482,7 +476,6 @@ |
562 | # - context_field_name: field name used as a context to make the alias |
563 | # i.e.: inherits: 'partner_id': found in the inherits of the current table |
564 | # i.e.: one2many: 'bank_ids': current field name |
565 | - # i.e.: many2one: 'state_id': current field name |
566 | # -------------------------------------------------- |
567 | |
568 | def __init__(self, leaf, model, join_context=None): |
569 | @@ -624,8 +617,6 @@ |
570 | |
571 | :attr list result: list that will hold the result of the parsing |
572 | as a list of ExtendedLeaf |
573 | - :attr list joins: list of join conditions, such as |
574 | - (res_country_state."id" = res_partner."state_id") |
575 | :attr root_model: base model for the query |
576 | :attr list expression: the domain expression, that will be normalized |
577 | and prepared |
578 | @@ -818,7 +809,6 @@ |
579 | # ---------------------------------------- |
580 | |
581 | elif len(field_path) > 1 and field._type == 'many2one' and field._auto_join: |
582 | - # res_partner.state_id = res_partner__state_id.id |
583 | leaf.add_join_context(relational_model, field_path[0], 'id', field_path[0]) |
584 | push(create_substitution_leaf(leaf, (field_path[1], operator, right), relational_model)) |
585 |