Merge pull request #1 from hydracp9/new_module_pos

new module for request
This commit is contained in:
mohammed Alkhazraji 2026-02-02 22:33:34 +03:00 committed by GitHub
commit 0c1ec8ecda
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 519 additions and 0 deletions

View File

@ -0,0 +1,30 @@
==================================================================
Restriction of POS User
==================================================================
Allows setting the allowed Points of Sale for POS users and restricts access for other Points.
Restrictions work only for users with role **Point of Sale / User**.
After configuration, users will be able to see only the allowed Points of Sale, POS orders, and POS payments that related to these Points.
Users with role **Point of Sale / Manager** can view all Points of Sale, POS orders, and Pos payments.
Configuration
=============
Goto **Settings** \> **Users and Companies** \> **Users**.
Choose a user and set allowed Points of Sale on the tab **Access Rights**.
Support and development
=======================
Contact us:
* support@garazd.biz
* https://garazd.biz/page/contactus

View File

@ -0,0 +1 @@
from . import models

View File

@ -0,0 +1,24 @@
# Copyright © 2018 Garazd Creation (https://garazd.biz)
# @author: Yurii Razumovskyi (support@garazd.biz)
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.html).
{
'name': 'Restriction of POS User',
'version': '14.0.1.0.1',
'category': 'Point of Sale',
'author': 'Garazd Creation',
'license': 'LGPL-3',
'summary': 'Only allowed points of sale for POS users',
'images': ['static/description/banner.png', 'static/description/icon.png'],
'depends': [
'point_of_sale',
],
'data': [
'security/pos_user_restrict_security.xml',
'views/res_users_views.xml',
],
'support': 'support@garazd.biz',
'application': False,
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,14 @@
.. _changelog:
Changelog
=========
`14.0.1.0.1`
------------
- Remove deprecetad methods.
`14.0.1.0.0`
------------

View File

@ -0,0 +1 @@
from . import res_users

View File

@ -0,0 +1,18 @@
from odoo import fields, models
class ResUsers(models.Model):
_inherit = 'res.users'
pos_config_ids = fields.Many2many(
comodel_name='pos.config',
string='Allowed POS',
help="Allowed Points of Sales for the user. POS managers can use all POS.",
)
def write(self, values):
res = super(ResUsers, self).write(values)
if 'pos_config_ids' in values:
self.env['ir.model.access'].call_cache_clearing_methods()
self.env['ir.rule'].clear_caches()
return res

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="1">
<record id="point_of_sale_rule_user_config" model="ir.rule">
<field name="name">Show only allowed POS configs for User</field>
<field name="model_id" ref="point_of_sale.model_pos_config"/>
<field name="domain_force">[('id', 'in', user.pos_config_ids.ids)]</field>
<field name="groups" eval="[(4, ref('point_of_sale.group_pos_user'))]"/>
</record>
<record id="point_of_sale_rule_manager_config" model="ir.rule">
<field name="name">All POS configs for Manager.</field>
<field name="model_id" ref="point_of_sale.model_pos_config"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('point_of_sale.group_pos_manager'))]"/>
</record>
<record id="point_of_sale_rule_user_order" model="ir.rule">
<field name="name">Show POS Orders only for allowed POS configs.</field>
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field name="domain_force">[('config_id', 'in', user.pos_config_ids.ids)]</field>
<field name="groups" eval="[(4, ref('point_of_sale.group_pos_user'))]"/>
</record>
<record id="point_of_sale_rule_manager_order" model="ir.rule">
<field name="name">Show All POS Orders for Manager.</field>
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('point_of_sale.group_pos_manager'))]"/>
</record>
<record id="point_of_sale_rule_user_payment" model="ir.rule">
<field name="name">Show POS Payments only for allowed POS configs.</field>
<field name="model_id" ref="point_of_sale.model_pos_payment"/>
<field name="domain_force">[('session_id.config_id', 'in', user.pos_config_ids.ids)]</field>
<field name="groups" eval="[(4, ref('point_of_sale.group_pos_user'))]"/>
</record>
<record id="point_of_sale_rule_manager_payment" model="ir.rule">
<field name="name">Show All POS Payments for Manager.</field>
<field name="model_id" ref="point_of_sale.model_pos_payment"/>
<field name="domain_force">[(1, '=', 1)]</field>
<field name="groups" eval="[(4, ref('point_of_sale.group_pos_manager'))]"/>
</record>
</data>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,363 @@
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">
<div class="row mt-3">
<ul class="offset-3 col-6 text-left d-md-none list-unstyled pt-5">
<li class="border-top border-bottom"><div class="my-2 mx-sm-2" style="color: #6F649A;"><i class="fa fa-check-circle"></i> Community</div></li>
<li class="border-bottom"><div class="my-2 mx-sm-2" style="color: #694D65;"><i class="fa fa-check-circle"></i> Enterprise</div></li>
</ul>
<div class="col-12 text-right d-none d-md-block">
<span class="m-2" style="float: right; background-color: #694D65; border-color: #694D65; color: #FFFFFF; padding: 5px 18px; border-radius: 15px 0 15px 0; opacity: 1;"><i class="fa fa-check"></i> Enterprise</span>
<span class="m-2" style="float: right; background-color: #6F649A; border-color: #6F649A; color: #FFFFFF; padding: 5px 18px; border-radius: 15px 0 15px 0; opacity: 1;"><i class="fa fa-check"></i> Community</span>
</div>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">
<div class="row oe_spaced">
<h2 class="h1 col-12 text-center" style="color: #154577; font-weight: 900; font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">Manage POS user's access rights to Points, Sessions, and Orders.</h2>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">
<div class="row oe_spaced">
<div class="col-12">
<div class="h2 text-left ml8" style="color: #FEA621;"><i class="fa fa-newspaper-o mr8"></i>Description</div>
<div class="media p-2 pt-4 overflow-hidden" style="border-color: #FEA621 !important; border-radius: 0 15px 0 0; border-top-style: solid; border-right-style: solid;">
<div class="py-2 px-md-5 lead w-100" style="line-height: 2.5rem;"><p>In cases, when your business needs to restrict access to some Points of Sales for your employees, this module allows solving these requirements.</p>
<ul class="fa-ul">
<li><span class="fa-li"><i class="fa fa-check text-primary"></i></span>Restrictions work only for users with the role "Point of Sale / User".</li>
<li><span class="fa-li"><i class="fa fa-check text-primary"></i></span>After configuration, users will be able to see only allowed Points of Sale, POS orders and payments related to them.</li>
<li><span class="fa-li"><i class="fa fa-check text-primary"></i></span>Users with the role "Point of Sale / Manager" have full access to all Points of Sale, POS orders, sessions and payments.</li>
<li><span class="fa-li"><i class="fa fa-check text-primary"></i></span>Simply configurable from the user settings form.</li>
</ul></div>
</div>
</div>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">
<div class="row oe_spaced">
<div class="col-12">
<div class="h2 text-left ml8" style="color: #FEA621;"><i class="fa fa-check-square-o mr8"></i>Benefits</div>
<div class="s_features_grid p-2 pt-4 o_colored_level" data-snippet="s_features_grid" data-name="Features Grid" style="border-color: #FEA621 !important; border-radius: 0 15px 0 0; border-top-style: solid; border-right-style: solid; background-color: #ffa81f14;">
<div class="container p-0">
<div class="row px-md-5">
<div class="col-lg-6 s_col_no_bgcolor pb24">
<div class="row">
<div class="col-lg-12 o_colored_level" data-name="Box">
<i class="s_features_grid_icon fa fa-2x float-left mr32 mr-3 bg-warning fa-smile-o rounded-circle" style="line-height:5rem; height:5rem; width:5rem; text-align:center; float:left;"></i>
<div class="s_features_grid_content">
<div class="h4 pt-2">Easy &amp; Simple</div>
<p>Easy to activate and configure</p>
</div>
</div>
</div>
</div>
<div class="col-lg-6 s_col_no_bgcolor pb24">
<div class="row">
<div class="col-lg-12 o_colored_level" data-name="Box">
<i class="s_features_grid_icon fa fa-2x float-left mr32 mr-3 bg-warning fa-check-square-o rounded-circle" style="line-height:5rem; height:5rem; width:5rem; text-align:center; float:left;"></i>
<div class="s_features_grid_content">
<div class="h4 pt-2">Tested</div>
<p>Include unit tests</p>
</div>
</div>
</div>
</div>
<div class="col-lg-6 s_col_no_bgcolor pb24">
<div class="row">
<div class="col-lg-12 o_colored_level" data-name="Box">
<i class="s_features_grid_icon fa fa-2x float-left mr32 mr-3 bg-warning fa-support rounded-circle" style="line-height:5rem; height:5rem; width:5rem; text-align:center; float:left;"></i>
<div class="s_features_grid_content">
<div class="h4 pt-2">Support</div>
<p>Free 30 days support and 180 days bug-fixing</p>
</div>
</div>
</div>
</div>
<div class="col-lg-6 s_col_no_bgcolor pb24">
<div class="row">
<div class="col-lg-12 o_colored_level" data-name="Box">
<i class="s_features_grid_icon fa fa-2x float-left mr32 mr-3 bg-dark fa-search rounded-circle" style="line-height:5rem; height:5rem; width:5rem; text-align:center; float:left;"></i>
<div class="s_features_grid_content">
<div class="h4 pt-2">Try me</div>
<p>Demo &amp; Test. Click on the "Live Preview" button</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">
<div class="row oe_spaced">
<div class="col-12">
<section class="oe_container" style="font-family: 'Montserrat','Odoo Unicode Support Noto',sans-serif; line-height: 2rem;">
<div class="h2 text-left ml8 pt-5" style="color: #FEA621;"><i class="fa fa-gears mr8"></i>Configuration</div>
<div class="media p-2 pt-4 border-top border-right" style="border-color: #FEA621 !important; border-radius: 0 15px 0 0;">
<div class="media-body">
<div class="py-2 px-md-5" style="line-height: 2rem;">
Go to the menu "<b>Settings</b>" - "<b>Users</b>", select a user and specify points of sale that will be permitted for the current user in the "<b>Allowed POS</b>" field.
</div>
<div class="text-center my-5 mx-md-5">
<img src="pos_user_set_allowed_points_of_sale.png" class="w-100 img-fluid rounded shadow-lg border" alt="Set allowed points of sale in Odoo 14.0 POS">
</div>
<div class="py-2 px-md-5" style="line-height: 2rem;">
<div class="alert alert-info" role="alert">
Changes will be applied immediately after saving.
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</section>
<section class="oe_container">
<div class="row oe_spaced">
<div class="col-sm-12 col-xs-12">
<div class="col-12 offset-md-3 col-md-6 offset-lg-4 col-lg-4 text-center">
<h3 class="oe_slogan" style="background-color: #fea621; border-color: #fea621; color: #FFFFFF; padding: 5px 28px; border-radius: 15px 0 15px 0; opacity: 1;">Configuration</h3>
</div>
<p class="lead ml32">To configure please follow these steps:</p>
<ul class="ml32">
<li>Go to the <b>Settings</b> - <b>Users</b> menu.</li>
<li>Set up the <b>Allowed POS</b> in the user form.</li>
<li>Changes will be applied immediately after saving.</li>
</ul>
<div class="p-0 offset-1 col-10 offset-xl-2 col-xl-8 oe_demo oe_screenshot oe_spaced">
<img src="user_settings_pos.jpg" style="width: 100%; max-width: 100%;" alt="Restrict POS Users to allowed Points of Sale in Odoo 14.0 Restriction of POS User configuration" title="Limit POS Users to allowed Points of Sale in Odoo 14.0">
</div>
</div>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat','Odoo Unicode Support Noto',sans-serif;">
<div class="row oe_spaced">
<div class="col-12">
<div class="h2 text-left pl-2 pt-3" style="color: #FEA621; font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">Related Modules</div>
<div class="mb-3 bg-light" style="border-color:#FEA621 !important; border-radius: 0 15px 0 0; border-top-style: solid; border-right-style: solid;">
<div id="related_modules" class="carousel slide mt-2 mx-3" data-ride="carousel" data-interval="15000" data-pause="hover">
<div class="carousel-inner">
<div class="carousel-item row active" style="min-height: 0px;">
<div class="col-xs-12 col-sm-4 col-md-4 my-4 px-3" style="float:left">
<a href="https://apps.odoo.com/apps/modules/14.0/website_sale_address/" target="_blank">
<div class="card shadow-sm border rounded deep-1 deep_hover">
<img class="img img-responsive center-block border-bottom w-100" src="banner_website_sale_address.png" alt="Odoo App eCommerce Address Management" title="eCommerce Address Management | eCommerce Billing and Shipping Address Fields | Odoo e-commerce extension | Odoo Express Checkout">
<div class="card-body">
<div class="card-title h5 text-nowrap text-truncate" title="eCommerce Address Management">eCommerce Address Management</div>
<p class="card-text small text-nowrap text-truncate" title="eCommerce Billing and Shipping Address Fields | Odoo e-commerce extension | Odoo Express Checkout">eCommerce Billing and Shipping Address Fields | Odoo e-commerce extension | Odoo Express Checkout</p>
</div>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 my-4 px-3" style="float:left">
<a href="https://apps.odoo.com/apps/modules/14.0/garazd_product_label_pro/" target="_blank">
<div class="card shadow-sm border rounded deep-1 deep_hover">
<img class="img img-responsive center-block border-bottom w-100" src="banner_garazd_product_label_pro.png" alt="Odoo App Product Label Builder" title="Product Label Builder | Product Barcode Label Building and Printing | Professional Tool to Print Labels | Barcode Product Label Builder | Product Label Designer | Sticker Label Maker | Dymo Label Maker | Barcode Label Generator | Direct Print">
<div class="card-body">
<div class="card-title h5 text-nowrap text-truncate" title="Product Label Builder">Product Label Builder</div>
<p class="card-text small text-nowrap text-truncate" title="Product Barcode Label Building and Printing | Professional Tool to Print Labels | Barcode Product Label Builder | Product Label Designer | Sticker Label Maker | Dymo Label Maker | Barcode Label Generator | Direct Print">Product Barcode Label Building and Printing | Professional Tool to Print Labels | Barcode Product Label Builder | Product Label Designer | Sticker Label Maker | Dymo Label Maker | Barcode Label Generator | Direct Print</p>
</div>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 my-4 px-3" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/advert_olx/" target="_blank">
<div class="card shadow-sm border rounded deep-1 deep_hover">
<img class="img img-responsive center-block border-bottom w-100" src="banner_advert_olx.png" alt="Odoo App Odoo OLX Integration" title="Odoo OLX Integration | Odoo OLX Integration | OLX API">
<div class="card-body">
<div class="card-title h5 text-nowrap text-truncate" title="Odoo OLX Integration">Odoo OLX Integration</div>
<p class="card-text small text-nowrap text-truncate" title="Odoo OLX Integration | OLX API">Odoo OLX Integration | OLX API</p>
</div>
</div>
</a>
</div>
</div>
<div class="carousel-item row" style="min-height: 0px;">
<div class="col-xs-12 col-sm-4 col-md-4 my-4 px-3" style="float:left">
<a href="https://apps.odoo.com/apps/modules/14.0/website_sale_facebook_pixel/" target="_blank">
<div class="card shadow-sm border rounded deep-1 deep_hover">
<img class="img img-responsive center-block border-bottom w-100" src="banner_website_sale_facebook_pixel.png" alt="Odoo App Facebook Pixel eCommerce" title="Facebook Pixel eCommerce | eCommerce Facebook Pixel | Meta Pixel | Track Events | Website events tracking | Facebook Pixel Integration | Website Tracking | Add eCommerce events to product and category website pages">
<div class="card-body">
<div class="card-title h5 text-nowrap text-truncate" title="Facebook Pixel eCommerce">Facebook Pixel eCommerce</div>
<p class="card-text small text-nowrap text-truncate" title="eCommerce Facebook Pixel | Meta Pixel | Track Events | Website events tracking | Facebook Pixel Integration | Website Tracking | Add eCommerce events to product and category website pages">eCommerce Facebook Pixel | Meta Pixel | Track Events | Website events tracking | Facebook Pixel Integration | Website Tracking | Add eCommerce events to product and category website pages</p>
</div>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 my-4 px-3" style="float:left">
<a href="https://apps.odoo.com/apps/modules/14.0/facebook_shop/" target="_blank">
<div class="card shadow-sm border rounded deep-1 deep_hover">
<img class="img img-responsive center-block border-bottom w-100" src="banner_facebook_shop.png" alt="Odoo App Facebook Catalog" title="Facebook Catalog | Advertise and sell products on Facebook Catalogue and Instagram Catalog | Data Feed | Data Import | Data Source | FB Product Catalog | Odoo Instagram Feed">
<div class="card-body">
<div class="card-title h5 text-nowrap text-truncate" title="Facebook Catalog">Facebook Catalog</div>
<p class="card-text small text-nowrap text-truncate" title="Advertise and sell products on Facebook Catalogue and Instagram Catalog | Data Feed | Data Import | Data Source | FB Product Catalog | Odoo Instagram Feed">Advertise and sell products on Facebook Catalogue and Instagram Catalog | Data Feed | Data Import | Data Source | FB Product Catalog | Odoo Instagram Feed</p>
</div>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 my-4 px-3" style="float:left">
<a href="https://apps.odoo.com/apps/modules/14.0/website_sale_google_analytics_4/" target="_blank">
<div class="card shadow-sm border rounded deep-1 deep_hover">
<img class="img img-responsive center-block border-bottom w-100" src="banner_website_sale_google_analytics_4.png" alt="Odoo App Google Analytics 4 eCommerce" title="Google Analytics 4 eCommerce | Google Analytics 4 for eCommerce | GA4 Retail and Ecommerce Events">
<div class="card-body">
<div class="card-title h5 text-nowrap text-truncate" title="Google Analytics 4 eCommerce">Google Analytics 4 eCommerce</div>
<p class="card-text small text-nowrap text-truncate" title="Google Analytics 4 for eCommerce | GA4 Retail and Ecommerce Events">Google Analytics 4 for eCommerce | GA4 Retail and Ecommerce Events</p>
</div>
</div>
</a>
</div>
</div>
</div>
<!-- Control arrows -->
<a class="carousel-control-prev w-0" href="#related_modules" data-slide="prev" style="color: #FEA621;">
<span class="carousel-control-prev-icon"><i class="fa fa-chevron-left fa-2x"></i></span>
</a>
<a class="carousel-control-next w-0" href="#related_modules" data-slide="next" style="color: #FEA621;">
<span class="carousel-control-next-icon"><i class="fa fa-chevron-right fa-2x"></i></span>
</a>
</div>
</div>
</div>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif; background-color: #FEA621; border-color: #fea621; padding: 12px 28px; border-radius: 15px 0 15px 0;">
<div class="row my-2">
<div class="col-lg-4 text-center mb-5 mb-lg-0">
<div class="h3 p-2 mb-2 font-weight-bold">Contact Us</div>
<div class="lead text-white pb-2">Support, customizations, and development</div>
<div class="w-100 w-md-75 w-lg-100 my-1 pl-3 text-nowrap text-truncate btn btn-dark rounded">
<i class="fa fa-envelope fa-fw" style="font-size:1.2rem;"></i>
<a href="mailto:support@garazd.biz" target="_blank">support@garazd.biz</a>
</div>
<div class="w-100 w-md-75 w-lg-100 my-1 pl-3 text-nowrap text-truncate btn btn-dark rounded">
<i class="fa fa-skype fa-fw" style="font-size:1.2rem;"></i>
<span>Skype: </span>
<a href="skype:live:7f0648d653072c5f?chat" target="_blank">GarazdCreation</a>
</div>
<div class="w-100 w-md-75 w-lg-100 m-auto my-1 pl-3 text-nowrap text-truncate btn-light border border-dark rounded" style="line-height: 2.4rem;">
<a href="https://garazd.biz/contactus" target="_blank">https://garazd.biz/contactus</a>
</div>
</div>
<div class="col-12 col-lg-4 border-left border-right">
<div class="h3 p-2 mb-3 text-center font-weight-bold">Our expertise</div>
<div class="text-left">
<div class="my-3 pl-3 text-nowrap text-truncate lead text-white" data-container="body" data-toggle="popover" data-placement="top" data-content="Garazd Creation is official Odoo Partner with the status 'Learning Partner'.">
<i class="fa fa-handshake-o fa-fw"></i> Odoo Learning Partner
</div>
<div class="my-3 pl-3 text-nowrap text-truncate lead text-white" data-container="body" data-toggle="popover" data-placement="top" data-content="Odoo Community Association member.">
<i class="fa fa-group fa-fw"></i> OCA Member
</div>
<div class="my-3 pl-3 text-nowrap text-truncate lead text-white" data-container="body" data-toggle="popover" data-placement="top" data-content="Garazd Creation with Odoo since 2014.">
<i class="fa fa-calendar-check-o fa-fw"></i> With Odoo since 2014
</div>
<div class="my-3 pl-3 lead text-white" data-container="body" data-toggle="popover" data-placement="top" data-content="Over 15,000 app downloads and purchases in Odoo Apps Store.">
<i class="fa fa-download fa-fw"></i> Over 15,000 app downloads and purchases
</div>
<div class="my-3 pl-3 lead text-white" data-container="body" data-toggle="popover" data-placement="top" data-content="Our apps in the TOP 15 on Odoo Apps.">
<i class="fa fa-trophy fa-fw"></i> Our apps in the TOP 15 on Odoo Apps
</div>
</div>
</div>
<div class="col-12 col-lg-4 mt-5 mt-lg-0">
<div class="h3 p-2 text-center font-weight-bold">Explore our apps</div>
<div class="text-center mb-3">
<a href="https://apps.odoo.com/apps/browse?repo_maintainer_id=119796" target="_blank">
<div class="text-black bg-warning shadow-sm rounded">
<i class="fa fa-compass fa-4x py-0"></i>
</div>
</a>
</div>
<div class="h4 p-2 text-center font-weight-bold">Watch and subscribe</div>
<div class="text-center">
<a href="https://www.youtube.com/channel/UCjHB3t-qc6SQmbgnS8bSPOA?sub_confirmation=1" target="_blank">
<div class="text-black bg-warning shadow-sm rounded">
<i class="fa fa-youtube-play fa-4x py-0"></i>
</div>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat', 'Odoo Unicode Support Noto', sans-serif;">
<div class="row mt-5 mb-4 align-items-center">
<div class="col-6 text-left">Version: 14.0.1.0.1</div>
<div class="col-6 text-right" style="text-align: right;"><small>Module design is reserved</small> | Copyright &copy; <a href="https://garazd.biz/" target="_blank">Garazd Creation</a></div>
<section class="oe_container col-12 mt-5" style="font-family: 'Montserrat','Odoo Unicode Support Noto',sans-serif; line-height: 1.75rem;">
<div class="h2 text-left ml8 mr32" style="color: #FEA621;"><i class="fa fa-code-fork mr8"></i>Changelog</div>
<div class="media p-2 pt-4" style="border-color:#FEA621 !important; border-radius: 15px; border: solid;">
<small class="media-body">
<ul class="list-unstyled">
<li class="media">
<div class="media-body mb-4">
<div class="h5 ml32 my-1" style="font-size: 1.0rem;">
<span class="font-weight-bold bg-dark text-white rounded py-1 px-3">14.0.1.0.1</span>
<span class="text-muted ml16">2023-04-20</span>
</div>
<ul class="mt-2">
<li class="mx-3"><small>Remove deprecetad methods.</small></li>
</ul>
</div>
</li>
<li class="media">
<div class="media-body mb-4">
<div class="h5 ml32 my-1" style="font-size: 1.0rem;">
<span class="font-weight-bold bg-dark text-white rounded py-1 px-3">14.0.1.0.0</span>
<span class="text-muted ml16">2020-10-01</span>
</div>
<ul class="mt-2">
</ul>
</div>
</li>
</ul>
</div>
</small>
</div>
</section>
</div>
</section>
<section class="oe_container" style="font-family: 'Montserrat','Odoo Unicode Support Noto',sans-serif;">
<div class="container" id="odoo-app-rating">
<div class="row my-4 py-3 bg-light" style="padding: 12px 28px; border-radius: 0 0 15px 15px;">
<div class="col d-flex justify-content-center text-center" style="color: #FEA621;">
<i class="fa fa-fw fa-thumbs-o-up fa-4x"></i>
<span class="my-auto mx-5 display-4">
<a href="https://apps.odoo.com/apps/modules/14.0/pos_user_restrict/#odoo-app-rating" class="btn btn-lg btn-warning text-white rounded">Rate the app</a>
- support us to do more!
</span>
<i class="fa fa-fw fa-angle-double-down fa-4x"></i>
</div>
<div>
</div>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_users_form" model="ir.ui.view">
<field name="name">res.users.form.inherit.pos.user.restrict</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='access_rights']/group" position="after">
<group string="Points of Sale" groups="point_of_sale.group_pos_user">
<field
name="pos_config_ids"
widget="many2many_tags"
/>
</group>
</xpath>
</field>
</record>
</odoo>