mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-19 11:12:02 +02:00
659 lines
36 KiB
HTML
659 lines
36 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
||
<title>README.rst</title>
|
||
<style type="text/css">
|
||
|
||
/*
|
||
:Author: David Goodger (goodger@python.org)
|
||
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
||
:Copyright: This stylesheet has been placed in the public domain.
|
||
|
||
Default cascading style sheet for the HTML output of Docutils.
|
||
Despite the name, some widely supported CSS2 features are used.
|
||
|
||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
||
customize this style sheet.
|
||
*/
|
||
|
||
/* used to remove borders from tables and images */
|
||
.borderless, table.borderless td, table.borderless th {
|
||
border: 0 }
|
||
|
||
table.borderless td, table.borderless th {
|
||
/* Override padding for "table.docutils td" with "! important".
|
||
The right padding separates the table cells. */
|
||
padding: 0 0.5em 0 0 ! important }
|
||
|
||
.first {
|
||
/* Override more specific margin styles with "! important". */
|
||
margin-top: 0 ! important }
|
||
|
||
.last, .with-subtitle {
|
||
margin-bottom: 0 ! important }
|
||
|
||
.hidden {
|
||
display: none }
|
||
|
||
.subscript {
|
||
vertical-align: sub;
|
||
font-size: smaller }
|
||
|
||
.superscript {
|
||
vertical-align: super;
|
||
font-size: smaller }
|
||
|
||
a.toc-backref {
|
||
text-decoration: none ;
|
||
color: black }
|
||
|
||
blockquote.epigraph {
|
||
margin: 2em 5em ; }
|
||
|
||
dl.docutils dd {
|
||
margin-bottom: 0.5em }
|
||
|
||
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||
dl.docutils dt {
|
||
font-weight: bold }
|
||
*/
|
||
|
||
div.abstract {
|
||
margin: 2em 5em }
|
||
|
||
div.abstract p.topic-title {
|
||
font-weight: bold ;
|
||
text-align: center }
|
||
|
||
div.admonition, div.attention, div.caution, div.danger, div.error,
|
||
div.hint, div.important, div.note, div.tip, div.warning {
|
||
margin: 2em ;
|
||
border: medium outset ;
|
||
padding: 1em }
|
||
|
||
div.admonition p.admonition-title, div.hint p.admonition-title,
|
||
div.important p.admonition-title, div.note p.admonition-title,
|
||
div.tip p.admonition-title {
|
||
font-weight: bold ;
|
||
font-family: sans-serif }
|
||
|
||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||
div.danger p.admonition-title, div.error p.admonition-title,
|
||
div.warning p.admonition-title, .code .error {
|
||
color: red ;
|
||
font-weight: bold ;
|
||
font-family: sans-serif }
|
||
|
||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||
compound paragraphs.
|
||
div.compound .compound-first, div.compound .compound-middle {
|
||
margin-bottom: 0.5em }
|
||
|
||
div.compound .compound-last, div.compound .compound-middle {
|
||
margin-top: 0.5em }
|
||
*/
|
||
|
||
div.dedication {
|
||
margin: 2em 5em ;
|
||
text-align: center ;
|
||
font-style: italic }
|
||
|
||
div.dedication p.topic-title {
|
||
font-weight: bold ;
|
||
font-style: normal }
|
||
|
||
div.figure {
|
||
margin-left: 2em ;
|
||
margin-right: 2em }
|
||
|
||
div.footer, div.header {
|
||
clear: both;
|
||
font-size: smaller }
|
||
|
||
div.line-block {
|
||
display: block ;
|
||
margin-top: 1em ;
|
||
margin-bottom: 1em }
|
||
|
||
div.line-block div.line-block {
|
||
margin-top: 0 ;
|
||
margin-bottom: 0 ;
|
||
margin-left: 1.5em }
|
||
|
||
div.sidebar {
|
||
margin: 0 0 0.5em 1em ;
|
||
border: medium outset ;
|
||
padding: 1em ;
|
||
background-color: #ffffee ;
|
||
width: 40% ;
|
||
float: right ;
|
||
clear: right }
|
||
|
||
div.sidebar p.rubric {
|
||
font-family: sans-serif ;
|
||
font-size: medium }
|
||
|
||
div.system-messages {
|
||
margin: 5em }
|
||
|
||
div.system-messages h1 {
|
||
color: red }
|
||
|
||
div.system-message {
|
||
border: medium outset ;
|
||
padding: 1em }
|
||
|
||
div.system-message p.system-message-title {
|
||
color: red ;
|
||
font-weight: bold }
|
||
|
||
div.topic {
|
||
margin: 2em }
|
||
|
||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||
margin-top: 0.4em }
|
||
|
||
h1.title {
|
||
text-align: center }
|
||
|
||
h2.subtitle {
|
||
text-align: center }
|
||
|
||
hr.docutils {
|
||
width: 75% }
|
||
|
||
img.align-left, .figure.align-left, object.align-left, table.align-left {
|
||
clear: left ;
|
||
float: left ;
|
||
margin-right: 1em }
|
||
|
||
img.align-right, .figure.align-right, object.align-right, table.align-right {
|
||
clear: right ;
|
||
float: right ;
|
||
margin-left: 1em }
|
||
|
||
img.align-center, .figure.align-center, object.align-center {
|
||
display: block;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
table.align-center {
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
.align-left {
|
||
text-align: left }
|
||
|
||
.align-center {
|
||
clear: both ;
|
||
text-align: center }
|
||
|
||
.align-right {
|
||
text-align: right }
|
||
|
||
/* reset inner alignment in figures */
|
||
div.align-right {
|
||
text-align: inherit }
|
||
|
||
/* div.align-center * { */
|
||
/* text-align: left } */
|
||
|
||
.align-top {
|
||
vertical-align: top }
|
||
|
||
.align-middle {
|
||
vertical-align: middle }
|
||
|
||
.align-bottom {
|
||
vertical-align: bottom }
|
||
|
||
ol.simple, ul.simple {
|
||
margin-bottom: 1em }
|
||
|
||
ol.arabic {
|
||
list-style: decimal }
|
||
|
||
ol.loweralpha {
|
||
list-style: lower-alpha }
|
||
|
||
ol.upperalpha {
|
||
list-style: upper-alpha }
|
||
|
||
ol.lowerroman {
|
||
list-style: lower-roman }
|
||
|
||
ol.upperroman {
|
||
list-style: upper-roman }
|
||
|
||
p.attribution {
|
||
text-align: right ;
|
||
margin-left: 50% }
|
||
|
||
p.caption {
|
||
font-style: italic }
|
||
|
||
p.credits {
|
||
font-style: italic ;
|
||
font-size: smaller }
|
||
|
||
p.label {
|
||
white-space: nowrap }
|
||
|
||
p.rubric {
|
||
font-weight: bold ;
|
||
font-size: larger ;
|
||
color: maroon ;
|
||
text-align: center }
|
||
|
||
p.sidebar-title {
|
||
font-family: sans-serif ;
|
||
font-weight: bold ;
|
||
font-size: larger }
|
||
|
||
p.sidebar-subtitle {
|
||
font-family: sans-serif ;
|
||
font-weight: bold }
|
||
|
||
p.topic-title {
|
||
font-weight: bold }
|
||
|
||
pre.address {
|
||
margin-bottom: 0 ;
|
||
margin-top: 0 ;
|
||
font: inherit }
|
||
|
||
pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||
margin-left: 2em ;
|
||
margin-right: 2em }
|
||
|
||
pre.code .ln { color: gray; } /* line numbers */
|
||
pre.code, code { background-color: #eeeeee }
|
||
pre.code .comment, code .comment { color: #5C6576 }
|
||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||
|
||
span.classifier {
|
||
font-family: sans-serif ;
|
||
font-style: oblique }
|
||
|
||
span.classifier-delimiter {
|
||
font-family: sans-serif ;
|
||
font-weight: bold }
|
||
|
||
span.interpreted {
|
||
font-family: sans-serif }
|
||
|
||
span.option {
|
||
white-space: nowrap }
|
||
|
||
span.pre {
|
||
white-space: pre }
|
||
|
||
span.problematic, pre.problematic {
|
||
color: red }
|
||
|
||
span.section-subtitle {
|
||
/* font-size relative to parent (h1..h6 element) */
|
||
font-size: 80% }
|
||
|
||
table.citation {
|
||
border-left: solid 1px gray;
|
||
margin-left: 1px }
|
||
|
||
table.docinfo {
|
||
margin: 2em 4em }
|
||
|
||
table.docutils {
|
||
margin-top: 0.5em ;
|
||
margin-bottom: 0.5em }
|
||
|
||
table.footnote {
|
||
border-left: solid 1px black;
|
||
margin-left: 1px }
|
||
|
||
table.docutils td, table.docutils th,
|
||
table.docinfo td, table.docinfo th {
|
||
padding-left: 0.5em ;
|
||
padding-right: 0.5em ;
|
||
vertical-align: top }
|
||
|
||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||
font-weight: bold ;
|
||
text-align: left ;
|
||
white-space: nowrap ;
|
||
padding-left: 0 }
|
||
|
||
/* "booktabs" style (no vertical lines) */
|
||
table.docutils.booktabs {
|
||
border: 0px;
|
||
border-top: 2px solid;
|
||
border-bottom: 2px solid;
|
||
border-collapse: collapse;
|
||
}
|
||
table.docutils.booktabs * {
|
||
border: 0px;
|
||
}
|
||
table.docutils.booktabs th {
|
||
border-bottom: thin solid;
|
||
text-align: left;
|
||
}
|
||
|
||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||
font-size: 100% }
|
||
|
||
ul.auto-toc {
|
||
list-style-type: none }
|
||
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="document">
|
||
|
||
|
||
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
|
||
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
|
||
</a>
|
||
<div class="section" id="geospatial-support-for-odoo">
|
||
<h1>Geospatial support for Odoo</h1>
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!! This file is generated by oca-gen-addon-readme !!
|
||
!! changes will be overwritten. !!
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!! source digest: sha256:2faa9b7de06a2c3c20d9bc960073bdc6638396bc987e338093331e0099278604
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/geospatial/tree/16.0/base_geoengine"><img alt="OCA/geospatial" src="https://img.shields.io/badge/github-OCA%2Fgeospatial-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/geospatial-16-0/geospatial-16-0-base_geoengine"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/geospatial&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
||
<p>GeoEngine is an Odoo module that adds spatial/GIS capabilites to Odoo. It will allow you to :</p>
|
||
<ul class="simple">
|
||
<li>Visualize and query your business information on map</li>
|
||
<li>Perform GeoBI and spatial query</li>
|
||
<li>Configure your spatial layers and spatial datasources</li>
|
||
<li>Extend Odoo models with spatial columns</li>
|
||
</ul>
|
||
<p>GeoEngine relies on <a class="reference external" href="http://openlayers.org">OpenLayers</a> and <a class="reference external" href="http://postgis.refractions.net/">PostgGIS</a> technologies.</p>
|
||
<p>Postgis is used to store spatial information in databases. OpenLayer is used to represent spatial data in other words to show maps
|
||
and the different spatial layers. The GeoEngine module acts as a data provider and as an OpenLayers configurator.
|
||
It also provides a complete extension to Odoo ORM.</p>
|
||
<p><strong>Table of contents</strong></p>
|
||
<div class="contents local topic" id="contents">
|
||
<ul class="simple">
|
||
<li><a class="reference internal" href="#installation" id="toc-entry-1">Installation</a></li>
|
||
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li>
|
||
<li><a class="reference internal" href="#geoengine-demo" id="toc-entry-3">Geoengine Demo</a></li>
|
||
<li><a class="reference internal" href="#geoengine-backend" id="toc-entry-4">Geoengine Backend</a></li>
|
||
<li><a class="reference internal" href="#changelog" id="toc-entry-5">Changelog</a></li>
|
||
<li><a class="reference internal" href="#section-1" id="toc-entry-6">16.0.1.0.0 (2023-03-20)</a></li>
|
||
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-7">Bug Tracker</a></li>
|
||
<li><a class="reference internal" href="#credits" id="toc-entry-8">Credits</a><ul>
|
||
<li><a class="reference internal" href="#authors" id="toc-entry-9">Authors</a></li>
|
||
<li><a class="reference internal" href="#contributors" id="toc-entry-10">Contributors</a></li>
|
||
<li><a class="reference internal" href="#maintainers" id="toc-entry-11">Maintainers</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="installation">
|
||
<h2><a class="toc-backref" href="#toc-entry-1">Installation</a></h2>
|
||
<p>To install this module, you need to have <a class="reference external" href="http://postgis.net/">PostGIS</a> installed.</p>
|
||
<p>On Ubuntu:</p>
|
||
<pre class="literal-block">
|
||
.. code-block:: bash
|
||
</pre>
|
||
<blockquote>
|
||
sudo apt-get install postgis</blockquote>
|
||
<p>The module also requires two additional python libs:</p>
|
||
<ul class="simple">
|
||
<li><a class="reference external" href="http://pypi.python.org/pypi/Shapely">Shapely</a></li>
|
||
<li><a class="reference external" href="http://pypi.python.org/pypi/geojson">geojson</a></li>
|
||
</ul>
|
||
<p>When you will install the module this two additional libs will be installed.</p>
|
||
<p>For a complete documentation please refer to the <a class="reference external" href="http://oca.github.io/geospatial/index.html">public documenation</a></p>
|
||
</div>
|
||
<div class="section" id="usage">
|
||
<h2><a class="toc-backref" href="#toc-entry-2">Usage</a></h2>
|
||
</div>
|
||
<div class="section" id="geoengine-demo">
|
||
<h2><a class="toc-backref" href="#toc-entry-3">Geoengine Demo</a></h2>
|
||
<ol class="arabic simple">
|
||
<li>As a user/admin, when I am in the Geoengine Demo module and I go to the ZIP menu.
|
||
When I click on an item in the list view, I get to the form view showing me the different
|
||
information about the ZIP. We can see its ZIP, city, priority, total sales and his spatial
|
||
representation.</li>
|
||
<li>As a user, I can’t modify the information in the form view.</li>
|
||
<li>As an admin, I can modify the information in the form view. I can click on the bin button to clear
|
||
the map and I can draw a new shape.</li>
|
||
<li>As a user, when I go the “Retail machines” tab and there are no items to display, it does not
|
||
show me anything.</li>
|
||
<li>As an admin, when I go the “Retail machines” tab and there are no items to display, the list view of
|
||
the retail machines suggests to me to add a new line.</li>
|
||
<li>As a user/admin, if there are items to be displayed in the “Retail machines” tab then I can click on an
|
||
item and the retail machines form view will be displayed. We can see its spatial representation by going
|
||
to “The point” tab and its attributes in “Attributes” tab.</li>
|
||
<li>As a user/admin, when I go to the geoengine zip view by clicking on the map button at the top right of the
|
||
screen. The geoengine view appears with the first 80 results displayed on the map. The vector layers
|
||
selected are those defined as “active on startup” by the admin. The selected raster layer is the first
|
||
one that is not an overlay layer.</li>
|
||
<li>As a user/admin, when I hover over an area on the map, the area changes its style.</li>
|
||
<li>As a user/admin, when I click on an area, a popup appears an I can see the different information about the
|
||
area. If I click on the cross, the popup will disappear. If I click somewhere else on the map, the
|
||
popup will also disappear. If I click on the about button, then the form view will be displayed.</li>
|
||
<li>As a user/admin, when I use the paging system, then the results displayed on the map are different
|
||
(corresponding to the request).</li>
|
||
<li>As a user/admin, if we use the search bar, we can search results by his zip or his city.</li>
|
||
<li>As an admin, if I change the sequence of layers with the handle button then the change are persisted in database.</li>
|
||
<li>As a user, if I change the sequence of layers with the handle button then the change are not persisted in database.
|
||
There are just the changes in the display.</li>
|
||
<li>As an admin, if I change the domain of a layer with the filter button then the change are persisted in database.</li>
|
||
<li>As a user, if I change the domain of a layer with the filter button then the change are not persisted in database.
|
||
There are just the changes in the display.</li>
|
||
<li>As an admin, I have the possibility to edit the layer with its corresponding button.</li>
|
||
<li>As a user/admin, I can open/close LayerPanel with its button.</li>
|
||
<li>As a user/admin, I can open/close RecordsPanel with its button.</li>
|
||
<li>As a user/admin, when I click on a record in RecordsPanel, a move is made on the map to the selected record.</li>
|
||
<li>As a user/admin, when I click on a record in RecordsPanel, I can also click on the left magnifying glass to zoom on the record.</li>
|
||
<li>As a user/admin, when I click on a record in RecordsPanel, I can also click on the right magnifying glass to get the original zoom.</li>
|
||
<li>As a user/admin, I can use the search bar to search in the RecordsPanel.</li>
|
||
<li>As an admin,If the geoengine view is in edit mode, I can create new records by drawing them in the view.</li>
|
||
<li>As an admin, If the geoengine view is in edit mode, I can modify its spatial representation.</li>
|
||
</ol>
|
||
</div>
|
||
<div class="section" id="geoengine-backend">
|
||
<h2><a class="toc-backref" href="#toc-entry-4">Geoengine Backend</a></h2>
|
||
<ol class="arabic simple">
|
||
<li>As an admin, if I go into the configuration of the raster layers and it has elements, I can click
|
||
on one and see its information.</li>
|
||
<li>As an admin, if I want to create a new raster layer, I can click on “NEW” and fill out the form. The
|
||
required fields for OpenStreetMap type are “Layer Name” and “Related View”. If we want to have a
|
||
WMTS (Web Map Tile Service) raster type. The required fields in addition to the precedents are “Service URL”,
|
||
“Matrix set”,”Format”, “Projection” and “Resolutions”. If we take WMS (Web Map Service) raster type, then the
|
||
required fields are “Layer Name”, “Related View”, “Service URL”, “Params”, “Server Type”.</li>
|
||
<li>As an admin,if I go into the configuration of the vector layers and it has elements, I can click
|
||
on one and see its information.</li>
|
||
<li>As an admin, if I want to create a new vector layer, I can click on “NEW” and fill out the form. The
|
||
required fields are “Layer Name”, “Related View”, “Geo field” and “Representation mode”.</li>
|
||
</ol>
|
||
</div>
|
||
<div class="section" id="changelog">
|
||
<h2><a class="toc-backref" href="#toc-entry-5">Changelog</a></h2>
|
||
</div>
|
||
<div class="section" id="section-1">
|
||
<h2><a class="toc-backref" href="#toc-entry-6">16.0.1.0.0 (2023-03-20)</a></h2>
|
||
<ul class="simple">
|
||
<li>LayerSwitcher has been removed as it was not really practical. A LayerPanel is now active.</li>
|
||
<li>The geo_search method is now deprecated and replaced by the standard odoo search method.</li>
|
||
<li>The widget “geo_edit_map” attribute is no longer necessary as the field is automatically detected by
|
||
his type. We can also provide an option attribute that allows us to pass an opacity and a color as
|
||
parameters.</li>
|
||
</ul>
|
||
<pre class="code xml literal-block">
|
||
<span class="nt"><form></span><span class="w">
|
||
</span><span class="nt"><notebook</span><span class="w"> </span><span class="na">colspan=</span><span class="s">"4"</span><span class="nt">></span><span class="w">
|
||
</span><span class="nt"><page</span><span class="w"> </span><span class="na">string=</span><span class="s">"Geometry"</span><span class="nt">></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"the_geom"</span><span class="w"> </span><span class="na">options=</span><span class="s">"{'opacity': 0.8, 'color': '#0000FF' }"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"></page></span><span class="w">
|
||
</span><span class="nt"></notebook></span><span class="w">
|
||
</span><span class="nt"></form></span>
|
||
</pre>
|
||
<ul class="simple">
|
||
<li>The method geo_search is now deprecated. We now need to use the standard odoo search method.</li>
|
||
</ul>
|
||
<pre class="code python literal-block">
|
||
<span class="n">obj</span><span class="o">.</span><span class="n">search</span><span class="p">([(</span><span class="s2">"the_point"</span><span class="p">,</span><span class="s2">"geo_intersect"</span><span class="p">,{</span><span class="s2">"dummy.zip.the_geom"</span><span class="p">:</span> <span class="p">[(</span><span class="s2">"id"</span><span class="p">,</span> <span class="s2">"="</span><span class="p">,</span> <span class="n">rec</span><span class="o">.</span><span class="n">id</span><span class="p">)]})])</span>
|
||
</pre>
|
||
<ul class="simple">
|
||
<li>We can now pass to the geoengine view a template to display the information we want
|
||
to see when clicking on a feature.</li>
|
||
</ul>
|
||
<pre class="code xml literal-block">
|
||
<span class="nt"><geoengine></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"city"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"total_sales"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"the_geom"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><templates></span><span class="w">
|
||
</span><span class="nt"><t</span><span class="w"> </span><span class="na">t-name=</span><span class="s">"info_box"</span><span class="nt">></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"city"</span><span class="w"> </span><span class="na">widget=</span><span class="s">"badge"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><ul></span><span class="w">
|
||
</span><span class="nt"><li></span>ZIP<span class="w"> </span>:<span class="w"> </span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"></li></span><span class="w">
|
||
</span><span class="nt"><li></span>Total<span class="w"> </span>Sales:<span class="w"> </span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"total_sales"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"></li></span><span class="w">
|
||
</span><span class="nt"></ul></span><span class="w">
|
||
</span><span class="nt"></t></span><span class="w">
|
||
</span><span class="nt"></templates></span><span class="w">
|
||
</span><span class="nt"></geoengine></span>
|
||
</pre>
|
||
<ul class="simple">
|
||
<li>We can now pass a model to use to a layer to display other information on the map.</li>
|
||
</ul>
|
||
<pre class="code xml literal-block">
|
||
<span class="nt"><record</span><span class="w"> </span><span class="na">id=</span><span class="s">"geoengine_vector_layer_hs_retail_machines"</span><span class="w"> </span><span class="na">model=</span><span class="s">"geoengine.vector.layer"</span><span class="nt">></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"model_id"</span><span class="w"> </span><span class="na">ref=</span><span class="s">"base_geoengine_demo.model_geoengine_demo_automatic_retailing_machine"</span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"model_domain"</span><span class="nt">></span>[('state',<span class="w"> </span>'=',<span class="w"> </span>'hs')]<span class="nt"></field></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"geo_field_id"</span><span class="w"> </span><span class="na">ref=</span><span class="s">"base_geoengine_demo.field_geoengine_demo_automatic_retailing_machine__the_point"</span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="nt">></span>HS<span class="w"> </span>retail<span class="w"> </span>machines<span class="nt"></field></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"view_id"</span><span class="w"> </span><span class="na">ref=</span><span class="s">"ir_ui_view_resbetterzipgeoview0"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"geo_repr"</span><span class="nt">></span>basic<span class="nt"></field></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"attribute_field_id"</span><span class="w"> </span><span class="na">ref=</span><span class="s">"base_geoengine_demo.field_geoengine_demo_automatic_retailing_machine__name"</span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"begin_color"</span><span class="nt">></span>#FF0000<span class="nt"></field></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"display_polygon_labels"</span><span class="w"> </span><span class="na">eval=</span><span class="s">"0"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"layer_opacity"</span><span class="nt">></span>0.8<span class="nt"></field></span><span class="w">
|
||
</span><span class="nt"></record></span>
|
||
</pre>
|
||
<ul class="simple">
|
||
<li>There is some new features in the LayerPanel.</li>
|
||
</ul>
|
||
<ol class="arabic simple">
|
||
<li>If you are logged in as an admin, you have the possibility to edit the layer by clicking on the edit button. This will open a dialog box.
|
||
Changes will appear in real time on the view.</li>
|
||
<li>If you are logged in as an admin, you can also change the domain of the layer. If you are logged in as a user, changes will not be
|
||
persisted in the database. Changes will appear in real time on the view.</li>
|
||
<li>If you are logged in as an admin, you can also change the sequence of the layers by sliding them over each other. If you are logged in as a user, changes will not be
|
||
persisted in the database.</li>
|
||
</ol>
|
||
<ul class="simple">
|
||
<li>Widget domain is now implemented for geo field This means that the geo-operators are also implemented and that there is the possibility to add a sub-domain.
|
||
If we want to add a domain that includes all the records that are displayed in the geoengine view (active_ids). We can use the two new operators :
|
||
“in active_ids” and “not in active_ids”. These will automatically replace the marker with ids. Note that the widget will indicate that the domain is invalid
|
||
because of the marker.</li>
|
||
<li>Creation of the RecordsPanel. This panel allows you to retrieve all active records. You can click on record to get the movement to the selected record.
|
||
Two magnifying glass are also available. You can click on the left one to zoom on the record. You can click on the right one to get the original zoom.</li>
|
||
<li>A search bar is also available. It allows you to perform a search into the RecordsPanel.</li>
|
||
<li>A button to open/close the panels is also available.</li>
|
||
<li>The module has been translated in French.</li>
|
||
<li>Now you can now make the geoengine view editable. Simply add editable attribute in the geoengine view.</li>
|
||
</ul>
|
||
<pre class="code xml literal-block">
|
||
<span class="nt"><geoengine</span><span class="w"> </span><span class="na">editable=</span><span class="s">"1"</span><span class="nt">></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"city"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"total_sales"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"the_geom"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"display_name"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><templates></span><span class="w">
|
||
</span><span class="nt"><t</span><span class="w"> </span><span class="na">t-name=</span><span class="s">"info_box"</span><span class="nt">></span><span class="w">
|
||
</span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"city"</span><span class="w"> </span><span class="na">widget=</span><span class="s">"badge"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"><ul></span><span class="w">
|
||
</span><span class="nt"><li></span>ZIP<span class="w"> </span>:<span class="w"> </span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"></li></span><span class="w">
|
||
</span><span class="nt"><li></span>Total<span class="w"> </span>Sales:<span class="w"> </span><span class="nt"><field</span><span class="w"> </span><span class="na">name=</span><span class="s">"total_sales"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
||
</span><span class="nt"></li></span><span class="w">
|
||
</span><span class="nt"></ul></span><span class="w">
|
||
</span><span class="nt"></t></span><span class="w">
|
||
</span><span class="nt"></templates></span><span class="w">
|
||
</span><span class="nt"></geoengine></span><span class="w">
|
||
|
||
</span>Thanks<span class="w"> </span>to<span class="w"> </span>that,<span class="w"> </span>you<span class="w"> </span>can<span class="w"> </span>create<span class="w"> </span>new<span class="w"> </span>records<span class="w"> </span>by<span class="w"> </span>drawing<span class="w"> </span>them<span class="w"> </span>directly<span class="w"> </span>in<span class="w"> </span>the<span class="w"> </span>geoengine<span class="w"> </span>view.<span class="w"> </span>You<span class="w"> </span>can<span class="w"> </span>also<span class="w"> </span>edit<span class="w"> </span>record<span class="w"> </span>in<span class="w"> </span>the<span class="w"> </span>same<span class="w"> </span>view.
|
||
</pre>
|
||
</div>
|
||
<div class="section" id="bug-tracker">
|
||
<h2><a class="toc-backref" href="#toc-entry-7">Bug Tracker</a></h2>
|
||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/geospatial/issues">GitHub Issues</a>.
|
||
In case of trouble, please check there if your issue has already been reported.
|
||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||
<a class="reference external" href="https://github.com/OCA/geospatial/issues/new?body=module:%20base_geoengine%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||
</div>
|
||
<div class="section" id="credits">
|
||
<h2><a class="toc-backref" href="#toc-entry-8">Credits</a></h2>
|
||
<div class="section" id="authors">
|
||
<h3><a class="toc-backref" href="#toc-entry-9">Authors</a></h3>
|
||
<ul class="simple">
|
||
<li>Camptocamp</li>
|
||
<li>ACSONE SA/NV</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="contributors">
|
||
<h3><a class="toc-backref" href="#toc-entry-10">Contributors</a></h3>
|
||
<ul class="simple">
|
||
<li>Nicolas Bessi <<a class="reference external" href="mailto:nicolas.bessi@camptocamp.com">nicolas.bessi@camptocamp.com</a>></li>
|
||
<li>Frederic Junod <<a class="reference external" href="mailto:frederic.junod@camptocamp.com">frederic.junod@camptocamp.com</a>></li>
|
||
<li>Yannick Payot <<a class="reference external" href="mailto:yannick.payot@camptocamp.com">yannick.payot@camptocamp.com</a>></li>
|
||
<li>Sandy Carter <<a class="reference external" href="mailto:sandy.carter@savoirfairelinux.com">sandy.carter@savoirfairelinux.com</a>></li>
|
||
<li>Laurent Mignon <<a class="reference external" href="mailto:laurent.mignon@acsone.eu">laurent.mignon@acsone.eu</a>></li>
|
||
<li>Jonathan Nemry <<a class="reference external" href="mailto:jonathan.nemry@acsone.eu">jonathan.nemry@acsone.eu</a>></li>
|
||
<li>David Lasley <<a class="reference external" href="mailto:dave@dlasley.net">dave@dlasley.net</a>></li>
|
||
<li>Daniel Reis <<a class="reference external" href="mailto:dgreis@sapo.pt">dgreis@sapo.pt</a>></li>
|
||
<li>Matthieu Dietrich <<a class="reference external" href="mailto:matthieu.dietrich@camptocamp.com">matthieu.dietrich@camptocamp.com</a>></li>
|
||
<li>Alan Ramos <<a class="reference external" href="mailto:alan.ramos@jarsa.com.mx">alan.ramos@jarsa.com.mx</a>></li>
|
||
<li>Damien Crier <<a class="reference external" href="mailto:damien.crier@camptocamp.com">damien.crier@camptocamp.com</a>></li>
|
||
<li>Cyril Gaudin <<a class="reference external" href="mailto:cyril.gaudin@camptocamp.com">cyril.gaudin@camptocamp.com</a>></li>
|
||
<li>Pierre Verkest <<a class="reference external" href="mailto:pverkest@anybox.fr">pverkest@anybox.fr</a>></li>
|
||
<li>Benjamin Willig <<a class="reference external" href="mailto:benjamin.willig@acsone.eu">benjamin.willig@acsone.eu</a>></li>
|
||
<li>Devendra Kavthekar <<a class="reference external" href="mailto:dkatodoo@gmail.com">dkatodoo@gmail.com</a>></li>
|
||
<li>Emanuel Cino <<a class="reference external" href="mailto:ecino@compassion.ch">ecino@compassion.ch</a>></li>
|
||
<li>Thomas Nowicki <<a class="reference external" href="mailto:thomas.nowicki@camptocamp.com">thomas.nowicki@camptocamp.com</a>></li>
|
||
<li>Alexandre Saunier <<a class="reference external" href="mailto:alexandre.saunier@camptocamp.com">alexandre.saunier@camptocamp.com</a>></li>
|
||
<li>Sandip Mangukiya <<a class="reference external" href="mailto:smangukiya@opensourceintegrators.com">smangukiya@opensourceintegrators.com</a>></li>
|
||
<li>Samuel Kouff <<a class="reference external" href="mailto:s.kouff@student.helmo.be">s.kouff@student.helmo.be</a>></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="maintainers">
|
||
<h3><a class="toc-backref" href="#toc-entry-11">Maintainers</a></h3>
|
||
<p>This module is maintained by the OCA.</p>
|
||
<a class="reference external image-reference" href="https://odoo-community.org">
|
||
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
||
</a>
|
||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||
mission is to support the collaborative development of Odoo features and
|
||
promote its widespread use.</p>
|
||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/geospatial/tree/16.0/base_geoengine">OCA/geospatial</a> project on GitHub.</p>
|
||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|