[UPD] update logic fdd tdd

This commit is contained in:
Madanil
2026-10-21 16:54:17 +07:00
parent dd44452fa1
commit 24c7ea9447
20 changed files with 126 additions and 27 deletions

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ============================================================
MODULE CATEGORY: Freshservice
Di Odoo 19, ir.module.category menjadi section header tersendiri
di tab Access Rights form User (seperti SALES, SERVICES, dll).
============================================================ -->
<record id="module_category_freshservice" model="ir.module.category">
<field name="name">Freshservice</field>
<field name="description">Modul Analisis Bottleneck &amp; Audit Trail Tiket Freshservice</field>
<field name="sequence">25</field>
</record>
<!-- ============================================================
PRIVILEGE: Freshservice (WAJIB DI ODOO 19)
Di Odoo 19, form User TIDAK LAGI membaca category_id di res.groups.
Odoo 19 mewajibkan model res.groups.privilege.
Category HANYA akan dirender jika memiliki privilege_ids
yang terhubung ke res.groups via privilege_id.
============================================================ -->
<record id="res_groups_privilege_freshservice" model="res.groups.privilege">
<field name="name">Role</field>
<field name="sequence">10</field>
<field name="category_id" ref="module_category_freshservice"/>
</record>
<!-- ============================================================
GROUP 1: Viewer / Agent IT (Read-Only)
- Menggunakan privilege_id (bukan category_id) agar muncul di Odoo 19
- sequence 10: tampil pertama di dropdown
============================================================ -->
<record id="group_freshservice_user" model="res.groups">
<field name="name">Viewer / Agent IT</field>
<field name="sequence">10</field>
<field name="privilege_id" ref="res_groups_privilege_freshservice"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="comment">Hak baca (Read) pada seluruh tiket, audit trail, percakapan, dan hari libur. Dapat mengakses wizard bottleneck report untuk generate laporan Excel.</field>
</record>
<!-- ============================================================
GROUP 2: Supervisor / IT Manager (Full CRUD)
- Menggunakan privilege_id (bukan category_id) agar muncul di Odoo 19
- sequence 20: tampil kedua di dropdown
- implied_ids mewarisi group_freshservice_user
- user_ids otomatis menambahkan administrator
============================================================ -->
<record id="group_freshservice_manager" model="res.groups">
<field name="name">Supervisor / IT Manager</field>
<field name="sequence">20</field>
<field name="privilege_id" ref="res_groups_privilege_freshservice"/>
<field name="implied_ids" eval="[(4, ref('group_freshservice_user'))]"/>
<field name="user_ids" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
<field name="comment">Hak penuh (CRUD) serta hak mengeksekusi sinkronisasi API, manual override, impor hari libur, dan ekspor laporan bottleneck.</field>
</record>
</odoo>

View File

@@ -1,7 +1,12 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_freshservice_ticket_user,freshservice.ticket.user,model_freshservice_ticket,base.group_user,1,1,1,1
access_freshservice_ticket_stage_log_user,freshservice.ticket.stage.log.user,model_freshservice_ticket_stage_log,base.group_user,1,1,1,1
access_freshservice_ticket_conversation_user,freshservice.ticket.conversation.user,model_freshservice_ticket_conversation,base.group_user,1,1,1,1
access_freshservice_ticket_bottleneck_wizard_user,freshservice.ticket.bottleneck.wizard.user,model_freshservice_ticket_bottleneck_wizard,base.group_user,1,1,1,1
access_freshservice_holiday_user,freshservice.holiday.user,model_freshservice_holiday,base.group_user,1,1,1,1
access_freshservice_holiday_import_wizard_user,freshservice.holiday.import.wizard.user,model_freshservice_holiday_import_wizard,base.group_user,1,1,1,1
access_freshservice_ticket_user,freshservice.ticket.user,model_freshservice_ticket,gmn_freshservice.group_freshservice_user,1,0,0,0
access_freshservice_ticket_manager,freshservice.ticket.manager,model_freshservice_ticket,gmn_freshservice.group_freshservice_manager,1,1,1,1
access_freshservice_ticket_stage_log_user,freshservice.ticket.stage.log.user,model_freshservice_ticket_stage_log,gmn_freshservice.group_freshservice_user,1,0,0,0
access_freshservice_ticket_stage_log_manager,freshservice.ticket.stage.log.manager,model_freshservice_ticket_stage_log,gmn_freshservice.group_freshservice_manager,1,1,1,1
access_freshservice_ticket_conversation_user,freshservice.ticket.conversation.user,model_freshservice_ticket_conversation,gmn_freshservice.group_freshservice_user,1,0,0,0
access_freshservice_ticket_conversation_manager,freshservice.ticket.conversation.manager,model_freshservice_ticket_conversation,gmn_freshservice.group_freshservice_manager,1,0,0,0
access_freshservice_holiday_user,freshservice.holiday.user,model_freshservice_holiday,gmn_freshservice.group_freshservice_user,1,0,0,0
access_freshservice_holiday_manager,freshservice.holiday.manager,model_freshservice_holiday,gmn_freshservice.group_freshservice_manager,1,1,1,1
access_freshservice_holiday_import_wizard_manager,freshservice.holiday.import.wizard.manager,model_freshservice_holiday_import_wizard,gmn_freshservice.group_freshservice_manager,1,1,1,1
access_freshservice_ticket_bottleneck_wizard_user,freshservice.ticket.bottleneck.wizard.user,model_freshservice_ticket_bottleneck_wizard,gmn_freshservice.group_freshservice_user,1,1,1,1
access_freshservice_ticket_bottleneck_wizard_manager,freshservice.ticket.bottleneck.wizard.manager,model_freshservice_ticket_bottleneck_wizard,gmn_freshservice.group_freshservice_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_freshservice_ticket_user freshservice.ticket.user model_freshservice_ticket base.group_user gmn_freshservice.group_freshservice_user 1 1 0 1 0 1 0
3 access_freshservice_ticket_stage_log_user access_freshservice_ticket_manager freshservice.ticket.stage.log.user freshservice.ticket.manager model_freshservice_ticket_stage_log model_freshservice_ticket base.group_user gmn_freshservice.group_freshservice_manager 1 1 1 1
4 access_freshservice_ticket_conversation_user access_freshservice_ticket_stage_log_user freshservice.ticket.conversation.user freshservice.ticket.stage.log.user model_freshservice_ticket_conversation model_freshservice_ticket_stage_log base.group_user gmn_freshservice.group_freshservice_user 1 1 0 1 0 1 0
5 access_freshservice_ticket_bottleneck_wizard_user access_freshservice_ticket_stage_log_manager freshservice.ticket.bottleneck.wizard.user freshservice.ticket.stage.log.manager model_freshservice_ticket_bottleneck_wizard model_freshservice_ticket_stage_log base.group_user gmn_freshservice.group_freshservice_manager 1 1 1 1
6 access_freshservice_holiday_user access_freshservice_ticket_conversation_user freshservice.holiday.user freshservice.ticket.conversation.user model_freshservice_holiday model_freshservice_ticket_conversation base.group_user gmn_freshservice.group_freshservice_user 1 1 0 1 0 1 0
7 access_freshservice_holiday_import_wizard_user access_freshservice_ticket_conversation_manager freshservice.holiday.import.wizard.user freshservice.ticket.conversation.manager model_freshservice_holiday_import_wizard model_freshservice_ticket_conversation base.group_user gmn_freshservice.group_freshservice_manager 1 1 0 1 0 1 0
8 access_freshservice_holiday_user freshservice.holiday.user model_freshservice_holiday gmn_freshservice.group_freshservice_user 1 0 0 0
9 access_freshservice_holiday_manager freshservice.holiday.manager model_freshservice_holiday gmn_freshservice.group_freshservice_manager 1 1 1 1
10 access_freshservice_holiday_import_wizard_manager freshservice.holiday.import.wizard.manager model_freshservice_holiday_import_wizard gmn_freshservice.group_freshservice_manager 1 1 1 1
11 access_freshservice_ticket_bottleneck_wizard_user freshservice.ticket.bottleneck.wizard.user model_freshservice_ticket_bottleneck_wizard gmn_freshservice.group_freshservice_user 1 1 1 1
12 access_freshservice_ticket_bottleneck_wizard_manager freshservice.ticket.bottleneck.wizard.manager model_freshservice_ticket_bottleneck_wizard gmn_freshservice.group_freshservice_manager 1 1 1 1