Inherit page di Odoo 9

Setelah sekian abad lama mencari apa nama selector untuk menggantikan string (jika di odoo 8) akhirnya ketemu juga caranya. Dan disini saya ingin membagikannya kepada teman-teman semua yang membaca postingan saya ini.

Disini saya contohkan untuk menginherit form view yang di Sales Order.

Langsung saja, pertama kita buat modul baru di odoo server kita. Lalu kita buat file python

from openerp import models, fields, api, _ 
class InheritModule(models.Model):
_inherit = "sale.order"
_description = "sembarang opo kui, penjelasanmu, opo?" 
nama = fields.Char("Lowongan", required=True)


Untuk xml nya kita isi
<?xml version="1.0" encoding="utf-8"?>
  <openerp>
    <data>

      <!-- menambahkan record di sales order -->
      <record id="namamu" model="ir.ui.view">
        <field name="name">sale.order.inherit</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">
          <xpath expr="
/form/sheet[1]/notebook[1]/page[1]" position="after">
            <page string='Iki berhasil'>
              <field name="nama"/>
              <field name="gambar"/>
            </page>
          </xpath>
        </field>
      </record>
      <!-- / menambahkan record di sales order -->
 
    </data>
  </openerp>
 Pada selector tersebut kita menggunakan angka untuk mengindex yang mana yang akan kita inherit.
mulai dari form, sheet pertama, notebook pertama, dan page yang pertama di posisi setelahnya. Maka hasilnya akan seperti ini..


Terima kasih telah berkunjung, jika ada yang mau ditanyakan silahkan bertanya.

Mengatasi Error LookupError: the converter 'page' does not exist di Log Odoo Server

okehh, langsung saja. Inti permasalahannya adalah di database.. tadi saya juga mengalami masalah yang serupa. Setiap kalo run server dan masuk ke localhost:port odoo yang kita gunakan, pasti menemui 500 Internal Server Error. dan di log tertulis 

2016-11-09 09:49:38,159 10150 ERROR maksindo werkzeug: Error on request:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 180, in run_wsgi
    execute(self.server.app)
  File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 168, in execute
    application_iter = app(environ, start_response)
  File "/home/afrijal/odoo-dev/odoo8/openerp/service/server.py", line 291, in app
    return self.app(e, s)
  File "/home/afrijal/odoo-dev/odoo8/openerp/service/wsgi_server.py", line 216, in application
    return application_unproxied(environ, start_response)
  File "/home/afrijal/odoo-dev/odoo8/openerp/service/wsgi_server.py", line 202, in application_unproxied
    result = handler(environ, start_response)
  File "/home/afrijal/odoo-dev/odoo8/openerp/http.py", line 1297, in __call__
    return self.dispatch(environ, start_response)
  File "/home/afrijal/odoo-dev/odoo8/openerp/http.py", line 1271, in __call__
    return self.app(environ, start_wrapped)
  File "/usr/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 591, in __call__
    return self.app(environ, start_response)
  File "/home/afrijal/odoo-dev/odoo8/openerp/http.py", line 1444, in dispatch
    result = ir_http._dispatch()
  File "/home/afrijal/odoo-dev/odoo8/addons/ori/base/ir/ir_http.py", line 152, in _dispatch
    rule, arguments = self._find_handler(return_rule=True)
  File "/home/afrijal/odoo-dev/odoo8/addons/ori/base/ir/ir_http.py", line 65, in _find_handler
    return self.routing_map().bind_to_environ(request.httprequest.environ).match(return_rule=return_rule)
  File "/home/afrijal/odoo-dev/odoo8/addons/ori/base/ir/ir_http.py", line 199, in routing_map
    self._routing_map = http.routing_map(mods, False, converters=self._get_converters())
  File "/home/afrijal/odoo-dev/odoo8/openerp/http.py", line 863, in routing_map
    routing_map.add(werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods'], **kw))
  File "/usr/lib/python2.7/dist-packages/werkzeug/routing.py", line 1128, in add
    rule.bind(self)
  File "/usr/lib/python2.7/dist-packages/werkzeug/routing.py", line 622, in bind
    self.compile()
  File "/usr/lib/python2.7/dist-packages/werkzeug/routing.py", line 672, in compile
    _build_regex(self.is_leaf and self.rule or self.rule.rstrip('/'))
  File "/usr/lib/python2.7/dist-packages/werkzeug/routing.py", line 662, in _build_regex
    variable, converter, c_args, c_kwargs)
  File "/usr/lib/python2.7/dist-packages/werkzeug/routing.py", line 630, in get_converter
    raise LookupError('the converter %r does not exist' % converter_name)
LookupError: the converter 'page' does not exist

saya sudah mencari-cari solusinya di google (stackoverflow) dan kebanyakan disuruh menghapus cache di browser dan menggunakan mode incognito setiap kali ingin develop.

Disini saya sebenarnya hanya ingin menampilkan homescreen odoo di web browser saya. Saya berinisitatif membuat database baru dan ternyata berhasil. Cara yang saya gunakan adalah sebagai berikut.

Pertama, saya masuk dulu ke postgresql dengan user postgres
sudo -u postgres psql
Kemudian saya membuat database baru
 create database <nama database>;
Untuk menampilkan daftar database kita bisa menggunakan
\l
 nah disana akan terlihat nama database kita dan owner database kita. Pastikan owner database sama dengan db_user yang terdapat pada file konfigurasi odoo di server kita. cara mengubahnya yaitu dengan
ALTER DATABASE <nama database> OWNER TO <nama owner baru>;
Kita cek lagi daftar database, maka  owner database kita telah berubah. sekarang kita tinggal menjalankan odoo server kita dengan perintah sebagai berikut
./odoo.py -c <file konfigurasi> -d <nama database>
Setelah kita masuk ke localhost:port yang telah kita konfigurasi, maka tampilan odoo akan keluar..

Sekian postingan saya kali ini, jika ada pertanyaan silahkan bertanya. Bisa dengan komentar atau langsung ke sosial media yang sudah saya bagikan untuk lebih cepat dalam responnya.

Mohon maaf jika ada kekurangan, terima kasih sudah membaca

Wassalamu'alaikum Wr. Wb.

Rabu, 9 November 2016
di Rumah Bude, Bintara, Bekasi Barat
Bekasi

Cara Uninstall Odoo di Linux Ubuntu

Assalamu'alaikum Wr. Wb.

Sebenernya untuk masalah teknis ini juga sangat diperlukan untuk para developer, karena kalo kita sudah bisa menginstall maka kita juga harus bisa meremovenya.

Mengatasi Error di Supplier Invoices Odoo


Langsung saja, jika temen-temen mendapati masalah tersebut.

Bad Total !
Please verify the price of the invoices!
The encoded total does not match the computed total.

Maka yang harus kita lakukan adalah memasukkan Verification Total


Isi verification total tersebut sesuai dengan jumlah total keseluruhan. Pastikan nilai Subtotal dan Tax sudah muncul, jika belum klik pada tulisan update. Maka dari itu pengisian Verification Total kita lakukan pada akhir sebelum kita validate invoice tersebut.

Sekian postingan kali ini, jika ada masalah atau ingin bertanya silahkan hubungi aku.

Install Odoo 9 di Ubuntu


Seperti postingan sebelumnya, masih mengenai langkah dalam installasi framework Odoo namun kali ini beda versi.

Sebenernya untuk Odoo 9 ini kata temen-temen dan orang yang pernah mengajari aku tentang Odoo agak jarang modul dan materi yang menggunakan versi ini. Maka dari itu untuk pemula atau yang baru belajar Odoo, aku sarankan menggunakan Odoo versi 8.

Namun jika sudah ingin mendalami Odoo dan ingin belajar lebih, temen-temen bisa install Odoo versi 9 ini.

Langsung saja, untuk menginstall Odoo versi 9 ini temen-temen juga membutuhkan software pendukung agar Odoo dapat berjalan dengan baik dan tidak ada error. Silahkan temen-temen menginstall software pendukungnya terlebih dahu.

Install Software pendukung disini

Setelah semua software terinstall maka kita tinggal menginstall Odoo versi 9 sesuai dengan website resminya, caranya

masuk terminal, kemudian gunakan super user
sudo su
Lalu kita download Odoo versi 9 dari website resminya
wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
Setelah  terdownload, kita pindahkan ke repository kita
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list
Kalo udah terpindah maka kita keluar dari super user
exit 
Setelah menggunakan user biasa, maka kita tinggal mengupdate repository kita dan menginstallnya
sudo apt-get update && sudo apt-get install odoo
 Lama tidaknya proses installasi tergantung dengan kecepatan internet teman-teman. Jika sudah selesai, maka kita tinggal mengecek apakah hasil instalasi kita berhasil atau tidak dengan cara masuk ke dalam browser, lalu di address bar ketikkan
localhost:8069
Jika teman-teman disuruh untuk membuat database baru berarti instalasi kita sudah berhasil.

Sekian postinganku kali ini, jika ada yang mau bertanya atau ada kesulitan silahkan hubungi aku. Insya Allah aku orangnya terbuka.

Salam !

Install Odoo 8 di Ubuntu

Karena akhir-akhir ini aku dan teman-teman disuruh belajar lebih dalam tentang Odoo (dulu OpenERP) sehingga pastinya langkah awal untuk memulai yaitu menginstall Odoo di mesin kerja.

Menurut hematku instalasinya agak susah untuk pemula, terlebih lagi materi / blog yang membahas masalah ini sangat sedikit dan cukup membingungkan. Apalagi yang berbahasa Indonesia, hahaha

ya udah langsung sajaa. Disini aku menggunakan OS Ubuntu dengan versi 16.04 64bit. Kalo temen-temen berbeda versi dicoba dulu aja, kalo ada masalah tanya saja gapapa, aku orangnya Insya Allah terbuka. ^_^

Install Perlengkapan

pertama, kita buka terminal (kalo ubuntu biasanya tekan Ctrl + Alt + T)
lalu kita update dulu Repo dan OS kita
sudo apt-get update && sudo apt-get dist-upgrade
setelah selesai kita restart laptop kita, bisa dengan cara manual atau dengan
sudo reboot
lalu kita install pendukung yang dibutuhkan Odoo
sudo apt-get install python-pip python-dev libevent-dev gcc libxml2-dev node-less python-cups python-dateutil python-decorator python-docutils python-feedparser python-gdata python-geoip python-gevent python-imaging python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests python-simplejson python-tz python-unicodecsv python-unittest2 python-vatnumber python-vobject python-werkzeug python-xlwt python-yaml
jika temen-temen ingin atau membutuhkan print ke pdf
sudo apt-get install libfontenc1 libxfont1 xfonts-base xfonts-utils xfonts-75dpi xfonts-encodings
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux_trusty-amd64.deb
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin
Lama atau tidaknya proses install ini tergantung kecepatan koneksi temen-temen.

Setelah itu kita bikin user untuk Odoonya
sudo adduser --system --home=/opt/odoo --group odoo
 Selanjutnya kita install Postgresql sebagai database yang digunakan Odoo
sudo apt-get install postgresql
sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
exit

Keperluan yang diperlukan untuk menginstall Odoo sudah tepenuhi, sekarang kita menginstall Odoonya.

Install Odoo 8

pertama kita masuk sebagai super user dengan perintah
sudo su
kemudian kita mendownload sourcenya dari web resmi
wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
 lalu kita pindahkan hasil downloadan tersebut ke repo kita
echo "deb http://nightly.odoo.com/8.0/nightly/deb/ ./" >> /etc/apt/sources.list
setelah berhasil dipindahkan maka kita keluar dari super user
exit 
setelah menggunakan user biasa, kita update repository kita dan menginstall odoo
sudo apt-get update && sudo apt-get install odoo
seperti sebelumnya, cepat atau lambat proses penginstallan ini tergantung dengan kecepatan internet teman-teman.

Jika sudah selesai, teman-teman bisa mengecek berhasil atau tidaknya installasi odoo kita dengan masuk ke browser. Lalu di address bar ketikkan
localhost:8069
jika teman-teman diminta untuk membuat database baru berarti installasi kita berhasil.

Sekian postingan aku kali ini, jika ada pertanyaan atau apa silahkan hubungi melalui salah satu kontakku ini.

salam !

Menggunakan Editor Summernote

haihaii, selamat siang. Assalamualaikum.

sudah lama tidak aktif ngepos di blog dikarenakan jam intensif belajar saya naik sehingga lupa dengan kewajiban sebagai seorang blogger . hehehe

ok guys kali ini saya akan membagikan sedikit cara dan apa ya.... memberi tahu aja lah ya mungkin cocoknya, tentang apa itu summernote dan bagaimana cara menggunakannya.

Summernote, yaitu WYSIWYG Editor di Bootstrap yang sangat super simple. sebelumnya, apa itu WYSIWYG? yang saya dapatkand dari Wikipedia adalah singkatan dari What You See Is What You Get . jadi mungkin yang dimaksud yaitu apa yang kita ketik di editor tersebut akan menampilkan hal yang serupa. Istilah singkatnya editor website. jadi itulah atau apalah. langsung saja ke pembahasan inti, bagaimana cara menggunakan summernote.

Pertama ini opsional, teman-teman menginginkan file css atau javascriptnya secara langsung dari folder lokal kita atau mengambil dari server yang sudah disediakan.
Jika teman teman memilih mendownloadnya maka teman-teman silahkan download disini.
Nah, jika sudah terdownload maka letakkan folder tersebut di folder lokal website.
Untuk menggunakan summernote ini, yang perlu diperhatikan pertama adalah memastikan kita menggunakan tipe HTML5, dengan menambahkan <!DOCTYPE html> di awal kita jumpa baris kode kita.

 <!DOCTYPE html><html lang=en>....</html>

Kemudian memanggil script css dan javascript kita di dalam elemen <head>
<head> <meta charset="UTF-8">  <title>Summernote</title>  <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>   <script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script>   <link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.2/summernote.css" rel="stylesheet">  <script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.2/summernote.js"></script> </head>
Ganti tulisan warna merah tersebut dengan path dimana file yang teman-teman tadi taruh. Dan jika teman-teman menggunakan server yang sudah disediakan, maka itu tidak perlu diganti.
Setelah itu untuk memanggil summernotenya, kita menggunakan id summernote maka jika kita menggunakan form <input> , ubah menjadi
<input type=”textarea” id=”summernote”>
Kita menggunakan id=”summernote” diatas karena itu digunakan untuk memanggil summernote.
Setelah itu tambahkan
<script>    $(document).ready(function() {        $('#summernote').summernote();    });  </script>
Agar summernote dapat difungsikan dengan baik. Maka hasil yang akan kita peroleh nantinya adalah

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Summernote</title>  <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>   <script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script>   <link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.2/summernote.css" rel="stylesheet">  <script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.2/summernote.js"></script></head><body>  <div id="summernote"><p>Hello Summernote</p></div>  <script>    $(document).ready(function() {        $('#summernote').summernote();    });  </script></body></html>

Sekian postingan saya kali ini, semoga bermanfaat. Bila ada yang kurang mohon kontak admin di laman Contact me. Terima kasih telah membaca. Selamat siang !

Wassalamualaikum Wr. Wb.