Skip to content

n0tx/learn-odoo-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modul Belajar Odoo 16

Selamat datang di repositori Learn Odoo Python. Proyek ini berfungsi sebagai modul portofolio dan ruang kerja untuk mempelajari konsep pengembangan Odoo 16, mulai dari dasar hingga tingkat menengah.

Tujuan utama dari modul ini adalah untuk mengimplementasikan berbagai fitur umum Odoo secara modular, menciptakan basis kode yang bersih dan dapat dipelajari, serta mendokumentasikan proses pembelajaran.

  • Untuk panduan instalasi dan setup lingkungan development, silakan merujuk ke file SETUP_LOKAL.md.
  • Untuk catatan pembelajaran, penjelasan konsep mendalam, dan log troubleshooting, silakan merujuk ke file KONSEP_BELAJAR.md.
  • Untuk detail implementasi proyek end-to-end "Modul Perpustakaan", silakan merujuk ke file PERPUSTAKAAN_PROJECT.md.

Fitur yang Telah Diimplementasikan

Modul ini (learn-odoo-python) berisi fitur-fitur berikut yang dibangun dari nol atau melalui pewarisan (inheritance) dari modul standar Odoo.

1. Modul Manajemen Kursus (course.course)

Sebuah model Odoo baru yang dibuat dari awal untuk mengelola data kursus.

  • Model & Fields: name, description, dll.
  • Relasi Data:
    • Many2one ke res.partner untuk menunjuk seorang Pengajar.
    • Many2many ke res.partner untuk mendaftarkan banyak Siswa.
  • Tampilan (Views): Form, Tree, dan Search view kustom.
  • Menu & Action: Menu utama "Courses" untuk akses mudah.
  • Logika Bisnis:
    • Computed Field: Menghitung jumlah siswa (student_count) secara otomatis.
    • Python Constraint: Memastikan setiap kursus memiliki nama yang unik.
    • On-Change Event: Memperbarui field deskripsi secara dinamis saat pengajar diubah.
  • Keamanan:
    • Access Control List (ACL): Mengatur izin CRUD melalui ir.model.access.csv.
    • Grup Keamanan Kustom: Grup "Course / Manager" untuk hak akses khusus.
    • Record Rules: Membatasi akses data sehingga hanya manajer yang bisa melihat semua kursus.
  • Data Demo: Menyediakan data awal untuk mempermudah pengujian.

2. Kustomisasi Modul Sales (sale.order)

Memperluas fungsionalitas modul Sales standar melalui view & model inheritance.

  • Penambahan Field: Menambahkan field boolean is_special_order dan x_is_online_order.
  • Modifikasi Tampilan:
    • Menampilkan field baru di Form dan Tree View.
    • Mengubah label field yang sudah ada (misalnya, "Customer" -> "Pelanggan").
  • Tombol & Aksi:
    • Tombol di header Form View untuk menjalankan logika Python (action_toggle_special_order).
    • Visibilitas tombol dinamis menggunakan attrs="{'invisible': ...}".
    • Integrasi dengan Chatter (message_post) untuk mencatat aktivitas.
  • Aksi Massal:
    • Server Action: Aksi "Toggle Special Follow-Up" untuk mengubah status beberapa order sekaligus dari Tree View.
    • Automated Action: Mengubah status order menjadi "Special Order" secara otomatis jika total melebihi nilai tertentu.

3. Wizard (Aksi Interaktif)

Membuat pop-up interaktif untuk memandu pengguna melakukan operasi massal.

  • Wizard "Update Special Status": Memungkinkan pengguna memilih status baru dari pop-up dan menerapkannya ke semua Sales Order yang dipilih.
  • Transient Model: Menggunakan models.TransientModel untuk menampung input pengguna sementara.

4. Laporan PDF (QWeb)

Membuat laporan PDF dinamis dari data yang ada.

  • Action Report: Mendaftarkan laporan "Course Certificate" untuk model course.course.
  • Template QWeb: Mendesain layout laporan menggunakan HTML/XML, menampilkan data kursus, pengajar, dan daftar siswa dalam format tabel.

5. Web Controller (Endpoint HTTP)

Membuka Odoo untuk komunikasi dengan sistem eksternal.

  • Endpoint HTML Sederhana: Membuat URL publik (/course/hello) yang mengembalikan pesan HTML.
  • Endpoint API (JSON): Membuat URL publik (/api/courses) yang mengambil data dari database dan mengembalikannya dalam format JSON, efektif menciptakan API read-only sederhana.

6. Modul Manajemen Perpustakaan (Proyek End-to-End)

Sebuah proyek mandiri yang mensimulasikan pengembangan modul Odoo dari awal hingga akhir, mencakup beberapa model yang saling terhubung.

  • Model & Relasi:
    • library.book: Mengelola data buku (judul, penulis, status).
    • library.loan: Mencatat transaksi peminjaman (peminjam, tanggal pinjam, tanggal kembali).
    • Relasi Many2one antara peminjaman dan buku.
  • Logika Bisnis & Tombol Aksi:
    • Otomatisasi perubahan status buku saat dipinjam atau dikembalikan.
    • Tombol "Return Book" dengan visibilitas dinamis untuk memproses pengembalian.
  • Keamanan Lanjutan:
    • Grup keamanan "Librarian" untuk akses eksklusif ke menu peminjaman.
    • Record Rules: Memastikan pengguna biasa hanya dapat melihat buku yang tersedia (state='available'), sedangkan Pustakawan dapat melihat semua buku.
  • Laporan PDF (QWeb): Membuat laporan "Loan Card" untuk mencetak detail setiap transaksi peminjaman.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors