odoo介紹

什麼是odoo

odoo是一套全球開源的ERP/CRM系統。html

開發語言:pythonpython

數據庫:PostgreSQLgit

系統採用較靈活的模塊架構,內置了許多功能強大的經常使用模塊。用戶能夠按需從模塊庫中選擇模塊進行安裝、卸載和升級的管理操做。也能夠選用第三方模塊或者本身開發的模塊。github

經常使用模塊包括:採購管理,銷售管理,庫存管理,財務管理,貨品管理,營銷管理,客戶關係管理,生產管理,人事管理,服務支持等等。web

odoo的底層框架很是強大,基於werkzeug,採用MVC模式,容許開發者對已有模塊進行擴展,也能夠徹底摒棄內置模塊,使用本身開發的模塊。sql

版本:docker

Odoo有兩種不一樣的版本:社區版和企業版。企業版包含僅限於企業版客戶和合做夥伴的代碼。社區版免費向全部人開放。數據庫

運行

安裝Python

odoo使用的開發語言是Python,在運行odoo以前須要先安裝Python。vim

安裝PostgreSQL

odoo使用的數據庫是Postgresql,在運行odoo以前須要先安裝好數據庫。api

略。

安裝odoo(社區版)

多種方式

其餘

在線使用、安裝包、docker等,節省時間。

源碼安裝

獲取源碼直接運行,方便進行模塊開發。

有兩種獲取Odoo源代碼的方式:zip壓縮包或經過git。

git:git clone https://github.com/odoo/odoo.git

源碼目錄結構

odoo-13.0
├── CONTRIBUTING.md
├── COPYRIGHT
├── LICENSE
├── MANIFEST.in
├── README.md
├── SECURITY.md
├── addons    # 內置模塊
├── debian
├── doc
├── odoo
├── odoo-bin    # 啓動腳本
├── requirements.txt    # 依賴
├── setup
├── setup.cfg
└── setup.py

安裝依賴

pip install -r requirements.txt

啓動

python odoo-bin

能夠看到odoo運行在本地的8069端口

2020-06-10 15:42:27,366 2701 INFO ? odoo: Odoo version 13.0 
2020-06-10 15:42:27,366 2701 INFO ? odoo: addons paths: ['/Users/luxiaqiang/MyProjects/odoo-13.0/odoo/addons', '/Users/luxiaqiang/Library/Application Support/Odoo/addons/13.0', '/Users/luxiaqiang/MyProjects/odoo-13.0/addons'] 
2020-06-10 15:42:27,367 2701 INFO ? odoo: database: default@default:default 
2020-06-10 15:42:27,625 2701 INFO ? odoo.addons.base.models.ir_actions_report: You need Wkhtmltopdf to print a pdf version of the reports. 
2020-06-10 15:42:28,020 2701 INFO ? odoo.service.server: HTTP service (werkzeug) running on luxiaqiang-mbp.local:8069

使用

瀏覽器打開http://127.0.0.1:8069/能夠看到,跳轉到了數據庫建立頁面

image-20200610235140484.png

odoo運行依賴於數據庫,第一次進入須要先建立數據庫

建立數據庫後,自動登陸跳轉到應用頁面,使用的帳號密碼就是建立數據庫時輸入的Email和Password

安裝聯繫人模塊

模塊開發

建立模塊

python odoo-bin scaffold test ./my_addons
my_addons
│   └── test
│       ├── __init__.py
│       ├── __manifest__.py    # Odoo模塊必須的文件,包含必要的模塊信息。
│       ├── controllers    # 主要是一些HTTP請求相關的業務邏輯
│       ├── demo
│       ├── models    # 模型文件夾,業務的模型都放在這裏。
│       ├── security    # 權限相關的文件
│       └── views    # 視圖文件夾,關於界面佈局的邏輯在這裏。

編輯models文件夾下的models.py文件

from odoo import models, fields, api


class test(models.Model):
    _name = 'test.test'
    _description = 'test.test'

    name = fields.Char()
    value = fields.Integer()
    description = fields.Text()

編輯views文件夾下的view.xml文件

<odoo>
  <data>
      <!-- Top menu item -->

    <menuitem name="test" id="test.menu_root"/>
  
    <!-- explicit list view definition -->

    <record model="ir.ui.view" id="test.list">
      <field name="name">test list</field>
      <field name="model">test.test</field>
      <field name="arch" type="xml">
        <tree>
          <field name="name"/>
          <field name="value"/>
          <field name="description"/>
        </tree>
      </field>
    </record>

  </data>
</odoo>

修改_manifest_.py文件

{
    'name': "test",

    'summary': """
        Short (1 phrase/line) summary of the module's purpose, used as
        subtitle on modules listing or apps.openerp.com""",

    'description': """
        Long description of module's purpose
    """,

    'author': "My Company",
    'website': "http://www.yourcompany.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/13.0/odoo/addons/base/data/ir_module_category_data.xml
    # for the full list
    'category': 'Uncategorized',
    'version': '0.1',

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

    # always loaded
    'data': [
        'security/ir.model.access.csv',
        'views/views.xml',
        'views/templates.xml',
    ],
    # only loaded in demonstration mode
    'demo': [
        'demo/demo.xml',
    ],
    "application": True
}

使用配置文件啓動

當修改了py文件時,須要重啓odoo進程,而修改了xml等靜態文件則須要升級模塊。

vim odoo.conf

[options]
addons_path = /Users/luxiaqiang/MyProjects/odoo-13.0/odoo/addons,/Users/luxiaqiang/MyProjects/odoo-13.0/addons,/Users/luxiaqiang/MyProjects/odoo-13.0/my_addons
admin_passwd = $pbkdf2-sha512$25000$d67VGoNwTknp3bv33hsD4A$sVG6/LbAEFo37jdxOFxBqreWxKmqCH6GUAL1npxMQjJdsclqwq4yeH5kWV8TZ3lwqpZTvY9BVx72XTYMAJ4yDQ
csv_internal_sep = ,
data_dir = /Users/luxiaqiang/Library/Application Support/Odoo
db_host = False
db_maxconn = 64
db_name = odoo
db_password = False
db_port = False
db_sslmode = prefer
db_template = template0
db_user = False
dbfilter =
demo = {}
email_from = False
geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb
http_enable = True
http_interface =
http_port = 8069
import_partial =
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
limit_time_real_cron = -1
list_db = True
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = info
logfile =
longpolling_port = 8072
max_cron_threads = 2
osv_memory_age_limit = 1.0
"odoo.conf" 59L, 1510C

啓動

python odoo-bin -c odoo.conf --def=all

image-20200611005521882.png

image-20200611005607154.png

image-20200611005708852.png

image-20200611131413260

image-20200611131650511

相關文章
相關標籤/搜索