summaryrefslogtreecommitdiff
path: root/base_geoengine/geo_ir/ir_model.py
diff options
context:
space:
mode:
authorRichard Sassine <richardsassine@tutanota.com>2021-05-31 19:22:23 +0300
committerRichard Sassine <richardsassine@tutanota.com>2021-05-31 19:22:23 +0300
commit3a8776ee0342f47a57bcc9365499ebd5d3d7ee1c (patch)
tree9515fcef8e53992a9bbbcdc7950e1dd596983166 /base_geoengine/geo_ir/ir_model.py
parent9d3eeeb5c7d4055b34bc0768387952850ed78668 (diff)
added geoengine
Diffstat (limited to 'base_geoengine/geo_ir/ir_model.py')
-rw-r--r--base_geoengine/geo_ir/ir_model.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/base_geoengine/geo_ir/ir_model.py b/base_geoengine/geo_ir/ir_model.py
new file mode 100644
index 0000000..a56eb4a
--- /dev/null
+++ b/base_geoengine/geo_ir/ir_model.py
@@ -0,0 +1,46 @@
+# Copyright 2011-2012 Nicolas Bessi (Camptocamp SA)
+# Copyright 2021 Shurshilov Artem
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from odoo import fields, models
+
+from odoo.addons import base
+
+if "geoengine" not in base.models.ir_actions.VIEW_TYPES:
+ base.models.ir_actions.VIEW_TYPES.append(("geoengine", "Geoengine"))
+
+GEO_TYPES = [
+ ("geo_polygon", "geo_polygon"),
+ ("geo_multi_polygon", "geo_multi_polygon"),
+ ("geo_point", "geo_point"),
+ ("geo_multi_point", "geo_multi_point"),
+ ("geo_line", "geo_line"),
+ ("geo_multi_line", "geo_multi_line"),
+]
+
+POSTGIS_GEO_TYPES = [
+ ("POINT", "POINT"),
+ ("MULTIPOINT", "MULTIPOINT"),
+ ("LINESTRING", "LINESTRING"),
+ ("MULTILINESTRING", "MULTILINESTRING"),
+ ("POLYGON", "POLYGON"),
+ ("MULTIPOLYGON", "MULTIPOLYGON"),
+]
+
+
+class IrModelField(models.Model):
+ _inherit = "ir.model.fields"
+
+ srid = fields.Integer("srid", required=False)
+ geo_type = fields.Selection(POSTGIS_GEO_TYPES, string="PostGIs type")
+ dim = fields.Selection(
+ [("2", "2"), ("3", "3"), ("4", "4")], string="PostGIs Dimension", default='2'
+ )
+ gist_index = fields.Boolean("Create gist index")
+ ttype = fields.Selection(selection_add=GEO_TYPES, ondelete={
+ 'geo_polygon': 'cascade',
+ 'geo_multi_polygon': 'cascade',
+ 'geo_point': 'cascade',
+ 'geo_multi_point': 'cascade',
+ 'geo_line': 'cascade',
+ 'geo_multi_line': 'cascade',
+ })