24 Januari 2013

Uncaught TypeError: Cannot read property 'message_subtype_data' of undefined

Bismillahirrahmaanirrahiim

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,
maka muncul 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

10 Januari 2013

tidak bisa reset password

Bismillahirrahmaanirrahiim

Saat admin reset password untuk user tertentu, seharusnya akan terkirim otomatis email ke user tersebut,
tapi ternyata gagal dengan Warning:

Cannot send email: no outgoing email server configured.\nYou can configure it under Settings/General Settings

ehehehe ternyata ada package yg ketinggalan saat instal di awal
yaitu .............. python-jinja2

yuukk marii install

05 Januari 2013

Setup thousand separator

Bismillahirrahmaanirrahiim

Untuk view angka dengan separator seperti 165,000,500

Itu konfigurasinya ada di translation.

Bisa cek juga di menu berikut:

Cek di separator format nya dan thousand separator nya yaa


No such external ID currently defined in the system: product.product_product_consultant

Bismillahirrahmaanirrahiim

Jadi, ini error yg saya dapat ketika setup modul sales di menu Settings..

Cari dan mencari..

solusinya adalah:

temukan file addons/product/product_data.xml

ganti baris:

    <data noupdate="1">

menjadi
    <data>

Lalu upgrade modul product

Sekian....



04 Januari 2013

Script auto run OpenERP 7.0

Bismillahirrahmaanirrahiim


#!/bin/sh

### BEGIN INIT INFO
# Provides: openerp-server
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Enterprise Resource Management software
# Description: Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/openerp/openerp-7.0/openerp-server
NAME=openerp-server7
DESC=openerp-server7
CONFIG=/etc/openerp-server.conf
LOGFILE=/var/log/openerp/openerp-server-7.log
USER=openerp

test -x ${DAEMON} || exit 0

set -e

case "${1}" in
start)
echo -n "Starting ${DESC}: "

start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid \
--chuid ${USER} --background --make-pidfile \
--exec ${DAEMON} -- --config=${CONFIG} \
   --logfile=${LOGFILE}

echo "${NAME}."
;;

stop)
echo -n "Stopping ${DESC}: "

start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid \
--oknodo

echo "${NAME}."
;;

restart|force-reload)
echo -n "Restarting ${DESC}: "

start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid \
--oknodo

sleep 1

start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid \
--chuid ${USER} --background --make-pidfile \
--exec ${DAEMON} -- --config=${CONFIG} \
   --logfile=${LOGFILE}

echo "${NAME}."
;;

*)
N=/etc/init.d/${NAME}
echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

---
Kemudian save sebagai misalkan openerp7 di /etc/init.d/

pastikan bisa dijalankan
/etc/init.d/openerp7 start untuk menyalakan
/etc/init.d/openerp7 stop untuk mematikan
/etc/init.d/openerp7 restart untuk restart

kalau yakin sudah berhasil lakukan perintah berikut untuk memastikan bisa auto start setiap PC dinyalakan
cd /etc/init.d/
sudo update-rc.d openerp7 defaults

01 Januari 2013

Instal Modul Baru di OpenERP 7.0

Bismillahirrahmaanirrahiim

Hmm OpenERP 7.0 memang perubahannya cukup drastis..
COntoh sederhana, biasanya di OpenERP 6.* kita dapat melihat langsung menu "Update Modules List" di bawah menu "Modules"

tapii di OpenERP7.0, tidak muncul secara default,
Jadi apa yg harus dilakukan?

Masuk ke menu Users
Edit user Administrator
Click tab "Access Rights"
Click checkbox "Technical Features"

Lalu Save, kemudian Logout... dan login kembali,,
maka di menu Settings baru deh muncul sub menu Update Module List dll nya...

Begitu dehhhh
Smeoga membantu

~udah gk konsen mau tiddur