[MIG] pos_usability_akretion: migrate to v18
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
# Copyright 2014-2021 Akretion France (http://www.akretion.com/)
|
# Copyright 2014-2024 Akretion France (https://www.akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "POS Usability",
|
"name": "POS Usability",
|
||||||
"version": "16.0.1.0.0",
|
"version": "18.0.1.0.0",
|
||||||
"category": "Point of sale",
|
"category": "Point of sale",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"summary": "Misc usability improvement for point of sale",
|
"summary": "Misc usability improvement for point of sale",
|
||||||
@@ -24,16 +24,15 @@ Akretion:
|
|||||||
|
|
||||||
""",
|
""",
|
||||||
"author": "Akretion",
|
"author": "Akretion",
|
||||||
"website": "http://www.akretion.com",
|
"website": "https://github.com/akretion/odoo-usability",
|
||||||
"depends": ["point_of_sale"],
|
"depends": ["point_of_sale"],
|
||||||
"data": [
|
"data": [
|
||||||
"report/pos.xml",
|
# "report/pos.xml", # TODO mig if needed
|
||||||
"views/report_pos_order.xml",
|
"views/report_pos_order.xml",
|
||||||
"views/pos_category.xml",
|
"views/pos_category.xml",
|
||||||
"views/pos_session.xml",
|
"views/pos_session.xml",
|
||||||
"views/pos_payment_method.xml",
|
"views/pos_payment_method.xml",
|
||||||
"views/pos_order.xml",
|
"views/pos_order.xml",
|
||||||
"views/product.xml",
|
|
||||||
],
|
],
|
||||||
"installable": False,
|
"installable": True,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,3 @@ from . import product
|
|||||||
from . import pos_category
|
from . import pos_category
|
||||||
from . import pos_payment_method
|
from . import pos_payment_method
|
||||||
from . import pos_order
|
from . import pos_order
|
||||||
from . import pos_session
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2017-2021 Akretion France (http://www.akretion.com/)
|
# Copyright 2017-2024 Akretion France (https://www.akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -13,16 +13,7 @@ class PosCategory(models.Model):
|
|||||||
help="The number of products under this point of sale category "
|
help="The number of products under this point of sale category "
|
||||||
"(children categories included)")
|
"(children categories included)")
|
||||||
|
|
||||||
# inspired by the code of odoo/addons/product/models/product_category.py
|
|
||||||
def _compute_product_count(self):
|
def _compute_product_count(self):
|
||||||
read_group_res = self.env['product.template'].read_group(
|
pto = self.env['product.template']
|
||||||
[('pos_categ_id', 'child_of', self.ids)],
|
for categ in self:
|
||||||
['pos_categ_id'], ['pos_categ_id'])
|
categ.product_count = pto.search_count([('pos_categ_ids', 'in', categ.id)])
|
||||||
group_data = dict(
|
|
||||||
(data['pos_categ_id'][0], data['pos_categ_id_count']) for data
|
|
||||||
in read_group_res)
|
|
||||||
for pos_categ in self:
|
|
||||||
product_count = 0
|
|
||||||
for sub_categ_id in pos_categ.search([('id', 'child_of', pos_categ.ids)]).ids:
|
|
||||||
product_count += group_data.get(sub_categ_id, 0)
|
|
||||||
pos_categ.product_count = product_count
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2024 Akretion France (http://www.akretion.com/)
|
# Copyright 2024 Akretion France (https://www.akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2021 Akretion France (http://www.akretion.com/)
|
# Copyright 2021-2024 Akretion France (https://www.akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -8,9 +8,7 @@ from odoo import fields, models
|
|||||||
class PosPaymentMethod(models.Model):
|
class PosPaymentMethod(models.Model):
|
||||||
_inherit = 'pos.payment.method'
|
_inherit = 'pos.payment.method'
|
||||||
_check_company_auto = True
|
_check_company_auto = True
|
||||||
_order = 'sequence, id'
|
|
||||||
|
|
||||||
outstanding_account_id = fields.Many2one(check_company=True)
|
outstanding_account_id = fields.Many2one(check_company=True)
|
||||||
receivable_account_id = fields.Many2one(check_company=True)
|
receivable_account_id = fields.Many2one(check_company=True)
|
||||||
journal_id = fields.Many2one(check_company=True)
|
journal_id = fields.Many2one(check_company=True)
|
||||||
sequence = fields.Integer(default=10)
|
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
# Copyright 2023 Akretion France (http://www.akretion.com/)
|
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import models
|
|
||||||
|
|
||||||
|
|
||||||
class PosSession(models.Model):
|
|
||||||
_inherit = 'pos.session'
|
|
||||||
|
|
||||||
def _loader_params_pos_payment_method(self):
|
|
||||||
res = super()._loader_params_pos_payment_method()
|
|
||||||
res['search_params']['order'] = "sequence, id"
|
|
||||||
return res
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2017-2021 Akretion France (http://www.akretion.com/)
|
# Copyright 2017-2024 Akretion France (https://www.akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -10,4 +10,3 @@ class ProductTemplate(models.Model):
|
|||||||
|
|
||||||
available_in_pos = fields.Boolean(tracking=True, default=True)
|
available_in_pos = fields.Boolean(tracking=True, default=True)
|
||||||
to_weight = fields.Boolean(tracking=True)
|
to_weight = fields.Boolean(tracking=True)
|
||||||
pos_categ_id = fields.Many2one(tracking=True)
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright 2015-2021 Akretion France (http://www.akretion.com/)
|
Copyright 2015-2024 Akretion France (https://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
name="%(product.product_template_action_all)d"
|
name="%(product.product_template_action_all)d"
|
||||||
icon="fa-th-list"
|
icon="fa-th-list"
|
||||||
type="action"
|
type="action"
|
||||||
context="{'search_default_pos_categ_id': active_id}">
|
context="{'search_default_pos_categ_ids': id}">
|
||||||
<div class="o_form_field o_stat_info">
|
<div class="o_form_field o_stat_info">
|
||||||
<span class="o_stat_value"><field name="product_count"/></span>
|
<span class="o_stat_value"><field name="product_count"/></span>
|
||||||
<span class="o_stat_text"> Products</span>
|
<span class="o_stat_text"> Products</span>
|
||||||
|
|||||||
@@ -1,31 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright 2023 Akretion France (http://www.akretion.com/)
|
Copyright 2023-2024 Akretion France (https://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<odoo>
|
<odoo>
|
||||||
|
|
||||||
<record id="view_pos_pos_form" model="ir.ui.view">
|
|
||||||
<field name="model">pos.order</field>
|
|
||||||
<field name="inherit_id" ref="point_of_sale.view_pos_pos_form"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<xpath expr="//field[@name='lines']/form//field[@name='full_product_name']" position="before">
|
|
||||||
<field name="product_id"/>
|
|
||||||
</xpath>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
<record id="view_pos_order_tree" model="ir.ui.view">
|
<record id="view_pos_order_tree" model="ir.ui.view">
|
||||||
<field name="model">pos.order</field>
|
<field name="model">pos.order</field>
|
||||||
<field name="inherit_id" ref="point_of_sale.view_pos_order_tree"/>
|
<field name="inherit_id" ref="point_of_sale.view_pos_order_tree"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="amount_total" position="after">
|
<field name="amount_total" position="after">
|
||||||
<field name="payments_char" optional="show"/>
|
<field name="payments_char" optional="show"/>
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2023 Akretion France (http://www.akretion.com/)
|
Copyright 2023-2024 Akretion France (https://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<odoo>
|
<odoo>
|
||||||
|
|
||||||
<record id="pos_payment_method_view_tree" model="ir.ui.view">
|
|
||||||
<field name="model">pos.payment.method</field>
|
|
||||||
<field name="inherit_id" ref="point_of_sale.pos_payment_method_view_tree"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="name" position="before">
|
|
||||||
<field name="sequence" widget="handle"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="pos_payment_method_view_form" model="ir.ui.view">
|
<record id="pos_payment_method_view_form" model="ir.ui.view">
|
||||||
<field name="model">pos.payment.method</field>
|
<field name="model">pos.payment.method</field>
|
||||||
<field name="inherit_id" ref="point_of_sale.pos_payment_method_view_form"/>
|
<field name="inherit_id" ref="point_of_sale.pos_payment_method_view_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="company_id" position="after">
|
<field name="company_id" position="after">
|
||||||
<!-- company_id without groups="base.group_multi_company" is missing -->
|
<!-- company_id without groups="base.group_multi_company" is missing -->
|
||||||
<field name="company_id" invisible="1"/>
|
<field name="company_id" invisible="1"/>
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright 2021 Akretion France (http://www.akretion.com/)
|
Copyright 2021-2024 Akretion France (https://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -13,19 +13,19 @@
|
|||||||
<field name="inherit_id" ref="point_of_sale.view_pos_session_form"/>
|
<field name="inherit_id" ref="point_of_sale.view_pos_session_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<button name="show_journal_items" position="after">
|
<button name="show_journal_items" position="after">
|
||||||
<button name="%(point_of_sale.action_report_pos_order_all)d" type="action" class="oe_stat_button" icon="fa-table" string="Stats" context="{'search_default_session_id': active_id}"/>
|
<button name="%(point_of_sale.action_report_pos_order_all)d" type="action" class="oe_stat_button" icon="fa-table" string="Stats" context="{'search_default_session_id': id}"/>
|
||||||
</button>
|
</button>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="view_pos_session_tree" model="ir.ui.view">
|
<record id="view_pos_session_tree" model="ir.ui.view">
|
||||||
<field name="model">pos.session</field>
|
<field name="model">pos.session</field>
|
||||||
<field name="inherit_id" ref="point_of_sale.view_pos_session_tree"/>
|
<field name="inherit_id" ref="point_of_sale.view_pos_session_tree"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="state" position="attributes">
|
<field name="state" position="attributes">
|
||||||
<attribute name="decoration-success">state == 'opened'</attribute>
|
<attribute name="decoration-success">state == 'opened'</attribute>
|
||||||
</field>
|
|
||||||
</field>
|
</field>
|
||||||
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Copyright 2015-2021 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- put option "available in POS" at the top of product form view -->
|
|
||||||
<record id="product_template_form_view" model="ir.ui.view">
|
|
||||||
<field name="name">usability.pos.product.template</field>
|
|
||||||
<field name="model">product.template</field>
|
|
||||||
<field name="inherit_id" ref="point_of_sale.product_template_form_view"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<xpath expr="//group[@name='pos']//field[@name='available_in_pos']" position="attributes">
|
|
||||||
<attribute name="invisible">1</attribute>
|
|
||||||
</xpath>
|
|
||||||
<xpath expr="//div[@name='options']//field[@name='sale_ok']/.." position="after">
|
|
||||||
<div name="available_in_pos">
|
|
||||||
<field name="available_in_pos"/>
|
|
||||||
<label for="available_in_pos"/>
|
|
||||||
</div>
|
|
||||||
</xpath>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="product_template_search_view" model="ir.ui.view">
|
|
||||||
<field name="name">pos_usability.product.template.search</field>
|
|
||||||
<field name="model">product.template</field>
|
|
||||||
<field name="inherit_id" ref="product.product_template_search_view"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="categ_id" position="after">
|
|
||||||
<field name="pos_categ_id" filter_domain="[('pos_categ_id', 'child_of', raw_value)]"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright 2021 Akretion France (http://www.akretion.com/)
|
Copyright 2021-2024 Akretion France (https://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
|
|||||||
Reference in New Issue
Block a user