Sering mendapatkan error message seperti judul di atas ketika pakai OpenERP versi 7.0??
Error ini ada di setiap form yg ada fasilitas message dan follower di bagian bawah. sepeti
Sales Order, Purchase Order dan lain sebagainya.......
Test nya begini.
Masuk ke menu Sales Quotation,
buka salah satu record,
lalu click tombol Create untuk membuat record baru,
maka muncul deh error berikut.
Memang tidak akan membuat miss functionalitas.. tapi kan mengganggu banget, setiap create record baru muncul pop up error message tsb
Setelah mabok semaleman sampe pagi, debug sana sini dengan kata kunci 'message_subtype_data' (terimakasih kepada pembuat tools Grep :D)
akhirnya saya menemukan kunci masalahanya.
Coba cek di file addons/mail/static/src/js/mail_follower.js
lihat di method
display_subtypes:function (data) {
var self = this;
var subtype_list_ul = this.$('.oe_subtype_list');
subtype_list_ul.empty();
var records = data[this.view.datarecord.id || this.view.dataset.ids[0]].message_subtype_data;
var nb_subtype = 0;
_(records).each(function (record) {nb_subtype++;});
if (nb_subtype > 1) {
_(records).each(function (record, record_name) {
record.name = record_name;
record.followed = record.followed || undefined;
$(session.web.qweb.render('mail.followers.subtype', {'record': record})).appendTo( self.$('.oe_subtype_list') );
});
}
},
Lihat yang saya highlight..
di situ ada kebutuhan untuk mendapatkan id record..
tapii.. karena yang kita lakukan adalah membuat record baru, maka tentu saja id tersebut tidak akan didapatkan alias 'Undefined'
Cek lagi errornya:
Uncaught TypeError: Cannot read property 'message_subtype_data' of undefined
Jadi... kita handle di sini deehh...
tambahkan if clause seperti berikut ini
display_subtypes:function (data) {
var self = this;
var subtype_list_ul = this.$('.oe_subtype_list');
subtype_list_ul.empty();
if (this.view.datarecord.id>0) {
var records = data[this.view.datarecord.id || this.view.dataset.ids[0]].message_subtype_data;
var nb_subtype = 0;
_(records).each(function (record) {nb_subtype++;});
if (nb_subtype > 1) {
_(records).each(function (record, record_name) {
record.name = record_name;
record.followed = record.followed || undefined;
$(session.web.qweb.render('mail.followers.subtype', {'record': record})).appendTo( self.$('.oe_subtype_list') );
});
}
}
},
Udah deh... jadi initinya adalah si script ingin mendapatkan data message dan follower dari form tsb.
Tapi, karena memang ini adalah data baru, maka tentunya kita buat pengecualian... karena memang belum ada data message dan follower nya kaan..
Sudah deh...
logout OpenERP nya, login kembali
trus coba lagi deh test case di atas:
Masuk ke menu Sales Quotation,
buka salah satu record,
lalu click tombol Create untuk membuat record baru,
makamuncul deh error tersebut. error tersebut tidak akan muncul lagi,
Nah begitu saja...
Mohon dicek ulang yaa..
Mudah2an bener2 sudah solved masalahnya....
Jangan lupa setelah ubah file js nya, logout dan login kembali untuk melihat perubahan..
Demikan.. semoga bermanfaat
buka salah satu record,
lalu click tombol Create untuk membuat record baru,
maka
Nah begitu saja...
Mohon dicek ulang yaa..
Mudah2an bener2 sudah solved masalahnya....
Jangan lupa setelah ubah file js nya, logout dan login kembali untuk melihat perubahan..
Demikan.. semoga bermanfaat