Skip to content

Commit

Permalink
Merge pull request #1219 from OCA/14.0
Browse files Browse the repository at this point in the history
Syncing from upstream OCA/web (14.0)
  • Loading branch information
bt-admin authored Feb 13, 2024
2 parents fbe71ea + 30bb395 commit 004979e
Show file tree
Hide file tree
Showing 12 changed files with 142 additions and 116 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ addon | version | maintainers | summary
[web_drop_target](web_drop_target/) | 14.0.1.1.2 | | Allows to drag files into Odoo
[web_edit_user_filter](web_edit_user_filter/) | 14.0.1.0.1 | | Edit User Filters
[web_environment_ribbon](web_environment_ribbon/) | 14.0.1.0.0 | | Web Environment Ribbon
[web_field_required_invisible_manager](web_field_required_invisible_manager/) | 14.0.2.3.2 | [![ilyasProgrammer](https://github.com/ilyasProgrammer.png?size=30px)](https://github.com/ilyasProgrammer) | Web Field Required Invisible Readonly Managerr
[web_field_required_invisible_manager](web_field_required_invisible_manager/) | 14.0.2.3.3 | [![ilyasProgrammer](https://github.com/ilyasProgrammer.png?size=30px)](https://github.com/ilyasProgrammer) | Web Field Required Invisible Readonly Managerr
[web_fix_modules_load](web_fix_modules_load/) | 14.0.1.0.0 | [![simahawk](https://github.com/simahawk.png?size=30px)](https://github.com/simahawk) | Fix translations loading from frontend with many modules
[web_group_expand](web_group_expand/) | 14.0.1.0.0 | | Group Expand Buttons
[web_ir_actions_act_multi](web_ir_actions_act_multi/) | 14.0.1.0.1 | | Enables triggering of more than one action on ActionManager
Expand Down
4 changes: 2 additions & 2 deletions web_dialog_size/i18n/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-27 11:39+0000\n"
"PO-Revision-Date: 2024-02-12 10:44+0000\n"
"Last-Translator: mymage <[email protected]>\n"
"Language-Team: none\n"
"Language: it\n"
Expand All @@ -29,7 +29,7 @@ msgstr "ID"
#. module: web_dialog_size
#: model:ir.model.fields,field_description:web_dialog_size.field_ir_config_parameter____last_update
msgid "Last Modified on"
msgstr "Ultima Modifica il"
msgstr "Ultima modifica il"

#. module: web_dialog_size
#: model:ir.model,name:web_dialog_size.model_ir_config_parameter
Expand Down
2 changes: 1 addition & 1 deletion web_field_required_invisible_manager/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Web Field Required Invisible Readonly Managerr
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c3e10557515edab148f1f12acd57d30f86cae0cebdb503fa58989784935a3ddb
!! source digest: sha256:b8db09bac933e558edafafdefcf07eac51dc2973fa12c9c2084cdbe41a99c413
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down
2 changes: 1 addition & 1 deletion web_field_required_invisible_manager/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"name": "Web Field Required Invisible Readonly Managerr",
"category": "Web",
"version": "14.0.2.3.2",
"version": "14.0.2.3.3",
"license": "AGPL-3",
"author": "Ilyas, ooops404, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/web",
Expand Down
8 changes: 8 additions & 0 deletions web_field_required_invisible_manager/i18n/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ msgstr "Restrizione obbligatorio"
#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction__display_name
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_model__display_name
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_ui_view__display_name
msgid "Display Name"
msgstr "Nome visualizzato"

Expand Down Expand Up @@ -111,6 +112,7 @@ msgstr "Gruppo"
#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction__id
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_model__id
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_ui_view__id
msgid "ID"
msgstr "ID"

Expand All @@ -128,6 +130,7 @@ msgstr "Campi invisibili"
#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction____last_update
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_model____last_update
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_ui_view____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"

Expand Down Expand Up @@ -213,6 +216,11 @@ msgstr "Campi obbligatori"
msgid "Required by Default"
msgstr "Obbligatorio per default"

#. module: web_field_required_invisible_manager
#: model:ir.model,name:web_field_required_invisible_manager.model_ir_ui_view
msgid "View"
msgstr ""

#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction__visibility_field_id
msgid "Visibility Field"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ msgstr ""
#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction__display_name
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_model__display_name
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_ui_view__display_name
msgid "Display Name"
msgstr ""

Expand Down Expand Up @@ -108,6 +109,7 @@ msgstr ""
#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction__id
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_model__id
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_ui_view__id
msgid "ID"
msgstr ""

Expand All @@ -125,6 +127,7 @@ msgstr ""
#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction____last_update
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_model____last_update
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_ir_ui_view____last_update
msgid "Last Modified on"
msgstr ""

Expand Down Expand Up @@ -210,6 +213,11 @@ msgstr ""
msgid "Required by Default"
msgstr ""

#. module: web_field_required_invisible_manager
#: model:ir.model,name:web_field_required_invisible_manager.model_ir_ui_view
msgid "View"
msgstr ""

#. module: web_field_required_invisible_manager
#: model:ir.model.fields,field_description:web_field_required_invisible_manager.field_custom_field_restriction__visibility_field_id
msgid "Visibility Field"
Expand Down
4 changes: 3 additions & 1 deletion web_field_required_invisible_manager/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
from . import custom_field_restriction
from . import models
from . import base
from . import ir_ui_view
from . import ir_model
66 changes: 66 additions & 0 deletions web_field_required_invisible_manager/models/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright 2023 ooops404
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html)
from odoo import models
from odoo.tools.safe_eval import safe_eval


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

def default_get(self, fields_list):
res = super(Base, self).default_get(fields_list)
if self.env.user.has_group("base.group_user"):
vals = self._default_get_compute_restrictions_fields()
if vals:
res.update(vals)
return res

def _default_get_compute_restrictions_fields(self):
restrictions = self.env["custom.field.restriction"].search(
[("model_name", "=", self._name)]
)
values = {}
if not restrictions:
return values
for r in restrictions:
if r.visibility_field_id:
field_name = r.visibility_field_id.name
values[field_name] = False
if r.required_field_id:
field_name = r.required_field_id.name
values[field_name] = False
if r.readonly_field_id:
field_name = r.readonly_field_id.name
values[field_name] = False
if r.group_ids:
if r.group_ids & self.env.user.groups_id:
values[field_name] = True
return values

def _compute_restrictions_fields(self):
"""Common compute method for all restrictions types"""
for record in self:
restrictions = self.env["custom.field.restriction"].search(
[("model_name", "=", self._name)]
)
if not restrictions:
return
for r in restrictions:
if r.visibility_field_id:
field_name = r.visibility_field_id.name
record[field_name] = False
if r.required_field_id:
field_name = r.required_field_id.name
record[field_name] = False
if r.readonly_field_id:
field_name = r.readonly_field_id.name
record[field_name] = False
if r.condition_domain:
filtered_rec_id = record.filtered_domain(
safe_eval(r.condition_domain)
)
if filtered_rec_id and r.group_ids & self.env.user.groups_id:
record[field_name] = True
elif r.group_ids:
if r.group_ids & self.env.user.groups_id:
record[field_name] = True
20 changes: 20 additions & 0 deletions web_field_required_invisible_manager/models/ir_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2023 ooops404
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html)
from odoo import fields, models


class IrModel(models.Model):
_inherit = "ir.model"

custom_required_restriction_ids = fields.One2many(
"custom.field.restriction",
"required_model_id",
)
custom_invisible_restriction_ids = fields.One2many(
"custom.field.restriction",
"invisible_model_id",
)
custom_readonly_restriction_ids = fields.One2many(
"custom.field.restriction",
"readonly_model_id",
)
Loading

0 comments on commit 004979e

Please sign in to comment.