Skip to content

Commit

Permalink
Merge PR #1430 into 11.0
Browse files Browse the repository at this point in the history
Signed-off-by legalsylvain
  • Loading branch information
OCA-git-bot committed Oct 8, 2020
2 parents d6e49b4 + ab363b7 commit 1694897
Show file tree
Hide file tree
Showing 17 changed files with 769 additions and 0 deletions.
88 changes: 88 additions & 0 deletions web_widget_child_selector/README.rst
@@ -0,0 +1,88 @@
=========================
Web Widget Child Selector
=========================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/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%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/11.0/web_widget_child_selector
:alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-11-0/web-11-0-web_widget_child_selector
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/162/11.0
:alt: Try me on Runbot

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

This module allows to use a new widget for many2one fields that are made hierarchically.
Now, you can navigate easily between the hierarchy.

When we are using readonly, the behaviour is similar than Many2one, but on edition
we are able to select the parents and childs in order to navigate properly.

.. image:: https://raw.githubusercontent.com/web_widget_child_selector/static/description/edit_mode.png
:alt: Edition Screenshot

**Table of contents**

.. contents::
:local:

Usage
=====

Use child_selection widget on a field.
If necessary we can use child_selection_field on options in order to define
which field we will show on edition only.
For example, name instead of display_name.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_widget_child_selector%0Aversion:%2011.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
~~~~~~~

* Creu Blanca

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

* Enric Tobella <etobella@creublanca.es>

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.

This module is part of the `OCA/web <https://github.com/OCA/web/tree/11.0/web_widget_child_selector>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions web_widget_child_selector/__init__.py
@@ -0,0 +1 @@
from . import models
20 changes: 20 additions & 0 deletions web_widget_child_selector/__manifest__.py
@@ -0,0 +1,20 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
'name': 'Web Widget Child Selector',
'summary': "Widget used for navigation on hierarchy fields",
'version': '11.0.1.0.0',
'license': 'AGPL-3',
'author': 'Creu Blanca,Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/web',
'depends': [
'web',
],
'data': [
'views/assets.xml',
],
'qweb': [
'static/src/xml/widget_child_selector.xml',
],
}
1 change: 1 addition & 0 deletions web_widget_child_selector/models/__init__.py
@@ -0,0 +1 @@
from . import base
31 changes: 31 additions & 0 deletions web_widget_child_selector/models/base.py
@@ -0,0 +1,31 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import models


class Base(models.AbstractModel):
_inherit = 'base'

def _get_record_parents(self, field):
if not self or not hasattr(self, self._parent_name):
return []
return getattr(
self, self._parent_name
)._get_record_parents(field) + [(self.id, str(getattr(self, field)))]

def _get_record_direct_childs(self, field, domain):
if not hasattr(self, self._parent_name):
return []
return [(r.id, str(getattr(r, field))) for r in self.search([(
self._parent_name, '=', self.id or False
)] + domain)]

def get_record_direct_childs_parents(self, options, domain=False):
if not domain:
domain = []
field = options.get('child_selection_field', 'display_name')
return {
'childs': self._get_record_direct_childs(field, domain),
'parents': self._get_record_parents(field)
}
2 changes: 2 additions & 0 deletions web_widget_child_selector/readme/CONTRIBUTORS.rst
@@ -0,0 +1,2 @@
* Enric Tobella <etobella@creublanca.es>
* Jaime Arroyo <jaime.arroyo@creublanca.es>
8 changes: 8 additions & 0 deletions web_widget_child_selector/readme/DESCRIPTION.rst
@@ -0,0 +1,8 @@
This module allows to use a new widget for many2one fields that are made hierarchically.
Now, you can navigate easily between the hierarchy.

When we are using readonly, the behaviour is similar than Many2one, but on edition
we are able to select the parents and childs in order to navigate properly.

.. image:: /web_widget_child_selector/static/description/edit_mode.png
:alt: Edition Screenshot
4 changes: 4 additions & 0 deletions web_widget_child_selector/readme/USAGE.rst
@@ -0,0 +1,4 @@
Use child_selection widget on a field.
If necessary we can use child_selection_field on options in order to define
which field we will show on edition only.
For example, name instead of display_name.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1694897

Please sign in to comment.