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

Init Hook pada Instalasi Modul Odoo 17

Aug 7, 2025 | Odoo 17 Development

Dalam melakukan instalasi modul Odoo ada kemungkinan perlu melakukan pemrograman sebelum proses instalasi modul, setelah instalasi modul dan juga saat uninstall modul. Kita dapat melalukan hal ini dengan hooks.

Init hook pada saat instalasi modul Odoo 17 adalah seperti pada langkah-langkah berikut ini

  1. Start SSH filesystem
  2. File Manifest

    {
        'name': 'Manajemen Asrama',
        "data":[
            "security/hostel_security.xml",
            "security/ir.model.access.csv",
            "data/data.xml",
            "views/hostel.xml",
            "views/asrama_room.xml",
            "views/asrama_student.xml",
            "views/asrama_room_availability_view.xml",
            "views/res_config_settings.xml",
            "wizard/assign_room_student.xml",
        ],
        'pre_init_hook' : 'pre_init_hook_hostel',
        'post_init_hook' : 'add_room_hook',
        'uninstall_hook' : 'uninstall_hook_user'
    }
    
  3. File Init

    from . import models
    from . import controllers
    from . import wizard
    from odoo import api, SUPERUSER_ID
    
    def add_room_hook(env):
        room_data1 = {'name':'Kamar H01', 'room_no': 'H01','student_per_room' : 5}
        room_data2 = {'name':'Kamar H02', 'room_no': 'H02','student_per_room' : 7}
        env['asrama.room'].create([room_data1,room_data2])
    
    def pre_init_hook_hostel(env):
        env['ir.model.data'].search([
            ('model','like','asrama.room'),
        ]).unlink()
    
    def uninstall_hook_user(env):
        hostel = env['res.users'].search([])
        hostel.write({'active': False})
    
  4. Start Odoo dengan upgrade modul

  5. Aktifasi modul

  6. Hasil

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