oca-technical/odoo-bringout-oca-geospatial-web_view_leaflet_map/web_view_leaflet_map
Ernad Husremovic d62fb585d6 Hide irrelevant fields for Line Item Extraction rules
- Make target_field hidden and not required for line_item rules
- Hide Pattern Matching section for line_item rules
- Hide Data Type and Parsing section for line_item rules
- Hide stop_on_match field for line_item rules
- Hide Transformation and Validation tabs for line_item rules
- Clean up model: remove required=True from target_field and match_pattern

Version: 16.0.1.0.20

🤖 assisted by claude

🤖 assisted by claude
2025-11-05 23:02:40 +01:00
..
i18n Hide irrelevant fields for Line Item Extraction rules 2025-11-05 23:02:40 +01:00
models Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00
readme Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00
static Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00
__init__.py Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00
__manifest__.py Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00
hooks.py Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00
README.rst Initial commit: OCA Technical packages (595 packages) 2025-08-29 15:43:03 +02:00

================================
Leaflet Map View (OpenStreetMap)
================================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:f494ec35cbd29ae4bcc5e46a7a30bf5b2261bd449a3b0ba08a95a70d45dbea12
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
    :target: https://odoo-community.org/page/development-status
    :alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fgeospatial-lightgray.png?logo=github
    :target: https://github.com/OCA/geospatial/tree/16.0/web_view_leaflet_map
    :alt: OCA/geospatial
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/geospatial-16-0/geospatial-16-0-web_view_leaflet_map
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/geospatial&target_branch=16.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends odoo views, to add a new kind of view, named ``leaflet_map``
that is using the Leaflet javascript library to use maps. (https://leafletjs.com/)
This library is for exemple, used in the OpenStreetMap project. (https://www.openstreetmap.org/)

You can see a simple usage in the module ``web_view_leaflet_map_partner`` in the
same OCA repository that displays your contact in a map, if latitude and longitude are
defined. (To define latitude and longitude, refer to the Odoo module ``base_geolocalize``)

.. figure:: https://raw.githubusercontent.com/OCA/geospatial/16.0/web_view_leaflet_map/static/description/view_res_partner_map_1.png

.. figure:: https://raw.githubusercontent.com/OCA/geospatial/16.0/web_view_leaflet_map/static/description/view_res_partner_map_2.png

.. IMPORTANT::
   This is an alpha version, the data model and design can change at any time without warning.
   Only for development or testing purpose, do not use in production.
   `More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
   :local:

Configuration
=============

* See configuration of the module ``web_leaflet_lib``.

Development
===========

Create a new view :

.. code-block:: xml

    <record id="view_my_model_map" model="ir.ui.view">
        <field name="model">my.model</field>
        <field name="arch" type="xml">
            <leaflet_map
                    field_latitude="FIELD_LATITUDE"
                    field_longitude="FIELD_LONGITUDE"
                    field_title="FIELD_TITLE"
                    field_address="FIELD_ADDRESS"
                    field_marker_icon_image="FIELD_MARKER_ICON_IMAGE"
                >
                <field name="__last_update"/>
                <field name="FIELD_LATITUDE"/>
                <field name="FIELD_LONGITUDE"/>
                <field name="FIELD_TITLE"/>
                <field name="FIELD_ADDRESS"/>
            </leaflet_map>
        </field>
    </record>

1. FIELD_LATITUDE and FIELD_LONGITUDE are the name of the fields that contains GPS coordinates of the model.
2. FIELD_TITLE will be used when the popup is displayed, as a title.
3. FIELD_ADDRESS will be used when the popup is displayed to display the adress.
4. (optional) FIELD_MARKER_ICON_IMAGE, is the name of the image field to place as an icon
   of the marker.
   Note: You can set extra settings ``marker_icon_size_x``, ``marker_icon_size_y``, to define
   the size of the image, and ``marker_popup_anchor_x``, ``marker_popup_anchor_y`` to define
   the position of the popup.

Map options :

- ``default_zoom`` : define the default zoom value. (7 if not defined)
- ``max_zoom`` : define the max zoom value. (19 if not defined)
- ``zoom_snap`` : define the zoom level in each change. (1 if not defined)

* Create or update an action for the model

.. code-block:: xml

    <record id="my_module.action_my_model" model="ir.actions.act_window">
        <field name="view_mode">tree,form,leaflet_map</field>
    </record>

**Library Update**

For the time being, the module embed the lealflet.js library version 1.8.0 ( released on April 18, 2022.)

If a new release is out:

- please download it here https://leafletjs.com/download.html
- update the javascript, css and images, present in the folder ``static/lib/leaflet``
- test the features
- make a Pull Request

**Default position in the map**

By default, the position of the map is defined by the user, in the function
``get_default_leaflet_position``. It returns the position of the current company, if defined.
you can overload this function globally, or per model.

Known issues / Roadmap
======================

* For the time being, at the start of the map loading, the call of ``invalidateSize()``
  is required. We should investigate why and try to remove that call.
  see https://github.com/Leaflet/Leaflet/issues/3002#issuecomment-93836022

* For the time being, the map has "Markers" and allow to display odoo items
  if longitude and latitude are available. We could imagine other kind of usages,
  with Polylines, Polygons, etc...
  See all the leaflet options : https://leafletjs.com/reference.html

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/geospatial/issues>`_.
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
`feedback <https://github.com/OCA/geospatial/issues/new?body=module:%20web_view_leaflet_map%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* GRAP

Contributors
~~~~~~~~~~~~

* Sylvain LE GAL (https://www.twitter.com/legalsylvain)

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

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.

.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
    :target: https://github.com/legalsylvain
    :alt: legalsylvain

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-legalsylvain| 

This module is part of the `OCA/geospatial <https://github.com/OCA/geospatial/tree/16.0/web_view_leaflet_map>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.