[MERGE] small code improvement
authorQuentin (OpenERP) <qdp-launchpad@openerp.com>
Mon, 4 Jul 2011 14:05:06 +0000 (16:05 +0200)
committerQuentin (OpenERP) <qdp-launchpad@openerp.com>
Mon, 4 Jul 2011 14:05:06 +0000 (16:05 +0200)
bzr revid: qdp-launchpad@openerp.com-20110704140506-j2o8m2pcak2p0c5m

131 files changed:
debian/po/bg.po
debian/po/ca.po
debian/po/cs.po
debian/po/de.po
debian/po/el.po
debian/po/en_GB.po
debian/po/es.po
debian/po/es_CL.po
debian/po/es_EC.po
debian/po/fa.po
debian/po/fi.po
debian/po/fr.po
debian/po/gl.po
debian/po/he.po
debian/po/hr.po
debian/po/hu.po
debian/po/it.po
debian/po/ja.po
debian/po/ko.po
debian/po/lv.po
debian/po/mn.po
debian/po/nb.po
debian/po/nl.po
debian/po/pl.po
debian/po/pt.po
debian/po/pt_BR.po
debian/po/ro.po
debian/po/ru.po
debian/po/sk.po
debian/po/sq.po
debian/po/sr.po
debian/po/sv.po
debian/po/tr.po
debian/po/uk.po
debian/po/vi.po
debian/po/zh_CN.po
debian/po/zh_TW.po
openerp/.apidoc [new file with mode: 0644]
openerp/addons/base/i18n/af.po
openerp/addons/base/i18n/am.po
openerp/addons/base/i18n/ar.po
openerp/addons/base/i18n/bg.po
openerp/addons/base/i18n/bs.po
openerp/addons/base/i18n/ca.po
openerp/addons/base/i18n/cs.po
openerp/addons/base/i18n/da.po
openerp/addons/base/i18n/de.po
openerp/addons/base/i18n/el.po
openerp/addons/base/i18n/en_GB.po
openerp/addons/base/i18n/es.po
openerp/addons/base/i18n/es_CL.po
openerp/addons/base/i18n/es_EC.po
openerp/addons/base/i18n/et.po
openerp/addons/base/i18n/eu.po
openerp/addons/base/i18n/fa.po
openerp/addons/base/i18n/fa_AF.po
openerp/addons/base/i18n/fi.po
openerp/addons/base/i18n/fr.po
openerp/addons/base/i18n/gl.po
openerp/addons/base/i18n/he.po
openerp/addons/base/i18n/hr.po
openerp/addons/base/i18n/hu.po
openerp/addons/base/i18n/hy.po
openerp/addons/base/i18n/id.po
openerp/addons/base/i18n/is.po
openerp/addons/base/i18n/it.po
openerp/addons/base/i18n/ja.po
openerp/addons/base/i18n/ko.po
openerp/addons/base/i18n/lt.po
openerp/addons/base/i18n/lv.po
openerp/addons/base/i18n/mk.po
openerp/addons/base/i18n/mn.po
openerp/addons/base/i18n/nb.po
openerp/addons/base/i18n/nl.po
openerp/addons/base/i18n/nl_BE.po
openerp/addons/base/i18n/pl.po
openerp/addons/base/i18n/pt.po
openerp/addons/base/i18n/pt_BR.po
openerp/addons/base/i18n/ro.po
openerp/addons/base/i18n/ru.po
openerp/addons/base/i18n/sk.po
openerp/addons/base/i18n/sl.po
openerp/addons/base/i18n/sq.po
openerp/addons/base/i18n/sr.po
openerp/addons/base/i18n/sr@latin.po
openerp/addons/base/i18n/sv.po
openerp/addons/base/i18n/th.po
openerp/addons/base/i18n/tlh.po
openerp/addons/base/i18n/tr.po
openerp/addons/base/i18n/uk.po
openerp/addons/base/i18n/ur.po
openerp/addons/base/i18n/vi.po
openerp/addons/base/i18n/zh_CN.po
openerp/addons/base/i18n/zh_TW.po
openerp/netsvc.py
openerp/osv/__init__.py
openerp/osv/expression.py
openerp/osv/fields.py
openerp/osv/orm.py
openerp/osv/osv.py
openerp/osv/query.py
openerp/report/__init__.py
openerp/report/printscreen/__init__.py
openerp/report/printscreen/ps_form.py
openerp/report/printscreen/ps_list.py
openerp/report/pyPdf/__init__.py
openerp/report/render/__init__.py
openerp/report/render/html2html/__init__.py
openerp/report/render/makohtml2html/__init__.py
openerp/report/render/odt2odt/__init__.py
openerp/report/render/rml2html/__init__.py
openerp/report/render/rml2pdf/__init__.py
openerp/report/render/rml2pdf/customfonts.py
openerp/report/render/rml2txt/__init__.py
openerp/service/__init__.py
openerp/service/http_server.py
openerp/service/netrpc_server.py
openerp/service/security.py
openerp/service/web_services.py
openerp/service/websrv_lib.py
openerp/sql_db.py
openerp/tiny_socket.py
openerp/tools/__init__.py
openerp/tools/amount_to_text.py
openerp/tools/amount_to_text_en.py
openerp/tools/config.py
openerp/tools/func.py
openerp/tools/graph.py
openerp/tools/misc.py
openerp/tools/which.py
openerp/workflow/__init__.py

index 09b50a7..09d5b63 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 0709446..cfeccff 100644 (file)
@@ -15,7 +15,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 14ba09b..8b41f7f 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 8653956..972d8c1 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 7a2875e..55234f5 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 512d766..ea295d8 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index a68e0fd..77e79d5 100644 (file)
@@ -15,7 +15,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 5146f4c..7f953ce 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index da256cf..d59820c 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index f9cdb06..0703c40 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 10a1cdc..19c253f 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index deedfd0..731c735 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index ce42e2a..897e440 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index d7b3b0d..5fae5da 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index c2d97d8..a46872a 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index e647b27..be7d7d3 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index ec640df..4891f1b 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index efc1e26..9e66fcf 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 32f178e..63f1dec 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index f9703df..aa84c32 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index aad2170..cf0a9b1 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index e17168b..865961a 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 42999c1..9432670 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 72060b2..4e8f888 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 5ee3f07..144f827 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index e889e19..d5266e3 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index fa877dc..37bd921 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 3f4aae1..7bfd46d 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index c5ff614..28d8301 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 08011f0..5e860c2 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 0276e22..e28d9d5 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index afd5118..ba2e0f4 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 "X-Poedit-Language: Swedish\n"
 
index fce53c4..0c37baf 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 4c58df2..3c2b29d 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 8e20be9..e2392f3 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index 10e078f..6d4a3ab 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. Type: string
index d13900e..c36e8d6 100644 (file)
@@ -12,7 +12,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:46+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 "X-Poedit-Country: TAIWAN\n"
 "X-Poedit-Language: Chinese\n"
diff --git a/openerp/.apidoc b/openerp/.apidoc
new file mode 100644 (file)
index 0000000..9109e43
--- /dev/null
@@ -0,0 +1 @@
+excludes: pychart release openerp-server test run_tests addons/base_quality_interrogation
\ No newline at end of file
index d13be8c..a62a0a5 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:34+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:54+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index d022115..806bc39 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:34+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:54+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 6b23e8b..d31657d 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:34+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:54+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
@@ -23,7 +23,7 @@ msgstr ""
 #: field:ir.rule,domain_force:0
 #: field:res.partner.title,domain:0
 msgid "Domain"
-msgstr ""
+msgstr "النطاق"
 
 #. module: base
 #: model:res.country,name:base.sh
@@ -33,12 +33,12 @@ msgstr "سانت هيلينا"
 #. module: base
 #: view:ir.actions.report.xml:0
 msgid "Other Configuration"
-msgstr ""
+msgstr "عدادت أخري"
 
 #. module: base
 #: selection:ir.property,type:0
 msgid "DateTime"
-msgstr ""
+msgstr "الوقت و التاريخ"
 
 #. module: base
 #: code:addons/fields.py:534
@@ -52,18 +52,18 @@ msgstr ""
 #: view:ir.values:0
 #: field:ir.values,meta_unpickle:0
 msgid "Metadata"
-msgstr "الفوقية"
+msgstr "بيانات وصفية"
 
 #. module: base
 #: field:ir.ui.view,arch:0
 #: field:ir.ui.view.custom,arch:0
 msgid "View Architecture"
-msgstr ""
+msgstr "العرض الهندسي"
 
 #. module: base
 #: field:base.language.import,code:0
 msgid "Code (eg:en__US)"
-msgstr ""
+msgstr "الرمز (مثال: ar_EG)"
 
 #. module: base
 #: view:workflow:0
@@ -73,32 +73,32 @@ msgstr ""
 #: field:workflow.transition,wkf_id:0
 #: field:workflow.workitem,wkf_id:0
 msgid "Workflow"
-msgstr ""
+msgstr "مسار العمل"
 
 #. module: base
 #: view:partner.sms.send:0
 msgid "SMS - Gateway: clickatell"
-msgstr ""
+msgstr "بوابة خدمة الرسائل القصيرة: كليكاتل (clickatell)"
 
 #. module: base
 #: selection:base.language.install,lang:0
 msgid "Hungarian / Magyar"
-msgstr "المجرية / Magyar"
+msgstr "المجرية"
 
 #. module: base
 #: selection:ir.model.fields,select_level:0
 msgid "Not Searchable"
-msgstr ""
+msgstr "لا يمكن البحث"
 
 #. module: base
 #: selection:base.language.install,lang:0
 msgid "Spanish (VE) / Español (VE)"
-msgstr ""
+msgstr "الأسبانية"
 
 #. module: base
 #: field:ir.actions.server,wkf_model_id:0
 msgid "Workflow On"
-msgstr ""
+msgstr "سير العمل نشط"
 
 #. module: base
 #: field:ir.actions.act_window,display_menu_tip:0
index d0542a2..11815db 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:35+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:55+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index e215a7b..8fd720e 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:35+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:55+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 99229b6..4aba4a0 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:35+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:55+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 01dae86..17f6ff6 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:35+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:55+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index b3f0dbb..e5f5628 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:36+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:56+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 02b09c2..5146c4e 100644 (file)
@@ -15,7 +15,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:37+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:57+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 540f478..b172877 100644 (file)
@@ -12,7 +12,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:37+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:57+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 "X-Poedit-Country: GREECE\n"
 "X-Poedit-Language: Greek\n"
index d57ef3f..0ef8c39 100644 (file)
@@ -8,13 +8,13 @@ msgstr ""
 "Project-Id-Version: openobject-server\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
 "POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-06-27 13:53+0000\n"
+"PO-Revision-Date: 2011-06-30 15:19+0000\n"
 "Last-Translator: John Bradshaw <Unknown>\n"
 "Language-Team: English (United Kingdom) <en_GB@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-28 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:03+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
@@ -2348,7 +2348,7 @@ msgstr "Sir"
 #: code:addons/orm.py:1622
 #, python-format
 msgid "There is no view of type '%s' defined for the structure!"
-msgstr ""
+msgstr "There is no view of type '%s' defined for the structure!"
 
 #. module: base
 #: field:ir.default,ref_id:0
@@ -2494,7 +2494,7 @@ msgstr "Title"
 #. module: base
 #: help:ir.property,res_id:0
 msgid "If not set, acts as a default value for new resources"
-msgstr ""
+msgstr "If not set, acts as a default value for new resources"
 
 #. module: base
 #: code:addons/orm.py:3448
@@ -3618,7 +3618,7 @@ msgstr "Kazakhstan"
 #. module: base
 #: view:res.lang:0
 msgid "%w - Weekday number [0(Sunday),6]."
-msgstr ""
+msgstr "%w - Weekday number [0(Sunday),6]."
 
 #. module: base
 #: model:ir.actions.act_window,help:base.action_partner_form
index d98e431..33a55d3 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:42+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:02+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index e1e3a22..677954e 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:44+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:03+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 45eec53..49f7224 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:04+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 041b13c..21c8a8d 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:36+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:56+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 137a54a..a8961b0 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:34+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:55+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index a1729f7..acefa63 100644 (file)
@@ -9,7 +9,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:40+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:59+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
 "X-Poedit-Language: Persian\n"
index c6a2bf5..d5e8e9a 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:04+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 45948bb..3b06900 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:36+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:56+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 5e984b1..bb9ae5b 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:37+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:57+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index b7fee49..c475ce4 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:37+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:57+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 1949320..5ad60ae 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:37+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:57+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index f6226e9..be5fa48 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:41+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:01+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 "Language: hr\n"
 
index 9186811..06dcf00 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:38+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:57+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 3d19fad..4503660 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:34+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:54+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 5aec4b7..565acf4 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:38+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:58+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 97d15ae..bdf18dd 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:38+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:58+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index f7956f8..039bf55 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:38+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:58+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index f86695e..f28eb20 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:38+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:58+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index b6018a4..81e9cce 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:58+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 802c8ae..358189d 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:59+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index a7f9781..6f8df39 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:58+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 7470171..e6ef579 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:59+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index d7dbdc0..9703f44 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:59+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 1222db7..8fc7dd2 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:59+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 181763c..0ea92b3 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:36+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:56+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 2d36e27..75d5d14 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:44+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:04+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 491091f..c79a510 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:40+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:00+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index bc6f208..a91e17f 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:40+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:00+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index f20ecad..0aad95a 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:43+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:03+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 1a36c2d..69fd9cb 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:40+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:00+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index b3f1f53..ba72b09 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:41+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:00+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
@@ -3897,7 +3897,7 @@ msgstr "Название группы не может начинаться с \"
 #: view:ir.ui.view_sc:0
 #: field:res.partner.title,shortcut:0
 msgid "Shortcut"
-msgstr "Закладка"
+msgstr "Сокращение"
 
 #. module: base
 #: field:ir.model.data,date_init:0
@@ -4902,7 +4902,7 @@ msgstr "Внутренний заголовок RML"
 #. module: base
 #: field:ir.actions.act_window,search_view_id:0
 msgid "Search View Ref."
-msgstr "Поиск ссылки на обзор"
+msgstr "Ссылка на поиск вида"
 
 #. module: base
 #: field:ir.module.module,installed_version:0
@@ -5811,7 +5811,7 @@ msgstr "Основные параметры"
 #. module: base
 #: model:ir.ui.menu,name:base.menu_administration_shortcut
 msgid "Custom Shortcuts"
-msgstr "Пользовательские комбинации клавиш"
+msgstr "Пользовательские закладки"
 
 #. module: base
 #: selection:base.language.install,lang:0
index a834c76..80af22b 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:41+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:01+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 2107f5d..dd4e418 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:42+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:01+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 651ed31..0116da8 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:34+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 04:54+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 960ea4a..d561e75 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:41+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:01+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 0eb57da..3a790bd 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:45+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:05+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index e1916dc..2eec4d2 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:42+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:02+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 3b26332..d46ab41 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:42+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:02+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 991d319..cd3af82 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:42+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:02+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 1d0d5a2..ca95ba8 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:43+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:02+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
@@ -80,7 +80,7 @@ msgstr "İş Akışı"
 #. module: base
 #: view:partner.sms.send:0
 msgid "SMS - Gateway: clickatell"
-msgstr "SMS - Gateway: Clickatell Hizmeti"
+msgstr "SMS - Geçidi: Clickatell Hizmeti"
 
 #. module: base
 #: selection:base.language.install,lang:0
index 27cf922..06b9612 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:43+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:02+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 6268436..540c435 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:43+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:03+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index bd6ec58..b204ad1 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:43+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:03+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 360fc64..f434645 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:44+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:04+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 8898146..eb06009 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-27 04:44+0000\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:04+0000\n"
 "X-Generator: Launchpad (build 13168)\n"
 
 #. module: base
index 3230623..3a2add2 100644 (file)
@@ -57,6 +57,9 @@ def close_socket(sock):
     sock.close()
 
 
+#.apidoc title: Common Services: netsvc
+#.apidoc module-mods: member-order: bysource
+
 class Service(object):
     """ Base class for *Local* services
 
@@ -242,19 +245,22 @@ def init_alternative_logger():
     logger.setLevel(logging.ERROR)
 
 class Agent(object):
-    """Singleton that keeps track of cancellable tasks to run at a given
-       timestamp.
-       The tasks are caracterised by:
+    """ Singleton that keeps track of cancellable tasks to run at a given
+        timestamp.
+       
+        The tasks are characterised by:
+       
             * a timestamp
             * the database on which the task run
             * the function to call
             * the arguments and keyword arguments to pass to the function
 
         Implementation details:
-          Tasks are stored as list, allowing the cancellation by setting
-          the timestamp to 0.
-          A heapq is used to store tasks, so we don't need to sort
-          tasks ourself.
+        
+          - Tasks are stored as list, allowing the cancellation by setting
+            the timestamp to 0.
+          - A heapq is used to store tasks, so we don't need to sort
+            tasks ourself.
     """
     __tasks = []
     __tasks_by_db = {}
index 6300909..b32d81d 100644 (file)
@@ -22,6 +22,7 @@
 import osv
 import fields
 
+#.apidoc title: Object Services and Relational Mapping
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index c7fef6b..54726a2 100644 (file)
@@ -23,6 +23,8 @@
 from openerp.tools import flatten, reverse_enumerate
 import fields
 
+#.apidoc title: Domain Expressions
+
 NOT_OPERATOR = '!'
 OR_OPERATOR = '|'
 AND_OPERATOR = '&'
index d3b37b9..3cf87a1 100644 (file)
 #
 ##############################################################################
 
-# . Fields:
-#      - simple
-#      - relations (one2many, many2one, many2many)
-#      - function
-#
-# Fields Attributes:
-#   _classic_read: is a classic sql fields
-#   _type   : field type
-#   readonly
-#   required
-#   size
-#
+""" Fields:
+      - simple
+      - relations (one2many, many2one, many2many)
+      - function
+
+    Fields Attributes:
+        * _classic_read: is a classic sql fields
+        * _type   : field type
+        * readonly
+        * required
+        * size
+"""
+
 import datetime as DT
 import string
 import sys
@@ -51,6 +52,12 @@ def _symbol_set(symb):
 
 
 class _column(object):
+    """ Base of all fields, a database column
+    
+        An instance of this object is a *description* of a database column. It will
+        not hold any data, but only provide the methods to manipulate data of an
+        ORM record or even prepare/update the database to hold such a field of data.
+    """
     _classic_read = True
     _classic_write = True
     _prefetch = True
@@ -734,6 +741,192 @@ def sanitize_binary_value(value):
 # Function fields
 # ---------------------------------------------------------
 class function(_column):
+    """
+    A field whose value is computed by a function (rather
+    than being read from the database).
+
+    :param fnct: the callable that will compute the field value.
+    :param arg: arbitrary value to be passed to ``fnct`` when computing the value.
+    :param fnct_inv: the callable that will allow writing values in that field
+                     (if not provided, the field is read-only).
+    :param fnct_inv_arg: arbitrary value to be passed to ``fnct_inv`` when
+                         writing a value.
+    :param str type: type of the field simulated by the function field
+    :param fnct_search: the callable that allows searching on the field
+                        (if not provided, search will not return any result).
+    :param store: store computed value in database
+                  (see :ref:`The *store* parameter <field-function-store>`).
+    :type store: True or dict specifying triggers for field computation
+    :param multi: name of batch for batch computation of function fields.
+                  All fields with the same batch name will be computed by
+                  a single function call. This changes the signature of the
+                  ``fnct`` callable.
+
+    .. _field-function-fnct: The ``fnct`` parameter
+
+    .. rubric:: The ``fnct`` parameter
+
+    The callable implementing the function field must have the following signature:
+
+    .. function:: fnct(model, cr, uid, ids, field_name(s), arg, context)
+
+        Implements the function field.
+
+        :param orm_template model: model to which the field belongs (should be ``self`` for
+                                   a model method)
+        :param field_name(s): name of the field to compute, or if ``multi`` is provided,
+                              list of field names to compute.
+        :type field_name(s): str | [str]
+        :param arg: arbitrary value passed when declaring the function field
+        :rtype: dict
+        :return: mapping of ``ids`` to computed values, or if multi is provided,
+                 to a map of field_names to computed values
+
+    The values in the returned dictionary must be of the type specified by the type
+    argument in the field declaration.
+
+    Here is an example with a simple function ``char`` function field::
+
+        # declarations
+        def compute(self, cr, uid, ids, field_name, arg, context):
+            result = {}
+            # ...
+            return result
+        _columns['my_char'] = fields.function(compute, type='char', size=50)
+
+        # when called with ``ids=[1,2,3]``, ``compute`` could return:
+        {
+            1: 'foo',
+            2: 'bar',
+            3: False # null values should be returned explicitly too
+        }
+
+    If ``multi`` is set, then ``field_name`` is replaced by ``field_names``: a list
+    of the field names that should be computed. Each value in the returned
+    dictionary must then be a dictionary mapping field names to values.
+
+    Here is an example where two function fields (``name`` and ``age``)
+    are both computed by a single function field::
+
+        # declarations
+        def compute(self, cr, uid, ids, field_names, arg, context):
+            result = {}
+            # ...
+            return result
+        _columns['name'] = fields.function(compute_person_data, type='char',\
+                                           size=50, multi='person_data')
+        _columns[''age'] = fields.function(compute_person_data, type='integer',\
+                                           multi='person_data')
+
+        # when called with ``ids=[1,2,3]``, ``compute_person_data`` could return:
+        {
+            1: {'name': 'Bob', 'age': 23},
+            2: {'name': 'Sally', 'age': 19},
+            3: {'name': 'unknown', 'age': False}
+        }
+
+    .. _field-function-fnct-inv:
+
+    .. rubric:: The ``fnct_inv`` parameter
+
+    This callable implements the write operation for the function field
+    and must have the following signature:
+
+    .. function:: fnct_inv(model, cr, uid, ids, field_name, field_value, fnct_inv_arg, context)
+
+        Callable that implements the ``write`` operation for the function field.
+
+        :param orm_template model: model to which the field belongs (should be ``self`` for
+                                   a model method)
+        :param str field_name: name of the field to set
+        :param fnct_inv_arg: arbitrary value passed when declaring the function field
+        :return: True
+
+    When writing values for a function field, the ``multi`` parameter is ignored.
+
+    .. _field-function-fnct-search:
+
+    .. rubric:: The ``fnct_search`` parameter
+
+    This callable implements the search operation for the function field
+    and must have the following signature:
+
+    .. function:: fnct_search(model, cr, uid, model_again, field_name, criterion, context)
+
+        Callable that implements the ``search`` operation for the function field by expanding
+        a search criterion based on the function field into a new domain based only on
+        columns that are stored in the database.
+
+        :param orm_template model: model to which the field belongs (should be ``self`` for
+                                   a model method)
+        :param orm_template model_again: same value as ``model`` (seriously! this is for backwards
+                                         compatibility)
+        :param str field_name: name of the field to search on
+        :param list criterion: domain component specifying the search criterion on the field.
+        :rtype: list
+        :return: domain to use instead of ``criterion`` when performing the search.
+                 This new domain must be based only on columns stored in the database, as it
+                 will be used directly without any translation.
+
+        The returned value must be a domain, that is, a list of the form [(field_name, operator, operand)].
+        The most generic way to implement ``fnct_search`` is to directly search for the records that
+        match the given ``criterion``, and return their ``ids`` wrapped in a domain, such as
+        ``[('id','in',[1,3,5])]``.
+
+    .. _field-function-store:
+
+    .. rubric:: The ``store`` parameter
+
+    The ``store`` parameter allows caching the result of the field computation in the
+    database, and defining the triggers that will invalidate that cache and force a
+    recomputation of the function field.
+    When not provided, the field is computed every time its value is read.
+    The value of ``store`` may be either ``True`` (to recompute the field value whenever
+    any field in the same record is modified), or a dictionary specifying a more
+    flexible set of recomputation triggers.
+
+    A trigger specification is a dictionary that maps the names of the models that
+    will trigger the computation, to a tuple describing the trigger rule, in the
+    following form::
+
+        store = {
+            'trigger_model': (mapping_function,
+                              ['trigger_field1', 'trigger_field2'],
+                              priority),
+        }
+
+    A trigger rule is defined by a 3-item tuple where:
+
+        * The ``mapping_function`` is defined as follows:
+
+            .. function:: mapping_function(trigger_model, cr, uid, trigger_ids, context)
+
+                Callable that maps record ids of a trigger model to ids of the
+                corresponding records in the source model (whose field values
+                need to be recomputed).
+
+                :param orm_template model: trigger_model
+                :param list trigger_ids: ids of the records of trigger_model that were
+                                         modified
+                :rtype: list
+                :return: list of ids of the source model whose function field values
+                         need to be recomputed
+
+        * The second item is a list of the fields who should act as triggers for
+          the computation. If an empty list is given, all fields will act as triggers.
+        * The last item is the priority, used to order the triggers when processing them
+          after any write operation on a model that has function field triggers. The
+          default priority is 10.
+
+    In fact, setting store = True is the same as using the following trigger dict::
+
+        store = {
+              'model_itself': (lambda self, cr, uid, ids, context: ids,
+                               [],
+                               10)
+        }
+
+    """
     _classic_read = False
     _classic_write = False
     _prefetch = False
@@ -743,10 +936,9 @@ class function(_column):
 #
 # multi: compute several fields in one call
 #
-    def __init__(self, fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type='float', fnct_search=None, obj=None, method=False, store=False, multi=False, **args):
+    def __init__(self, fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type='float', fnct_search=None, obj=None, store=False, multi=False, **args):
         _column.__init__(self, **args)
         self._obj = obj
-        self._method = method
         self._fnct = fnct
         self._fnct_inv = fnct_inv
         self._arg = arg
@@ -827,11 +1019,7 @@ class function(_column):
         return result
 
     def get(self, cr, obj, ids, name, uid=False, context=None, values=None):
-        result = {}
-        if self._method:
-            result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
-        else:
-            result = self._fnct(cr, obj._table, ids, name, self._arg, context)
+        result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
         for id in ids:
             if self._multi and id in result:
                 for field, value in result[id].iteritems():
@@ -855,6 +1043,15 @@ class function(_column):
 # ---------------------------------------------------------
 
 class related(function):
+    """Field that points to some data inside another field of the current record.
+
+    Example::
+
+       _columns = {
+           'foo_id': fields.many2one('my.foo', 'Foo'),
+           'bar': fields.related('frol', 'foo_id', type='char', string='Frol of Foo'),
+        }
+    """
 
     def _fnct_search(self, tobj, cr, uid, obj=None, name=None, domain=None, context=None):
         self._field_get2(cr, uid, obj, context)
@@ -952,7 +1149,7 @@ class related(function):
     def __init__(self, *arg, **args):
         self.arg = arg
         self._relations = []
-        super(related, self).__init__(self._fnct_read, arg, self._fnct_write, fnct_inv_arg=arg, method=True, fnct_search=self._fnct_search, **args)
+        super(related, self).__init__(self._fnct_read, arg, self._fnct_write, fnct_inv_arg=arg, fnct_search=self._fnct_search, **args)
         if self.store is True:
             # TODO: improve here to change self.store = {...} according to related objects
             pass
@@ -989,7 +1186,7 @@ class dummy(function):
     def __init__(self, *arg, **args):
         self.arg = arg
         self._relations = []
-        super(dummy, self).__init__(self._fnct_read, arg, self._fnct_write, fnct_inv_arg=arg, method=True, fnct_search=None, **args)
+        super(dummy, self).__init__(self._fnct_read, arg, self._fnct_write, fnct_inv_arg=arg, fnct_search=None, **args)
 
 # ---------------------------------------------------------
 # Serialized fields
@@ -1148,7 +1345,6 @@ def field_to_dict(self, cr, user, context, field):
         res['fnct_inv'] = field._fnct_inv and field._fnct_inv.func_name or False
         res['fnct_inv_arg'] = field._fnct_inv_arg or False
         res['func_obj'] = field._obj or False
-        res['func_method'] = field._method
     if isinstance(field, many2many):
         res['related_columns'] = list((field._id1, field._id2))
         res['third_table'] = field._rel
index f4a7dfa..2ced177 100644 (file)
 #
 ##############################################################################
 
-#
-# Object relationnal mapping to postgresql module
-#    . Hierarchical structure
-#    . Constraints consistency, validations
-#    . Object meta Data depends on its status
-#    . Optimised processing by complex query (multiple actions at once)
-#    . Default fields value
-#    . Permissions optimisation
-#    . Persistant object: DB postgresql
-#    . Datas conversions
-#    . Multi-level caching system
-#    . 2 different inheritancies
-#    . Fields:
-#         - classicals (varchar, integer, boolean, ...)
-#         - relations (one2many, many2one, many2many)
-#         - functions
-#
-#
+#.apidoc title: Object Relational Mapping
+#.apidoc module-mods: member-order: bysource
+
+"""
+  Object relational mapping to database (postgresql) module
+     * Hierarchical structure
+     * Constraints consistency, validations
+     * Object meta Data depends on its status
+     * Optimised processing by complex query (multiple actions at once)
+     * Default fields value
+     * Permissions optimisation
+     * Persistant object: DB postgresql
+     * Datas conversions
+     * Multi-level caching system
+     * 2 different inheritancies
+     * Fields:
+          - classicals (varchar, integer, boolean, ...)
+          - relations (one2many, many2one, many2many)
+          - functions
+"""
+
 import calendar
 import copy
 import datetime
@@ -125,8 +129,9 @@ class except_orm(Exception):
 class BrowseRecordError(Exception):
     pass
 
-# Readonly python database object browser
 class browse_null(object):
+    """ Readonly python database object browser
+    """
 
     def __init__(self):
         self.id = False
@@ -154,6 +159,11 @@ class browse_null(object):
 # TODO: execute an object method on browse_record_list
 #
 class browse_record_list(list):
+    """ Collection of browse objects
+    
+        Such an instance will be returned when doing a ``browse([ids..])``
+        and will be iterable, yielding browse() objects
+    """
 
     def __init__(self, lst, context=None):
         if not context:
@@ -163,13 +173,25 @@ class browse_record_list(list):
 
 
 class browse_record(object):
+    """ An object that behaves like a row of an object's table.
+        It has attributes after the columns of the corresponding object.
+        
+        Examples::
+        
+            uobj = pool.get('res.users')
+            user_rec = uobj.browse(cr, uid, 104)
+            name = user_rec.name
+    """
     logger = netsvc.Logger()
 
     def __init__(self, cr, uid, id, table, cache, context=None, list_class=None, fields_process=None):
-        '''
-        table : the object (inherited from orm)
-        context : dictionary with an optional context
-        '''
+        """
+        @param cache a dictionary of model->field->data to be shared accross browse
+            objects, thus reducing the SQL read()s . It can speed up things a lot,
+            but also be disastrous if not discarded after write()/unlink() operations
+        @param table the object (inherited from orm)
+        @param context dictionary with an optional context
+        """
         if fields_process is None:
             fields_process = {}
         if context is None:
@@ -363,10 +385,10 @@ class browse_record(object):
 
 
 def get_pg_type(f):
-    '''
+    """
     returns a tuple
     (type returned by postgres when the column was created, type expression to create the column)
-    '''
+    """
 
     type_dict = {
             fields.boolean: 'bool',
@@ -732,7 +754,7 @@ class orm_template(object):
 
         :param cr: database cursor
         :param user: current user id
-        :param select: id or list of ids
+        :param select: id or list of ids.
         :param context: context arguments, like lang, time zone
         :rtype: object or list of objects requested
 
index acf262a..1327efe 100644 (file)
@@ -19,9 +19,7 @@
 #
 ##############################################################################
 
-#
-# OSV: Objects Services
-#
+#.apidoc title: Objects Services (OSV)
 
 import orm
 import openerp.netsvc as netsvc
index ab4f414..0b2bf47 100644 (file)
@@ -19,6 +19,7 @@
 #
 ##############################################################################
 
+#.apidoc title: Query object
 
 def _quote(to_quote):
     if '"' not in to_quote:
index ca2b86d..646967f 100644 (file)
@@ -31,5 +31,7 @@ import report_sxw
 
 import printscreen
 
+#.apidoc title: Reporting Support and Engines
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index b9dd970..e940a7e 100644 (file)
 import ps_list
 import ps_form
 
+#.apidoc title: Printscreen Support
+
+""" A special report, that is automatically formatted to look like the
+    screen contents of Form/List Views.
+"""
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index d997f1e..3afe9d5 100644 (file)
@@ -28,6 +28,8 @@ from lxml import etree
 
 import time, os
 
+#.apidoc title: Printscreen for Form Views
+
 class report_printscreen_list(report_int):
     def __init__(self, name):
         report_int.__init__(self, name)
index 8b0ece6..dc280a5 100644 (file)
@@ -31,6 +31,8 @@ import time, os
 from operator import itemgetter
 from datetime import datetime
 
+#.apidoc title: Printscreen for List Views
+
 class report_printscreen_list(report_int):
     def __init__(self, name):
         report_int.__init__(self, name)
index af02553..8d17648 100644 (file)
@@ -1,2 +1,5 @@
 from pdf import PdfFileReader, PdfFileWriter
+#.apidoc title: pyPdf Engine
+
 __all__ = ["pdf"]
+
index 1becd5e..1b751fa 100644 (file)
@@ -23,6 +23,8 @@ from simple import simple
 from rml import rml, rml2html, rml2txt, odt2odt , html2html, makohtml2html
 from render import render
 
+#.apidoc title: Report Rendering
+
 try:
     import Image
 except ImportError:
index bb497ac..4091703 100644 (file)
@@ -21,5 +21,7 @@
 
 from html2html import parseString
 
+#.apidoc title: HTML to HTML engine
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index 9303d40..ee458d0 100644 (file)
@@ -19,4 +19,7 @@
 #
 ##############################################################################
 
-from makohtml2html import parseNode
\ No newline at end of file
+from makohtml2html import parseNode
+
+#.apidoc title: MAKO to HTML engine
+
index 775cbab..7155923 100644 (file)
@@ -21,4 +21,6 @@
 
 from odt2odt import parseNode
 
+#.apidoc title: ODT to ODT engine
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
index 52c5286..96b9afc 100644 (file)
@@ -21,5 +21,7 @@
 
 from rml2html import parseString
 
+#.apidoc title: RML to HTML engine
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index 001aea4..ffe9339 100644 (file)
@@ -21,3 +21,5 @@
 
 from trml2pdf import parseString, parseNode
 
+#.apidoc title: RML to PDF engine
+
index 17a8a9c..bc70d1f 100644 (file)
@@ -28,6 +28,8 @@ from reportlab import rl_config
 
 from openerp.tools import config
 
+#.apidoc title: TTF Font Table
+
 """This module allows the mapping of some system-available TTF fonts to
 the reportlab engine.
 
index 56c577d..cc0530e 100644 (file)
 
 from rml2txt import parseString, parseNode
 
+#.apidoc title: RML to TXT engine
+
+""" This engine is the minimalistic renderer of RML documents into text files,
+    using spaces and newlines to format.
+
+    It was needed in some special applications, where legal reports need to be
+    printed in special (dot-matrix) printers.
+"""
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index a5f28e9..b9ee98f 100644 (file)
@@ -23,6 +23,16 @@ import http_server
 import netrpc_server
 import web_services
 
+#.apidoc title: RPC Services
+
+""" Classes of this module implement the network protocols that the
+    OpenERP server uses to communicate with remote clients.
+
+    Some classes are mostly utilities, whose API need not be visible to
+    the average user/developer. Study them only if you are about to
+    implement an extension to the network protocols, or need to debug some
+    low-level behavior of the wire.
+"""
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index a752418..61713e9 100644 (file)
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 ###############################################################################
 
-""" This file contains instance of the http server.
+#.apidoc title: HTTP and XML-RPC Server
 
+""" This module offers the family of HTTP-based servers. These are not a single
+    class/functionality, but a set of network stack layers, implementing
+    extendable HTTP protocols.
 
+    The OpenERP server defines a single instance of a HTTP server, listening at
+    the standard 8069, 8071 ports (well, it is 2 servers, and ports are 
+    configurable, of course). This "single" server then uses a `MultiHTTPHandler`
+    to dispatch requests to the appropriate channel protocol, like the XML-RPC,
+    static HTTP, DAV or other.
 """
+
 from websrv_lib import *
 import openerp.netsvc as netsvc
 import errno
index b4d5a74..70855a0 100644 (file)
@@ -19,6 +19,8 @@
 #
 ##############################################################################
 
+#.apidoc title: NET-RPC Server
+
 """ This file contains instance of the net-rpc server
 
     
index ec13fe3..86c381b 100644 (file)
 import openerp.pooler as pooler
 import openerp.tools as tools
 
-# When rejecting a password, hide the traceback
+#.apidoc title: Authentication helpers
+
 class ExceptionNoTb(Exception):
+    """ When rejecting a password, hide the traceback
+    """
     def __init__(self, msg):
         super(ExceptionNoTb, self).__init__(msg)
         self.traceback = ('','','')
index 3945780..40e7ccf 100644 (file)
@@ -38,6 +38,15 @@ import locale
 import logging
 from cStringIO import StringIO
 
+#.apidoc title: Exported Service methods
+#.apidoc module-mods: member-order: bysource
+
+""" This python module defines the RPC methods available to remote clients.
+
+    Each 'Export Service' is a group of 'methods', which in turn are RPC
+    procedures to be called. Each method has its own arguments footprint.
+"""
+
 class db(netsvc.ExportService):
     def __init__(self, name="db"):
         netsvc.ExportService.__init__(self, name)
index 859845d..2e09816 100644 (file)
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 ###############################################################################
 
+#.apidoc title: HTTP Layer library (websrv_lib)
+
 """ Framework for generic http servers
 
+    This library contains *no* OpenERP-specific functionality. It should be
+    usable in other projects, too.
 """
 
 import socket
index e759a13..43a508f 100644 (file)
 #
 ##############################################################################
 
+#.apidoc title: PostgreSQL interface
+
+"""
+The PostgreSQL connector is a connectivity layer between the OpenERP code and
+the database, *not* a database abstraction toolkit. Database abstraction is what
+the ORM does, in fact.
+
+See also: the `pooler` module
+"""
+
+#.apidoc add-functions: print_stats
+#.apidoc add-classes: Cursor Connection ConnectionPool
+
 __all__ = ['db_connect', 'close_db']
 
 from threading import currentThread
@@ -66,6 +79,13 @@ re_into = re.compile('.* into "?([a-zA-Z_0-9]+)"? .*$');
 sql_counter = 0
 
 class Cursor(object):
+    """ Cursor is an open transaction to Postgres, utilizing a TCP connection
+    
+        A lightweight wrapper around psycopg2's `psycopg1cursor` objects
+        
+        This is the object behind the `cr` variable used all over the OpenERP
+        code.
+    """
     IN_MAX = 1000 # decent limit on size of IN queries - guideline = Oracle limit
     __logger = None
 
@@ -233,22 +253,37 @@ class Cursor(object):
 
     @check
     def commit(self):
+        """ Perform an SQL `COMMIT`
+        """
         return self._cnx.commit()
 
     @check
     def rollback(self):
+        """ Perform an SQL `ROLLBACK`
+        """
         return self._cnx.rollback()
 
     @check
     def __getattr__(self, name):
         return getattr(self._obj, name)
 
+        """ Set the mode of postgres operations for all cursors
+        """
+        """Obtain the mode of postgres operations for all cursors
+        """
 
 class PsycoConnection(psycopg2.extensions.connection):
     pass
 
 class ConnectionPool(object):
-
+    """ The pool of connections to database(s)
+    
+        Keep a set of connections to pg databases open, and reuse them
+        to open cursors for all transactions.
+        
+        The connections are *not* automatically closed. Only a close_db()
+        can trigger that.
+    """
     __logger = logging.getLogger('db.connection_pool')
 
     def locked(fun):
@@ -340,6 +375,8 @@ class ConnectionPool(object):
 
 
 class Connection(object):
+    """ A lightweight instance of a connection to postgres
+    """
     __logger = logging.getLogger('db.connection')
 
     def __init__(self, pool, dbname):
index cc0f09e..2978210 100644 (file)
@@ -26,9 +26,11 @@ import marshal
 
 import netsvc
 
+#.apidoc title: Net-RPC classes
+
 class Myexception(Exception):
     """
-    custome exception object store 
+    custom exception object store
     * faultcode
     * faulestring
     * args
index 1604284..3d1cdc9 100644 (file)
@@ -32,5 +32,7 @@ from pdf_utils import *
 from yaml_import import *
 from sql import *
 
+#.apidoc title: Tools
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index 0b626af..331640a 100644 (file)
@@ -34,8 +34,9 @@ denom_fr = ( '',
           'Décillion',    'Undecillion',     'Duodecillion',  'Tredecillion',   'Quattuordecillion',
           'Sexdecillion', 'Septendecillion', 'Octodecillion', 'Icosillion', 'Vigintillion' )
 
-# convert a value < 100 to French.
 def _convert_nn_fr(val):
+    """ convert a value < 100 to French
+    """
     if val < 20:
         return to_19_fr[val]
     for (dcap, dval) in ((k, 20 + (10 * v)) for (v, k) in enumerate(tens_fr)):
@@ -44,10 +45,13 @@ def _convert_nn_fr(val):
                 return dcap + '-' + to_19_fr[val % 10]
             return dcap
 
-# convert a value < 1000 to french, special cased because it is the level that kicks 
-# off the < 100 special case.  The rest are more general.  This also allows you to
-# get strings in the form of 'forty-five hundred' if called directly.
 def _convert_nnn_fr(val):
+    """ convert a value < 1000 to french
+    
+        special cased because it is the level that kicks 
+        off the < 100 special case.  The rest are more general.  This also allows you to
+        get strings in the form of 'forty-five hundred' if called directly.
+    """
     word = ''
     (mod, rem) = (val % 100, val // 100)
     if rem > 0:
@@ -98,8 +102,9 @@ denom_nl = ( '',
            'Decillion', 'Undecillion', 'Duodecillion', 'Tredecillion', 'Quattuordecillion',
            'Sexdecillion', 'Septendecillion', 'Octodecillion', 'Novemdecillion', 'Vigintillion' )
 
-# convert a value < 100 to Dutch.
 def _convert_nn_nl(val):
+    """ convert a value < 100 to Dutch
+    """
     if val < 20:
         return to_19_nl[val]
     for (dcap, dval) in ((k, 20 + (10 * v)) for (v, k) in enumerate(tens_nl)):
@@ -108,10 +113,13 @@ def _convert_nn_nl(val):
                 return dcap + '-' + to_19_nl[val % 10]
             return dcap
 
-# convert a value < 1000 to Dutch, special cased because it is the level that kicks 
-# off the < 100 special case.  The rest are more general.  This also allows you to
-# get strings in the form of 'forty-five hundred' if called directly.
 def _convert_nnn_nl(val):
+    """ convert a value < 1000 to Dutch
+    
+        special cased because it is the level that kicks 
+        off the < 100 special case.  The rest are more general.  This also allows you to
+        get strings in the form of 'forty-five hundred' if called directly.
+    """
     word = ''
     (mod, rem) = (val % 100, val // 100)
     if rem > 0:
@@ -160,10 +168,11 @@ def add_amount_to_text_function(lang, func):
 #TODO: we should use the country AND language (ex: septante VS soixante dix)
 #TODO: we should use en by default, but the translation func is yet to be implemented
 def amount_to_text(nbr, lang='fr', currency='euro'):
-    """
-    Converts an integer to its textual representation, using the language set in the context if any.
-    Example:
-        1654: mille six cent cinquante-quatre.
+    """ Converts an integer to its textual representation, using the language set in the context if any.
+
+        Example::
+        
+            1654: mille six cent cinquante-quatre.
     """
 #    if nbr > 1000000:
 ##TODO: use logger   
index 77d18cb..9147941 100644 (file)
@@ -34,8 +34,9 @@ denom = ( '',
           'Decillion',    'Undecillion',     'Duodecillion',  'Tredecillion',   'Quattuordecillion',
           'Sexdecillion', 'Septendecillion', 'Octodecillion', 'Novemdecillion', 'Vigintillion' )
 
-# convert a value < 100 to English.
 def _convert_nn(val):
+    """convert a value < 100 to English.
+    """
     if val < 20:
         return to_19[val]
     for (dcap, dval) in ((k, 20 + (10 * v)) for (v, k) in enumerate(tens)):
@@ -44,10 +45,12 @@ def _convert_nn(val):
                 return dcap + '-' + to_19[val % 10]
             return dcap
 
-# convert a value < 1000 to english, special cased because it is the level that kicks 
-# off the < 100 special case.  The rest are more general.  This also allows you to
-# get strings in the form of 'forty-five hundred' if called directly.
 def _convert_nnn(val):
+    """
+        convert a value < 1000 to english, special cased because it is the level that kicks 
+        off the < 100 special case.  The rest are more general.  This also allows you to
+        get strings in the form of 'forty-five hundred' if called directly.
+    """
     word = ''
     (mod, rem) = (val % 100, val // 100)
     if rem > 0:
@@ -94,10 +97,11 @@ _translate_funcs = {'en' : amount_to_text}
 #TODO: we should use the country AND language (ex: septante VS soixante dix)
 #TODO: we should use en by default, but the translation func is yet to be implemented
 def amount_to_text(nbr, lang='en', currency='euro'):
-    """
-    Converts an integer to its textual representation, using the language set in the context if any.
-    Example:
-        1654: thousands six cent cinquante-quatre.
+    """ Converts an integer to its textual representation, using the language set in the context if any.
+    
+        Example::
+        
+            1654: thousands six cent cinquante-quatre.
     """
     import openerp.loglevels as loglevels
 #    if nbr > 10000000:
index 9a59235..18f40e0 100644 (file)
@@ -45,6 +45,8 @@ class MyOption (optparse.Option, object):
         self.my_default = attrs.pop('my_default', None)
         super(MyOption, self).__init__(*opts, **attrs)
 
+#.apidoc title: Server Configuration Loader
+
 def check_ssl():
     try:
         from OpenSSL import SSL
index 4150b3e..0346367 100644 (file)
@@ -30,6 +30,10 @@ except ImportError:
     # http://svn.python.org/view/python/tags/r254/Lib/functools.py?view=markup
 
     def partial(fun, *args, **kwargs):
+        """ Partial implementation
+        
+            See: http://svn.python.org/view/python/tags/r254/Lib/functools.py
+        """
         def _partial(*args2, **kwargs2):
             return fun(*(args+args2), **dict(kwargs, **kwargs2))
         return _partial
index 7f85bf1..df3fb39 100755 (executable)
@@ -25,11 +25,11 @@ import math
 
 class graph(object):
     def __init__(self, nodes, transitions, no_ancester=None):
-        """Initailize graph's object
+        """Initialize graph's object
 
-        @param nodes: list of ids of nodes in the graph
-        @param transitions: list of edges in the graph in the form (source_node, destination_node)
-        @param no_ancester: list of nodes with no incoming edges
+        @param nodes list of ids of nodes in the graph
+        @param transitions list of edges in the graph in the form (source_node, destination_node)
+        @param no_ancester list of nodes with no incoming edges
         """
 
         self.nodes = nodes or []
@@ -210,8 +210,8 @@ class graph(object):
 
     def exchange(self, e, f):
         """Exchange edges to make feasible-tree optimized
-        @param edge: edge with negative cut-value
-        @param edge: new edge with minimum slack-value
+        @param edge edge with negative cut-value
+        @param edge new edge with minimum slack-value
         """
         self.tree_edges.__delitem__(self.tree_edges.index(e))
         self.tree_edges.append(f)
@@ -221,7 +221,7 @@ class graph(object):
     def enter_edge(self, edge):
         """Finds a new_edge with minimum slack value to replace an edge with negative cut-value
 
-        @param edge: edge with negative cut-value
+        @param edge edge with negative cut-value
         """
 
         self.head_nodes = []
@@ -345,8 +345,8 @@ class graph(object):
     def median_value(self, node, adj_rank):
         """Returns median value of a vertex , defined as the median position of the adjacent vertices
 
-        @param node: node to process
-        @param adj_rank: rank 1 less than the node's rank
+        @param node node to process
+        @param adj_rank rank 1 less than the node's rank
         """
         adj_nodes = self.adj_position(node, adj_rank)
         l = len(adj_nodes)
@@ -367,8 +367,8 @@ class graph(object):
     def adj_position(self, node, adj_rank):
         """Returns list of the present positions of the nodes adjacent to node in the given adjacent rank.
 
-        @param node: node to process
-        @param adj_rank: rank 1 less than the node's rank
+        @param node node to process
+        @param adj_rank rank 1 less than the node's rank
         """
 
         pre_level_nodes = self.levels.get(adj_rank, [])
@@ -606,7 +606,7 @@ class graph(object):
     def rank(self):
         """Finds the optimized rank of the nodes using Network-simplex algorithm
 
-        @param start: starting node of the component
+        @param start starting node of the component
         """
         self.levels = {}
         self.critical_edges = []
@@ -668,7 +668,7 @@ class graph(object):
     def process(self, starting_node):
         """Process the graph to find ranks and order of the nodes
 
-        @param starting_node: node from where to start the graph search
+        @param starting_node node from where to start the graph search
         """
 
         self.start_nodes = starting_node or []
index 4167bef..dc66142 100644 (file)
@@ -20,6 +20,8 @@
 #
 ##############################################################################
 
+#.apidoc title: Utilities: tools.misc
+
 """
 Miscelleanous tools used by OpenERP.
 """
@@ -124,16 +126,18 @@ def exec_command_pipe(name, *args):
 def file_open(name, mode="r", subdir='addons', pathinfo=False):
     """Open a file from the OpenERP root, using a subdir folder.
 
+    Example::
+    
     >>> file_open('hr/report/timesheer.xsl')
     >>> file_open('addons/hr/report/timesheet.xsl')
     >>> file_open('../../base/report/rml_template.xsl', subdir='addons/hr/report', pathinfo=True)
 
-    @param name: name of the file
-    @param mode: file open mode
-    @param subdir: subdirectory
-    @param pathinfo: if True returns tupple (fileobject, filepath)
+    @param name name of the file
+    @param mode file open mode
+    @param subdir subdirectory
+    @param pathinfo if True returns tupple (fileobject, filepath)
 
-    @return: fileobject if pathinfo is False else (fileobject, filepath)
+    @return fileobject if pathinfo is False else (fileobject, filepath)
     """
     import openerp.modules as addons
     adps = addons.module.ad_paths
@@ -217,7 +221,7 @@ def flatten(list):
     """Flatten a list of elements into a uniqu list
     Author: Christophe Simonis (christophe@tinyerp.com)
 
-    Examples:
+    Examples::
     >>> flatten(['a'])
     ['a']
     >>> flatten('b')
@@ -246,6 +250,8 @@ def flatten(list):
 
 def reverse_enumerate(l):
     """Like enumerate but in the other sens
+    
+    Usage::
     >>> a = ['a', 'b', 'c']
     >>> it = reverse_enumerate(a)
     >>> it.next()
@@ -285,16 +291,14 @@ priorities = {
     }
 
 def html2plaintext(html, body_id=None, encoding='utf-8'):
+    """ From an HTML text, convert the HTML to plain text.
+    If @param body_id is provided then this is the tag where the
+    body (not necessarily <body>) starts.
+    """
     ## (c) Fry-IT, www.fry-it.com, 2007
     ## <peter@fry-it.com>
     ## download here: http://www.peterbe.com/plog/html2plaintext
 
-
-    """ from an HTML text, convert the HTML to plain text.
-    If @body_id is provided then this is the tag where the
-    body (not necessarily <body>) starts.
-    """
-
     html = ustr(html)
 
     from lxml.etree import tostring
@@ -351,14 +355,16 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
     return html
 
 def generate_tracking_message_id(openobject_id):
-    """Returns a string that can be used in the Message-ID RFC822 header field so we
-       can track the replies related to a given object thanks to the "In-Reply-To" or
-       "References" fields that Mail User Agents will set.
+    """Returns a string that can be used in the Message-ID RFC822 header field
+    
+       Used to track the replies related to a given object thanks to the "In-Reply-To"
+       or "References" fields that Mail User Agents will set.
     """
     return "<%s-openobject-%s@%s>" % (time.time(), openobject_id, socket.gethostname())
 
 def _email_send(smtp_from, smtp_to_list, message, openobject_id=None, ssl=False, debug=False):
-    """Low-level method to send directly a Message through the configured smtp server.
+    """ Low-level method to send directly a Message through the configured smtp server.
+    
         :param smtp_from: RFC-822 envelope FROM (not displayed to recipient)
         :param smtp_to_list: RFC-822 envelope RCPT_TOs (not displayed to recipient)
         :param message: an email.message.Message to send
@@ -427,17 +433,16 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non
 
     """Send an email.
 
-    Arguments:
-
-    `email_from`: A string used to fill the `From` header, if falsy,
+    @param email_from A string used to fill the `From` header, if falsy,
                   config['email_from'] is used instead.  Also used for
                   the `Reply-To` header if `reply_to` is not provided
 
-    `email_to`: a sequence of addresses to send the mail to.
+    @param email_to a sequence of addresses to send the mail to.
     """
     if x_headers is None:
         x_headers = {}
 
+        
 
     if not (email_from or config['email_from']):
         raise ValueError("Sending an email requires either providing a sender "
@@ -507,10 +512,9 @@ def sms_send(user, password, api_id, text, to):
     # FIXME: Use the logger if there is an error
     return True
 
-#---------------------------------------------------------
-# Class that stores an updateable string (used in wizards)
-#---------------------------------------------------------
 class UpdateableStr(local):
+    """ Class that stores an updateable string (used in wizards)
+    """
 
     def __init__(self, string=''):
         self.string = string
@@ -526,7 +530,8 @@ class UpdateableStr(local):
 
 
 class UpdateableDict(local):
-    '''Stores an updateable dict to use in wizards'''
+    """Stores an updateable dict to use in wizards
+    """
 
     def __init__(self, dict=None):
         if dict is None:
@@ -624,8 +629,13 @@ class UpdateableDict(local):
         return self.dict.__ne__(y)
 
 
-# Don't use ! Use res.currency.round()
 class currency(float):
+    """ Deprecate
+    
+    .. warning::
+    
+    Don't use ! Use res.currency.round()
+    """
 
     def __init__(self, value, accuracy=2, rounding=None):
         if rounding is None:
@@ -1168,7 +1178,7 @@ def detect_ip_addr():
 #  times.
 def get_win32_timezone():
     """Attempt to return the "standard name" of the current timezone on a win32 system.
-       @return: the standard name of the current win32 timezone, or False if it cannot be found.
+       @return the standard name of the current win32 timezone, or False if it cannot be found.
     """
     res = False
     if (sys.platform == "win32"):
@@ -1186,7 +1196,7 @@ def get_win32_timezone():
 def detect_server_timezone():
     """Attempt to detect the timezone to use on the server side.
        Defaults to UTC if no working timezone can be found.
-       @return: the timezone identifier as expected by pytz.timezone.
+       @return the timezone identifier as expected by pytz.timezone.
     """
     try:
         import pytz
@@ -1312,7 +1322,7 @@ def server_to_local_timestamp(src_tstamp_str, src_format, dst_format, dst_tz_nam
     @param ignore_unparsable_time: if True, return False if src_tstamp_str cannot be parsed
                                    using src_format or formatted using dst_format.
 
-    @return: local/client formatted timestamp, expressed in the local/client timezone if possible
+    @return local/client formatted timestamp, expressed in the local/client timezone if possible
             and if tz_offset is true, or src_tstamp_str if timezone offset could not be determined.
     """
     if not src_tstamp_str:
index 66b264b..548b836 100755 (executable)
@@ -19,8 +19,8 @@
        Return a generator which yields full paths in which the *file* name exists
        in a directory that is part of the file name, or on *path*,
        and has the given *mode*.
-       By default, *mode* matches an inclusive OR of os.F_OK and os.X_OK
-        - an existing executable file.
+       By default, *mode* matches an inclusive OR of os.F_OK and os.X_OK - an 
+       existing executable file.
        The *path* is, by default, the ``PATH`` variable on the platform,
        or the string/iterable passed in as *path*.
        In the event that a ``PATH`` variable is not found, :const:`os.defpath` is used.
index 50e6181..959a878 100644 (file)
@@ -21,6 +21,8 @@
 
 import wkf_service
 
+#.apidoc title: Workflow objects
+
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: