PT Proweb Indonesia
The City Tower Level 12 Unit 1-N, Jakarta Pusat

Pembatasan View kepada Group Tertentu dalam Pengembangan Modul Odoo

Jul 9, 2026 | Odoo 17 Development

Untuk keperluan praktis tertentu pada pembuatan aplikasi berbasis Odoo kita dapat membatasi elemen pada suatu tampilan.

Pembatasan view pada group tertentu pada pengembangan modul Odoo adalah seperti pada berikut ini

  1. Start SSH file system

  2. Model

    from odoo import api, fields, models
    
    class MotelRoomCategory(models.Model):
        _name = 'motel.room.category'
        _description = 'Kategori kamar '
    
        name = fields.Char('Kategori')
        description = fields.Text('Deskripsi')
    
        parent_id = fields.Many2one(
            'motel.room.category',
            string='Parent Category',
            ondelete='restrict',
            index=True
        )
    
        child_ids = fields.One2many(
            'motel.room.category','parent_id',
            string='Child Categories'
        )
    
  3. Model init

    # -*- coding: utf-8 -*-
    
    from . import motel
    from . import res_config_settings
    from . import motel_room_category
    
  4. File ir.model.access.csv

    id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
    access_motel_user,motel_user,model_motel_motel,group_motel_user,1,0,0,0
    access_motel_manager,motel_manager,model_motel_motel,group_motel_manager,1,1,1,1
    access_motel_category_user,motel_category_user,model_motel_room_category,group_motel_user,1,0,0,0
    access_motel_category_manager,motel_category_manager,model_motel_room_category,group_motel_manager,1,1,1,1
    
  5. View

    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
    
        <!-- motel.room.category form view -->
        <record id="motel_room_category_view_form" model="ir.ui.view">
            <field name="name">Kategory Form</field>
            <field name="model">motel.room.category</field>
            <field name="arch" type="xml">
                <form string="">
                    <sheet>
                        <header>
                            <field name="description" groups="motelku.group_motel_manager" />
                        </header>
                        <group>
                            <!-- Add your fields here -->
                            
                        </group>
                    </sheet>
                </form>
            </field>
        </record>
    
        <!-- motel.room.category action window -->
        <record id="motel_room_category_action" model="ir.actions.act_window">
            <field name="name">Kategori Motel</field>
            <field name="res_model">motel.room.category</field>
            <field name="view_mode">tree,form</field>
        </record>
    
        <menuitem id="motel_category_menu" name="Motel Category" 
            parent="motel_main_menu" action="motel_room_category_action" groups="group_motel_manager"
            sequence="20"/>    
    </odoo>
    
  6. Manifest

    # -*- coding: utf-8 -*-
    {
        'name': "motelku",
        'summary': "Motel Mgmt",
        'description': """
    Manajemen motel yang mudah
        """,
        'author': "PT Proweb",
        'website': "https://www.proweb.co.id",
        # any module necessary for this one to work correctly
        'depends': ['base_setup'],
        # always loaded
        'data': [
            'security/groups.xml',
            'security/ir.model.access.csv',
            'views/motel.xml',
            'views/motel_room_category.xml',
            'views/res_config_settings.xml',
        ],
        # only loaded in demonstration mode
        #'demo': [
        #    'demo/demo.xml',
        #],
        'installable': True,
    }
    
  7. Start Odoo dengan update modul

  8. Tampilan manajer
  9. Tampilan user

Kunjungi https://www.proweb.co.id/implementasi-odoo/ untuk menambah wawasan anda mengenai Odoo ERP.