diff options
| author | Richard Sassine <richardsassine@tutanota.com> | 2021-05-31 19:22:23 +0300 |
|---|---|---|
| committer | Richard Sassine <richardsassine@tutanota.com> | 2021-05-31 19:22:23 +0300 |
| commit | 3a8776ee0342f47a57bcc9365499ebd5d3d7ee1c (patch) | |
| tree | 9515fcef8e53992a9bbbcdc7950e1dd596983166 /base_geoengine/geo_ir/ir_model.py | |
| parent | 9d3eeeb5c7d4055b34bc0768387952850ed78668 (diff) | |
added geoengine
Diffstat (limited to 'base_geoengine/geo_ir/ir_model.py')
| -rw-r--r-- | base_geoengine/geo_ir/ir_model.py | 46 |
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', + }) |
