mirror of
https://gitlab.com/flectra-community/server-ux.git
synced 2024-12-23 12:51:48 +00:00
152 lines
5.2 KiB
ReStructuredText
152 lines
5.2 KiB
ReStructuredText
=======================
|
|
Barcode action launcher
|
|
=======================
|
|
|
|
..
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!! This file is generated by oca-gen-addon-readme !!
|
|
!! changes will be overwritten. !!
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!! source digest: sha256:87fc995f6dec3e033f207c35131f848aaf3987733def7d2e096696664e9c93df
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
.. |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%2Fserver--ux-lightgray.png?logo=github
|
|
:target: https://github.com/OCA/server-ux/tree/17.0/barcode_action
|
|
:alt: OCA/server-ux
|
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
:target: https://translation.odoo-community.org/projects/server-ux-17-0/server-ux-17-0-barcode_action
|
|
: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-ux&target_branch=17.0
|
|
:alt: Try me on Runboat
|
|
|
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
|
|
This module allows to use barcodes as launchers of actions.
|
|
|
|
The action will launch a function that uses the barcode in order to
|
|
return an action.
|
|
|
|
**Table of contents**
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
Usage
|
|
=====
|
|
|
|
Actions must be configured with the following data in the context: \*
|
|
model: Model where we can find the method (required) \* method: Method
|
|
to execute (required) \* res_id: Id as base (optional)
|
|
|
|
The method must return an action. Installing this module with demo data
|
|
will install a demo application that allows the system administrator to
|
|
find a partner by the external reference encoded in a barcode.
|
|
|
|
Go to *Settings / Find partners* and scan a barcode that contains the
|
|
internal reference of an existing partner. As soon as you read the
|
|
barcode the system will redirect you to that partner's form view.
|
|
|
|
Technical implementation of this example:
|
|
|
|
Action:
|
|
|
|
::
|
|
|
|
<act_window id="res_partner_find"
|
|
name="Find Partner"
|
|
res_model="barcode.action"
|
|
view_mode="form"
|
|
view_type="form"
|
|
context="{'default_model': 'res.partner', 'default_method': 'find_res_partner_by_ref_using_barcode'}"
|
|
target="new"/>
|
|
|
|
<menuitem id="menu_orders_customers" name="Find partners"
|
|
action="res_partner_find"
|
|
parent="base.menu_administration"/>
|
|
|
|
Python code:
|
|
|
|
::
|
|
|
|
import json
|
|
from odoo import api, models, _
|
|
from odoo.tools.safe_eval import safe_eval
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
@api.multi
|
|
def find_res_partner_by_ref_using_barcode(self, barcode):
|
|
partner = self.search([('ref', '=', barcode)], limit=1)
|
|
if not partner:
|
|
action = self.env.ref('res_partner_find')
|
|
result = action.read()[0]
|
|
context = safe_eval(result['context'])
|
|
context.update({
|
|
'default_state': 'warning',
|
|
'default_status': _('Partner with Internal Reference '
|
|
'%s cannot be found') % barcode
|
|
})
|
|
result['context'] = json.dumps(context)
|
|
return result
|
|
action = self.env.ref('base.action_partner_form')
|
|
result = action.read()[0]
|
|
res = self.env.ref('base.view_partner_form', False)
|
|
result['views'] = [(res and res.id or False, 'form')]
|
|
result['res_id'] = partner.id
|
|
return result
|
|
|
|
Bug Tracker
|
|
===========
|
|
|
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-ux/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-ux/issues/new?body=module:%20barcode_action%0Aversion:%2017.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
|
|
* ForgeFlow
|
|
|
|
Contributors
|
|
------------
|
|
|
|
- Enric Tobella <etobella@creublanca.es>
|
|
- Jordi Ballester <jordi.ballester@forgeflow.com>
|
|
- Foram Shah <foram.shah@initos.com>
|
|
- Dhara Solanki <dhara.solanki@initos.com>
|
|
- `APSL <https://apsl.tech>`__:
|
|
|
|
- Miquel Pascual <mpascual@apsl.net>
|
|
|
|
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/server-ux <https://github.com/OCA/server-ux/tree/17.0/barcode_action>`_ project on GitHub.
|
|
|
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |