Merge lp:~openerp-community/geospatial-addons/7.0 into lp:~geospatial-addons-core-editors/geospatial-addons/7.0
- 7.0
- Merge into 7.0
Status: | Merged |
---|---|
Merged at revision: | 88 |
Proposed branch: | lp:~openerp-community/geospatial-addons/7.0 |
Merge into: | lp:~geospatial-addons-core-editors/geospatial-addons/7.0 |
Diff against target: |
995 lines (+197/-258) 17 files modified
base_geoengine/__init__.py (+1/-1) base_geoengine/geo_ir/ir_model_view.xml (+15/-14) base_geoengine/geo_view/geo_raster_layer.py (+1/-3) base_geoengine/geo_view/geo_raster_layer_view.xml (+6/-8) base_geoengine/geo_view/geo_vector_layer_view.xml (+5/-7) base_geoengine/geo_view/ir_view_view.xml (+1/-1) base_geoengine/static/src/css/style.css (+2/-15) base_geoengine/static/src/js/geoengine_view.js (+96/-36) base_geoengine/static/src/xml/geoengine.xml (+5/-5) base_geoengine_demo/__openerp__.py (+1/-1) base_geoengine_demo/retail_machine_view.xml (+11/-13) base_geoengine_demo/zip_view.xml (+7/-9) geoengine_geoname_geocoder/geonames_coder.py (+8/-8) geoengine_geoname_geocoder/wizard/bulk_encode.py (+2/-2) geoengine_partner/geo_partner.py (+2/-32) geoengine_partner/geo_partner_view.xml (+20/-89) geoengine_sale/geo_sale_view.xml (+14/-14) |
To merge this branch: | bzr merge lp:~openerp-community/geospatial-addons/7.0 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sandy Carter (http://www.savoirfairelinux.com) | Approve | ||
Nicolas Bessi - Camptocamp (community) | Needs Information | ||
Maxime Chambreuil (http://www.savoirfairelinux.com) | code review | Approve | |
Review via email: mp+186841@code.launchpad.net |
This proposal supersedes a proposal from 2013-09-20.
Commit message
Description of the change
Adapted addon to be installable in OpenERP 7.0
Set most of the addons to installable, and fixed some XML differences in the views.
Fixed some JS errors, mainly setting openerp.
Minor widget modifications. Changed map and map-hover icon to openerp 7.0 style font characters from Entypo.
- 93. By Sandy Carter (http://www.savoirfairelinux.com)
-
Now displays map.
widget.element_id -> widget.id_for_label
$element -> $el
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) : | # |
- 94. By Sandy Carter (http://www.savoirfairelinux.com)
-
Display geometry and zoom
Nicolas Bessi - Camptocamp (nbessi-c2c-deactivatedaccount) wrote : Posted in a previous version of this proposal | # |
Nicolas Bessi - Camptocamp (nbessi-c2c-deactivatedaccount) wrote : | # |
Hello,
thanks for the work.
I did not see the MP was superseeded.
I will take some time to review it soon and ensure all functionnalities are working
I should also transform the test function to a real unittest
Regards
Nicolas
Nicolas Bessi - Camptocamp (nbessi-c2c-deactivatedaccount) wrote : | # |
It would also be nice to change branch owner to community in order to allow us to directly do some quick fixes.
Regards
Nicolas
- 95. By Sandy Carter (http://www.savoirfairelinux.com)
-
[FIX] Edit and create mode
- 96. By Sandy Carter (http://www.savoirfairelinux.com)
-
[FIX] Setting geometry values to database
set_value_from_ui -> on_ui_change - 97. By Sandy Carter (http://www.savoirfairelinux.com)
-
[FIX] Made geo_partner installable
- 98. By Sandy Carter (http://www.savoirfairelinux.com)
-
[FIX] Demo Retail Machine
geoengine_raster_ layer: mapbox_type -> mapbox_id
Merged some code from 6.1 branch - 99. By Sandy Carter (http://www.savoirfairelinux.com)
-
[IMP] Colspans of Backend forms
- 100. By Sandy Carter (http://www.savoirfairelinux.com)
-
[IMP] Use widget name instead of id_for_label
- 101. By Sandy Carter (http://www.savoirfairelinux.com)
-
[IMP] Partner geo view simplified by removing depricated address layers and view
Google still doesn't work but using OpenStreetMaps, it works. - 102. By Nicolas Bessi - Camptocamp
-
[FIX] geo_sale view in order to have installable addon
- 103. By Nicolas Bessi - Camptocamp
-
[FIX] Geoengine demo module name
- 104. By Nicolas Bessi - Camptocamp
-
[FIX] installable state of addons are set to False. They do not match actual requirement to be installable
- 105. By Nicolas Bessi - Camptocamp
-
[FIX] installable state of addons to be uninstallable. They do not match actual requirement to be installable
Nicolas Bessi - Camptocamp (nbessi-c2c-deactivatedaccount) wrote : | # |
Hello,
Thanks for your MP. Fixing view can be quite a pain…
I have fixed some code in geo sale module to avoid installation error.
That said I have also set module to be uninstallable.
The map view (outside of form) is broken there is some oddities in edit mode.
There is no test at that time (All what is needed is available but not in the correct form) and other strange behavior to be fixed with attrs in layers view.
At that time addon does not reach community standard to be merges as is. So having addons uninstallable will allows me to merge you work as a progression in the port of the modules.
If you agree with that i will approve your MP.
I know it is quite a huge work to port this module. Thanks for the work done.
Regards
Nicolas
- 106. By Sandy Carter (http://www.savoirfairelinux.com)
-
[FIX] Geocoder
res.partner.address -> res.partner
ResPartnerAddress -> ResPartner
Sandy Carter (http://www.savoirfairelinux.com) (sandy-carter) wrote : | # |
Hello,
I didn't know about having addons uninstallable when they don't meet community standards.
If they're written somewhere, could you point me towards them.
In addition to the map view not working, the google maps don't work.
I think it's just simply not properly loaded in the javascript.
There are a few issues with the draw layer not refreshing automatically.
I would be happy to see this merged.
Most of what we need from geocoder to work on geocoder_ca has been fixed.
Thank you for the help
Sandy
Preview Diff
1 | === modified file 'base_geoengine/__init__.py' |
2 | --- base_geoengine/__init__.py 2012-10-01 10:21:33 +0000 |
3 | +++ base_geoengine/__init__.py 2013-09-27 14:57:39 +0000 |
4 | @@ -21,7 +21,7 @@ |
5 | """The GeoEngine module""" |
6 | from __future__ import absolute_import |
7 | from . import geo_model |
8 | -import wizard |
9 | +from . import wizard |
10 | from . import geo_operators |
11 | from . import geo_view |
12 | from . import geo_helper |
13 | |
14 | === modified file 'base_geoengine/geo_ir/ir_model_view.xml' |
15 | --- base_geoengine/geo_ir/ir_model_view.xml 2011-09-08 12:32:55 +0000 |
16 | +++ base_geoengine/geo_ir/ir_model_view.xml 2013-09-27 14:57:39 +0000 |
17 | @@ -8,21 +8,22 @@ |
18 | <!--parent python entity --> |
19 | <field name="inherit_id" ref="base.view_model_fields_form"/> |
20 | <!-- modulename.view --> |
21 | - <field name="type">form</field> |
22 | <field name="arch" type="xml"> |
23 | - <notebook position="inside"> |
24 | - <page string="GeoEngine attributes"> |
25 | - <!-- nasty attrs but ilike operator does not work as expected --> |
26 | - <field name="srid" |
27 | - attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
28 | - <field name="geo_type" |
29 | - attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
30 | - <field name="dim" |
31 | - attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
32 | - <field name="gist_index" |
33 | - attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
34 | - </page> |
35 | - </notebook> |
36 | + <form string="Fields" version="7.0"> |
37 | + <sheet> |
38 | + <group> |
39 | + <!-- nasty attrs but ilike operator does not work as expected --> |
40 | + <field name="srid" |
41 | + attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
42 | + <field name="geo_type" |
43 | + attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
44 | + <field name="dim" |
45 | + attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
46 | + <field name="gist_index" |
47 | + attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/> |
48 | + </group> |
49 | + </sheet> |
50 | + </form> |
51 | </field> |
52 | </record> |
53 | </data> |
54 | |
55 | === modified file 'base_geoengine/geo_view/geo_raster_layer.py' |
56 | --- base_geoengine/geo_view/geo_raster_layer.py 2012-12-05 08:32:38 +0000 |
57 | +++ base_geoengine/geo_view/geo_raster_layer.py 2013-09-27 14:57:39 +0000 |
58 | @@ -41,9 +41,7 @@ |
59 | ('G_HYBRID_MAP', 'Google Hybrid map'), |
60 | ('G_PHYSICAL_MAP', 'Google Physical map')], |
61 | string="Google raster layer type"), |
62 | - 'mapbox_type': fields.selection([('mapbox.mapbox-streets', 'Streets'), |
63 | - ('mapbox.mapbox-light', 'Light')], |
64 | - string="Mapbox raster layer type"), |
65 | + 'mapbox_id': fields.char("Mapbox ID", size=256), |
66 | 'swisstopo_type': fields.selection([('ch.swisstopo.pixelkarte-farbe', 'Color map'), |
67 | ('ch.swisstopo.swissimage', 'Aerial imagery')], |
68 | string="Swisstopo raster layer type"), |
69 | |
70 | === modified file 'base_geoengine/geo_view/geo_raster_layer_view.xml' |
71 | --- base_geoengine/geo_view/geo_raster_layer_view.xml 2012-12-05 08:32:38 +0000 |
72 | +++ base_geoengine/geo_view/geo_raster_layer_view.xml 2013-09-27 14:57:39 +0000 |
73 | @@ -4,16 +4,15 @@ |
74 | <record model="ir.ui.view" id="geo_raster_view_form"> |
75 | <field name="name">geoengine.raster.layer.form</field> |
76 | <field name="model">geoengine.raster.layer</field> |
77 | - <field name="type">form</field> |
78 | <field name="arch" type="xml"> |
79 | - <form> |
80 | - <group string="General"> |
81 | + <form string="Raster Layer View"> |
82 | + <group string="General" col="4"> |
83 | <field name="name" colspan="4"/> |
84 | <field name="view_id"/> |
85 | <field name="raster_type"/> |
86 | <field name="sequence"/> |
87 | <field name="overlay"/> |
88 | - <field name="use_to_edit"/> |
89 | + <field name="use_to_edit" colspan="4"/> |
90 | <field name="url" colspan="4" widget="url" |
91 | attrs="{'invisible': [('raster_type', '!=', 'd_wms')]}"/> |
92 | </group> |
93 | @@ -25,11 +24,11 @@ |
94 | <group string="MapBox layer data" |
95 | attrs="{'invisible': [('raster_type', '!=', 'mapbox')]}" |
96 | colspan="4"> |
97 | - <field name="mapbox_type" attrs="{'required': [('raster_type', '=', 'mapbox')]}"/> |
98 | + <field name="mapbox_id" attrs="{'required': [('raster_type', '=', 'mapbox')]}"/> |
99 | </group> |
100 | <group string="swisstopo layer data" |
101 | attrs="{'invisible': [('raster_type', '!=', 'swisstopo')]}" |
102 | - colspan="4"> |
103 | + colspan="4" col="4"> |
104 | <field name="swisstopo_type" attrs="{'required': [('raster_type', '=', 'swisstopo')]}"/> |
105 | <field name="swisstopo_time" attrs="{'required': [('raster_type', '=', 'swisstopo')]}"/> |
106 | </group> |
107 | @@ -45,9 +44,8 @@ |
108 | <record model="ir.ui.view" id="geo_raster_view_tree"> |
109 | <field name="name">geoengine.raster.layer.tree</field> |
110 | <field name="model">geoengine.raster.layer</field> |
111 | - <field name="type">tree</field> |
112 | <field name="arch" type="xml"> |
113 | - <tree> |
114 | + <tree string="Raster"> |
115 | <field name="name" select="1"/> |
116 | <field name="raster_type" select="1"/> |
117 | <field name="sequence"/> |
118 | |
119 | === modified file 'base_geoengine/geo_view/geo_vector_layer_view.xml' |
120 | --- base_geoengine/geo_view/geo_vector_layer_view.xml 2012-02-16 13:14:44 +0000 |
121 | +++ base_geoengine/geo_view/geo_vector_layer_view.xml 2013-09-27 14:57:39 +0000 |
122 | @@ -4,10 +4,9 @@ |
123 | <record model="ir.ui.view" id="geo_vector_view_form"> |
124 | <field name="name">geoengine.vector.layer.form</field> |
125 | <field name="model">geoengine.vector.layer</field> |
126 | - <field name="type">form</field> |
127 | <field name="arch" type="xml"> |
128 | - <form> |
129 | - <group string="General"> |
130 | + <form string="Vector"> |
131 | + <group string="General" col="4"> |
132 | <field name="name" colspan="4"/> |
133 | <field name="view_id"/> |
134 | <field name="geo_field_id"/> |
135 | @@ -15,7 +14,7 @@ |
136 | <field name="sequence"/> |
137 | <field name="readonly"/> |
138 | </group> |
139 | - <group string="Representation" colspan="4"> |
140 | + <group string="Representation" col="4" colspan="4"> |
141 | <field name="geo_repr"/> |
142 | <field name="symbol_url" widget="url" |
143 | attrs="{'invisible': [('geo_repr', '!=', 'basic')]}"/> |
144 | @@ -28,7 +27,7 @@ |
145 | attrs="{'invisible': [('geo_repr', '=', 'basic')], 'required': [('geo_repr', 'in', ['choropleth', 'proportion', 'colored'])]}" |
146 | /> |
147 | </group> |
148 | - <group string="Colors" colspan="4"> |
149 | + <group string="Colors" col="4" colspan="4"> |
150 | <field name="begin_color"/> |
151 | <group colspan="4" attrs="{'invisible': [('geo_repr', 'in', ['basic', 'proportion'])]}"> |
152 | <field name="end_color" |
153 | @@ -45,9 +44,8 @@ |
154 | <record model="ir.ui.view" id="geo_vector_view_tree"> |
155 | <field name="name">geoengine.vector.layer.tree</field> |
156 | <field name="model">geoengine.vector.layer</field> |
157 | - <field name="type">tree</field> |
158 | <field name="arch" type="xml"> |
159 | - <tree> |
160 | + <tree string="Vector"> |
161 | <field name="name" select="1"/> |
162 | <field name="geo_repr" select="1"/> |
163 | <field name="classification" select="1"/> |
164 | |
165 | === modified file 'base_geoengine/geo_view/ir_view_view.xml' |
166 | --- base_geoengine/geo_view/ir_view_view.xml 2012-02-16 13:14:44 +0000 |
167 | +++ base_geoengine/geo_view/ir_view_view.xml 2013-09-27 14:57:39 +0000 |
168 | @@ -8,7 +8,7 @@ |
169 | <field name="type">form</field> |
170 | <field name="arch" type="xml"> |
171 | <notebook position="inside"> |
172 | - <page string="GeoEngine Data" |
173 | + <page string="GeoEngine Data" col="4" |
174 | attrs="{'invisible': [('type', '!=', 'geoengine')]}"> |
175 | <field name="default_extent" colspan="4"/> |
176 | <separator string="Vector (Active layers)" colspan="4"/> |
177 | |
178 | === removed directory 'base_geoengine/images' |
179 | === removed file 'base_geoengine/images/map-hover.png' |
180 | Binary files base_geoengine/images/map-hover.png 2012-12-07 17:21:33 +0000 and base_geoengine/images/map-hover.png 1970-01-01 00:00:00 +0000 differ |
181 | === removed file 'base_geoengine/images/map.png' |
182 | Binary files base_geoengine/images/map.png 2012-12-07 17:21:33 +0000 and base_geoengine/images/map.png 1970-01-01 00:00:00 +0000 differ |
183 | === removed directory 'base_geoengine/static/lib' |
184 | === modified file 'base_geoengine/static/src/css/style.css' |
185 | --- base_geoengine/static/src/css/style.css 2012-11-29 11:39:14 +0000 |
186 | +++ base_geoengine/static/src/css/style.css 2013-09-27 14:57:39 +0000 |
187 | @@ -195,21 +195,8 @@ |
188 | } |
189 | |
190 | /* Button style */ |
191 | -.oe_vm_switch_geoengine{ |
192 | - background: url("/base_geoengine/static/src/images/geoengine_switch.png"); |
193 | - overflow: hidden; |
194 | - width: 22px; |
195 | - height: 21px; |
196 | - border: medium none; |
197 | - color: transparent; |
198 | - padding-bottom: 6px; |
199 | -} |
200 | -.oe_vm_switch_geoengine[disabled="disabled"] { |
201 | - background-position: 0px -21px; |
202 | -} |
203 | - |
204 | -.oe_vm_switch_geoengine { |
205 | - background-position: 0px -0px; |
206 | +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_geoengine:after { |
207 | + content: "2"; |
208 | } |
209 | |
210 | /* Edit Widget */ |
211 | |
212 | === removed file 'base_geoengine/static/src/images/geoengine_switch.png' |
213 | Binary files base_geoengine/static/src/images/geoengine_switch.png 2012-02-17 17:59:09 +0000 and base_geoengine/static/src/images/geoengine_switch.png 1970-01-01 00:00:00 +0000 differ |
214 | === modified file 'base_geoengine/static/src/js/geoengine_view.js' |
215 | --- base_geoengine/static/src/js/geoengine_view.js 2012-12-21 08:38:57 +0000 |
216 | +++ base_geoengine/static/src/js/geoengine_view.js 2013-09-27 14:57:39 +0000 |
217 | @@ -88,10 +88,10 @@ |
218 | case "mapbox": |
219 | out.push( |
220 | new OpenLayers.Layer.XYZ(l.name, [ |
221 | - "http://a.tiles.mapbox.com/v3/" + l.mapbox_type + "/${z}/${x}/${y}.png", |
222 | - "http://b.tiles.mapbox.com/v3/" + l.mapbox_type + "/${z}/${x}/${y}.png", |
223 | - "http://c.tiles.mapbox.com/v3/" + l.mapbox_type + "/${z}/${x}/${y}.png", |
224 | - "http://d.tiles.mapbox.com/v3/" + l.mapbox_type + "/${z}/${x}/${y}.png" |
225 | + "http://a.tiles.mapbox.com/v3/" + l.mapbox_id + "/${z}/${x}/${y}.png", |
226 | + "http://b.tiles.mapbox.com/v3/" + l.mapbox_id + "/${z}/${x}/${y}.png", |
227 | + "http://c.tiles.mapbox.com/v3/" + l.mapbox_id + "/${z}/${x}/${y}.png", |
228 | + "http://d.tiles.mapbox.com/v3/" + l.mapbox_id + "/${z}/${x}/${y}.png" |
229 | ], { |
230 | sphericalMercator: true, |
231 | wrapDateLine: true, |
232 | @@ -102,6 +102,10 @@ |
233 | ); |
234 | break; |
235 | case "swisstopo": |
236 | + var resolutions = [4000, 3750, 3500, 3250, 3000, 2750, 2500, 2250, 2000, 1750, 1500, 1250, 1000, 750, 650, 500, 250, 100, 50, 20, 10, 5, 2.5]; |
237 | + if (l.swisstopo_type == 'ch.swisstopo.swissimage') { |
238 | + resolutions.push(2, 1.5, 1, 0.5); |
239 | + } |
240 | out.push( |
241 | new OpenLayers.Layer.WMTS({ |
242 | name: l.name, |
243 | @@ -110,7 +114,7 @@ |
244 | url: ['https://wmts0.geo.admin.ch/', 'https://wmts1.geo.admin.ch/', 'https://wmts2.geo.admin.ch/'], |
245 | projection: 'EPSG:21781', |
246 | units: 'm', |
247 | - resolutions: [4000, 3750, 3500, 3250, 3000, 2750, 2500, 2250, 2000, 1750, 1500, 1250, 1000, 750, 650, 500, 250, 100, 50, 20, 10, 5 ,2.5, 2, 1.5, 1, 0.5], |
248 | + resolutions: resolutions, |
249 | maxExtent: [420000, 30000, 900000, 350000], |
250 | requestEncoding: 'REST', |
251 | matrixSet: '21781', |
252 | @@ -182,7 +186,7 @@ |
253 | }, |
254 | |
255 | do_hide: function() { |
256 | - this.$element.hide(); |
257 | + this.$el.hide(); |
258 | }, |
259 | |
260 | do_show: function() { |
261 | @@ -190,7 +194,7 @@ |
262 | var self = this; |
263 | self.dataset.read_slice(_.keys(self.fields_view.fields), {'domain':self.domains, 'limit':self.limit(), 'offset':self.offset}).then(self.do_load_vector_data); |
264 | } |
265 | - this.$element.show(); |
266 | + this.$el.show(); |
267 | }, |
268 | |
269 | do_search: function(domains, contexts, groupbys) { |
270 | @@ -412,7 +416,7 @@ |
271 | _.each(data.geoengine_layers.actives, function(item) { |
272 | self.geometry_columns[item.geo_field_id[1]] = true; |
273 | }); |
274 | - this.$element.html(QWeb.render("GeoengineView", {"fields_view": this.fields_view, 'elem_id': this.elem_id})); |
275 | + this.$el.html(QWeb.render("GeoengineView", {"fields_view": this.fields_view, 'elem_id': this.elem_id})); |
276 | |
277 | var google = false; |
278 | var backgrounds = data.geoengine_layers.backgrounds; |
279 | @@ -559,7 +563,7 @@ |
280 | |
281 | //------------ EDIT WIDGET ---------------------------------------------- |
282 | |
283 | - openerp.base_geoengine.FieldGeoEngineEditMap = openerp.web.form.Field.extend({ |
284 | + openerp.base_geoengine.FieldGeoEngineEditMap = openerp.web.form.AbstractField.extend({ |
285 | template: 'FieldGeoEngineEditMap', |
286 | |
287 | geo_type: null, |
288 | @@ -572,6 +576,24 @@ |
289 | |
290 | create_edit_layers: function(self, field_infos) { |
291 | var vl = new OpenLayers.Layer.Vector(self.name, { |
292 | + styleMap: new OpenLayers.StyleMap({ |
293 | + 'default': new OpenLayers.Style({ |
294 | + fillColor: '#ee9900', |
295 | + fillOpacity: 0.7, |
296 | + strokeColor: '#ee9900', |
297 | + strokeOpacity: 1, |
298 | + strokeWidth: 3, |
299 | + pointRadius: 6 |
300 | + }), |
301 | + 'select': new OpenLayers.Style({ |
302 | + fillColor: 'red', |
303 | + strokeColor: 'red' |
304 | + }), |
305 | + 'temporary': new OpenLayers.Style({ |
306 | + fillColor: 'blue', |
307 | + strokeColor: 'blue' |
308 | + }) |
309 | + }), |
310 | eventListeners : { |
311 | featuremodified: function(event) { |
312 | this._geometry = event.feature.geometry; |
313 | @@ -594,12 +616,50 @@ |
314 | return [rl, vl]; |
315 | }, |
316 | |
317 | + find_parent_tabs: function() { |
318 | + var obj_id = this.element_id; |
319 | + var current_obj = $('#' + obj_id); |
320 | + var results = new Array(); |
321 | + while (current_obj.length != 0) { |
322 | + class_name = current_obj.attr('class'); |
323 | + if (class_name && class_name.match(/ui-tabs-panel/) !== null) { |
324 | + results.push(current_obj); |
325 | + } |
326 | + current_obj = current_obj.parent(); |
327 | + } |
328 | + return results; |
329 | + }, |
330 | + |
331 | + add_tab_listener: function() { |
332 | + |
333 | + var self = this; |
334 | + var parent_tabs = this.find_parent_tabs(); |
335 | + self.parent_tabs = parent_tabs; |
336 | + for (var i = 0; i < parent_tabs.length; i++) { |
337 | + tab = parent_tabs[i]; |
338 | + tab.parent().bind('tabsshow', function(event, ui) { |
339 | + var ui_id = ui.tab.href.match(/notebook-.*/)[0]; |
340 | + // update the render only if the ui_id match with one of the parent_tab id |
341 | + for (var i = 0; i < self.parent_tabs.length; i++) { |
342 | + tab_id = self.parent_tabs[i][0].id; |
343 | + if (ui_id == tab_id){ |
344 | + self.render_map(self); |
345 | + return; |
346 | + } |
347 | + } |
348 | + }); |
349 | + } |
350 | + }, |
351 | + |
352 | start: function() { |
353 | this._super.apply(this, arguments); |
354 | if (this.map) { |
355 | return; |
356 | } |
357 | + this.view.on("change:actual_mode", this, this.on_mode_change); |
358 | var self = this; |
359 | + // add a listener on parent tab if it exists in order to refresh geoengine view |
360 | + self.add_tab_listener(); |
361 | // We blacklist all other fields in order to avoid calling get_value inside the build_context on field widget which aren't started yet |
362 | var blacklist = this.view.fields_order.slice(); |
363 | delete blacklist[this.name]; |
364 | @@ -637,14 +697,15 @@ |
365 | internalProjection: self.map.getProjection(), |
366 | externalProjection: 'EPSG:' + result.srid |
367 | }); |
368 | + self.on_mode_change(); |
369 | self.set_value(self.value); |
370 | - self.update_dom(); |
371 | }); |
372 | }, |
373 | |
374 | set_value: function(value) { |
375 | this._super.apply(this, arguments); |
376 | - if (this.map) { |
377 | + this.value = value; |
378 | + if (this.map && this.view.get("actual_mode") !== "edit") { |
379 | var vl = this.map.getLayersByName(this.name)[0]; |
380 | vl.destroyFeatures(); |
381 | if (this.value) { |
382 | @@ -657,27 +718,29 @@ |
383 | } |
384 | }, |
385 | |
386 | - set_value_from_ui: function() { |
387 | - this.value = this.format.write(this._geometry); |
388 | - this._super(); |
389 | + on_ui_change: function() { |
390 | + this.set_value(this.format.write(this._geometry)); |
391 | }, |
392 | |
393 | validate: function() { |
394 | this.invalid = false; |
395 | }, |
396 | |
397 | - update_dom: function() { |
398 | - this._super.apply(this, arguments); |
399 | + on_mode_change: function() { |
400 | if (this.map) { |
401 | - this.map.render(this.element_id); |
402 | - if (this.readonly || this.force_readonly) { |
403 | + this.map.render(this.name); |
404 | + var actual_mode = this.view.get("actual_mode"); |
405 | + if (actual_mode == "view") { |
406 | this.modify_control.deactivate(); |
407 | - } else { |
408 | - this.modify_control.activate(); |
409 | - this.value === false ? this.draw_control.activate() : this.draw_control.deactivate(); |
410 | + } else if(actual_mode == "create" || !this.value) { |
411 | + this.modify_control.activate(); |
412 | + this.draw_control.activate(); |
413 | + } else if(actual_mode == "edit") { |
414 | + this.modify_control.activate(); |
415 | + this.draw_control.deactivate(); |
416 | } |
417 | } |
418 | - this.$element.toggle(!this.invisible); |
419 | + this.$el.toggle(!this.invisible); |
420 | } |
421 | }); |
422 | openerp.web.form.widgets.add('geo_edit_map', 'openerp.base_geoengine.FieldGeoEngineEditMap'); |
423 | @@ -688,15 +751,15 @@ |
424 | this.force_readonly = true; |
425 | } |
426 | }); |
427 | - openerp.web.page.readonly.add('geo_edit_map', 'openerp.base_geoengine.FieldGeoEngineEditMapReadonly'); |
428 | + openerp.web.form.widgets.add('geo_edit_map', 'openerp.base_geoengine.FieldGeoEngineEditMapReadonly'); |
429 | |
430 | //----------------------------------------------------------------------- |
431 | - openerp.base_geoengine.FieldGeoPointXY = openerp.web.form.Field.extend({ |
432 | + openerp.base_geoengine.FieldGeoPointXY = openerp.web.form.AbstractField.extend({ |
433 | template: 'FieldGeoPointXY', |
434 | |
435 | start: function() { |
436 | this._super.apply(this, arguments); |
437 | - this.$input = this.$element.find('input'); |
438 | + this.$input = this.$el.find('input'); |
439 | this.$input.change(this.on_ui_change); |
440 | this.setupFocus(this.$input); |
441 | }, |
442 | @@ -723,7 +786,7 @@ |
443 | this.$input.val(''); |
444 | } |
445 | }, |
446 | - set_value_from_ui: function() { |
447 | + on_ui_change: function() { |
448 | var coords = this.get_coords(); |
449 | if (coords[0] && coords[1]) { |
450 | var json = this.make_GeoJSON(coords); |
451 | @@ -732,7 +795,6 @@ |
452 | this.value = false; |
453 | } |
454 | |
455 | - this._super(); |
456 | }, |
457 | validate: function() { |
458 | this.invalid = false; |
459 | @@ -769,21 +831,21 @@ |
460 | var geo_obj = JSON.parse(value); |
461 | show_value = "(" + geo_obj.coordinates[0] + ", " + geo_obj.coordinates[1] + ")"; |
462 | } |
463 | - this.$element.find('div').text(show_value); |
464 | + this.$el.find('div').text(show_value); |
465 | return show_value; |
466 | }, |
467 | validate: function() { |
468 | this.invalid = false; |
469 | } |
470 | }); |
471 | - openerp.web.page.readonly.add('geo_point_xy', 'openerp.base_geoengine.FieldGeoPointXYReadonly'); |
472 | + openerp.web.form.widgets.add('geo_point_xy', 'openerp.base_geoengine.FieldGeoPointXYReadonly'); |
473 | |
474 | - openerp.base_geoengine.FieldGeoRect = openerp.web.form.Field.extend({ |
475 | + openerp.base_geoengine.FieldGeoRect = openerp.web.form.AbstractField.extend({ |
476 | template: 'FieldGeoRect', |
477 | |
478 | start: function() { |
479 | this._super.apply(this, arguments); |
480 | - this.$input = this.$element.find('input'); |
481 | + this.$input = this.$el.find('input'); |
482 | this.$input.change(this.on_ui_change); |
483 | this.setupFocus(this.$input); |
484 | }, |
485 | @@ -840,7 +902,7 @@ |
486 | |
487 | return [[minx, miny], [maxx, maxy]]; |
488 | }, |
489 | - set_value_from_ui: function() { |
490 | + on_ui_change: function() { |
491 | var coords = this.get_coords(); |
492 | if (this.all_are_set(coords)) { |
493 | |
494 | @@ -851,8 +913,6 @@ |
495 | } else { |
496 | this.value = false; |
497 | } |
498 | - |
499 | - this._super(); |
500 | }, |
501 | all_are_set: function(coords) { |
502 | return (coords[0][0] !== false && coords[0][1] !== false && |
503 | @@ -898,14 +958,14 @@ |
504 | show_value = "(" + geo_obj.coordinates[0][0][0] + ", " + geo_obj.coordinates[0][0][1] + "), " + |
505 | "(" + geo_obj.coordinates[0][2][0] + ", " + geo_obj.coordinates[0][2][1] + ")"; |
506 | } |
507 | - this.$element.find('div').text(show_value); |
508 | + this.$el.find('div').text(show_value); |
509 | return show_value; |
510 | }, |
511 | validate: function() { |
512 | this.invalid = false; |
513 | } |
514 | }); |
515 | - openerp.web.page.readonly.add('geo_rect', 'openerp.base_geoengine.FieldGeoRectReadonly'); |
516 | + openerp.web.form.widgets.add('geo_rect', 'openerp.base_geoengine.FieldGeoRectReadonly'); |
517 | |
518 | |
519 | //------------------------------------------------------------------------- |
520 | |
521 | === modified file 'base_geoengine/static/src/xml/geoengine.xml' |
522 | --- base_geoengine/static/src/xml/geoengine.xml 2012-12-05 10:31:47 +0000 |
523 | +++ base_geoengine/static/src/xml/geoengine.xml 2013-09-27 14:57:39 +0000 |
524 | @@ -35,8 +35,8 @@ |
525 | |
526 | <t t-name="FieldGeoPointXY.readonly"> |
527 | <div |
528 | - t-att-id="widget.element_id" |
529 | - t-attf-class="field_#{widget.type} #{_(['geo_point_xy']).contains(widget.type) ? 'oe-number' : ''}"> |
530 | + t-att-id="widget.name" |
531 | + t-attf-class="field_#{widget.widget} #{_(['geo_point_xy']).contains(widget.widget) ? 'oe-number' : ''}"> |
532 | </div> |
533 | </t> |
534 | |
535 | @@ -84,14 +84,14 @@ |
536 | </t> |
537 | <t t-name="FieldGeoRect.readonly"> |
538 | <div |
539 | - t-att-id="widget.element_id" |
540 | - t-attf-class="field_#{widget.type} #{_(['geo_point_xy']).contains(widget.type) ? 'oe-number' : ''}"> |
541 | + t-att-id="widget.name" |
542 | + t-attf-class="field_#{widget.widget} #{_(['geo_point_xy']).contains(widget.widget) ? 'oe-number' : ''}"> |
543 | </div> |
544 | </t> |
545 | |
546 | |
547 | <t t-name="FieldGeoEngineEditMap"> |
548 | - <div t-att-id="widget.element_id" t-attf-class="field_#{widget.type}" border="1"/> |
549 | + <div t-att-id="widget.name" t-attf-class="field_#{widget.widget}" border="1"/> |
550 | </t> |
551 | |
552 | </template> |
553 | |
554 | === modified file 'base_geoengine_demo/__openerp__.py' |
555 | --- base_geoengine_demo/__openerp__.py 2012-12-28 09:54:56 +0000 |
556 | +++ base_geoengine_demo/__openerp__.py 2013-09-27 14:57:39 +0000 |
557 | @@ -18,7 +18,7 @@ |
558 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
559 | # |
560 | ############################################################################## |
561 | -{'name': 'Geo spatial support for OpenERP', |
562 | +{'name': 'Geo spatial support Demo', |
563 | 'version': '0.1', |
564 | 'category': 'GeoBI', |
565 | 'description': """ |
566 | |
567 | === modified file 'base_geoengine_demo/retail_machine_view.xml' |
568 | --- base_geoengine_demo/retail_machine_view.xml 2012-12-05 08:33:10 +0000 |
569 | +++ base_geoengine_demo/retail_machine_view.xml 2013-09-27 14:57:39 +0000 |
570 | @@ -4,9 +4,8 @@ |
571 | <record model="ir.ui.view" id="geo_retail_machine_view_form"> |
572 | <field name="name">geoengine.demo.retail.machine.form</field> |
573 | <field name="model">geoengine.demo.automatic.retailing.machine</field> |
574 | - <field name="type">form</field> |
575 | <field name="arch" type="xml"> |
576 | - <form> |
577 | + <form string="Retail Machine"> |
578 | <field name="name" colspan="4"/> |
579 | <notebook colspan="4"> |
580 | <page string="Geometry"> |
581 | @@ -26,9 +25,8 @@ |
582 | <record model="ir.ui.view" id="geo_retail_machine_view_tree"> |
583 | <field name="name">geoengine.demo.retail.machine.form</field> |
584 | <field name="model">geoengine.demo.automatic.retailing.machine</field> |
585 | - <field name="type">tree</field> |
586 | <field name="arch" type="xml"> |
587 | - <tree> |
588 | + <tree string="Retail Machine"> |
589 | <field name="name" select="1"/> |
590 | <field name="total_sales" select="1"/> |
591 | <field name="money_level" select="1"/> |
592 | @@ -72,15 +70,15 @@ |
593 | <!-- GeoEngine views --> |
594 | <record id="ir_ui_view_retailmachineview0" model="ir.ui.view"> |
595 | <field name="name">Retail machine view</field> |
596 | - <field name="arch"><![CDATA[ |
597 | -<form> |
598 | - <field name="name" select="1"/> |
599 | - <field name="total_sales" select="1"/> |
600 | - <field name="money_level" /> |
601 | - <field name="state"/> |
602 | -</form>]]></field> |
603 | + <field name="arch" type="xml"> |
604 | + <geoengine version="7.0"> |
605 | + <field name="name" select="1"/> |
606 | + <field name="total_sales" select="1"/> |
607 | + <field name="money_level" /> |
608 | + <field name="state"/> |
609 | + </geoengine> |
610 | + </field> |
611 | <field eval="16" name="priority"/> |
612 | - <field name="type">geoengine</field> |
613 | <field name="model">geoengine.demo.automatic.retailing.machine</field> |
614 | </record> |
615 | <record id="geoengine_vector_layer_retailmachinebasicpoint0" model="geoengine.vector.layer"> |
616 | @@ -167,7 +165,7 @@ |
617 | </record> |
618 | <record id="geoengine_raster_layer_retailmachinemapbox" model="geoengine.raster.layer"> |
619 | <field name="raster_type">mapbox</field> |
620 | - <field name="mapbox_type">mapbox.mapbox-streets</field> |
621 | + <field name="mapbox_id">camptocamp.map-ok288g0c</field> |
622 | <field name="name">Retail Machine Mapbox</field> |
623 | <field name="view_id" ref="ir_ui_view_retailmachineview0"/> |
624 | <field eval="0" name="overlay"/> |
625 | |
626 | === modified file 'base_geoengine_demo/zip_view.xml' |
627 | --- base_geoengine_demo/zip_view.xml 2012-12-05 08:33:10 +0000 |
628 | +++ base_geoengine_demo/zip_view.xml 2013-09-27 14:57:39 +0000 |
629 | @@ -4,9 +4,8 @@ |
630 | <record model="ir.ui.view" id="dummy_zip_form"> |
631 | <field name="name">dummy.zip.form</field> |
632 | <field name="model">dummy.zip</field> |
633 | - <field name="type">form</field> |
634 | <field name="arch" type="xml"> |
635 | - <form> |
636 | + <form string="Dummy"> |
637 | <field name="name" select="1"/> |
638 | <field name="city" select="1"/> |
639 | <field name="priority" /> |
640 | @@ -22,9 +21,8 @@ |
641 | <record model="ir.ui.view" id="dummy_zip_tree"> |
642 | <field name="name">dummy.zip.form</field> |
643 | <field name="model">dummy.zip</field> |
644 | - <field name="type">tree</field> |
645 | <field name="arch" type="xml"> |
646 | - <tree> |
647 | + <tree string="Dummy"> |
648 | <field name="name" select="1"/> |
649 | <field name="city" select="1"/> |
650 | <field name="priority" /> |
651 | @@ -43,14 +41,14 @@ |
652 | <!-- GeoEngine views --> |
653 | <record id="ir_ui_view_resbetterzipgeoview0" model="ir.ui.view"> |
654 | <field name="name">dummy.zip.geo_view</field> |
655 | - <field name="arch"><![CDATA[ |
656 | - <form > |
657 | + <field name="arch" type="xml"> |
658 | + <geoengine version="7.0"> |
659 | <field name="name"/> |
660 | <field name="city"/> |
661 | <field name="total_sales"/> |
662 | - </form>]]></field> |
663 | + </geoengine> |
664 | + </field> |
665 | <field eval="16" name="priority"/> |
666 | - <field name="type">geoengine</field> |
667 | <field name="model">dummy.zip</field> |
668 | </record> |
669 | <record id="geoengine_vector_layer_basictest0" model="geoengine.vector.layer"> |
670 | @@ -92,7 +90,7 @@ |
671 | </record> |
672 | <record id="geoengine_raster_layer_mapbox0" model="geoengine.raster.layer"> |
673 | <field name="raster_type">mapbox</field> |
674 | - <field name="mapbox_type">mapbox.mapbox-light</field> |
675 | + <field name="mapbox_id">camptocamp.map-qrf4x</field> |
676 | <field name="name">ZIP Mapbox Light</field> |
677 | <field name="view_id" ref="ir_ui_view_resbetterzipgeoview0"/> |
678 | <field eval="1" name="overlay"/> |
679 | |
680 | === modified file 'geoengine_geoname_geocoder/geonames_coder.py' |
681 | --- geoengine_geoname_geocoder/geonames_coder.py 2012-10-01 10:26:49 +0000 |
682 | +++ geoengine_geoname_geocoder/geonames_coder.py 2013-09-27 14:57:39 +0000 |
683 | @@ -33,10 +33,10 @@ |
684 | |
685 | logger = logging.getLogger('GeoNames address encoding') |
686 | |
687 | -class ResPartnerAddress(osv.osv): |
688 | - """Auto gheo coding of addresses""" |
689 | - _name = "res.partner.address" |
690 | - _inherit = "res.partner.address" |
691 | +class ResPartner(osv.osv): |
692 | + """Auto geo coding of addresses""" |
693 | + _name = "res.partner" |
694 | + _inherit = "res.partner" |
695 | |
696 | |
697 | def _can_geocode(self, cursor, uid, context): |
698 | @@ -97,7 +97,7 @@ |
699 | data = {'geo_point': self._get_point_from_reply(answer)} |
700 | add.write(data) |
701 | # We use postgres to do projection in order not to install GDAL dependences |
702 | - sql = ("UPDATE res_partner_address" |
703 | + sql = ("UPDATE res_partner" |
704 | " SET geo_point = ST_Transform(st_SetSRID(geo_point, 4326), %s)" |
705 | " WHERE id = %s") |
706 | cursor.execute(sql, (srid, add.id)) |
707 | @@ -108,17 +108,17 @@ |
708 | return ids |
709 | |
710 | def write(self, cursor, uid, ids, vals, context=None): |
711 | - res = super(ResPartnerAddress, self).write(cursor, uid, ids, vals, context=None) |
712 | + res = super(ResPartner, self).write(cursor, uid, ids, vals, context=None) |
713 | do_geocode = self._can_geocode(cursor, uid, context) |
714 | if do_geocode and "country_id" in vals or 'city' in vals or 'zip' in vals: |
715 | self.geocode_from_geonames(cursor, uid, ids, context=context) |
716 | return res |
717 | |
718 | def create(self, cursor, uid, vals, context=None): |
719 | - res = super(ResPartnerAddress, self).create(cursor, uid, vals, context=None) |
720 | + res = super(ResPartner, self).create(cursor, uid, vals, context=None) |
721 | do_geocode = self._can_geocode(cursor, uid, context=context) |
722 | if do_geocode: |
723 | self.geocode_from_geonames(cursor, uid, res, context=context) |
724 | return res |
725 | |
726 | -ResPartnerAddress() |
727 | +ResPartner() |
728 | |
729 | === modified file 'geoengine_geoname_geocoder/wizard/bulk_encode.py' |
730 | --- geoengine_geoname_geocoder/wizard/bulk_encode.py 2012-10-01 10:26:49 +0000 |
731 | +++ geoengine_geoname_geocoder/wizard/bulk_encode.py 2013-09-27 14:57:39 +0000 |
732 | @@ -24,12 +24,12 @@ |
733 | class BlukGeoNameEncoder(osv.osv_memory): |
734 | _name = "geoengine.geoname.encoder" |
735 | |
736 | - _columns = {'add_to_encode': fields.many2many('res.partner.address', |
737 | + _columns = {'add_to_encode': fields.many2many('res.partner', |
738 | string='Addresses to encode'), |
739 | 'encode_all': fields.boolean('Encode all addresses')} |
740 | |
741 | def encode(self, cursor, uid, wiz_id, context=None): |
742 | - add_obj = self.pool.get('res.partner.address') |
743 | + add_obj = self.pool.get('res.partner') |
744 | context = context or {} |
745 | if isinstance(wiz_id, list): |
746 | wiz_id = wiz_id[0] |
747 | |
748 | === modified file 'geoengine_partner/geo_partner.py' |
749 | --- geoengine_partner/geo_partner.py 2012-10-01 10:27:35 +0000 |
750 | +++ geoengine_partner/geo_partner.py 2013-09-27 14:57:39 +0000 |
751 | @@ -19,41 +19,11 @@ |
752 | # |
753 | ############################################################################## |
754 | |
755 | -from osv import fields, osv |
756 | - |
757 | +from osv import fields |
758 | from base_geoengine import geo_model |
759 | |
760 | -class ResPartnerAddress(geo_model.GeoModel): |
761 | - """Add geo_point to addresses""" |
762 | - _name = "res.partner.address" |
763 | - _inherit = "res.partner.address" |
764 | - _columns = {'geo_point' : fields.geo_point('Addresses coordinate')} |
765 | -ResPartnerAddress() |
766 | - |
767 | class ResPartner(geo_model.GeoModel): |
768 | """Add geo_point to partner using a function filed""" |
769 | _name = "res.partner" |
770 | _inherit = "res.partner" |
771 | - |
772 | - def _get_point(self, cursor, uid, partner_ids, name, args, context=None): |
773 | - """ Return Json repr of field""" |
774 | - res = {} |
775 | - add_obj = self.pool.get('res.partner.address') |
776 | - context = context or {} |
777 | - if not isinstance(partner_ids, list): |
778 | - partner_ids = [partner_ids] |
779 | - for partner_id in partner_ids: |
780 | - add = self.address_get(cursor, uid, [partner_id], adr_pref=['invoice']) |
781 | - if add.get('invoice'): |
782 | - res[partner_id] = add_obj.browse(cursor, uid, add.get('invoice'), context).geo_point |
783 | - else: |
784 | - res[partner_id] = False |
785 | - return res |
786 | - |
787 | - _columns = {'geo_point' : fields.geo_function(_get_point, |
788 | - string='Partner coordinates', |
789 | - type='geo_point', |
790 | - srid=900913, # mandatory arg |
791 | - dim=2)} # mandatory arg |
792 | -ResPartner() |
793 | - |
794 | + _columns = {'geo_point' : fields.geo_point('Addresses coordinate')} |
795 | |
796 | === modified file 'geoengine_partner/geo_partner_view.xml' |
797 | --- geoengine_partner/geo_partner_view.xml 2012-02-02 22:08:18 +0000 |
798 | +++ geoengine_partner/geo_partner_view.xml 2013-09-27 14:57:39 +0000 |
799 | @@ -1,113 +1,44 @@ |
800 | <?xml version="1.0" encoding="utf-8"?> |
801 | <openerp> |
802 | <data> |
803 | - <!-- addresses --> |
804 | - <record id="base.action_partner_address_form" model="ir.actions.act_window"> |
805 | - <field name="view_mode">tree,form,geoengine,kanban</field> |
806 | - </record> |
807 | - |
808 | - <record model="ir.ui.view" id="geo_partner_address_view_form"> |
809 | - <field name="name">geo_partner_addressform</field> |
810 | - <field name="model">res.partner.address</field> |
811 | - <field name="type">form</field> |
812 | - <field name="inherit_id" ref="base.view_partner_address_form1"/> |
813 | - <field name="arch" type="xml"> |
814 | - <field name="email" position="after"> |
815 | - <field name="geo_point" colspan="4" widget="text" |
816 | - groups="base_geoengine.group_geoengine_user,base_geoengine.group_geoengine_admin"/> |
817 | - </field> |
818 | - </field> |
819 | - </record> |
820 | - |
821 | - <!-- GeoEngine views --> |
822 | - <record id="ir_ui_view_geo_partner_add" model="ir.ui.view"> |
823 | - <field name="name">Address view</field> |
824 | - <field name="arch"><![CDATA[ |
825 | -<form> |
826 | - <field name="name" select="1"/> |
827 | - <field name="zip"/> |
828 | - <field name="city"/> |
829 | - <field name="country_id"/> |
830 | -</form>]]></field> |
831 | - <field eval="16" name="priority"/> |
832 | - <field name="type">geoengine</field> |
833 | - <field name="model">res.partner.address</field> |
834 | - </record> |
835 | - |
836 | - <record id="geoengine_vector_layer_res_partner_address" model="geoengine.vector.layer"> |
837 | - <field name="geo_field_id" |
838 | - ref="geoengine_partner.field_res_partner_address_geo_point"/> |
839 | - <field name="name">Address location</field> |
840 | - <field eval="6" name="sequence"/> |
841 | - <field name="view_id" ref="ir_ui_view_geo_partner_add"/> |
842 | - <field name="geo_repr">basic</field> |
843 | - <field eval="1" name="nb_class"/> |
844 | - <field name="begin_color">#FF680A</field> |
845 | - <field name="symbol_binary">iVBORw0KGgoAAAANSUhEUgAAACAAAAAfCAYAAACGVs+MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ |
846 | - bWFnZVJlYWR5ccllPAAAA3VJREFUeNq8V89rE0EUfjOz6aZNpFZpqyCEIooHoVaoQkGoB3vyJB49 |
847 | - iYieFERBEMRbxYP/gFcv3ntQLHqwqNR6LNUqIq0/m8S2u0l3NzszfpNsqN0e3MiuA4/Jmx3e++Z7 |
848 | - 3/wI01pTkvZicF+zzwvR1c35efRX0B/K7SgScUHScVZ8KR96St31pPyuEHfk6+e/xrUoYWMwQM3D |
849 | - 7gvOL9lIYA8MkD1+gli+hxozM/3qw8erHtEYpp7D/MUkcXlSAFiZUEQXEfgSiwCJvp0kDh8mcWSY |
850 | - 2J49xBkzAY8B5KSvdTFVAKHWJan1dVMwQy/AkCyXKZydo8bLVySXl0kqZVgizDvT0Ho0SdzEJUDA |
851 | - CaH1XgQ3YCjgnESlSmp6uqmBsFajoDWPmnOUOgX3WXoAlBoFxSLAKgWoZjDDhLXuNMsRwg/gQ4Bm |
852 | - rvldSpUBrPoXR3CvLUgka4AFi7eqqExijPlmjmFISi9VDaA9xqoCiJHqSGKsBnPDkGowNxrbiL77 |
853 | - Sr1JlQG017DnCDzR1oFol6MlvKYZFlCCCsT4JG0A67CbsGEkHzSK520KAcIkp2h3oN2CfUy7BKa9 |
854 | - hZ2FzWnPo7BepwB9gF7ClKYKvl2GPUgaMDEDGtusfSrr0J+g42PXVLF4Uy8vM76rj6hQmKKn0zeY |
855 | - EPOdrCgxAOvk+KazsVGlC+cf2fv3X+sOQ9uT5gDSU9q25ynh3dIxgO47t/+4GBhpxwn3Fgu6NFSi |
856 | - paUv5Ky7gXVvcvPWSBsAd92tJdF6FQeRr0KZ1+YI1mpNrq5Rpy2xCBnjcYPgWOWP6/wH/UNLzEBX |
857 | - Vy7OQIBKrEbpfVglUwCFnp44AI0jyI3KXYfb0B0KsLNtGBNW02fUFsaGuS4yZcDUPQZJY+xnpHgH |
858 | - FmQKgHMWS48xRu1H3zdThmwBxBgwJcBYNXLL5tWWMQM8LkJinDuR62ZeAhYrQVODnK1H0jQXhcwU |
859 | - gBBia35cfWClbJDgeeaADcPIfwTA8SARAKCb5Slb+M6zBLBNA62dYYSn8UdlNWdZ2QLo6+vdNibx |
860 | - LAIQF+z4tp3ftlVTBVBZqcZPJurv3x16nv+jt7fXd/FgaYQNar0QMwDw6dPSFt+svVqt+iMjw3Jh |
861 | - 4X24Ui2Tldt6YR06eCDFF5Flxc+B00g8/G5xYVYF6ui+odIOzHmI8Y62428BBgDwu9RGZbaLEwAA |
862 | - AABJRU5ErkJggg== |
863 | - </field> |
864 | - </record> |
865 | - <record id="geoengine_vector_layer_res_partner_address_google" model="geoengine.raster.layer"> |
866 | - <field name="raster_type">google</field> |
867 | - <field name="google_type">G_HYBRID_MAP</field> |
868 | - <field name="name">Addresses background</field> |
869 | - <field name="view_id" ref="ir_ui_view_geo_partner_add"/> |
870 | - <field eval="0" name="overlay"/> |
871 | - </record> |
872 | - |
873 | - <!-- partner --> |
874 | - |
875 | <record model="ir.ui.view" id="geo_partner_view_form"> |
876 | <field name="name">geo_partner_form</field> |
877 | <field name="model">res.partner</field> |
878 | - <field name="type">form</field> |
879 | <field name="inherit_id" ref="base.view_partner_form"/> |
880 | <field name="arch" type="xml"> |
881 | - <field name="comment" position="after"> |
882 | - <field name="geo_point" colspan="4" widget="text" |
883 | - groups="base_geoengine.group_geoengine_user,base_geoengine.group_geoengine_admin"/> |
884 | - </field> |
885 | + <notebook> |
886 | + <page string="Geoengine Map"> |
887 | + <field name="geo_point" widget="geo_edit_map" |
888 | + groups="base_geoengine.group_geoengine_user,base_geoengine.group_geoengine_admin"/> |
889 | + </page> |
890 | + </notebook> |
891 | </field> |
892 | </record> |
893 | - |
894 | - |
895 | + |
896 | <record id="ir_ui_view_geo_partner" model="ir.ui.view"> |
897 | <field name="name">Partner view</field> |
898 | - <field name="arch"><![CDATA[ |
899 | -<form> |
900 | - <field name="name" select="1"/> |
901 | - <field name="title" /> |
902 | - <field name="function"/> |
903 | - <field name="website"/> |
904 | -</form>]]></field> |
905 | + <field name="arch" type="xml"> |
906 | + <geoengine version="7.0"> |
907 | + <field name="name" select="1"/> |
908 | + <field name="title" /> |
909 | + <field name="function"/> |
910 | + <field name="website"/> |
911 | + <field name="zip"/> |
912 | + <field name="city"/> |
913 | + <field name="country_id"/> |
914 | + </geoengine> |
915 | + </field> |
916 | <field eval="16" name="priority"/> |
917 | - <field name="type">geoengine</field> |
918 | <field name="model">res.partner</field> |
919 | </record> |
920 | - |
921 | + |
922 | <record id="action_partner_form_view3" model="ir.actions.act_window.view"> |
923 | <field eval="20" name="sequence"/> |
924 | <field name="view_mode">geoengine</field> |
925 | <field name="view_id" ref="ir_ui_view_geo_partner"/> |
926 | <field name="act_window_id" ref="base.action_partner_form"/> |
927 | </record> |
928 | - |
929 | + |
930 | <record id="geoengine_vector_layer_res_partner" model="geoengine.vector.layer"> |
931 | <field name="geo_field_id" |
932 | ref="geoengine_partner.field_res_partner_geo_point"/> |
933 | |
934 | === modified file 'geoengine_sale/geo_sale_view.xml' |
935 | --- geoengine_sale/geo_sale_view.xml 2012-02-16 13:14:44 +0000 |
936 | +++ geoengine_sale/geo_sale_view.xml 2013-09-27 14:57:39 +0000 |
937 | @@ -2,10 +2,10 @@ |
938 | <openerp> |
939 | <data> |
940 | <!-- sale order --> |
941 | - <record id="sale.action_order_form" model="ir.actions.act_window"> |
942 | + <record id="sale.action_orders" model="ir.actions.act_window"> |
943 | <field name="view_mode">tree,form,calendar,graph,geoengine</field> |
944 | </record> |
945 | - |
946 | + |
947 | <record model="ir.ui.view" id="geo_sale_order_view_form"> |
948 | <field name="name">geo_sale_order_form</field> |
949 | <field name="model">sale.order</field> |
950 | @@ -18,25 +18,25 @@ |
951 | </field> |
952 | </field> |
953 | </record> |
954 | - |
955 | + |
956 | <!-- GeoEngine views --> |
957 | <record id="ir_ui_view_geo_sale_order" model="ir.ui.view"> |
958 | <field name="name">Sale Order view</field> |
959 | - <field name="arch"><![CDATA[ |
960 | -<form> |
961 | - <field name="name" select="1"/> |
962 | - <field name="partner_id"/> |
963 | - <field name="state"/> |
964 | - <field name="amount_total"/> |
965 | -</form>]]></field> |
966 | + <field name="arch" type="xml"> |
967 | + <geoengine version="7.0"> |
968 | + <field name="name" select="1"/> |
969 | + <field name="partner_id"/> |
970 | + <field name="state"/> |
971 | + <field name="amount_total"/> |
972 | + </geoengine> |
973 | + </field> |
974 | <field eval="16" name="priority"/> |
975 | - <field name="type">geoengine</field> |
976 | <field name="model">sale.order</field> |
977 | </record> |
978 | - |
979 | + |
980 | <record id="geoengine_vector_layer_sales_order" model="geoengine.vector.layer"> |
981 | <field name="geo_field_id" |
982 | - ref="geoengine_partner.field_res_partner_address_geo_point"/> |
983 | + ref="geoengine_partner.field_res_partner_geo_point"/> |
984 | <field name="name">Sale order proportional</field> |
985 | <field eval="6" name="sequence"/> |
986 | <field name="view_id" ref="ir_ui_view_geo_sale_order"/> |
987 | @@ -46,7 +46,7 @@ |
988 | <field name="classification">quantile</field> |
989 | <field name="begin_color">#4B69FD</field> |
990 | </record> |
991 | - |
992 | + |
993 | <record id="geoengine_raster_layer_sales_order" model="geoengine.raster.layer"> |
994 | <field name="raster_type">google</field> |
995 | <field name="google_type">G_HYBRID_MAP</field> |
Hello,
I will keep this branch on sight. If you do not mind I'm marking it as work in progess. I will integrate it in an other branch.
Regards
Nicolas