星期一, 12月 25, 2017

Ubuntu 16.04 odoo10 安裝及設定 Nginx Web server

安裝 Nginx.

sudo apt-get install nginx
編輯 Nginx 設定檔
sudo nano /etc/nginx/sites-enabled/default
在最下面新增,<IP_address>,換成自己對外的IP
server {
listen 80;
server_name <IP_address>;
root /var/www/example.com;
location / {
proxy_pass http://127.0.0.1:8069;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
image

存檔重重啓nginx

/etc/init.d/nginx restart

打開瀏灠器輸入 /web/login">http://<IP_address>/web/login

image

星期一, 11月 27, 2017

Windows 的 Odoo11 開發環境安裝

參考文章:https://github.com/kasim1011/odoo-11.0-windows-installation

有些安裝檔可以直接上github下載

一開始預設你的電腦有 Odoo 10的開發環境(可參考之前文卓),所以基本上你的電腦會有

開始安裝

一.下載及安裝 Microsoft Visual C++ 2015 Redistributable.

二.下載及安裝 Python3 version 3.6 請注意改PATH要重開機,本文章以64位元為主

  1. https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe
  2. python 2.7及3.6如何共存,可以參考 https://read01.com/zh-tw/LkKOBJ.html#.WhvhlDdLdyU
  3. 增加PAHT,安裝目錄建議在c:底下,設定如下圖

imageimage

更名 python.exe ----> python3.exe 和 pythonw.exe -------> pythonw3.exe.

    到 C:\Python36\Scripts 刪除 pip

    imageimage

    確認PAHT有無問題

    image

    執行CMD 打上python3 及python 看有無問題

    image

    三.下載及安裝odoo的相依套件

    1. 可以到https://github.com/kasim1011/odoo-11.0-windows-installation
    2. 可以裡面的內容直接解壓縮到odoo11的原始碼中

    image

    Install pypiwin32 by > python3 -m pip install pypiwin32
    Install Pillow by > python3 -m pip install Pillow-3.4.2-cp36-cp36m-win_amd64.whl
    Install gevent by > python3 -m pip install gevent-1.2.2-cp36-cp36m-win_amd64.whl
    Install lxml by > python3 -m pip install lxml-3.8.0-cp36-cp36m-win_amd64.whl
    Install psutil by > python3 -m pip install psutil-5.3.1-cp36-cp36m-win_amd64.whl
    Install psycopg2 by > python3 -m pip install psycopg2-2.7.3-cp36-cp36m-win_amd64.whl
    Install pyldap by > python3 -m pip install pyldap-2.4.37-cp36-cp36m-win_amd64.whl
    Install reportlab by > python3 -m pip install reportlab-3.4.0-cp36-cp36m-win_amd64.whl

    四.執行的odoo11的requirements.txt 相依套件

    至odoo11 的目錄找到 requirements.txt 並在cmd 執行

    python3 -m pip install -r requirements.txt
    python3 -m pip install -U werkzeug

    image

    五.下載及安裝 wkhtmltopdf.
    確認PAHT是否有加入 (default: C:\Program Files\wkhtmltopdf\bin)

    六.至cmd執行,看結果

    python3 odoo-bin -w odoo -r odoo --addons-path=addons --log-level=debug_rpc

    image

    星期四, 11月 16, 2017

    在MAC上安裝 Odoo10

    開始前請確認是否有安裝 git 及python的版本

    git and python 2.7.10.

    1) 至gitbut 下載 odoo10:

    git clone --depth=1 --branch=10.0 https://github.com/odoo/odoo.git

    2) 安裝資料庫postgresql 及pgadmin4:Postgresapp

    • http://postgresapp.com/, 下載直接開啓及安裝,安裝後選擇初始化,預設開機自動啓動,也可以後直接用手動啓動
    • imageimage
    • https://www.pgadmin.org 下載 pgadmin4 後安裝 (如果資料庫是9.6要安裝pgadmin3)

    新增PATH,可以使用相關postgresql的語法

    至 ~/.bash_profile

    增加

    export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

    3) 安裝pip

    sudo easy_install pip

    4)安裝nodejs

    • https://nodejs.org, 下載 node 並安裝
    • 打開命令列確認是否安裝成功,下node 及 npm

    5) 安裝less

    sudo npm install -g less less-plugin-clean-css

    如果成功會有以下畫面:

    /usr/local/bin/lessc -> /usr/local/lib/node_modules/less/bin/lessc
    less-plugin-clean-css@1.5.1 /usr/local/lib/node_modules/less-plugin-clean-css
    └── clean-css@3.4.9 (source-map@0.4.4, commander@2.8.1)
    less@2.6.0 /usr/local/lib/node_modules/less
    ├── mime@1.3.4
    ├── graceful-fs@3.0.8
    ├── image-size@0.3.5
    ├── errno@0.1.4 (prr@0.0.0)
    ├── promise@6.1.0 (asap@1.0.0)
    ├── source-map@0.4.4 (amdefine@1.0.0)
    ├── mkdirp@0.5.1 (minimist@0.0.8)
    └── request@2.69.0 (aws-sign2@0.6.0, forever-agent@0.6.1, tunnel-agent@0.4.2, oauth-sign@0.8.1, is-typedarray@1.0.0, caseless@0.11.0, stringstream@0.0.5, isstream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.0, tough-cookie@2.2.1, node-uuid@1.4.7, qs@6.0.2, combined-stream@1.0.5, mime-types@2.1.9, form-data@1.0.0-rc3, aws4@1.2.1, hawk@3.1.3, bl@1.0.2, har-validator@2.0.6, http-signature@1.1.1)

    6) 安裝相關套件

    打開命令例執行: xcode-select --install

    打開命令列執行:

    brew install autoconf automake libtool
    brew install libxml2 libxslt libevent

    7)安裝python dependencies, 在命令列中至odoo 10 下載的目錄中找到requirements.txt,再輸入下列語法

    image

    sudo easy_install -U setuptools
    pip install --user -r requirements.txt

    其結果應該如下:

    Successfully installed Babel-1.3 Jinja2-2.7.3 Mako-1.0.1 MarkupSafe-0.23 Pillow-2.7.0 PyYAML-3.11 Python-Chart-1.39 Werkzeug-0.9.6 argparse-1.2.1 beautifulsoup4-4.4.1 decorator-3.4.0 docutils-0.12 feedparser-5.1.3 gdata-2.0.18 gevent-1.0.2 greenlet-0.4.7 jcconv-0.2.3 lxml-3.4.1 mock-1.0.1 ofxparse-0.14 passlib-1.6.2 psutil-2.2.0 psycogreen-1.0 psycopg2-2.5.4 pyPdf-1.13 pydot-1.0.2 pyparsing-2.0.1 pyserial-2.7 python-dateutil-1.5 python-ldap-2.4.19 python-openid-2.2.5 python-stdnum-1.2 pytz-2013.7 pyusb-1.0.0b2 qrcode-5.1 reportlab-3.1.44 requests-2.6.0 six-1.4.1 suds-jurko-0.6 vatnumber-1.2 vobject-0.6.6 xlwt-0.7.5

    8) 執行odoo ,在odoo 10 的下載目錄中,找到odoo-bin,執行下列命令即可

    ./odoo-bin


    執行結果如下

    image


    9) 開啓odoo

    星期四, 4月 06, 2017

    Windows 的 Odoo10 開發環境安裝

    預計安裝內容

    • python 的運行環境
    • postgreSQL資料庫
    • 安裝 pgadmin
    • Git 及 Tor
    • 安裝JDK及Pycharm

    一.、python 的運行環境,安裝python-2.7.12

    下載路徑,https://www.python.org/downloads/windows/

    clip_image001

    點擊"next"

    clip_image002

    路徑不變,繼續下一步。

    clip_image003

    選擇自動加入PATH,run完之後點擊"finish",並重新開機。

    打開cmd.exe 輸入python,若有出現版本訊息則代表安完成,若無檢查PATH

    image

    二、安裝 postgreSQL資料庫 postgresql-9.6

    下載路徑,https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows

    clip_image001[5]

    • 設定路徑
    • 輸入密碼: 兩個欄位都輸入"odoo"

    clip_image002[5]

    然後一路 "next" 到底!

    三、安裝 pgadmin

    下載路徑, https://www.pgadmin.org/download/pgadmin-4-windows/

    安裝過程: 下一步 → 選擇"I accept….",下一步 → 選擇安裝路徑 → install → 完成。

    • 設置權限

    安裝成功後開啟檔案, 並點選server→PostgreSQL,輸入密碼:odoo新增 使用者 odoo 密碼 odoo 並設定權限

    clip_image002[7]

    新增使用者

    clip_image003[7]

    在"general"中輸入odoo。

    clip_image004[5]

    在"privileges",全部都開"yes",完成之後按下"save"。

    clip_image005[5]

    四、安裝Git及TortoiseGit輔助

    下載路徑,https://git-scm.com/download/win

    https://tortoisegit.org/download/

    安裝 Git-2.12,一直Next就可

    image

    安裝TortoiseGit,,一直Next就可,可以不要跑 Run First start wizard

    image

    安裝 TortoiseGit-LanguagePack,一直Next就可

    image

    五、安裝JDK及Pycharm

    JDK下載路徑,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    Pycharm下載路徑,https://www.jetbrains.com/pycharm/download/#section=windows

    1.安裝JDK,並配置JAVA_HOME (C:\Program Files\Java\jdk1.8.0_121),配置完重開機

    image

    2.安裝Pycharm,一直下一步即可

    image

    六、下載odoo及設定

    1. https://pip.pypa.io/en/stable/installing/ 下載 get-pip.py 因為windows執行PIP會有點問題
    2. 下載後執行
    3. python get-pip.py
    1. 到odoo的gitHub下載odoo10 https://github.com/odoo/odoo
    1. 用notepad開啟requirements.txt檔,然後在最後面加上pypiwin32
    1. 開啟cmd,進入odoo 10 soruce 所屬的位置,例 D:\Odoo\odoo10_SourceLimit\odoo10
    2. 依序打上以下指令。

    pip.exe install -r requirements.txt

    python -m pip install --upgrade pip

    1. 將下方檔案放入在你所下載的odoo資料檔裡(odoo.conf),並且用notepad開啟更改路徑。

    <<odoo.conf>>

    clip_image005[7]

        
    1. 安裝node.js

    clip_image006

    並重新開啟cmd內打上安裝odoo套件指令:

    npm install -g less less-plugin-clean-css

    1. 安裝wkhtmltox

    clip_image007

    並設定路徑,Odoo就安裝OK!

    七、以pycharm開啟odoo

    1. 開啟pycharm

    http://www.360kb.com/kb/17_24.html 取的註冊碼 並貼在如下框格中,並點選"ok"。

    clip_image008

    1. 用pycharm打開odoo

    clip_image009

    1. 設定環境變數與路徑

    clip_image010

    clip_image011

    clip_image012

    script請輸入您安裝odoo的路徑。

    星期一, 9月 05, 2016

    UBUNTU 16.04 中文輸入法設定

    Ubuntu 16.04 的輸入法 預設 fcitx

    預設用繁體中文安裝,直接點左欄的齒輪,進入「語言支援」

    image

    進入「語言支援」後,會提示套件補齊

    補齊後,先「登出」讓系統讀入中文語系輸入法

    image

    我是使用倉頡,就安裝倉頡3代

    sudo apt-get install fcitx-table-cangjie3

    重新啓動

    其他輸入法,打指令找

    sudo apt-cache search fcfitx

    安裝完後,點選右上角的鍵盤圖示,在下拉的選單中選擇ConfigureFcitx

    image

    出現,輸入法設定,點選左下角的+號,選擇剛才安裝的倉頡輸入法

    image

    Ctrl + 空白鍵,即可進行輸入法交換

     

    如果是IBUS,上述方法一致

    喜歡使用第三代倉頡輸入法,要安裝,首先可以輸入

    sudo apt-get install ibus-table-cangjie3 #這是安樣第三代倉頡輸入法


    其他輸入法安裝語句:

    sudo apt-get install ibus-table-cangjie-big #倉頡輸入法
    sudo apt-get install ibus-table-wubi #五筆輸入法 sudo apt-get install ibus-table-cantonese #廣東話輸入法 sudo apt-get install ibus-table-emoji #表情符號輸入法 sudo apt-get install ibus-table-quick #速成輸入法 sudo apt-get install ibus-table-stroke5 #筆劃輸入法 sudo apt-get install ibus-zhuyin #注音輸入法 sudo apt-get install ibus-pinyin #拼音輸入法

    ibus restart

    讓剛剛安裝的輸入法可以被載入。

    在 System Settings 中,開啟 Text Entry

    按「+」號增加輸入法

    選擇你想增加的輸入法,我喜歡使用第三代倉頡,就選擇 Chinese (CangJie3) (IBus),你可以選擇你喜歡的輸入法。

    星期三, 8月 03, 2016

    Odoo 9 建立模組(四) 從Python開始學習 到 odoo 請假模組製作

    Python 基礎

    • 主要學習網頁為
    • 可以將裡面的習題全部做完就差不多能夠了解Python的程式語言

    http://old.sebug.net/paper/books/LearnPythonTheHardWay/

    • 裡面看不懂的語法可以到這裡查

    http://pydoing.blogspot.tw/2012/10/python-tutorial.html

    Odoo9 請假模型

    • 自動更新模組
      • 在configuration內的addons-path的尾端加上要自動更新的目錄ex: (--addons-path addons,my-modules -d academy -u academy)
    • 簡易請假模型製作
      • 目錄像這樣

      image

      • main_model

    image

      • views

    <openerp>
    <data>
    <!--
    打开请假单动作
    -->
    <act_window id="action_qingjia_qingjd"
    name=" 请假单"
    res_model="qingjia.qingjd"
    view_mode="tree,form" />
    <!--
    表单视图
    -->
    <record id="qingjia_qingjd_form" model="ir.ui.view">
    <field name="name">qing jia dan form</field>
    <field name="model">qingjia.qingjd</field>
    <field name="arch" type="xml">
    <form>
    <sheet>
    <group name="group_top" string= "请假单">
    <field name="name"/>
    <field name="days"/>
    <field name="startdate"/>
    <field name="reason"/>
    </group>
    </sheet>
    </form>
    </field>
    </record>
    <!--
    tree 视图
    -->
    <record id="qingjia_qingjd_tree" model="ir.ui.view">
    <field name="name">qing jia dan tree</field>
    <field name="model">qingjia.qingjd</field>
    <field name="arch" type="xml">
    <tree>
    <field name="name"/>
    <field name="startdate"/>
    <field name="days"/>
    </tree>
    </field>
    </record>
    <!--
    加入菜单
    -->
    <menuitem id="menu_qingjia" name=" 请假" sequence="0"></menuitem>
    <menuitem id="menu_qingjia_qingjiadan" name=" 请假单" parent="menu_qingjia"></menuitem>
    <menuitem id="menu_qingjia_qingjiadan_qingjiadan" parent="menu_qingjia_qingjiadan" action="action_qingjia_qingjd"></menuitem>
    </data>
    </openerp>

    參考網站:http://www.3e3c.com/erp/odoo/220.html

      • __openerp__

    {
        'name': "qingjia",
        'version': '1.0',
        'depends': [],
        'author': "peng",
        'category': '',
        'description': """

        """,
        'depends': ['base'],
        'data': [
                 "views/views.xml"
                ],
        'demo': [],
        'application':True,
    }

     

     

     

     

    • 參考資料

    http://cdwanze.github.io/%E7%94%B5%E8%84%91/python/Odoo/%E7%B2%BE%E9%80%9AOdoo.html#orgheadline93

    星期二, 7月 26, 2016

    Odoo 9 建立模組 (三) 自行建立模組

    一、建立資料夾,檔案

    • 想要自行建立一個模組裡面必須要有下列幾個必要元素
    • 先在addons目錄下新增一個python package  檔名為test

    image

    • 在test下新增以下檔案
    • test (python package)
    • __init__.py   (python file 會自行產生 )
    • __openerp__.py     (python file"__"為雙底線)
      • models    ( ython package)
        • __init__.py(python file 會自行產生)
      • views (Directory 檔案夾)
        • test_student_view.xml  (file)

    image

    • 完成後

    image

    二、import 資料夾和檔案

      • __openerp__.py

        • 可以參考上節所建立的openacademy內的openerp建立,主要是宣告模組名稱,版本,作者.......

    {
        'name': "test1",
        'version': '1.0',
        'depends': [],
        'author': "supojen(kulius@msn.com)",
        'category': '',
        'description': """

        """,
        'data': ["views/test1_student_view.xml"],
        'demo': [],
    }

    • __init__.py

      • import有使用到的models,和python檔

    image

        # -*- coding: utf-8 -*-
        import models

    image

    from . import test_student

    三、資料關聯建立

    • models內的檔案是負責關聯資料表

    image

     

    • 建立一個"name"的欄位

    from openerp import models, fields, api

    class TestStudent(models.Model):
        _name="test.student"
        name=fields.Char()

    image

    四、畫面設定

    • odoo畫面相關的code會放在剛剛建立views資料夾裡的XML檔,此XML檔需在openerp內的DATA進行宣告

    image

     

    <?xml version="1.0" encoding="utf-8"?>
    <openerp>
        <data>
            <record id="test_student_view_form" model="ir.ui.view">
                <field name="name">test.student.view.form</field>
                <field name="model">test.student</field>
                <field name="arch" type="xml">
                    <form string="">
                        <sheet>
                            <group>
                                <field name="name"/>


                            </group>
                        </sheet>
                    </form>
                </field>
            </record>

            <record id="test_student_view_tree" model="ir.ui.view">
                <field name="name">test.student.view.tree</field>
                <field name="model">test.student</field>
                <field name="arch" type="xml">
                    <tree string="">
                        <field name="name"/>
                    </tree>
                </field>
            </record>

            <record id="test_student_action" model="ir.actions.act_window">
                <field name="name">test student</field>
                <field name="type">ir.actions.act_window</field>
                <field name="res_model">test.student</field>
                <field name="view_mode">tree,form</field>
                <field name="help" type="html">
                  <p class="oe_view_nocontent_create">
                    <!-- Add Text Here -->
                  </p><p>
                    <!-- More details about what a user can do with this object will be OK -->
                  </p>
                </field>
            </record>


            <menuitem id="test_menu_root" name="test" sequence="1"/>
            <menuitem id="test_select_menu_category" name="select" parent="test_menu_root" sequence="1"/>
            <menuitem id="test_course_menu_action_list" name="set student" parent="test_select_menu_category" action="test_student_action" sequence=""/>


        </data>
    </openerp>

    四、簡易模組完成

    image

     

    image