summaryrefslogtreecommitdiff
path: root/base_geoengine/geo_ir
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
parent9d3eeeb5c7d4055b34bc0768387952850ed78668 (diff)
added geoengine
Diffstat (limited to 'base_geoengine/geo_ir')
-rw-r--r--base_geoengine/geo_ir/__init__.py1
-rw-r--r--base_geoengine/geo_ir/__pycache__/__init__.cpython-36.pycbin0 -> 194 bytes
-rw-r--r--base_geoengine/geo_ir/__pycache__/ir_model.cpython-36.pycbin0 -> 1342 bytes
-rw-r--r--base_geoengine/geo_ir/ir_model.py46
-rw-r--r--base_geoengine/geo_ir/ir_model_view.xml26
5 files changed, 73 insertions, 0 deletions
diff --git a/base_geoengine/geo_ir/__init__.py b/base_geoengine/geo_ir/__init__.py
new file mode 100644
index 0000000..413bb23
--- /dev/null
+++ b/base_geoengine/geo_ir/__init__.py
@@ -0,0 +1 @@
+from . import ir_model
diff --git a/base_geoengine/geo_ir/__pycache__/__init__.cpython-36.pyc b/base_geoengine/geo_ir/__pycache__/__init__.cpython-36.pyc
new file mode 100644
index 0000000..d292dd7
--- /dev/null
+++ b/base_geoengine/geo_ir/__pycache__/__init__.cpython-36.pyc
Binary files differ
diff --git a/base_geoengine/geo_ir/__pycache__/ir_model.cpython-36.pyc b/base_geoengine/geo_ir/__pycache__/ir_model.cpython-36.pyc
new file mode 100644
index 0000000..0772bb6
--- /dev/null
+++ b/base_geoengine/geo_ir/__pycache__/ir_model.cpython-36.pyc
Binary files differ
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',
+ })
diff --git a/base_geoengine/geo_ir/ir_model_view.xml b/base_geoengine/geo_ir/ir_model_view.xml
new file mode 100644
index 0000000..ed0fbea
--- /dev/null
+++ b/base_geoengine/geo_ir/ir_model_view.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record model="ir.ui.view" id="view_model_fields_form_geo">
+ <!-- must be unique in this module. -->
+ <field name="name">ir.model.fields.form.geo</field>
+ <field name="model">ir.model.fields</field>
+ <field name="inherit_id" ref="base.view_model_fields_form"/>
+ <field name="arch" type="xml">
+ <sheet position="inside">
+ <group>
+ <!-- nasty attrs but ilike operator does not work as expected -->
+ <field name="srid"
+ attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/>
+ <field name="geo_type"
+ attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/>
+ <field name="dim"
+ attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/>
+ <field name="gist_index"
+ attrs="{'readonly': [('ttype', 'not in', ['geo_polygon', 'geo_multi_polygon', 'geo_point', 'geo_multi_point', 'geo_line', 'geo_multi_line'])]}"/>
+ </group>
+ </sheet>
+ </field>
+ </record>
+
+</odoo>