Membuat models dan addons di odoo (Docker)

Membuat models dan addons di odoo (Docker)

 Membuat models dan addons

buka Docker dan jalankan odoo

Structur membuat models :

buat nama folder sesuai nama models yang akan dibuat
contoh style rentcar
buat struktur didalamnya terdapat



dalam folder views masih kosong sedangkan __init__.py dan __manifest__.py adalah file didalam style rentcar

Tahap pemasukan coding

Pada __Manifest__.py isikan :
# -*- coding: utf-8 -*-
{
'name': 'Style Rent Car',
'summary': 'Style rentcar management software',
'description': """Style rentcar management software""",
'author': "My Company",
'website': "http://srikandiart.com",
'category': 'Productivity',
'version': '0.1',
'application': True,

# any module necessary for this one to work correctly
'depends': ['base'],

# always loaded
'data': [
'security/ir.model.access.csv',
],
}

Lalu restart odoo di docker dan akses kembali localhost
lalu ke updat apps dan cari di menu search filenya lalu install




Membuat models

ketikan pada __init__.py yang ada dalam folder style_rentcar
from . import models

Buat folder models didalam style_rentcar
dan beri isi __init__.py danjuga models.py

dan __init__.py berisi
from . import models

from odoo import models, fields, api

class ModelDasar(models.Model):
_name = "stylerent.modeldasar"
_description = "model dasar style rent car"
kapasitas = fields.Char(
string='kapasitas penumpang',
Required=True,
)
tipe = fields.Selection(
string='tipe/jenis mobil',
selection=[('sedan', 'Sedan'), ('lcgc', 'LCGC'), ('mpv', 'MPV'), ('suv', 'SUV')]
)

class stylerent(models.Model):
_name = "stylerent.jenismobil"
_description = "Daftar Jenis-jenis mobil"
_inherit = 'stylerent.modeldasar' #memanggil model class yg atas inheriten delegation

name = fields.Char(
string='Jenis Sewa',
Required=True
)
harga = fields.Integer(
string='Harga sewa',
Required=True
)
active = fields.Boolean(
default=True
)
Tambahkan folder security di rentcar yang didalamnya berisi ir.models.access.csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_stylerent_jenismobil,access.stylerent.jenismobil,model_stylerent_jenismobil,,1,1,1,1
dengan struktur
File dalam folder controllers hanya berisi 
__init__.py
import . from controllers
dan controllers.py kosong

Lalu restart kembali odoo server didalam docker dan refresh kembali untuk page odoo 
lalu lakukan upgrade pada addons :



setelah melakukan update lanjut ke menu setting -> lanjut ke menu bar technical dan pilih models


Cari name yg sudah diinput tadi maka akan keluar modelsnya

Membuat menu bar dan Views

buatlah folder views didalam style_rentcar


dan tambah file menu.xml juga stylerent.xml
dengan code.
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- This Menu Item will appear in the Upper bar, that's why It needs NO parent or action -->
<menuitem id="stylerent_menu_root" name="Style Rent Car" sequence="10"/>

<!-- This Menu Item Must have a parent -->
<menuitem id="stylerent_datamaster_menu_categ"
name="Operasional"
parent="stylerent_menu_root"
sequence="10"/>

<menuitem id="stylerent_datacontact_menu_categ"
name="Contacts"
parent="stylerent_menu_root"
sequence="11"/>
</data>
</odoo>

dan coding dari stylerentviews.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- model.name tree view -->
<record id="stylerent_jenismobil_view_tree" model="ir.ui.view">
<field name="name">stylerent.jenismobil.view.tree</field>
<field name="model">stylerent.jenismobil</field>
<field name="arch" type="xml">
<tree>
<field name="name"></field>
<field name="harga"></field>
<field name="kapasitas"></field>
<field name="tipe"></field>
<field name="active"></field>
</tree>
</field>
</record>

<!-- model.name action window -->
<record id="stylerent_jenismobil_action" model="ir.actions.act_window">
<field name="name">Jenis Mobil Style Rent Car</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stylerent.jenismobil</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_smiling_face">
Diisi dengan daftar tipe/jenis mobil dan Harga sewa
</p><p>
<!-- More details about what a user can do with this object will be OK -->
</p>
</field>
</record>

<!-- This Menu Item must have a parent and an action -->
<menuitem id="stylerent_jenismobil_menu_act"
name="Tipe/Jenis Mobil"
parent="stylerent_datamaster_menu_categ"
action="stylerent_jenismobil_action"
sequence="10"/>
</data>
</odoo>
Remember Menu Item must have *HARUS PALING BAWAH
Lalu jangan lupa untuk tambahkan manifest berikut ke data yang ada di __manifest__.py
# always loaded
'data': [
'security/ir.model.access.csv',
'views/menu.xml',
'views/stylerent_views.xml',
],
Setelah itu silahkan Restart odoo didalam docker  dan reload kembali page di apps lalu upgrade style_rentcar setelah di update masuk ke menu style rent yg ada di menu -> style rent car

Lalu silahkan create dengan data sebagai berikut

Lalu untuk kembali klik Style Rent Car
dan muncul tampilan




Membuat field Edit

Buka file stylerent_views.xml
lalu tambahkan code ini untuk menambah field jika di klik maka file nya berupa fields edit :
tambahkan dibawah code<!-- model.name tree view --> </record> 
<!-- model.name form view -->
<record id="stylerent_jenismobil_view_form" model="ir.ui.view">
<field name="name">stylerent.jenismobil.view.form</field>
<field name="model">stylerent.jenismobil</field>
<field name="arch" type="xml">
<form string="Daftar Harga Sewa">
<sheet>
<group>
<group colspan='4'>
<group colspan='2'>
<separator string="RINCIAN SEWA"/>
<field name="name"/>
<field name="kapasitas"/>
</group>
<group colspan='2'>
<separator string="TIPE MOBIL"/>
<field name="tipe"/>
</group>
<notebook colspan='4'>
<page string="HARGA SEWA">
<field name="harga"/>
</page>
</notebook>
</group>
</group>
</sheet>
</form>
</field>
</record>
Save dan upgrade langsung module stylerent.car yang ada di apps (tidak usah restart server odoo karena tidak mengedit file py)
maka akan tampil jika  harian mingguan atau tahunan di klik (salah satu):

Membuat Filter pemanggil di menu search agar otomatis ada pilihanya

masuk ke file stylerent_views.xml
dibawah code <!-- model.name form view -->
<!-- model.name search view -->
<record id="stylerent_jenismobil_view_search" model="ir.ui.view">
<field name="name">stylerent.jenismobil.view.search</field>
<field name="model">stylerent.jenismobil</field>
<field name="arch" type="xml">
<search string="Pencarian">
<!-- Add your fields here (pencarian berdasarkan) -->
<field name="name"/>
<field name="tipe"/>
<filter name="7" string="7" domain="[('tipe', 'ilike', '7')]" />
<filter name="5" string="5" domain="[('tipe', 'ilike', '5')]" />
</search>
</field>
</record>
record id nya diambil dari models -> class stylerent.jenismobil
Upgrade module (tanpa restart server) lalu ke menu style rent car Maka muncul :



Setting odoo.conf membaca external addons (Docker)

Setting odoo.conf membaca external addons (Docker)

 Setting path bisa membaca modul external yang dipasang dibeda penyimpanan.

Jalankan Docker
lalu run odoo-14




setelah running klik pada open visual studio code.
pada saat vscode terbuka carilah extension docker dan cari penyimpanan file external kamu
pada contoh saya seharusnya ada di /Users/namaMac/Documents/odoo-14 berubah karena file permision yang di container berbeda menjadi



setelah ketemu folder extra-addons maka kamu perlu menambahkan set folders odoo menuju kesana karena pada dasarnya server odoo akan mengambil file apps disana

Setting path :

Buka odoo.conf yang ada di vscode lalu tambahkan setingan path menjadi

addons_path = /usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons


Buka docker kembali stop server odoo dan runing kembali lalu pergi ke localhost:8069
dan ke menu setting activate developer mode


setelah diaktifkan lalu kembali ke apps kembali lalu lakukan update apps list


dan setelah Update lakukan pencarian nama modul atau folder yang kalian buat pada addons tadi setelah itu lakukan install.




Install Odoo-14 di MacBook menggunakan Docker

Install Odoo-14 di MacBook menggunakan Docker

 

Install odoo-14 di docker MacBook

Install Docker

Kunjingi jalaman Docker instal

lalu download sesuai chip macbook anda :

Macbook atau Intel.

seleasi download install seperti biasa dan tarik menuju aplikasi

selesai install docker..

Install odoo didalam docker

Buka Finder masuk ke documents lalu buatlah folder odoo-14 untuk memulai penginstalan dengan yml

buka code editor atau buka folder odoo-14 dan buatlah file dengan extension yml (docker-compose.yml)

dengan isi dari docker.yml adalah

version: '3.1'
services: 
  web:
    image: odoo:14.0
    ports: 
      - "8069:8069"
    volumes: 
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo 
      - ./addons:/mnt/extra-addons
    environment: 
      - HOST=db 
      - USER=odoo 
      - PASSWORD=myodoo 
    depends_on: 
      - db 
      - pgadmin 
  db:
    image: postgres:14
    environment: 
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=myodoo
      - POSTGRES_USER=odoo
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes: 
      - odoo-db-data:/var/lib/postgresql/data/pgdata
  pgadmin:
    image: dpage/pgadmin4:latest
    environment: 
      - PGADMIN_DEFAULT_EMAIL=syaifulstyle505@gmail.com
      - PGADMIN_DEFAULT_PASSWORD=123456
      - PGADMIN_LISTEN_PORT=80
    volumes: 
      - pgadmin-data:/var/lib/pgadmin
    ports: 
      - "8080:80"
    depends_on: 
      - db 
volumes: 
  odoo-web-data:
  odoo-db-data:
  pgadmin-data:


setelah itu save INGAT DENGAN extension yml.

lalu buka terminal dan masuk ke cd odoo-14(folder dari odoo yang dibuat)

dan install dengan cara:

docker-compose up -d

setelah selesai ketik:

docker image

buka docker anda dan runing si odoo-14

lalu buka browser kesayangan kalian dan ketikan localhost:8069(port default dari odoo)

dan buat db kalian lalu create

Catatan

apabila lupa dalam master pasword bisa diubah di odoo.conf yang ada didalam folder odoo-14

lalu ubah dengan memberi:

;admin_passwd : ....

lalu save dan refresh server odoo yang ada didalam docker lalu create db kembali