Blog ini dibuat untuk membagi sedikit ilmu OpenERP yang saya miliki... Semoga bermanfaat :-)
26 Mei 2013
[Extra] Download and/or Read Directly a File from FTP with Python
Bismillahirrahmaanirrahiim
See this script below:
Hope this help
12 Mei 2013
Dasar-Dasar Kustomisasi OpenERP: Menambahkan field/kolom baru
Bismillahirrahmaanirrahiim
Contoh, kebutuhan untuk menambahkan nama proyek yang berhubungan dengan expense karyawan
kalau ada 2 file misal hr_expense_expense.py, dan keduanya digunakan ya tambahin lagi aja
__openerp__.py
Kodenya seperti berikut ini:
-
'name': menunjukkan nama modulnya
'depends': menunjukkan modul yang terkait dengan custom modul ini. yaitu hr_expense
'data': file yang akan diikutsertakan dalam proses, bisa file xml untuk view atau file csv sebagai contoh data.
Dalam hal ini hanya file hr_expense_view.xml
'category': free text untuk memudahkan kita mencari modul yang kita sudah buat di list modul OpenERP
Untuk bagian ini, kita tentukan dulu di awal field Project itu mau dimunculkan di mana saja?
di form saja, atau juga di tree dan search view
untuk saat ini kita tambahkan di form dan tree saja yaa
hmm semuanya aja deh ...
yang perlu kita cari pertama kalo adalah model view di file asli hr_expense/hr_expense_view.xml
cari nama object yang sesuai yaitu hr.expense.expense
sudah ketemu?
ya kita perhatikan
record id="view_expenses_tree" untuk tree view
record id="view_expenses_form" untuk form view
untuk yang pertama tree... sekali lagi kita perlu membuat inheritance model seperti ini:
atribut model: diisi dengan nama object (nama tabel)yang bersesuaian
atribut inherit_id: diisi dengan "nama_modul_asli.id_view_parent"
karena itu kita isi dengan "hr_expense.view_expenses_tree"
nah kemudian di dalam tag dg atribut arch, kita tentukan posisi field baru yang dibuat
Kalau dilihat model view_expense_tree, kita tentukan posisi field smcus_project_name ada setelah field employee_id (Employee)
karena itu kita buat
<field name="employee_id" position="after">
Kalau sudah, kita gabungkan tree dan form
ke dalam 1 file hr_expense_view.xml berikut ini:
-
Selanjutnya pastikan sudah save semua file
Restart openerp server dengan perintah:
sudo /etc/init.d/openerp restart
Instal modul baru, dengan cara:
Selanjutnya, selamat bereksperimen dengan sejumlah dokumentasi yang ada...
Semoga bermanfaat
Contoh, kebutuhan untuk menambahkan nama proyek yang berhubungan dengan expense karyawan
Maka yang perlu kita cari tahu pertama kali adalah, ada di modul apakah form tersebut.
Tentunya ada di modul hr_expense dengan tabel di database hr_expense_expense
di modul hr_expense, yang perlu diperhatikan adalah file python hr_expense.py tempat definisi tabel dan proses-proses yang terjadi.
dan file xml untuk mendefinisikan tampilan form tersebut.
terus.... kita ubahkah kedua file tersebut? BIG NO!!
Biarkan modul tersebut apa adanya, jangan menambah, mengubah, menghapus, apapun di situ...
hmm biasanya siii saya cuma menambahkan _logger.. untuk debug kalo ada bugs...
Lalu apa yang kita lakukan?
Kita buat satu modul baru ..
contoh: smcus_hr_expense
apa itu smcus? yaa ini hanya initial nama saya saja sm(siti mawaddah) cus (custom)
jadi untuk mempermudah mencari modul2 hasil custom kita...
SO, kita buat folder baru di dalam folder addons
terus diisi apa aja nih..
karena saya bilang ini dasar-dasar... maka cukup 4 file saja:
- __init__.py
- __openerp__.py
- hr_expense.py
- hr_expense_view.xml
__init__.py
isinya apa nih?
cukup 1 baris:
import hr_expensehr_expense menunjukkan nama file python yang akan digunakan yaitu hr_expense.py
kalau ada 2 file misal hr_expense_expense.py, dan keduanya digunakan ya tambahin lagi aja
import hr_expense
import hr_expense_expense
__openerp__.py
Kodenya seperti berikut ini:
-
'name': menunjukkan nama modulnya
'depends': menunjukkan modul yang terkait dengan custom modul ini. yaitu hr_expense
'data': file yang akan diikutsertakan dalam proses, bisa file xml untuk view atau file csv sebagai contoh data.
Dalam hal ini hanya file hr_expense_view.xml
'category': free text untuk memudahkan kita mencari modul yang kita sudah buat di list modul OpenERP
hr_expense.py
Di awal kita menentukan bahwa kita mau tambahkan field project, maka kita tambahkan di dictionary _columns seperti ini
-
Perhatikan baris
_inherit = 'hr.expense.expense'
'hr.expense.expense' menunjukkan nama object yang diinherit...
Kalau kita cek di class parent nya... ada di hr_expense/hr_expense.py seperti ini:
-
di file parent nama object ditunjukkan pada baris
_name = 'hr.expense.expense'
sedangkan nama class boleh tidak sama dengan nama class parent
untuk dictionary _columns di parent object terdiri dari sejumlah field dengan berbagai variasi type.
Selanjutnya anda dapat mempelajari masing-masing type yang dapat digunakan
dengan mempelajari openerp development doc di
atau bisa langsung cek aja di folder instalasi openerp
biasanya ada di /opt/openerp/openerp/doc
cukup lengkap kok
untuk dict _defaults digunakan untuk menentukan nilai default dari setiap field...
kalau tidak perlu ya dikosongkan saja
hr_expense_view.xml
Untuk bagian ini, kita tentukan dulu di awal field Project itu mau dimunculkan di mana saja?
di form saja, atau juga di tree dan search view
untuk saat ini kita tambahkan di form dan tree saja yaa
hmm semuanya aja deh ...
yang perlu kita cari pertama kalo adalah model view di file asli hr_expense/hr_expense_view.xml
cari nama object yang sesuai yaitu hr.expense.expense
sudah ketemu?
ya kita perhatikan
record id="view_expenses_tree" untuk tree view
record id="view_expenses_form" untuk form view
untuk yang pertama tree... sekali lagi kita perlu membuat inheritance model seperti ini:
atribut model: diisi dengan nama object (nama tabel)yang bersesuaian
atribut inherit_id: diisi dengan "nama_modul_asli.id_view_parent"
karena itu kita isi dengan "hr_expense.view_expenses_tree"
nah kemudian di dalam tag dg atribut arch, kita tentukan posisi field baru yang dibuat
Kalau dilihat model view_expense_tree, kita tentukan posisi field smcus_project_name ada setelah field employee_id (Employee)
karena itu kita buat
<field name="employee_id" position="after">
<field name="smcus_project_name"/>
</field>
position dapat diisi "before" (posisi sebelum field bersangkutan) dan "replace" (menimpa field)
untuk model form
Kita tentukan posisinya ada di bawah field currency
maka kita buat model view berikut ini:
Selanjutnya pastikan sudah save semua file
Restart openerp server dengan perintah:
sudo /etc/init.d/openerp restart
Instal modul baru, dengan cara:
- Login sebagai admin
- Masuk ke menu Settings > Update Modules List, agar modul baru kita terdaftar di daftar modul di menu Settings > Installed Modules
- Cari modul baru yang kita buat yaitu smcus_hr_expense
Klik install - Maka kita cek di menu Human Resources > Expenses > Expenses
Selesai dehh
Selanjutnya, selamat bereksperimen dengan sejumlah dokumentasi yang ada...
Semoga bermanfaat
Langganan:
Postingan (Atom)