Metadata-Version: 2.1
Name: odoo-addon-base_url
Version: 18.0.1.0.0.8
Requires-Python: >=3.10
Requires-Dist: odoo==18.0.*
Summary: Abstract module/mixin to manage clean url on odoo record
Home-page: https://github.com/OCA/server-tools
License: AGPL-3
Author: Akretion, ACSONE SA/NV, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 18.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

========
Base Url
========

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

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-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%2Fserver--tools-lightgray.png?logo=github
    :target: https://github.com/OCA/server-tools/tree/18.0/base_url
    :alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-base_url
    :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/server-tools&target_branch=18.0
    :alt: Try me on Runboat

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

The aim of this module is to provide a generic mixin for building urls
on records.

The native odoo implementation of a record url is based on having an
"id" in the url, this module provides an alternative way of doing it.
Urls are generated and stored in an unique table (to ensure unicity).
Redirections are also managed in case of url changes.

This project was initial build for shopinvader as we need to have unique
url for the connected webshop. But this concept can be reused in other
cases and even replace the odoo url implementation.

**Table of contents**

.. contents::
   :local:

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

To use this module, you need to inherit the ``abstract.url`` model and
override the ``_get_keyword_fields`` method to include your custom url
fields. By default, the ``_get_keyword_fields`` method returns the
record ``name``.

Here is an example of how to override the ``_get_keyword_fields`` method
to include the ``default_code`` field for ``product.template`` records:

.. code:: python


   class ProductTemplate(models.Model):
       _inherit = ["product.template", "abstract.url"]
       _name = "product.template"

       def _get_keyword_fields(self):
           return super()._get_keyword_fields() + ["default_code"]

Your product template records will now have an ``url_key`` field that is
generated from the ``name`` and ``default_code`` fields and a
``redirect_url_key`` field that will contain a list of redirect URLs
(old ``url_key`` field values).

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/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/server-tools/issues/new?body=module:%20base_url%0Aversion:%2018.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
-------

* Akretion
* ACSONE SA/NV

Contributors
------------

- Sebastien Beau sebastien.beau@akretion.com
- Laurent Mignon laurent.mignon@acsone.eu
- Florian Mounier florian.mounier@akretion.com

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-sebastienbeau| image:: https://github.com/sebastienbeau.png?size=40px
    :target: https://github.com/sebastienbeau
    :alt: sebastienbeau

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

|maintainer-sebastienbeau| 

This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/18.0/base_url>`_ project on GitHub.

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