You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

129 lines
5.1 KiB

# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Adarsh K (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
from odoo import api, fields, models
class ResUsers(models.Model):
""" Class for inherited model res users.Contains required fields and
functions of the module.
Methods:
get_views(self, views, options=None):
Super get_views function to write into fields associated with
filters when opening the view """
_inherit = 'res.users'
sales_user = fields.Boolean(default=False, string='Sales User',
help='field for Sales user filter')
invoice_user = fields.Boolean(default=False, string='Invoice User',
help='field for Invoice user filter')
purchase_user = fields.Boolean(default=False, string='Purchase User',
help='field for Purchase user filter')
website_user = fields.Boolean(default=False, string='Website User',
help='field for Website user filter')
inventory_user = fields.Boolean(default=False, string='Inventory User',
help='field for Inventory user filter')
pos_user = fields.Boolean(default=False, string='POS User',
help='field for POS user filter')
project_user = fields.Boolean(default=False, string='Project User',
help='field for Project user filter')
manufacturing_user = fields.Boolean(default=False,
string='Manufacturing User',
help='field for Manufacturing user filter')
@api.model
def get_views(self, views, options=None):
""" Super get_views function to write into fields associated with
filters when opening the view.
:param views: list of [view_id, view_type]
:param dict options: a dict optional boolean flags, set to enable:
:return: dictionary with fields_views, fields and optionally filters
"""
res = super().get_views(views, options)
res_users = self.search([])
for users in res_users:
groups = users.groups_id.category_id.mapped('xml_id')
if 'base.module_category_sales_sales' in groups:
users.write({
'sales_user': True,
})
else:
users.write({
'sales_user': False,
})
if 'base.module_category_accounting_accounting' in groups:
users.write({
'invoice_user': True,
})
else:
users.write({
'invoice_user': False,
})
if 'base.module_category_inventory_purchase' in groups:
users.write({
'purchase_user': True,
})
else:
users.write({
'purchase_user': False,
})
if 'base.module_category_website_website' in groups:
users.write({
'website_user': True,
})
else:
users.write({
'website_user': False,
})
if 'base.module_category_inventory_inventory' in groups:
users.write({
'inventory_user': True,
})
else:
users.write({
'inventory_user': False,
})
if 'base.module_category_sales_point_of_sale' in groups:
users.write({
'pos_user': True,
})
else:
users.write({
'pos_user': False,
})
if 'base.module_category_services_project' in groups:
users.write({
'project_user': True,
})
else:
users.write({
'project_user': False,
})
if 'base.module_category_manufacturing_manufacturing' in groups:
users.write({
'manufacturing_user': True,
})
else:
users.write({
'manufacturing_user': False,
})
return res