Browse Source

Merge 3173bae03e into ad79aa45cf

pull/849/merge
Odoo - OpenERP - Acysos S.L 5 years ago
committed by GitHub
parent
commit
d84ecc42dc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 82
      web_hidden_field/README.rst
  2. 4
      web_hidden_field/__init__.py
  3. 21
      web_hidden_field/__manifest__.py
  4. 178
      web_hidden_field/i18n/es.po
  5. 168
      web_hidden_field/i18n/web_hidden_fields.pot
  6. 5
      web_hidden_field/models/__init__.py
  7. 44
      web_hidden_field/models/hidden_template.py
  8. 54
      web_hidden_field/models/ir_ui_view.py
  9. 5
      web_hidden_field/security/ir.model.access.csv
  10. BIN
      web_hidden_field/static/description/icon.png
  11. 67
      web_hidden_field/views/hidden_template_view.xml

82
web_hidden_field/README.rst

@ -0,0 +1,82 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
=================
Web Hidden Fields
=================
This module allow hide fields to all users or groups, or to a specific user or
group, without change the views.
Installation
============
Copy this module to your addons path and go to Applications and Install.
Configuration
=============
Don't need any special configuration.
Usage
=====
Go to Configuration -> Hidden Fields -> Hidden Fields.
Create a new template and select the model and the fields that you want to
hide.
If you don't select any user or group, the field is hidden for all users. If
you select any user the field is hidden for these users. If you select any
group the field is hidden for these groups. The user is more restrictive that
the group.
If the field isn't required, it is removed from view. If it's required the
field is invisible.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/162/10.0
Known issues / Roadmap
======================
*
Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/web/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smash it by providing detailed and welcomed feedback.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://odoo-community.org/logo.png>`_.
Contributors
------------
* Ignacio Ibeas - Acysos S.L. <ignacio@acysos.com>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
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.
To contribute to this module, please visit https://odoo-community.org.

4
web_hidden_field/__init__.py

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Ignacio Ibeas <ignacio@acysos.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import models

21
web_hidden_field/__manifest__.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Ignacio Ibeas <ignacio@acysos.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Web Hidden Fields',
'version': '10.0.0.1.0',
'category': 'Web',
'author': 'Acysos S.L., Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/web',
'license': 'AGPL-3',
'depends': [
'base',
],
'data': [
'security/ir.model.access.csv',
'views/hidden_template_view.xml'
],
'installable': True,
'auto_install': False
}

178
web_hidden_field/i18n/es.po

@ -0,0 +1,178 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_hidden_fields
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-28 13:08+0000\n"
"PO-Revision-Date: 2018-01-28 14:12+0100\n"
"Last-Translator: Ignacio Ibeas - Acysos S.L. <ignacio@acysos.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"Language: es\n"
"X-Generator: Poedit 1.8.7.1\n"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_active
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_active
msgid "Active"
msgstr "Activo"
#. module: web_hidden_fields
#: model:ir.actions.act_window,help:web_hidden_fields.action_hidden_fields_form
msgid "Click to add a template with the model and hidden fields."
msgstr "Haga clic para definir una nueva plantilla con el modelo y los campos ocultos."
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_company_id
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_company_id
msgid "Company"
msgstr "Compañía"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_create_uid
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_create_uid
msgid "Created by"
msgstr "Creado por"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_create_date
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_create_date
msgid "Created on"
msgstr "Creado el"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_display_name
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_display_name
msgid "Display Name"
msgstr "Nombre a mostrar"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_name
msgid "Field"
msgstr "Campo"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_groups
msgid "Groups"
msgstr "Grupos"
#. module: web_hidden_fields
#: model:ir.actions.act_window,name:web_hidden_fields.action_hidden_fields_form
#: model:ir.ui.menu,name:web_hidden_fields.menu_hidden_fields_view
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_form
msgid "Hidden Fields"
msgstr "Campos ocultos"
#. module: web_hidden_fields
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_form
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_tree
msgid "Hidden Template"
msgstr "Plantilla de ocultación"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_hidden_fields
#: model:ir.ui.menu,name:web_hidden_fields.menu_hidden_fields
msgid "Hidden fields"
msgstr "Campos ocultos"
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hidden_template
msgid "Hidden template"
msgstr "Plantilla de archivos ocultos"
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hidden_template_field
msgid "Hidden template field"
msgstr "Campo oculto"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_id
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_id
msgid "ID"
msgstr "ID"
#. module: web_hidden_fields
#: model:ir.model.fields,help:web_hidden_fields.field_hidden_template_field_users
msgid "If you don't select any user, the field is hidden to all users"
msgstr "Si no selecciona ningún usuario, el campo se ocultará a todo los usuarios."
#. module: web_hidden_fields
#: model:ir.model.fields,help:web_hidden_fields.field_hidden_template_field_groups
msgid "Is you don't select any group, the fieldis hidden to all groups"
msgstr "Si no seleccionar ningún grupo, el campo se ocultará a todos los grupos."
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template___last_update
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field___last_update
msgid "Last Modified on"
msgstr "Última modificación en"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_write_uid
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_write_date
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_write_date
msgid "Last Updated on"
msgstr "Última actualización el"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_model
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_name
msgid "Model"
msgstr "Modelo"
#. module: web_hidden_fields
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_form
msgid ""
"Select a model and the fields that you want to hide.\n"
"\t If you select a field that isn't required, it will be removed\n"
"\t from the view, but if you select a required field, it will be\n"
"\t invisible.<br/>\n"
"\t You can hide the field to all user or all groups if you\n"
"\t don't select any user o groups. If you want to hide to a\n"
"\t specific users or specifics groups, select any user or group.\n"
"\t The user is always more restrictive that groups."
msgstr ""
"Seleccione el modelo y los campos que necesita ocultar.\n"
"\t Si seleccionar un campo que no es obligatorio, será eliminado\n"
"\t de la vista, pero si seleccionar un campo obligatorio, será\n"
"\t invisible.<br/>\n"
"\t Puede ocultar un campo a todos los usuarios y grupos si\n"
"\t no indica ningún usuario o grupo. Si necesita ocultar a \n"
"\t usuarios o grupos específicos, indice a que usuarios o grupos.\n"
"\t El usuario siempre es más restrictivo que los grupos."
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_template_id
msgid "Template id"
msgstr "Plantilla"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_users
msgid "Users"
msgstr "Usuarios"
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hide_template
msgid "hide.template"
msgstr "hide.template"
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hide_template_field
msgid "hide.template.field"
msgstr "hide.template.field"
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_ir_ui_view
msgid "ir.ui.view"
msgstr "ir.ui.view"

168
web_hidden_field/i18n/web_hidden_fields.pot

@ -0,0 +1,168 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_hidden_fields
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-28 13:08+0000\n"
"PO-Revision-Date: 2018-01-28 13:08+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_active
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_active
msgid "Active"
msgstr ""
#. module: web_hidden_fields
#: model:ir.actions.act_window,help:web_hidden_fields.action_hidden_fields_form
msgid "Click to add a template with the model and hidden fields."
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_company_id
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_company_id
msgid "Company"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_create_uid
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_create_uid
msgid "Created by"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_create_date
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_create_date
msgid "Created on"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_display_name
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_display_name
msgid "Display Name"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_name
msgid "Field"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_groups
msgid "Groups"
msgstr ""
#. module: web_hidden_fields
#: model:ir.actions.act_window,name:web_hidden_fields.action_hidden_fields_form
#: model:ir.ui.menu,name:web_hidden_fields.menu_hidden_fields_view
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_form
msgid "Hidden Fields"
msgstr ""
#. module: web_hidden_fields
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_form
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_tree
msgid "Hidden Template"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_hidden_fields
#: model:ir.ui.menu,name:web_hidden_fields.menu_hidden_fields
msgid "Hidden fields"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hidden_template
msgid "Hidden template"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hidden_template_field
msgid "Hidden template field"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_id
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_id
msgid "ID"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,help:web_hidden_fields.field_hidden_template_field_users
msgid "If you don't select any user, the field is hidden to all users"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,help:web_hidden_fields.field_hidden_template_field_groups
msgid "Is you don't select any group, the fieldis hidden to all groups"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template___last_update
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field___last_update
msgid "Last Modified on"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_write_uid
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_write_uid
msgid "Last Updated by"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_write_date
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_write_date
msgid "Last Updated on"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_model
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_name
msgid "Model"
msgstr ""
#. module: web_hidden_fields
#: model:ir.ui.view,arch_db:web_hidden_fields.view_hidden_template_form
msgid "Select a model and the fields that you want to hide.\n"
" If you select a field that isn't required, it will be removed\n"
" from the view, but if you select a required field, it will be\n"
" invisible.<br/>\n"
" You can hide the field to all user or all groups if you\n"
" don't select any user o groups. If you want to hide to a\n"
" specific users or specifics groups, select any user or group.\n"
" The user is always more restrictive that groups."
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_template_id
msgid "Template id"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model.fields,field_description:web_hidden_fields.field_hidden_template_field_users
msgid "Users"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hide_template
msgid "hide.template"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_hide_template_field
msgid "hide.template.field"
msgstr ""
#. module: web_hidden_fields
#: model:ir.model,name:web_hidden_fields.model_ir_ui_view
msgid "ir.ui.view"
msgstr ""

5
web_hidden_field/models/__init__.py

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Ignacio Ibeas <ignacio@acysos.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import hidden_template
from . import ir_ui_view

44
web_hidden_field/models/hidden_template.py

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Ignacio Ibeas <ignacio@acysos.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields
class HiddenTemplateField(models.Model):
_name = 'hidden.template.field'
_description = 'Hidden template field'
name = fields.Many2one(
comodel_name='ir.model.fields', string='Field', required=True)
users = fields.Many2many(
comodel_name='res.users', string='Users', relation='hidden_field_user',
column1='hidden_field', column2='hidden_user',
help="If you don't select any user, the field is hidden to all users")
groups = fields.Many2many(
comodel_name='res.groups', string='Groups',
relation='hidden_field_group', column1='hidden_field',
column2='hidden_group', help="Is you don't select any group, the field"
"is hidden to all groups")
active = fields.Boolean(related='template_id.active')
model = fields.Many2one(
comodel_name='ir.model', related='template_id.name')
company_id = fields.Many2one(
comodel_name='res.company', related='template_id.company_id')
template_id = fields.Many2one(comodel_name='hidden.template')
class HiddenTemplate(models.Model):
_name = 'hidden.template'
_description = 'Hidden template'
def _default_company(self):
return self.env['res.company']._company_default_get('hidden.template')
name = fields.Many2one(
comodel_name='ir.model', string='Model', required=True)
active = fields.Boolean(string="Active", default=True)
hidden_fields = fields.One2many(
comodel_name='hidden.template.field', inverse_name='template_id')
company_id = fields.Many2one(
comodel_name='res.company', string='Company', index=True,
required=True, default=_default_company)

54
web_hidden_field/models/ir_ui_view.py

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Ignacio Ibeas <ignacio@acysos.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, models
from odoo.osv import orm
import json
class IrUiView(models.Model):
_inherit = 'ir.ui.view'
@api.multi
def _check_hidden_field(self, model_name, field_name):
model = self.env['ir.model'].search([('model', '=', model_name)])
field = self.env['ir.model.fields'].search(
[('name', '=', field_name), ('model_id', '=', model.id)])
hidden_field = self.env['hidden.template.field'].search(
[('name', '=', field.id), ('model', '=', model.id),
('company_id', '=', self.env.user.company_id.id),
('active', '=', True)])
if hidden_field:
if not hidden_field.users and not hidden_field.groups:
return True
if self.env.user in hidden_field.users:
return True
for group in hidden_field.groups:
if group in self.env.user.groups_id:
return True
return False
@api.multi
def _check_safe_mode(self, node):
modifiers = json.loads(node.get('modifiers'))
if 'required' in modifiers and modifiers['required']:
return True
check_xml = 'record.' + node.get('name') + '.raw_value'
if self.search([('arch_db', 'ilike', check_xml)]):
return True
return False
@api.model
def postprocess(self, model, node, view_id, in_tree_view, model_fields):
fields = super(IrUiView, self).postprocess(
model, node, view_id, in_tree_view, model_fields)
if node.tag == 'field':
if self._check_hidden_field(model, node.get('name')):
modifiers = json.loads(node.get('modifiers'))
if self._check_safe_mode(node):
modifiers['invisible'] = True
orm.transfer_modifiers_to_node(modifiers, node)
else:
node.getparent().remove(node)
fields.pop(node.get('name'), None)
return fields

5
web_hidden_field/security/ir.model.access.csv

@ -0,0 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hidden_template_user,web.hidden.fields.template.user,model_hidden_template,base.group_user,1,0,0,0
access_hidden_template_manager,web.hidden.fields.template.manager,model_hidden_template,base.group_erp_manager,1,1,1,1
access_hidden_template_fields_user,web.hidden.fields.template.fields.user,model_hidden_template_field,base.group_user,1,0,0,0
access_hidden_template_fields_manager,web.hidden.fields.template.fields.manager,model_hidden_template_field,base.group_erp_manager,1,1,1,1

BIN
web_hidden_field/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 3.0 KiB

67
web_hidden_field/views/hidden_template_view.xml

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record model="ir.ui.view" id="view_hidden_template_form">
<field name="name">hidden.template.form</field>
<field name="model">hidden.template</field>
<field name="arch" type="xml">
<form string="Hidden Template">
<sheet>
<group name="hidden-template-help">
<p>Select a model and the fields that you want to hide.
If you select a field that isn't required, it will be removed
from the view, but if you select a required field, it will be
invisible.<br/>
You can hide the field to all user or all groups if you
don't select any user o groups. If you want to hide to a
specific users or specifics groups, select any user or group.
The user is always more restrictive that groups.</p>
</group>
<group name="hidden-template-data">
<field name="name"/>
<field name="active"/>
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
<field name="hidden_fields" context="{'template_id':parent.get('name')}">
<tree string="Hidden Fields" editable="bottom">
<field name="name" domain="[('model_id', '=', model)]"/>
<field name="users" widget="many2many_tags"/>
<field name="groups" widget="many2many_tags"/>
<field name="model" invisible="1"/>
<field name="template_id" invisible="1"/>
</tree>
</field>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hidden_template_tree">
<field name="name">hidden.template.tree</field>
<field name="model">hidden.template</field>
<field name="arch" type="xml">
<tree string="Hidden Template">
<field name="name"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="active"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_hidden_fields_form">
<field name="name">Hidden Fields</field>
<field name="res_model">hidden.template</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_hidden_template_tree"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a template with the model and hidden fields.
</p>
</field>
</record>
<menuitem id="menu_hidden_fields_view" action="action_hidden_fields_form"
parent="base.next_id_9"/>
</odoo>
Loading…
Cancel
Save