Import translation in Odoo 10

Hello guys ^^
Today’s article will show you how to translate your modules in Odoo 10.

For our tutorial we will work with the module:”hr_expense” that has some few missing translated words and we will explain to you, step by step, how to import the translation into this module.

We will try to translate it in french.
To do so:

1-Activate the developer mode: Setting -> Activate developer mode

developer mode in odoo

2- Install the module “hr_expenses”:

you will notice that some few words are not translated in french.

hr_expenses module

3- Go to addons/hr_expense/i18n/fr.po:

– Open the file “fr.po”, you will notice that some few words are not translated

https://drive.google.com/file/d/0B09HNye3F974dnZwd3FQLTNXcHM/view?usp=sharing

– Save this file

-Add necessary  translation to your file and save it. For our case, we translated the following words:

  • “Expenses to Submit”, “Refused Expenses”, “Expense Reports”

translation odoo 10

3-Import Translation:
Go to : Setting-> Translation-> import/export-> Import translation
Screenshot 2017-04-11 15:20:16

4- This window will appear:
Screenshot 2017-04-11 15:21:14

5- Add your file “fr.po” and click import:
Screenshot 2017-04-11 15:21:55

6- Restart your navigator: 

You will notice that the translation has been successfully added.

translated words

Please find here a video that shows all the steps of importing translation in Odoo 10 described above :

 

Hope you guys like it ^^
Best of luck

Field of type Reference in Odoo, how to use it ?

Reference field type in Odoo

The main use of this field type is to make a reference with a specific model and then a specific recordset of this model.

By using the reference field type, the first thing you will choose is the model:

field reference

And by choosing the model you will be asked the choose one of the recordset of the chosen Model

field reference recordset

Structure of the reference field in Odoo (New API)

A field of type reference is declared as below :

ref = fields.Reference(string='Reference', selection='_get_document_types')

Selection attribute : We define the method that will determine which models will be showed, and from which we can choose

In our example we used this method :

method selection field reference

@api.model
    def _get_document_types(self):
        records = self.env['ir.model'].search(['|', ('model', '=', 'sale.order'), '|', ('model', '=', 'account.invoice'), '|', ('model', '=', 'stock.picking'), ('model', '=', 'purchase.order')])
        return [(record.model, record.name) for record in records] + [('', '')]

In this example, we specified that we want to choose from [ Sale Order, Account Invoice, Stock Picking, Purchase Order ] models

Hope it was useful for you
Good luck !!

Odoo : SQL Query Tips

In this article we will show some useful tips that will help you work with SQL Queries in python/Odoo.

How to execute queries in Odoo 10 ?

you should use the self.env.cr to run a sql query

cr = self.env.cr
cr.execute("SELECT a, b, c FROM [your_table] WHERE [condition]")
cr.fetchall()

It’s highly recommended to use the double quotes ” ” instead of single quotes ‘ ‘

What’s the query can returns ?

cr.dictfetchall() : will give you all the matching records in the form of the list of dictionary containing key, value [{'': ''}, {'': ''}, ...].
cr.dictfetchone : works same as cr.dictfetchall() except it returns only a single record {'': ''}.
cr.fetchall() : will give you all the matching records in the form of the list of tuple [(''), (''), ...].
cr.fetchone() : works same way as cr.fetchall() except it returns only single record ('').

SQL Queries with variables

You can execute Queries with variables using %s like:

cr.execute("SELECT a, b, c FROM [your_table] AS a WHERE a.id = %s AND a.field = %s", (first_value, second_value))

Hope it was useful for you
Good luck !!

List Vs Tuple in python with Odoo

Hello everyone

In this article we will emphasize the difference in the use of tuple and list :

list gives you values between brackets “[]”. For example, when we do in odoo:

account_ids = self.env['account.account'].search([])
account_ids ---> [1, 4, 5, 8 , 9]

account_ids is a list of values

We can use this list:

* in loops:

for account_id in account_ids:
     move = self.env['account.account'].search([('account_id', '=', account_id)])

* to search in another table:

move = self.env['account.account'].search([('account_id', 'in', account_ids)])

* to change or search a specific value:

account_ids[2] -----> 5
account_ids[4] -----> 9
account_ids[0] = 10 -----> will replace the first value "1" by "10"

* change a tuple to a list:

 list(my_tuple)

tuple gives you values between parentheses “()”. we can use them in :

* change a tuple to a list:

account_ids = tuple(self.env['account.account'].search([])) 
account_ids ---> (1, 4, 5, 8 , 9)

* in loops:

for account_id in account_ids:
     move = self.env['account.account'].search([('account_id', '=', account_id)])

* to search in another table:

move = self.env['account.account'].search([('account_id', 'in', account_ids)])

* in SQL filter Query:

In SQL Query we should use a tuple of values and not a list

account_ids = tuple(self.env['account.account'].search([]))
cr.execute('SELECT * FROM account_move_line where account_id in %s,(account_ids))

Install Odoo 10.0 ( Community) on Ubuntu 16.04 LTS

Hello everyone

This article will help you to install Odoo-10 Community on Ubuntu 16.04 LTS.

The script that will be used in this installation  is based on the one done by Yenthe.

To do so, I adv ice you to refer to that link and follow the script used.

http://www.odoo.yenthevg.com/installing-odoo-10-ubuntu-16-04/ 

The next article, will be about debugging Odoo-10 (Community) using PyCharm Community on Ubuntu 16.04 LTS.
Wish you best of luck ^^

Please find here the Demo of  “how to debug Odoo 10 using Pycharm IDE on Ubuntu 16.04 LTS”:

https://www.youtube.com/watch?v=O7OdXcYCo3o

You could also see this two tutorials that show how:

Best of luck ^^

what is Odoo ?

Hello everyone

Today’s article will be about “what is Odoo ?”, so you’ll get the chance to discover Odoo: its definition and its release history.

Overview about Odoo:

Odoo, formerly known as OpenERP, is a suite of enterprise management applications. Targeting companies of all sizes.

The application suite cover all the company’s needs:  CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

It is 100 % modular application, so when Odoo is first installed there are ZERO modules installed with it, so you are able to only install the modules you need.

Odoo includes the following modules that may be installed with a simple mouse click:

– Accounting
– Customer Relationship Management (CRM)
– Warehouse Management
– Manufacturing Resource Planning (MRP)
– Purchase Management
– Project/Service Management
– Human Resource Management (HRM)
– Content Management (CMS)
– Document Management
– Fleet Management
– Point of Sale (POS)
– Application Builder

modules-odoo

  • Odoo offers a simple and rapid solution for all users, it allows you to customize or modify your modules.
  • Odoo is writing in Python, JavaScript and XML.
  • Odoo is compatible with: Linux, Unix-Like, OS X and Windows

Release history:

release-history

NB: Odoo have released software as open source but starting at the V9.0 release, the company of Odoo has transitioned to an open core model which provides subscription-based proprietary Enterprise software and cloud-hosted Software as a service, and a cut-down community version.

Software license:

  • GNU General Public License (GNU GPL):  is a widely used free software license, which guarantees end users the freedom to run, study, share and modify the software.
  • GNU Affero General Public License ( GNU AGPL): is a free, copyleft license published by the Free Software Foundation in November 2007, and based on the GNU General Public License, version 3 and the Affero General Public License.

The Free Software Foundation has recommended that the GNU AGPLv3 be considered for any software that will commonly be run over a network.

  • GNU Lesser General Public License (GNU LGPL): is a free software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate software released under the LGPL into their own (even proprietary) software without being required by the terms of a strong copyleft license to release the source code of their own components.


Debug Odoo 10.0 using Pycharm in Windows

Hello everyone
This article well help you step by step to debug odoo-10.0 in Windows using PycharmProjects.

For the environment, I am using Windows 7 and Pycharm, version 2016.3 in 64 bit

This article is divided into three parts:
Part 1: describes how to install required packages and source code
Part 2: show how to configure PostgresSQL and Odoo
Part 3: gives you the solution of some errors occurred while my installation process

 

I.Install required packages and source code:

1.1-Install Pycharm:

https://www.jetbrains.com/pycharm/download/#section=windows

1.2-Install Python 2.7:

https://www.python.org/ftp/python/2.7.12/python-2.7.12.amd64.msi

1.3-Install odoo 10:

First, go to:

  https://github.com/odoo/odoo/archive/10.0.zip 

to download the field “odoo-10.zip”, after that extract the content of “odoo-10.zip”.

1.4- Run Pycharm, and open the odoo-10 ( folder extracted earlier )

 

odoo-server-in-PyCharm-Project

1.5-Install Microsoft Visual C++ Compiler for Python 2.7 if you don’t have one:

https://www.microsoft.com/en-us/download/details.aspx?id=44266

1.6-Install required packages:

For this step you could either:

Install the requirements.txt once you open PycharmProjects, it will appear a message asking you to install “requirements.txt

Go to “cmd” command line and execute these commands:

> cd C:\ python27 (here you specify the location of your field “python27”)
> python -m pip install -r C:\Users\PycharmProjects\Odoo-10.0\requirements.txt  (here you specify the location of your field “Odoo-10.0”)

NB: some of this required packages will not be installed, to do so I ask you to refer to the part 3 of this article.

1.7-Install pywin32 (This installation is optional) :

While installing the required packages missing, you may have some errors dealing with pywin32. So all you need to do is to install it:

link to the pywin32.exe

1.8-Install pip:

-Go to:

https://pip.pypa.io/en/latest/installing/

download get-pip.py

-Go to “cmd” command line and execute these commands:

> cd C:\python27(here you specify the location of your folder “python27”)
> Python get-pip.py

II.Install PostgreSQL and configure Odoo:

2.1- install and download PostgresSQL for Windows:

Download PostgreSQL from official website

NB : You should remember the password of “postgres” role that you set when installing PostgreSQL.you will need it in the next step.

2.2- Create a new role with superuser privilege for Odoo application:

In my case, I create a superuser “lenovo” and set its password as “lenovo”.
To do so, Go to “cmd” command line and execute these commands:

> cd "C:\Program Files\PostgreSQL\9.4\bin"
> createuser.exe --createdb --username postgres --no-createrole --pwprompt lenovo

2.3- configure Odoo:

To configure Odoo, you can refer to the file odoo-server.conf:

This is the password that allows database operations:

; admin_passwd = admin
db_host = localhost
db_port = 5432
db_user = lenovo
db_password =lenovo
addons_path = C:\Users\PycharmProjects\odoo10\addons

If you want to change your port, you can add this line to that file: xmlrpc_port = 8070

III.Errors and solutions:

3.1-You may have an error telling that you don’t have “Setuptools”, so you can install it.

To do so, go to “cmd” command line and execute these commands:

> cd C:\python27
> python -m pip install --upgrade setuptools

3.2- Install wheel & lxml-3.6.4-cp27-cp27m-win32.whl:

Go to “cmd” command line and execute these commands:

> cd C:\python27
> python -m pip install wheel

To install lxml-3.6.4-cp27-cp27m-win32.whl, go here

Then, go to “cmd” command line and execute this commands:

> cd C:\python27
> python -m pip install lxml-3.6.4-cp27-cp27m-win32.wh

(here you should choose the file that go with your environment)

3.3- Install ebaysdk:

Go to:
 https://pypi.python.org/pypi/ofxparse

(here you should choose the file that go with your environment)

Then, go to “cmd” command line and execute these commands:

> cd C:\python27
> python -m pip install "C:\path to\tar\ofxparse-0.15.tar.gz "

3.4- Install psycopg2 .exe:

http://www.stickpeople.com/projects/python/win-psycopg/

3.5- once you launch your odoo server using your navigator: localhost: 8069, you may have this error: « could not execute command lessc »

to resolve that problem, you follow those steps:

  • – Install nodejs : https://nodejs.org/en/
  • – go to “cmd” command line and execute this commands:
> cd C:\Program Files\nodejs (here you specify the location of your field “nosejs”) 
> npm install -g less less-plugin-clean-css

3.6- how to use wkhtmltopdf to print a PDF:

  • -Install wkhtmltopdf : http://wkhtmltopdf.org/downloads.html  (Windows (MSVC 2013))
  • -In system variable on windows add in PATH: C:\Program Files\wkhtmltopdf\bin
  • -Restart the OS(systeme windows)