[MERGE] from trunk

bzr revid: rco@openerp.com-20130411073017-x6e4h8xbvmy3ofdw
This commit is contained in:
Raphael Collet 2013-04-11 09:30:17 +02:00
commit 05851d21ba
106 changed files with 2517 additions and 1226 deletions

3
debian/control vendored
View File

@ -19,6 +19,7 @@ Depends:
python-docutils,
python-feedparser,
python-gdata,
python-imaging,
python-jinja2,
python-ldap,
python-libxslt1,
@ -46,7 +47,7 @@ Depends:
Conflicts: tinyerp-server, openerp-server, openerp-web
Replaces: tinyerp-server, openerp-server, openerp-web
Recommends:
graphviz, ghostscript, postgresql, python-imaging, python-matplotlib
graphviz, ghostscript, postgresql, python-matplotlib, poppler-utils
Description: OpenERP Enterprise Resource Management
OpenERP, previously known as TinyERP, is a complete ERP and CRM. The main
features are accounting (analytic and financial), stock management, sales and

69
debian/openerp.init vendored
View File

@ -17,55 +17,46 @@ DAEMON=/usr/bin/openerp-server
NAME=openerp-server
DESC=openerp-server
CONFIG=/etc/openerp/openerp-server.conf
LOGFILE=/var/log/openerp-server.log
LOGFILE=/var/log/openerp/openerp-server.log
USER=openerp
test -x ${DAEMON} || exit 0
set -e
do_start () {
echo -n "Starting ${DESC}: "
start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid --chuid ${USER} --background --make-pidfile --exec ${DAEMON} -- --config=${CONFIG} --logfile=${LOGFILE}
echo "${NAME}."
}
do_stop () {
echo -n "Stopping ${DESC}: "
start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid --oknodo
echo "${NAME}."
}
case "${1}" in
start)
echo -n "Starting ${DESC}: "
start)
do_start
;;
start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid \
--chuid ${USER} --background --make-pidfile \
--exec ${DAEMON} -- --config=${CONFIG} \
--logfile=${LOGFILE}
stop)
do_stop
;;
echo "${NAME}."
;;
restart|force-reload)
echo -n "Restarting ${DESC}: "
do_stop
sleep 1
do_start
;;
stop)
echo -n "Stopping ${DESC}: "
start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid \
--oknodo
echo "${NAME}."
;;
restart|force-reload)
echo -n "Restarting ${DESC}: "
start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid \
--oknodo
sleep 1
start-stop-daemon --start --quiet --pidfile /var/run/${NAME}.pid \
--chuid ${USER} --background --make-pidfile \
--exec ${DAEMON} -- --config=${CONFIG} \
--logfile=${LOGFILE}
echo "${NAME}."
;;
*)
N=/etc/init.d/${NAME}
echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
exit 1
;;
*)
N=/etc/init.d/${NAME}
echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

View File

@ -12,9 +12,9 @@ case "${1}" in
chown openerp:openerp /etc/openerp/openerp-server.conf
chmod 0640 /etc/openerp/openerp-server.conf
# Creating log file
touch /var/log/openerp-server.log
chown openerp:openerp /var/log/openerp-server.log
chmod 0640 /var/log/openerp-server.log
mkdir -p /var/log/openerp/
chown openerp:openerp /var/log/openerp
chmod 0750 /var/log/openerp
# Creating local storage directory
mkdir -p /var/lib/openerp/filestore
chown openerp:openerp -R /var/lib/openerp

View File

@ -22,6 +22,17 @@
""" OpenERP core library.
"""
# Make sure the OpenERP server runs in UTC. This is especially necessary
# under Windows as under Linux it seems the real import of time is
# sufficiently deferred so that setting the TZ environment variable
# in openerp.cli.server was working.
import os
os.environ['TZ'] = 'UTC' # Set the timezone...
import time # ... *then* import time.
del os
del time
# The hard-coded super-user id (a.k.a. administrator, or root user).
SUPERUSER_ID = 1

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:11+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:01+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:01+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:01+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:01+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:02+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -5427,7 +5427,7 @@ msgid ""
msgstr ""
"\n"
"Ergänzen Sie zusätzliche Datum Informationen zum Auftrag.\n"
"=================================================\n"
"=========================================================\n"
"\n"
"Sie können die folgenden zusätzlichen Daten zu einem Kundenauftrag "
"hinzufügen:\n"

View File

@ -12,8 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n"
"X-Generator: Launchpad (build 16550)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:09+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:09+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
"Language: \n"
#. module: base

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:10+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:09+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:02+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:05+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n"
"X-Generator: Launchpad (build 16550)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:10+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:02+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -34,7 +34,7 @@ msgstr "סנט הלנה"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
msgstr ""
msgstr "תצורה אחרת"
#. module: base
#: selection:ir.property,type:0
@ -68,12 +68,12 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Hungarian / Magyar"
msgstr "הונגריה /Magyar"
msgstr "הונגרית /Magyar"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PY) / Español (PY)"
msgstr ""
msgstr "Spanish (PY) / ספרדית (PY)"
#. module: base
#: model:ir.module.category,description:base.module_category_project_management
@ -85,7 +85,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
msgstr ""
msgstr "ממשק מסך מגע לחנויות"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@ -101,7 +101,7 @@ msgstr ""
#. module: base
#: view:ir.module.module:0
msgid "Created Views"
msgstr "צפיה בנוצרו"
msgstr "צפיות שנוצרו"
#. module: base
#: model:ir.module.module,description:base.module_product_manufacturer
@ -118,6 +118,17 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
"\n"
"רכיב להוספת יצרנים ותכונות למוצר.\n"
"====================================================================\n"
"\n"
"ניתן להגדיר עבור מוצר:\n"
"-----------------------------------------------\n"
" * יצרן\n"
" * שם מוצר אצל היצרן\n"
" * קוד מוצר אצל היצרן\n"
" * תכונות מוצר\n"
" "
#. module: base
#: field:ir.actions.client,params:0
@ -148,12 +159,12 @@ msgstr ""
#. module: base
#: field:res.partner,ref:0
msgid "Reference"
msgstr ""
msgstr "הפניה"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication"
msgstr ""
msgstr "בלגיה - תקשורת מובנית"
#. module: base
#: field:ir.actions.act_window,target:0
@ -191,7 +202,7 @@ msgstr ""
#: code:addons/base/res/res_users.py:473
#, python-format
msgid "Warning!"
msgstr ""
msgstr "אזהרה!"
#. module: base
#: code:addons/base/ir/ir_model.py:406
@ -221,23 +232,23 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sz
msgid "Swaziland"
msgstr "Swaziland"
msgstr "שוויץ"
#. module: base
#: code:addons/orm.py:4486
#, python-format
msgid "created."
msgstr ""
msgstr "נוצר."
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
msgstr ""
msgstr "נתיב XSL"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
msgid "Turkey - Accounting"
msgstr ""
msgstr "טורקיה - חשבונאות"
#. module: base
#: field:ir.sequence,number_increment:0
@ -274,7 +285,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
msgstr ""
msgstr "ניהול מכירות"
#. module: base
#: help:res.partner,user_id:0
@ -291,17 +302,17 @@ msgstr ""
#. module: base
#: field:ir.module.category,module_nr:0
msgid "Number of Modules"
msgstr "מספר המודולים"
msgstr "מספר רכיבים"
#. module: base
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
msgstr ""
msgstr "חברה לאחסון פעולה נוכחית"
#. module: base
#: field:res.partner.bank.type.field,size:0
msgid "Max. Size"
msgstr "מידה מקס."
msgstr "גודל מרבי"
#. module: base
#: help:ir.actions.act_window,res_id:0
@ -324,7 +335,7 @@ msgstr ""
#. module: base
#: sql_constraint:res.lang:0
msgid "The name of the language must be unique !"
msgstr ""
msgstr "על שם השפה להיות ייחודי !"
#. module: base
#: selection:res.request,state:0
@ -334,7 +345,7 @@ msgstr "פעיל"
#. module: base
#: field:ir.actions.wizard,wiz_name:0
msgid "Wizard Name"
msgstr "שם מומחה"
msgstr "שם האשף"
#. module: base
#: model:ir.module.module,description:base.module_knowledge
@ -352,7 +363,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
msgstr ""
msgstr "ניהול קשרי לקוחות"
#. module: base
#: model:ir.module.module,description:base.module_delivery
@ -379,7 +390,7 @@ msgstr ""
#: code:addons/orm.py:2649
#, python-format
msgid "Invalid group_by"
msgstr ""
msgstr "group_by לא חוקי"
#. module: base
#: field:ir.module.category,child_ids:0
@ -396,18 +407,18 @@ msgstr "מגבלת אשראי"
#: field:ir.model.data,date_update:0
#: field:ir.model.relation,date_update:0
msgid "Update Date"
msgstr "עדכן נתונים"
msgstr "עידכון תאריך"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
msgid "Automated Action Rules"
msgstr ""
msgstr "חוקי פעולה אוטומטיים"
#. module: base
#: view:ir.attachment:0
#: field:ir.attachment,create_uid:0
msgid "Owner"
msgstr ""
msgstr "בעלים"
#. module: base
#: view:ir.actions.act_window:0
@ -417,12 +428,12 @@ msgstr "אובייקט מקור"
#. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal
msgid "%(bank_name)s: %(acc_number)s"
msgstr ""
msgstr "%(bank_name)s: %(acc_number)s"
#. module: base
#: view:ir.actions.todo:0
msgid "Config Wizard Steps"
msgstr "הגדר צעדי האשף"
msgstr "הגדרת צעדי האשף"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_sc
@ -449,7 +460,7 @@ msgstr ""
msgid ""
"One of the records you are trying to modify has already been deleted "
"(Document type: %s)."
msgstr ""
msgstr "אחת הרשומות שברצונך לערוך נמחקה (Document type: %s)."
#. module: base
#: help:ir.actions.act_window,views:0
@ -468,7 +479,7 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
msgstr ""
msgstr "יצירת הרשאות גישה"
#. module: base
#: model:res.country,name:base.tv
@ -478,7 +489,7 @@ msgstr "Tuvalu"
#. module: base
#: field:ir.actions.configuration.wizard,note:0
msgid "Next Wizard"
msgstr "אשף הבא"
msgstr "לאשף הבא"
#. module: base
#: field:res.lang,date_format:0
@ -488,7 +499,7 @@ msgstr "מבנה תאריך"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_report_designer
msgid "OpenOffice Report Designer"
msgstr ""
msgstr "מעצב הדוחות של OpenOffice"
#. module: base
#: model:res.country,name:base.an
@ -502,8 +513,8 @@ msgid ""
"You can not remove the admin user as it is used internally for resources "
"created by OpenERP (updates, module installation, ...)"
msgstr ""
"אינך יכול להסיר את המשתמש ADMIN כיוון שמשמש ליצירת מקורות ע\"י openERP "
"(עדכונים,התקנת מודולים...)"
"לא ניתן להסיר את המשתמש ADMIN מכיוון שנעשה בו שימוש פנימי עבור משאבים ש-"
"OpenERP יוצרת (עדכונים,התקנת מודולים...)"
#. module: base
#: view:workflow.transition:0
@ -513,12 +524,12 @@ msgstr ""
#. module: base
#: model:res.country,name:base.gf
msgid "French Guyana"
msgstr "French Guyana"
msgstr "הגויאנה הצרפתית"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
msgstr ""
msgstr "עבודות, מחלקות, פרטי עובדים"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@ -538,7 +549,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_idea
msgid "Ideas"
msgstr ""
msgstr "רעיונות"
#. module: base
#: model:ir.module.module,description:base.module_event
@ -569,7 +580,7 @@ msgid ""
"If you check this, then the second time the user prints with same attachment "
"name, it returns the previous report."
msgstr ""
"אם תסמן זאת, בפעם השניה בה המשתמש ידפיס עם שם מצורף זהה,זה יחזיר את הדווח "
"אם תסמן זאת, בפעם השניה בה המשתמש ידפיס עם שם מצורף זהה, זה יחזיר את הדוח "
"הקודם."
#. module: base
@ -592,6 +603,21 @@ msgid ""
" A + B + C -> D + E\n"
" "
msgstr ""
"\n"
"רכיב זה מאפשר להפיק מספר מוצרים מהזמנת ייצור אחת.\n"
"============================================================================="
"\n"
"\n"
"ניתן להגדיר תוצרי לוואי (by-products) בחשבון החומרים\n"
"\n"
"בלי רכיב זה:\n"
"--------------------\n"
" A + B + C -> D\n"
"\n"
"עם רכיב זה:\n"
"-----------------\n"
" A + B + C -> D + E\n"
" "
#. module: base
#: selection:base.language.install,lang:0
@ -601,7 +627,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets"
msgstr ""
msgstr "חשבונית על גליון שעות"
#. module: base
#: view:base.module.upgrade:0
@ -635,8 +661,8 @@ msgid ""
"The ISO country code in two chars.\n"
"You can use this field for quick search."
msgstr ""
"ISO קוד מדינה בשני תווים.\n"
"תוכל להשתמש בשדה זה לחיפוש מהיר."
"צופן ה-ISO בשתי אותיות.\n"
"ניתן להשתמש בשדה זה לחיפוש מהיר."
#. module: base
#: model:res.country,name:base.pw
@ -651,12 +677,12 @@ msgstr "מכירות ורכש"
#. module: base
#: view:ir.translation:0
msgid "Untranslated"
msgstr ""
msgstr "לא מתורגם"
#. module: base
#: view:ir.mail_server:0
msgid "Outgoing Mail Server"
msgstr ""
msgstr "שרת דואר יוצא"
#. module: base
#: help:ir.actions.act_window,context:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:06+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
"Language: hr\n"
#. module: base

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -3274,7 +3274,7 @@ msgstr ""
"==============================================\n"
" * Felhasználó azonosítás\n"
" * Dokumentum indexálás:- .pptx és .docx fájlok nem támogatottak Windows "
"oprendszeren.\n"
"operációs rendszeren.\n"
" * Dashboard / Műszerfal a dokumentumokhoz mely magában foglalja:\n"
" * Új fájl (lista)\n"
" * Fájlok a forrás típusa szerint (grafikon)\n"
@ -3334,7 +3334,7 @@ msgstr ""
"==================================\n"
"\n"
"Ez az alkalmazás lehetővé teszi a célul kitűzött eladások eredményes és "
"hatékony kezelését figyelembevéve a megrendelések és annak régebbi "
"hatékony kezelését figyelembe véve a megrendelések és annak régebbi "
"történetének nyomon követését.\n"
"\n"
"Kezeli a teljes eladási munkafolyamatot:\n"
@ -3351,7 +3351,7 @@ msgstr ""
"* Incoterms: International Commercial terms /Nemzetközi szállítási "
"feltételek pl.:EXW/\n"
"\n"
"Használható rugalmas számlázáasi módszer:\n"
"Használható rugalmas számlázási módszer:\n"
"\n"
"* *Igényléskori*: Ha szükséges a számlák kézzel létrehozhatók a megrendelés "
"alapján\n"
@ -3361,7 +3361,7 @@ msgstr ""
"egyenlíteni a szállítás előtt\n"
"\n"
"\n"
"A kereskedő vezérklő műszerfala a következőket tartalmazza\n"
"A kereskedő vezérlő műszerfala a következőket tartalmazza\n"
"------------------------------------------------\n"
"* Az árajánlataim\n"
"* Havi forgótőke (Grafikon)\n"
@ -3555,7 +3555,7 @@ msgstr ""
"automatikusan tud hozzárendelni emlékeztetőt.\n"
"\n"
"OpenERP alkatrész kezelés szabálya megengedi a rendszernek, hogy sablonból "
"rendelést generáljon autómatikusan, vagy beállíthatja, hogy az egészet a "
"rendelést generáljon automatikusan, vagy beállíthatja, hogy az egészet a "
"termelés tényleges igénynek megfelelően folyamat vezérléssel hajtsa végre.\n"
"\n"
"Dashboard / Műszerfal a beszerzés kezelés kimutatásához ezt tartalmazza:\n"
@ -4457,7 +4457,7 @@ msgstr ""
"Támogatja a raktározott termékek, fogyóeszközök vagy szolgáltatások "
"integrációját. Szolgáltatások teljesen integráltak a szoftver teljes "
"egységével. Például, beállíthat egy alvállalkozói szolgáltatást a "
"darabjegyzékben az autómatikus anyag beszerzéshez egy összeszerelni kívánt "
"darabjegyzékben az automatikus anyag beszerzéshez egy összeszerelni kívánt "
"termék megrendelésénél.\n"
"\n"
"Fő tulajdonságok\n"
@ -4465,8 +4465,8 @@ msgstr ""
"* Raktár létrehozás/Megrendelés létrehozás\n"
"* Több szintű darabjegyzés, nincs határ\n"
"* Több szintű útvonal, nincs határ\n"
"* Útvonal és munka központ integrálva az analitikai könyvitellel\n"
"* Periódikus ütemező számítás \n"
"* Útvonal és munka központ integrálva az analitikai könyvvitellel\n"
"* Periodikus ütemező számítás \n"
"* Lehetővé teszi a darabjegyzékek böngészését komplett szerkezetben ami "
"magában foglalja az al- és a fantom darabjegyzékeket\n"
"\n"
@ -18709,7 +18709,7 @@ msgid ""
" "
msgstr ""
"\n"
"Több-raktár kezelése, többes- és struktúrált/rendezett raktár helyek\n"
"Több-raktár kezelése, többes- és strukturált/rendezett raktár helyek\n"
"==============================================================\n"
"\n"
"A raktár és raktárkészlet kezelés a hierarchikus elhelyezkedési szerkezeten "
@ -18721,7 +18721,7 @@ msgstr ""
"lehetőségével a nyomon követhetőség biztosításához, mely követelmény nagyobb "
"vállalkozásoknál.\n"
"\n"
"Fó jellemzők\n"
"Fő jellemzők\n"
"------------\n"
"* A mozgások előzményei és tervezése,\n"
"* Raktár értékelés (alap vagy átlag ár, ...)\n"

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:03+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:15+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:02+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:14+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -941,7 +941,7 @@ msgstr "알바니아어 / Shqip"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_config_opportunity
msgid "Opportunities"
msgstr "영업기회"
msgstr "기회"
#. module: base
#: model:ir.model,name:base.model_base_language_export
@ -2677,7 +2677,7 @@ msgstr "바닥글 설정"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm
msgid "Opportunity to Quotation"
msgstr "견적 제공 기회"
msgstr "견적 기회"
#. module: base
#: model:ir.module.module,description:base.module_sale_analytic_plans
@ -4812,7 +4812,7 @@ msgstr "적도 기니"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_api
msgid "OpenERP Web API"
msgstr "OpenERP API"
msgstr "OpenERP Web API"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr_rib
@ -5409,7 +5409,7 @@ msgid ""
"\n"
msgstr ""
"\n"
"Openerp API.\n"
"Openerp Web API.\n"
"================\n"
"\n"
@ -5716,7 +5716,7 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_sale_salesman_all_leads
msgid "See all Leads"
msgstr "모든 잠재고객 보기"
msgstr "모든 리드 보기"
#. module: base
#: model:res.country,name:base.ci
@ -6292,7 +6292,7 @@ msgid ""
"\n"
msgstr ""
"\n"
"OpenERP 간판 화면.\n"
"OpenERP Web 간판 화면.\n"
"========================\n"
"\n"
@ -6921,10 +6921,10 @@ msgid ""
" "
msgstr ""
"\n"
"OpenERP 핵심 모듈.\n"
"OpenERP Web 핵심 모듈.\n"
"========================\n"
"\n"
"이 모듈은 OpenERP 웹 클라이언트의 핵심을 제공합니다.\n"
"이 모듈은 OpenERP Web Client의 핵심을 제공합니다.\n"
" "
#. module: base
@ -7556,7 +7556,7 @@ msgstr "정수"
msgid ""
"The path to the main report file (depending on Report Type) or NULL if the "
"content is in another data field"
msgstr "주 보고서 파일의 경로 (보고서 유형에 따름) 또는 컨텐트가 다른 데이터 필드에 위치할 경우 NULL"
msgstr "주 보고서 파일의 경로 (보고서 유형에 따름) 또는 내용이 다른 데이터 필드에 위치할 경우 NULL"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_14
@ -9288,7 +9288,7 @@ msgid ""
"\n"
msgstr ""
"\n"
"OpenERP 간트 도표 화면.\n"
"OpenERP Web 간트 도표 화면.\n"
"=============================\n"
"\n"
@ -9359,8 +9359,8 @@ msgid ""
"instead.If SSL is needed, an upgrade to Python 2.6 on the server-side should "
"do the trick."
msgstr ""
"OpenERP 서버가 SMTP-over-SSL을 지원하지 않습니다. STARTTLS를 대신 사용할 수 있습니다. SSL이 필요할 경우, "
"서버 측을 파이썬 2.6으로 업그레이드 하면 해결될 것입니다."
"OpenERP Server가 SMTP-over-SSL을 지원하지 않습니다. STARTTLS를 대신 사용할 수 있습니다. SSL이 필요할 "
"경우, 서버 측을 파이썬 2.6으로 업그레이드 하면 해결될 것입니다."
#. module: base
#: model:res.country,name:base.ua
@ -10606,7 +10606,7 @@ msgstr "이탈리아"
#. module: base
#: model:res.groups,name:base.group_sale_salesman
msgid "See Own Leads"
msgstr "자신의 잠재고객 보기"
msgstr "내 리드 보기"
#. module: base
#: view:ir.actions.todo:0
@ -10739,7 +10739,7 @@ msgstr "이것이 오류라고 생각되는 경우, 시스템 관리자에게
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
#, python-format
msgid "Apply Schedule Upgrade"
msgstr "일정 적용 업그레이드"
msgstr "예정된 업그레이드 적용"
#. module: base
#: view:workflow.activity:0
@ -11195,7 +11195,7 @@ msgstr "계단식"
#. module: base
#: model:ir.module.module,summary:base.module_crm
msgid "Leads, Opportunities, Phone Calls"
msgstr "잠재고객, 영업기회, 통화내역"
msgstr "리드, 기회, 통화"
#. module: base
#: model:ir.module.category,description:base.module_category_knowledge_management
@ -14185,7 +14185,7 @@ msgstr "송장 발송 및 지불 추적"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_config_lead
msgid "Leads & Opportunities"
msgstr "잠재 고객 & 매출 기회"
msgstr "리드 & 기회"
#. module: base
#: model:res.country,name:base.gg
@ -14937,7 +14937,7 @@ msgstr "썬더버드 플러그인"
#. module: base
#: model:ir.module.module,summary:base.module_event
msgid "Trainings, Conferences, Meetings, Exhibitions, Registrations"
msgstr ""
msgstr "훈련, 회의, 미팅, 전시회, 등록"
#. module: base
#: model:ir.model,name:base.model_res_country

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:04+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:05+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -4153,6 +4153,7 @@ msgstr "Титула"
#: help:ir.property,res_id:0
msgid "If not set, acts as a default value for new resources"
msgstr ""
"Доколку не е подесено, се однесува како стандардна вредност за новите ресурси"
#. module: base
#: code:addons/orm.py:4246
@ -4560,7 +4561,7 @@ msgstr "EAN13"
#: code:addons/orm.py:2247
#, python-format
msgid "Invalid Architecture!"
msgstr ""
msgstr "Погрешна архитектура!"
#. module: base
#: model:res.country,name:base.pt
@ -4703,13 +4704,13 @@ msgstr ""
#. module: base
#: view:ir.cron:0
msgid "Action to Trigger"
msgstr ""
msgstr "Акција за активирање"
#. module: base
#: field:ir.model.constraint,name:0
#: selection:ir.translation,type:0
msgid "Constraint"
msgstr ""
msgstr "Ограничување"
#. module: base
#: selection:ir.values,key:0
@ -4827,7 +4828,7 @@ msgstr "Телеком сектор"
#. module: base
#: field:workflow.transition,trigger_model:0
msgid "Trigger Object"
msgstr ""
msgstr "Активирај објект"
#. module: base
#: sql_constraint:ir.sequence.type:0
@ -4848,7 +4849,7 @@ msgstr "Дојдовни премини"
#. module: base
#: field:ir.values,value_unpickle:0
msgid "Default value or action reference"
msgstr ""
msgstr "Стандардна вредност или референца на акцијата"
#. module: base
#: model:ir.module.module,description:base.module_note_pad
@ -4920,7 +4921,7 @@ msgstr "Шпански (HN) / Español (HN)"
#. module: base
#: view:ir.sequence.type:0
msgid "Sequence Type"
msgstr ""
msgstr "Тип на секвенца"
#. module: base
#: view:base.language.export:0
@ -4973,7 +4974,7 @@ msgstr "Url"
#. module: base
#: selection:ir.translation,type:0
msgid "SQL Constraint"
msgstr ""
msgstr "SQL ограничување"
#. module: base
#: help:ir.ui.menu,groups_id:0
@ -5179,7 +5180,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,description:base.module_category_marketing
msgid "Helps you manage your marketing campaigns step by step."
msgstr ""
msgstr "Ви помага да ги менаџирате вашите маркетинг кампањи чекор по чекор."
#. module: base
#: selection:base.language.install,lang:0
@ -5324,7 +5325,7 @@ msgstr "Интеграција на Google Docs"
#. module: base
#: help:ir.attachment,res_model:0
msgid "The database object this attachment will be attached to"
msgstr ""
msgstr "Објектот на базата на податоци на кој овој прилог ќе биде прикачен"
#. module: base
#: code:addons/base/ir/ir_fields.py:327
@ -5391,7 +5392,7 @@ msgstr ", или друг текст едитор"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
msgid "Partners Geo-Localization"
msgstr ""
msgstr "Географска локализација на партнери"
#. module: base
#: model:res.country,name:base.ke
@ -5448,7 +5449,7 @@ msgstr "Перу"
#. module: base
#: selection:ir.model.fields,on_delete:0
msgid "Set NULL"
msgstr ""
msgstr "Подеси Нула"
#. module: base
#: view:res.users:0
@ -5479,7 +5480,7 @@ msgstr ""
#. module: base
#: help:ir.mail_server,smtp_user:0
msgid "Optional username for SMTP authentication"
msgstr ""
msgstr "Опционо корисничко име за SMTP автентификација"
#. module: base
#: model:ir.model,name:base.model_ir_actions_actions
@ -5552,6 +5553,7 @@ msgstr "Португалски / Português"
#, python-format
msgid "Changing the storing system for field \"%s\" is not allowed."
msgstr ""
"Поврзувањето на системот за складирање за полето \"%s\" не е дозволено."
#. module: base
#: help:res.partner.bank,company_id:0
@ -5775,6 +5777,7 @@ msgstr "Име на сопственикот на сметката"
#, python-format
msgid "Cannot rename column to %s, because that column already exists!"
msgstr ""
"Не може да се преименува колоната во %s, бидејќи колоната веќе постои!"
#. module: base
#: view:ir.attachment:0
@ -5790,7 +5793,7 @@ msgstr "Децимален знак"
#: code:addons/orm.py:5319
#, python-format
msgid "Missing required value for the field '%s'."
msgstr ""
msgstr "Недостига потребната вредност за полето '%s'."
#. module: base
#: view:ir.rule:0
@ -5845,7 +5848,7 @@ msgstr "Буве Остров"
#. module: base
#: field:ir.model.constraint,type:0
msgid "Constraint Type"
msgstr ""
msgstr "Тип на ограничување"
#. module: base
#: field:res.company,child_ids:0
@ -6172,7 +6175,7 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_actions_act_window_view
msgid "ir.actions.act_window.view"
msgstr ""
msgstr "ir.actions.act_window.view"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web
@ -6183,7 +6186,7 @@ msgstr "Веб"
#. module: base
#: model:ir.module.module,shortdesc:base.module_lunch
msgid "Lunch Orders"
msgstr ""
msgstr "Нарачки за ручек"
#. module: base
#: selection:base.language.install,lang:0
@ -6229,7 +6232,7 @@ msgstr "Етиопија"
#. module: base
#: model:ir.module.category,name:base.module_category_authentication
msgid "Authentication"
msgstr ""
msgstr "Автентикација"
#. module: base
#: model:res.country,name:base.sj
@ -6240,7 +6243,7 @@ msgstr ""
#: model:ir.model,name:base.model_ir_actions_wizard
#: selection:ir.ui.menu,action:0
msgid "ir.actions.wizard"
msgstr ""
msgstr "ir.actions.wizard"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_kanban
@ -6252,7 +6255,7 @@ msgstr ""
#: view:ir.actions.report.xml:0
#: view:ir.actions.server:0
msgid "Group By"
msgstr ""
msgstr "Групирај по"
#. module: base
#: view:res.config.installer:0
@ -6303,7 +6306,7 @@ msgstr "Семтководство и финансии"
#. module: base
#: field:ir.actions.server,write_id:0
msgid "Write Id"
msgstr ""
msgstr "Напиши ID"
#. module: base
#: model:ir.ui.menu,name:base.menu_product
@ -6330,12 +6333,12 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_usability
#: view:res.users:0
msgid "Usability"
msgstr ""
msgstr "Употребливост"
#. module: base
#: field:ir.actions.act_window,domain:0
msgid "Domain Value"
msgstr ""
msgstr "Вредност на домен"
#. module: base
#: model:ir.module.module,description:base.module_association
@ -6386,7 +6389,7 @@ msgstr ""
#: code:addons/base/ir/workflow/workflow.py:99
#, python-format
msgid "Operation forbidden"
msgstr ""
msgstr "Забранета операција"
#. module: base
#: view:ir.actions.server:0
@ -6444,7 +6447,7 @@ msgstr "Тип на банка"
#: code:addons/base/res/res_users.py:99
#, python-format
msgid "The name of the group can not start with \"-\""
msgstr ""
msgstr "Името на групата не може да почнува со \"-\""
#. module: base
#: model:ir.actions.client,name:base.modules_act_cl
@ -6484,7 +6487,7 @@ msgstr ""
#: view:workflow.activity:0
#: field:workflow.activity,flow_start:0
msgid "Flow Start"
msgstr ""
msgstr "Почеток на тек"
#. module: base
#: model:ir.model,name:base.model_res_partner_title
@ -6823,7 +6826,7 @@ msgstr ""
#: code:addons/orm.py:2247
#, python-format
msgid "There is no view of type '%s' defined for the structure!"
msgstr ""
msgstr "Нема приказ од типот \\%s\\ дефинирано за структурата!"
#. module: base
#: help:ir.values,key:0
@ -6964,7 +6967,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.rule:0
msgid "Rule must have at least one checked access right !"
msgstr ""
msgstr "Правилото мора да има барем едно означено право за пристап !"
#. module: base
#: field:res.partner.bank.type,format_layout:0
@ -7402,7 +7405,7 @@ msgstr "Датотеката од модулот е успешно увезен
#: view:ir.model.constraint:0
#: model:ir.ui.menu,name:base.ir_model_constraint_menu
msgid "Model Constraints"
msgstr ""
msgstr "Ограничувања на модулот"
#. module: base
#: model:ir.actions.act_window,name:base.action_workflow_transition_form
@ -7415,7 +7418,7 @@ msgstr "Транзиции"
#: model:ir.module.module,shortdesc:base.module_hr_timesheet
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_sheet
msgid "Timesheets"
msgstr ""
msgstr "Временски таблици"
#. module: base
#: help:ir.values,company_id:0
@ -7449,6 +7452,9 @@ msgid ""
"password, otherwise leave empty. After a change of password, the user has to "
"login again."
msgstr ""
"Специфицирајте вредност единствено кога креирате корисник или ја менувате "
"корисничката лозинка, во спротивно оставете празно. После промената на "
"лозинката, корисникот треба повторно да се најави."
#. module: base
#: model:res.country,name:base.so
@ -7613,7 +7619,7 @@ msgstr "на"
#. module: base
#: view:ir.property:0
msgid "Parameters that are used by all resources."
msgstr ""
msgstr "Параметри кои се користат од сите расурси."
#. module: base
#: model:res.country,name:base.mz
@ -15713,7 +15719,7 @@ msgstr "Северна Кореа"
#. module: base
#: selection:ir.actions.server,state:0
msgid "Create Object"
msgstr ""
msgstr "Креирај објект"
#. module: base
#: model:res.country,name:base.ss
@ -15728,7 +15734,7 @@ msgstr "Контекст"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_mrp
msgid "Sales and MRP Management"
msgstr ""
msgstr "Управување со продажби и производство"
#. module: base
#: model:ir.actions.act_window,help:base.action_partner_form
@ -15742,6 +15748,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
"Кликнете за да додадете контакт во вашиот именик.\n"
"</p><p>\n"
"OpenERP ви помага полесно да ги следите сите активности поврзани со\n"
"купувач; дискусии, историја на бизнис можности,\n"
"документи, итн.\n"
"</p>\n"
" "
#. module: base
#: model:res.partner.category,name:base.res_partner_category_2
@ -15769,6 +15783,8 @@ msgid ""
"Used to select automatically the right address according to the context in "
"sales and purchases documents."
msgstr ""
"Се користи за автоматски да се избере вистинската адреса според контекстот "
"во документите за продажби и набавки."
#. module: base
#: model:ir.module.module,description:base.module_purchase_analytic_plans
@ -15801,7 +15817,7 @@ msgstr "Руски / русский язык"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_signup
msgid "Signup"
msgstr ""
msgstr "Регистрација"
#~ msgid "Code (eg:en__US)"
#~ msgstr "Код (пр. en_US)"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:05+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:16+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -609,8 +609,8 @@ msgstr ""
"===============================================\n"
"\n"
"OpenERP-д шинжилгээний дансд нь ерөнхий дансдадтай холбогддог боловч \n"
"бүрэн үл хамаарах байдаг. Иймээс ерөнхий санхүүгийн данс эсрэг тал нь болгох "
"албагүй \n"
"бүрэн үл хамаарах байдаг. Иймээс ерөнхий санхүүгийн данс харьцах тал нь "
"болгох албагүй \n"
"бөгөөд төрөл бүрийн шинжилгээний үйлдлүүдийг оруулж болно.\n"
" "
@ -919,7 +919,7 @@ msgstr "Иордан"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_hr
msgid "Croatia - RRIF 2012 COA"
msgstr ""
msgstr "Croatia - RRIF 2012 COA"
#. module: base
#: help:ir.cron,nextcall:0
@ -2373,9 +2373,9 @@ msgstr ""
"\n"
" * Дансны Мод, Татвар, Татварын Код, Журналь, Дансны Үлгэр, Шинжилгээний "
"Дансны Мод, Шинжилгээний Журналиудад олон хэлийг нэмдэг.\n"
" * Тохируулах харилцах нь дараахыг өөрчилдөг.\n"
" - Үлгэрээс авагдсан Дансны Модт, Татвар, Татварын Код, Мөчлөг зэрэгт "
"орчуулгыг хуулна.\n"
" * Тохируулах харилцах цонх нь дараахыг өөрчилдөг.\n"
" - Үлгэрээс авагдсан Дансны Мод, Татвар, Татварын Код, Санхүүгийн "
"харгалзаа зэрэгт орчуулгыг хуулна.\n"
" "
#. module: base
@ -2564,7 +2564,7 @@ msgstr "Солонгос хэл (KP) / 한국어 (KP)"
#. module: base
#: model:res.country,name:base.ax
msgid "Åland Islands"
msgstr ""
msgstr "Аландийн Арлууд"
#. module: base
#: field:res.company,logo:0
@ -4210,22 +4210,22 @@ msgstr ""
"\n"
"Энэ модуль нь төлөвлөлт, захиалга, нөөцлөлт, бүтээгдэхүүний түүхий эд, дэд "
"хэсгүүдээс угсрах зэрэгийг үйлдвэрлэлийн процессыг хамардаг. Түүнчлэн "
"бүтээгдэхүүний орц, жор, дамжлагын хүний нөөц, машин тоног төхөөрөмж "
"зэрэгийг таамагладаг.\n"
"бүтээгдэхүүний орц, дамжлагын хүний нөөц, машин тоног төхөөрөмж зэрэгийг "
"таамагладаг.\n"
"\n"
"Түүхийн эд нөөцлөл, хангамж, үйлчилгээний бүрэн төлөвлөлтийг дэмждэг. "
"Үйлчилгээ нь програм хангамжийн бусад бүх хэсэгтэй бүрэн уялддаг. Тухайлбал, "
"үйлдвэрлэлийг явуулахдаа жор дотор нь дэд гэрээгээр авах үйлчилгээг "
"үйлдвэрлэлийг явуулахдаа орц дотор нь дэд гэрээгээр авах үйлчилгээг "
"тодорхойлж өгөх боломжтой байдаг.\n"
"\n"
"Онцлог:\n"
"---------\n"
" * Хадгалуулах / Захиалуулах (мөр бүрээр)\n"
" * Олон түвшний жор, хязгааргүй\n"
" * Олон түвшний орц, хязгааргүй\n"
" * Олон түвшний урсгал, хязгааргүй\n"
" * Шинжилгээний санхүүтэй уялдсан үйлдвэрлэлийн урсгал болон дамжлага\n"
" * Тогтол хугацааны тооцоолол / Яг Хугацаандааа модуль\n"
" * Жоруудыг бүтцээр нь, завсрынхаар нь гэх мэт гүйцэд шинжилгээ, үзлэг\n"
" * Орцуудыг бүтцээр нь, завсрынхаар нь гэх мэт гүйцэд шинжилгээ, үзлэг\n"
"\n"
"Үйлдвэрлэлийн модулийн Хянах самбар / Тайлангууд нь дараах зүйлсийг "
"агуулдаг:\n"
@ -6404,7 +6404,7 @@ msgstr "Ачаалах Тохиргооны Визард"
#. module: base
#: model:ir.module.module,summary:base.module_mrp
msgid "Manufacturing Orders, Bill of Materials, Routing"
msgstr "Үйлдвэрлэлийн захиалгууд, Жор, Дамжлагын цуваа"
msgstr "Үйлдвэрлэлийн захиалгууд, Орц, Шугам"
#. module: base
#: field:ir.attachment,name:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:05+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:02+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:13+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:09+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:05+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:05+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:06+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:17+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -882,7 +882,7 @@ msgstr ""
#. module: base
#: help:ir.cron,nextcall:0
msgid "Next planned execution date for this job."
msgstr "Следующая запланированная дата выполнения для данной работы."
msgstr "Следующая дата выполнения задачи планировщиком."
#. module: base
#: model:ir.model,name:base.model_ir_ui_view
@ -11026,7 +11026,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
#, python-format
msgid "Apply Schedule Upgrade"
msgstr "Применить запланированные обновления"
msgstr "Выполнить обновление"
#. module: base
#: view:workflow.activity:0
@ -14840,7 +14840,7 @@ msgstr "Файл веб-значка"
#. module: base
#: model:ir.ui.menu,name:base.menu_view_base_module_upgrade
msgid "Apply Scheduled Upgrades"
msgstr "Выполнить запланированные обновления"
msgstr "Выполнить обновления"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_journal

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:06+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:06+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:00+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:12+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:06+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:10+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:18+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -25,7 +25,7 @@ msgid ""
" "
msgstr ""
"\n"
"Çek yazımı ve basımı için modül.\n"
"Çek Yazma ve Bastırma Modülü.\n"
"================================================\n"
" "
@ -37,7 +37,7 @@ msgstr "Azize Helen"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
msgstr "Diğer Ayarlar"
msgstr "Diğer Yapılandırmalar"
#. module: base
#: selection:ir.property,type:0
@ -73,7 +73,7 @@ msgstr "Boşluk Yok"
#. module: base
#: selection:base.language.install,lang:0
msgid "Hungarian / Magyar"
msgstr "Macarca / Magyar"
msgstr "Macarca"
#. module: base
#: selection:base.language.install,lang:0
@ -103,7 +103,7 @@ msgstr "Hindistan Bordro"
#: help:ir.cron,model:0
msgid ""
"Model name on which the method to be called is located, e.g. 'res.partner'."
msgstr ""
msgstr "Çağrılacak yöntemin bulunduğu model adı, örn. 'res.partner'"
#. module: base
#: view:ir.module.module:0
@ -125,6 +125,17 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
"\n"
"Ürün kartına üretici ve öznitelikleri ekleyecek bir modül.\n"
"====================================================================\n"
"\n"
"Şimdi bir ürün için aşağıdakileri tanımlayabilirsiniz:\n"
"-----------------------------------------------\n"
" * Üretici\n"
" * Üretici Ürün Adı\n"
" * Üretici Ürün Kodu\n"
" * Ürün Öznitelikleri\n"
" "
#. module: base
#: field:ir.actions.client,params:0
@ -154,6 +165,9 @@ msgid ""
"specified as a Python expression defining a list of triplets. For example: "
"[('color','=','red')]"
msgstr ""
"ilişki alanlarında olası değerleri sınırlayacak seçmeli etki alanı adı, bir "
"üçlü liste olarak tanımlanan bir Python ifadesi olarak belirlenmiştir. "
"Örneğin: [('renk','=','kırmızı')]"
#. module: base
#: field:res.partner,ref:0
@ -194,6 +208,14 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
"\n"
"Giderlerden, Zaman Çizelgesi Kayıtlarından Faturalarınızı oluşturun.\n"
"========================================================\n"
"\n"
"Maliyetlere göre fatura oluşturan modül (insan kaynaklar, giderler, ...).\n"
"\n"
"Analitik hesaplarda fiyat listeleri tanımlayabilirsiniz, bazı kuramsal gelir "
"raporları yapabilirsiniz."
#. module: base
#: code:addons/base/ir/ir_sequence.py:104
@ -228,7 +250,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:375
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
msgstr ""
msgstr "\"%s\" boş alanının yeniden adlandırılmasına izin verilmez"
#. module: base
#: model:res.country,name:base.sz
@ -270,7 +292,7 @@ msgstr "Eskimo / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr "Çoklu ParaBirimi"
msgstr "Çok Para Birimli"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@ -282,6 +304,12 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Şili hesap planı ve yerel vergi.\n"
"==============================================\n"
"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n"
"\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
@ -293,7 +321,7 @@ msgstr "Satış Yönetimi"
msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
msgstr "Eğer varsa, bu kişi ile iletişime görevlendirilmiş iç kullanıcı."
#. module: base
#: view:res.partner:0
@ -321,6 +349,8 @@ msgid ""
"Database ID of record to open in form view, when ``view_mode`` is set to "
"'form' only"
msgstr ""
"\"view_mode\" yalnızca 'form' olarak ayarlandığındaki görünüm formında "
"açılacak kaydın Veritabanı ID i"
#. module: base
#: help:ir.values,key2:0
@ -332,6 +362,12 @@ msgid ""
" - tree_but_open\n"
"For defaults, an optional condition"
msgstr ""
"İşlemler için, olası işlem yuvaları: \n"
" - client_action_multi\n"
" - client_print_multi\n"
" - client_action_relate\n"
" - tree_but_open\n"
"Varsayılanlar için, seçmeli bir koşul"
#. module: base
#: sql_constraint:res.lang:0
@ -570,6 +606,8 @@ msgid ""
"* Use emails to automatically confirm and send acknowledgements for any "
"event registration\n"
msgstr ""
"\n"
"Etkinliklerin organizasyonu ve yönetimi\n"
#. module: base
#: selection:base.language.install,lang:0
@ -659,7 +697,7 @@ msgstr "Palau"
#. module: base
#: view:res.partner:0
msgid "Sales & Purchases"
msgstr "Satışlar & SatınAlmalar"
msgstr "Satışlar ve Satınalmalar"
#. module: base
#: view:ir.translation:0
@ -1541,7 +1579,7 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_purchase_management
#: model:ir.ui.menu,name:base.menu_purchase_root
msgid "Purchases"
msgstr "SatınAlma"
msgstr "Satınalma"
#. module: base
#: model:res.country,name:base.md
@ -1854,7 +1892,7 @@ msgstr "Yükle"
#. module: base
#: field:res.currency,accuracy:0
msgid "Computational Accuracy"
msgstr "Hesapsal Doğruluk"
msgstr "Hesaplama Doğruluğu"
#. module: base
#: model:ir.module.module,description:base.module_l10n_at
@ -1947,7 +1985,7 @@ msgstr "Okuma Erişimi"
#. module: base
#: help:ir.attachment,res_id:0
msgid "The record id this is attached to"
msgstr ""
msgstr "Kayıt buna eklenmiştir"
#. module: base
#: model:ir.module.module,description:base.module_share
@ -3167,7 +3205,7 @@ msgstr ""
#. module: base
#: field:res.company,rml_header1:0
msgid "Company Tagline"
msgstr "Firma Slogan"
msgstr "Firma Sloganı"
#. module: base
#: code:addons/base/res/res_users.py:674
@ -3446,7 +3484,7 @@ msgstr "Web ikon dosyası (hover)"
#. module: base
#: help:res.currency,name:0
msgid "Currency Code (ISO 4217)"
msgstr "ParaBirimi Kodu (ISO 4217)"
msgstr "ParaNBirimi Kodu (ISO 4217)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_contract
@ -4307,7 +4345,7 @@ msgstr "Menü :"
#. module: base
#: selection:ir.model.fields,state:0
msgid "Base Field"
msgstr "Taban Alan"
msgstr "Temel Alan"
#. module: base
#: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts
@ -5558,7 +5596,7 @@ msgstr "Yapılandırma Sihirbazı'nı başlatın"
#. module: base
#: model:ir.module.module,summary:base.module_mrp
msgid "Manufacturing Orders, Bill of Materials, Routing"
msgstr "Üretim Siparişler, Malzeme Listesi, Yönlendirme"
msgstr "Üretim Emirleri, Ürün Ağaçları, Rotalar"
#. module: base
#: field:ir.attachment,name:0
@ -6371,7 +6409,7 @@ msgstr "Arttırma sayı sıfır olamaz."
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_cancel
msgid "Cancel Journal Entries"
msgstr "Yevmiye Girişleri İptalEt"
msgstr "Günlük Kaydı İptal"
#. module: base
#: field:res.partner,tz_offset:0
@ -6664,7 +6702,7 @@ msgstr "Sudan"
#: field:res.currency.rate,currency_rate_type_id:0
#: view:res.currency.rate.type:0
msgid "Currency Rate Type"
msgstr "ParaBirimi Kur Türü"
msgstr "Para Birimi Kur Türü"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr
@ -6743,7 +6781,7 @@ msgstr "İsrail"
#: code:addons/base/res/res_config.py:444
#, python-format
msgid "Cannot duplicate configuration!"
msgstr ""
msgstr "Yapılandırmasını çoğaltması yamazsınız!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_syscohada
@ -6758,7 +6796,7 @@ msgstr "Bazen BIC ya da SWIFT olarak geçer."
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in
msgid "Indian - Accounting"
msgstr ""
msgstr "Hindistan Hesapplanı"
#. module: base
#: field:res.lang,time_format:0
@ -6860,7 +6898,7 @@ msgstr "Dış ID"
#. module: base
#: help:res.currency.rate,rate:0
msgid "The rate of the currency to the currency of rate 1"
msgstr "Parabirimi kur oranı (1'e göre)"
msgstr "Parabirimi kur oranı (kur oranı 1 e göre)"
#. module: base
#: model:res.country,name:base.uk
@ -6979,7 +7017,7 @@ msgstr ""
#. module: base
#: selection:res.currency,position:0
msgid "After Amount"
msgstr "Tutar Sonra"
msgstr "Tutardan Sonra"
#. module: base
#: selection:base.language.install,lang:0
@ -6999,6 +7037,7 @@ msgstr ""
#: model:res.groups,comment:base.group_hr_user
msgid "the user will be able to approve document created by employees."
msgstr ""
"Kullanıcı çalışanlar tarafından oluşturulan belgeyi onaylaması mümkün."
#. module: base
#: field:ir.ui.menu,needaction_enabled:0
@ -7165,7 +7204,7 @@ msgstr "Fed. Eyalet"
#. module: base
#: field:ir.actions.server,copy_object:0
msgid "Copy Of"
msgstr "kopyası"
msgstr "Kopyası"
#. module: base
#: field:ir.model.data,display_name:0
@ -7206,7 +7245,7 @@ msgstr "Eyalet Kodu"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_multilang
msgid "Multi Language Chart of Accounts"
msgstr "Çok dilli Hesap Planları"
msgstr "Çok Dilli Hesap Planları"
#. module: base
#: model:ir.module.module,description:base.module_l10n_gt
@ -7236,7 +7275,7 @@ msgstr "Tercüme edilebilir"
#. module: base
#: help:base.language.import,code:0
msgid "ISO Language and Country code, e.g. en_US"
msgstr "ISO Dil ve Ülke kodu, örnek en_US"
msgstr "ISO Dil ve Ülke kodu, örn. en_US"
#. module: base
#: model:res.country,name:base.vn
@ -7261,7 +7300,7 @@ msgstr ""
#. module: base
#: view:ir.property:0
msgid "Parameters that are used by all resources."
msgstr ""
msgstr "Tüm kaynaklar tarafından kullanılan parametreler."
#. module: base
#: model:res.country,name:base.mz
@ -7860,7 +7899,7 @@ msgstr "Kanada"
#. module: base
#: view:base.language.export:0
msgid "Launchpad"
msgstr ""
msgstr "Launchpad"
#. module: base
#: help:res.currency.rate,currency_rate_type_id:0
@ -7954,7 +7993,7 @@ msgstr "Banka türü alanları"
#. module: base
#: constraint:ir.rule:0
msgid "Rules can not be applied on Transient models."
msgstr ""
msgstr "Kurallar Geçiş modellerde uygulanamaz."
#. module: base
#: selection:base.language.install,lang:0
@ -8188,7 +8227,7 @@ msgstr "Giriş Sıralama Numaraları"
#. module: base
#: view:base.language.export:0
msgid "POEdit"
msgstr ""
msgstr "POEdit"
#. module: base
#: view:ir.values:0
@ -8283,7 +8322,7 @@ msgstr "Proje Yönetimi"
#. module: base
#: view:ir.module.module:0
msgid "Cancel Uninstall"
msgstr "Kaldırmayı İptal Et"
msgstr "Kaldırma İptal"
#. module: base
#: view:res.bank:0
@ -8531,7 +8570,7 @@ msgstr "workflow.transition"
#. module: base
#: view:res.lang:0
msgid "%a - Abbreviated weekday name."
msgstr "%a - Günün kısaltması"
msgstr "%a - Gün kısaltması"
#. module: base
#: view:ir.ui.menu:0
@ -8610,6 +8649,7 @@ msgstr "Açıklama HTML"
#: help:res.groups,implied_ids:0
msgid "Users of this group automatically inherit those groups"
msgstr ""
"Bu grubun kullanıcılar otomatik olarak bu grup özelliklerinini devralır"
#. module: base
#: model:ir.module.module,summary:base.module_note
@ -8757,7 +8797,7 @@ msgstr "Slovence / Slovenščina"
#. module: base
#: field:res.currency,position:0
msgid "Symbol Position"
msgstr "Sembol Pozisyonu"
msgstr "Simge Konumu"
#. module: base
#: model:ir.module.module,description:base.module_l10n_de
@ -8951,7 +8991,7 @@ msgstr "Ülkenin tam adı."
#. module: base
#: selection:ir.actions.server,state:0
msgid "Iteration"
msgstr "Yineleme"
msgstr "Yenileme"
#. module: base
#: code:addons/orm.py:4246
@ -9290,7 +9330,7 @@ msgstr ""
#. module: base
#: view:ir.module.category:0
msgid "Module Category"
msgstr "Modül Kategori"
msgstr "Modül Kategorisi"
#. module: base
#: model:res.country,name:base.us
@ -9422,7 +9462,7 @@ msgstr "Özel Kısayollar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_si
msgid "Slovenian - Accounting"
msgstr ""
msgstr "Slovenya - Hesapplananı"
#. module: base
#: model:ir.module.module,description:base.module_account_cancel
@ -9512,7 +9552,7 @@ msgstr "Firmalar"
#. module: base
#: help:res.currency,symbol:0
msgid "Currency sign, to be used when printing amounts."
msgstr "Parabirimi Kuru işareti, (Miktarları basarken kullanmak için)"
msgstr "Para Birimi işareti, tutarları yazarken kullanılan"
#. module: base
#: view:res.lang:0
@ -9736,7 +9776,7 @@ msgstr "Almanya"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth
msgid "OAuth2 Authentication"
msgstr ""
msgstr "OAuth2 Authentication"
#. module: base
#: view:workflow:0
@ -10024,7 +10064,7 @@ msgstr "Dakika"
#. module: base
#: view:res.currency:0
msgid "Display"
msgstr "Görüntüle"
msgstr "Görüntü"
#. module: base
#: model:res.groups,name:base.group_multi_company
@ -10126,7 +10166,7 @@ msgstr "Aralık Birimi"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_stock
msgid "Portal Stock"
msgstr ""
msgstr "Portal Stok"
#. module: base
#: field:workflow.activity,kind:0
@ -10149,7 +10189,7 @@ msgstr "Terimleri Senkronize Et"
#. module: base
#: field:res.lang,thousands_sep:0
msgid "Thousands Separator"
msgstr "Binler Ayracı"
msgstr "Bin Ayracı"
#. module: base
#: field:res.request,create_date:0
@ -10208,7 +10248,7 @@ msgstr "res.request"
#. module: base
#: field:res.partner,image_medium:0
msgid "Medium-sized image"
msgstr ""
msgstr "Orta ölçekli resim"
#. module: base
#: view:ir.model:0
@ -10422,7 +10462,7 @@ msgstr "Bu şirketle ilişkili banka hesapları"
#: model:ir.ui.menu,name:base.next_id_64
#: view:res.users:0
msgid "Sales"
msgstr "Satışlar"
msgstr "Satış"
#. module: base
#: field:ir.actions.server,child_ids:0
@ -10499,7 +10539,7 @@ msgstr "Yapılacak"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_hr_employees
msgid "Portal HR employees"
msgstr ""
msgstr "Portal İK Personeller"
#. module: base
#: selection:base.language.install,lang:0
@ -10617,6 +10657,7 @@ msgstr ""
msgid ""
"Please contact your system administrator if you think this is an error."
msgstr ""
"Bunun bir hata olduğunu düşünüyorsanız lütfen sistem yöneticinize başvurun."
#. module: base
#: code:addons/base/module/module.py:545
@ -10995,7 +11036,7 @@ msgstr ""
#. module: base
#: field:ir.attachment,res_model:0
msgid "Resource Model"
msgstr ""
msgstr "Kayanak Model"
#. module: base
#: code:addons/custom.py:555
@ -11298,12 +11339,12 @@ msgstr "Porto Riko"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests_demo
msgid "Demonstration of web/javascript tests"
msgstr ""
msgstr "Demonstration of web/javascript tests"
#. module: base
#: field:workflow.transition,signal:0
msgid "Signal (Button Name)"
msgstr ""
msgstr "Sinyal Buton Adı)"
#. module: base
#: view:ir.actions.act_window:0
@ -11555,7 +11596,7 @@ msgstr "A4"
#. module: base
#: view:res.config.installer:0
msgid "Configuration Installer"
msgstr ""
msgstr "Yapılandırma Yükleyicisi"
#. module: base
#: field:res.partner,customer:0
@ -11645,13 +11686,13 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_fields_converter
msgid "ir.fields.converter"
msgstr ""
msgstr "ir.fields.converter"
#. module: base
#: code:addons/base/res/res_partner.py:439
#, python-format
msgid "Couldn't create contact without email address !"
msgstr ""
msgstr "E-posta adresi olmayan kontak oluşturmak olamazdı!"
#. module: base
#: model:ir.module.category,name:base.module_category_manufacturing
@ -11668,17 +11709,17 @@ msgstr "Komorlar"
#. module: base
#: view:ir.module.module:0
msgid "Cancel Install"
msgstr "Yükleme İptal"
msgstr "Kurulum İptal"
#. module: base
#: model:ir.model,name:base.model_ir_model_relation
msgid "ir.model.relation"
msgstr ""
msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
msgstr ""
msgstr "Çek Yazma"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@ -11747,7 +11788,7 @@ msgstr "Erişim Kuralları"
#. module: base
#: field:res.groups,trans_implied_ids:0
msgid "Transitively inherits"
msgstr ""
msgstr "Geçişler devralır"
#. module: base
#: field:ir.default,ref_table:0
@ -11955,7 +11996,7 @@ msgstr "Guetemala - Muhasebe"
#. module: base
#: help:ir.cron,args:0
msgid "Arguments to be passed to the method, e.g. (uid,)."
msgstr "Metoda (fonsiyona) gönderilecek argümanlar ör: (uid,)."
msgstr "Metoda (fonsiyona) gönderilecek argümanlar örn.: (uid,)."
#. module: base
#: report:ir.module.reference:0
@ -12016,7 +12057,7 @@ msgstr "Rapor Türü"
#: view:res.partner.bank:0
#: view:res.users:0
msgid "State"
msgstr "Durum"
msgstr "Eyalet"
#. module: base
#: selection:base.language.install,lang:0
@ -12072,7 +12113,7 @@ msgstr "Bağlantı Bilgileri"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_prof
msgid "Professor"
msgstr ""
msgstr "Profesör"
#. module: base
#: model:res.country,name:base.hm
@ -12101,7 +12142,7 @@ msgstr "Teklifleri, sipariş emirlerini ve faturalarınızı yönetmenizi sağla
#. module: base
#: field:res.users,login_date:0
msgid "Latest connection"
msgstr ""
msgstr "Son bağlantı"
#. module: base
#: field:res.groups,implied_ids:0
@ -12208,7 +12249,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.cd
msgid "Congo, Democratic Republic of the"
msgstr ""
msgstr "Kongo Demokratik Cumhuriyeti"
#. module: base
#: model:res.country,name:base.cr
@ -12243,7 +12284,7 @@ msgstr "Diğer Partner"
#: view:workflow.workitem:0
#: field:workflow.workitem,state:0
msgid "Status"
msgstr "Durum"
msgstr "Durumu"
#. module: base
#: model:ir.actions.act_window,name:base.action_currency_form
@ -12517,7 +12558,7 @@ msgstr ""
#. module: base
#: field:ir.actions.report.xml,report_sxw:0
msgid "SXW Path"
msgstr ""
msgstr "SXW Yolu"
#. module: base
#: model:ir.module.module,description:base.module_account_asset
@ -12963,7 +13004,7 @@ msgstr ""
#. module: base
#: field:res.company,company_registry:0
msgid "Company Registry"
msgstr "Vergi Dairesi"
msgstr "Şirket Sicil No"
#. module: base
#: view:ir.actions.report.xml:0
@ -13079,7 +13120,7 @@ msgstr "French Southern Territories"
#: field:res.currency,name:0
#: field:res.currency.rate,currency_id:0
msgid "Currency"
msgstr "ParaBirimi"
msgstr "Para Birimi"
#. module: base
#: view:res.lang:0
@ -13155,7 +13196,7 @@ msgstr "bilinmeyen"
#. module: base
#: field:res.currency,symbol:0
msgid "Symbol"
msgstr "Sembol"
msgstr "Simge"
#. module: base
#: help:res.partner,image_medium:0
@ -13271,7 +13312,7 @@ msgstr "Bağımlılıklar :"
#. module: base
#: field:res.company,vat:0
msgid "Tax ID"
msgstr "Vergi NO"
msgstr "Vergi No"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_bank_statement_extensions
@ -13449,7 +13490,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock_no_autopicking
msgid "Picking Before Manufacturing"
msgstr "Üretim Öncesi Seçmek"
msgstr "Üretim Öncesi Seçme"
#. module: base
#: model:ir.module.module,summary:base.module_note_pad
@ -13707,7 +13748,7 @@ msgstr "Modülleri Kurma"
#. module: base
#: model:ir.ui.menu,name:base.menu_import_crm
msgid "Import & Synchronize"
msgstr ""
msgstr "İçe aktarım ve senkronize"
#. module: base
#: view:res.partner:0
@ -14071,7 +14112,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_account_voucher
msgid "Send Invoices and Track Payments"
msgstr ""
msgstr "Faturalar ve Parça Ödemeler gönder"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_config_lead
@ -14177,7 +14218,7 @@ msgstr "Tayvan"
#. module: base
#: model:ir.model,name:base.model_res_currency_rate
msgid "Currency Rate"
msgstr "ParaBirimi Kur Oranı"
msgstr "ParabBirimi Oranı"
#. module: base
#: view:base.module.upgrade:0
@ -14502,7 +14543,7 @@ msgstr "Erişim"
#: field:res.partner,vat:0
#, python-format
msgid "TIN"
msgstr ""
msgstr "V.No"
#. module: base
#: model:res.country,name:base.aw
@ -15088,7 +15129,7 @@ msgstr "Şili"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_view_editor
msgid "View Editor"
msgstr "Editör Görüntüle"
msgstr "Görünüm Düzenleyici"
#. module: base
#: view:ir.cron:0
@ -15189,7 +15230,7 @@ msgstr "Sistem Güncelleme"
#: field:ir.actions.report.xml,report_sxw_content:0
#: field:ir.actions.report.xml,report_sxw_content_data:0
msgid "SXW Content"
msgstr ""
msgstr "SXW İçerek"
#. module: base
#: field:ir.attachment,file_size:0
@ -15317,7 +15358,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.open_module_tree
#: model:ir.ui.menu,name:base.menu_module_tree
msgid "Installed Modules"
msgstr "Kurulumuş Modüller"
msgstr "Kurulmuş Modüller"
#. module: base
#: code:addons/base/res/res_users.py:170
@ -15468,7 +15509,7 @@ msgstr ""
#. module: base
#: model:res.partner.category,name:base.res_partner_category_2
msgid "Prospect"
msgstr "Muhtemel"
msgstr "Beklenti"
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock_invoice_directly

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:07+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:09+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:08+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:19+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-23 05:09+0000\n"
"X-Generator: Launchpad (build 16540)\n"
"X-Launchpad-Export-Date: 2013-04-10 05:20+0000\n"
"X-Generator: Launchpad (build 16550)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -240,9 +240,9 @@ class act_window(osv.osv):
'name': fields.char('Action Name', size=64, translate=True),
'type': fields.char('Action Type', size=32, required=True),
'view_id': fields.many2one('ir.ui.view', 'View Ref.', ondelete='cascade'),
'domain': fields.char('Domain Value', size=250,
'domain': fields.char('Domain Value',
help="Optional domain filtering of the destination data, as a Python expression"),
'context': fields.char('Context Value', size=250, required=True,
'context': fields.char('Context Value', required=True,
help="Context dictionary as Python expression, empty by default (Default: {})"),
'res_id': fields.integer('Record ID', help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"),
'res_model': fields.char('Destination Model', size=64, required=True,
@ -285,6 +285,36 @@ class act_window(osv.osv):
'multi': False,
}
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
""" call the method get_empty_list_help of the model and set the window action help message
"""
ids_int = isinstance(ids, (int, long))
if ids_int:
ids = [ids]
results = super(act_window, self).read(cr, uid, ids, fields=fields, context=context, load=load)
if not fields or 'help' in fields:
context = dict(context or {})
eval_dict = {
'active_model': context.get('active_model'),
'active_id': context.get('active_id'),
'active_ids': context.get('active_ids'),
'uid': uid,
}
for res in results:
model = res.get('res_model')
if model and self.pool.get(model):
try:
with tools.mute_logger("openerp.tools.safe_eval"):
eval_context = eval(res['context'] or "{}", eval_dict) or {}
except Exception:
continue
custom_context = dict(context, **eval_context)
res['help'] = self.pool.get(model).get_empty_list_help(cr, uid, res.get('help', ""), context=custom_context)
if ids_int:
return results[0]
return results
def for_xml_id(self, cr, uid, module, xml_id, context=None):
""" Returns the act_window object created for the provided xml_id
@ -631,7 +661,7 @@ class actions_server(osv.osv):
return self.pool[action.action_id.type].read(cr, uid, action.action_id.id, context=context)
if action.state=='code':
eval(action.code, cxt, mode="exec", nocopy=True) # nocopy allows to return 'action'
eval(action.code.strip(), cxt, mode="exec", nocopy=True) # nocopy allows to return 'action'
if 'action' in cxt:
return cxt['action']

View File

@ -83,7 +83,7 @@ class ir_attachment(osv.osv):
if bin_size:
r = os.path.getsize(full_path)
else:
r = open(full_path).read().encode('base64')
r = open(full_path,'rb').read().encode('base64')
except IOError:
_logger.error("_read_file reading %s",full_path)
return r

View File

@ -18,8 +18,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
import logging
import threading
import time
import psycopg2
from datetime import datetime
from dateutil.relativedelta import relativedelta
@ -190,6 +191,7 @@ class ir_cron(osv.osv):
If a job was processed, returns True, otherwise returns False.
"""
db = openerp.sql_db.db_connect(db_name)
threading.current_thread().dbname = db_name
cr = db.cursor()
jobs = []
try:
@ -244,6 +246,9 @@ class ir_cron(osv.osv):
# we're exiting due to an exception while acquiring the lock
lock_cr.close()
if hasattr(threading.current_thread(), 'dbname'): # cron job could have removed it as side-effect
del threading.current_thread().dbname
def _try_lock(self, cr, uid, ids, context=None):
"""Try to grab a dummy exclusive write-lock to the rows with the given ids,
to make sure a following write() or unlink() will not block due

View File

@ -28,7 +28,7 @@ class ir_filters(osv.osv):
_description = 'Filters'
def _list_all_models(self, cr, uid, context=None):
cr.execute("SELECT model, name from ir_model")
cr.execute("SELECT model, name FROM ir_model ORDER BY name")
return cr.fetchall()
def copy(self, cr, uid, id, default=None, context=None):

View File

@ -25,6 +25,7 @@ import time
import types
import openerp
import openerp.modules.registry
from openerp import SUPERUSER_ID
from openerp import tools
from openerp.osv import fields,osv
@ -168,7 +169,9 @@ class ir_model(osv.osv):
if not context.get(MODULE_UNINSTALL_FLAG):
# only reload pool for normal unlink. For module uninstall the
# reload is done independently in openerp.modules.loading
cr.commit() # must be committed before reloading registry in new cursor
openerp.modules.registry.RegistryManager.new(cr.dbname)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res
@ -194,6 +197,7 @@ class ir_model(osv.osv):
field_state='manual',
select=vals.get('select_level', '0'))
self.pool[vals['model']]._auto_init(cr, ctx)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res
def instanciate(self, cr, user, model, context=None):
@ -259,7 +263,6 @@ class ir_model_fields(osv.osv):
'state': lambda self,cr,uid,ctx=None: (ctx and ctx.get('manual',False)) and 'manual' or 'base',
'on_delete': 'set null',
'select_level': '0',
'size': 64,
'field_description': '',
'selectable': 1,
}
@ -289,10 +292,10 @@ class ir_model_fields(osv.osv):
return True
def _size_gt_zero_msg(self, cr, user, ids, context=None):
return _('Size of the field can never be less than 1 !')
return _('Size of the field can never be less than 0 !')
_sql_constraints = [
('size_gt_zero', 'CHECK (size>0)',_size_gt_zero_msg ),
('size_gt_zero', 'CHECK (size>=0)',_size_gt_zero_msg ),
]
def _drop_column(self, cr, uid, ids, context=None):
@ -318,6 +321,9 @@ class ir_model_fields(osv.osv):
self._drop_column(cr, user, ids, context)
res = super(ir_model_fields, self).unlink(cr, user, ids, context)
if not context.get(MODULE_UNINSTALL_FLAG):
cr.commit()
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res
def create(self, cr, user, vals, context=None):
@ -349,6 +355,7 @@ class ir_model_fields(osv.osv):
select=vals.get('select_level', '0'),
update_custom_fields=True)
self.pool[vals['model']]._auto_init(cr, ctx)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res
@ -463,6 +470,7 @@ class ir_model_fields(osv.osv):
for col_name, col_prop, val in patch_struct[1]:
setattr(obj._columns[col_name], col_prop, val)
obj._auto_init(cr, ctx)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res
class ir_model_constraint(Model):

View File

@ -151,7 +151,7 @@
'readonly': [('ttype','not in', ['many2one','one2many','many2many'])]}"/>
<field name="relation_field" attrs="{'required': [('ttype','=','one2many')], 'readonly': [('ttype','!=','one2many')]}"/>
<field name="selection" attrs="{'required': [('ttype','in',['selection','reference'])], 'readonly': [('ttype','not in',['selection','reference'])]}"/>
<field name="size" attrs="{'required': [('ttype','in',['char','reference'])], 'readonly': [('ttype','not in',['char','reference'])]}"/>
<field name="size" attrs="{'invisible': [('ttype','not in',['char','text','reference'])]}"/>
<field name="domain" attrs="{'readonly': [('relation','=','')]}"/>
<field name="serialization_field_id" attrs="{'readonly': [('state','=','base')]}" domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]"/>
<field name="on_delete" attrs="{'readonly': [('ttype','!=','many2one')]}"/>

View File

@ -83,7 +83,8 @@ class view(osv.osv):
}
_defaults = {
'arch': '<?xml version="1.0"?>\n<tree string="My view">\n\t<field name="name"/>\n</tree>',
'priority': 16
'priority': 16,
'type': 'tree',
}
_order = "priority,name"

View File

@ -411,7 +411,6 @@ class module(osv.osv):
if to_install_ids:
self.button_install(cr, uid, to_install_ids, context=context)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return dict(ACTION_DICT, name=_('Install'))
def button_immediate_install(self, cr, uid, ids, context=None):
@ -500,7 +499,6 @@ class module(osv.osv):
raise orm.except_orm(_('Error'), _("The `base` module cannot be uninstalled"))
dep_ids = self.downstream_dependencies(cr, uid, ids, context=context)
self.write(cr, uid, ids + dep_ids, {'state': 'to remove'})
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return dict(ACTION_DICT, name=_('Uninstall'))
def button_uninstall_cancel(self, cr, uid, ids, context=None):

View File

@ -305,7 +305,7 @@ class res_company(osv.osv):
<frame id="first" x1="1.3cm" y1="3.0cm" height="%s" width="19.0cm"/>
<stylesheet>
<paraStyle name="main_footer" fontName="DejaVu Sans" fontSize="8.0" alignment="CENTER"/>
<paraStyle name="main_header" fontName="DejaVu Sans" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="main_header" fontName="DejaVu Sans" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<pageGraphics>
<!-- You Logo - Change X,Y,Width and Height -->
@ -344,8 +344,8 @@ class res_company(osv.osv):
</pageTemplate>
</header>"""
_header_a4 = _header_main % ('23.0cm', '27.6cm', '27.7cm', '27.7cm', '27.8cm', '27.3cm', '25.3cm', '25.0cm', '25.0cm', '24.6cm', '24.6cm', '24.5cm', '24.5cm')
_header_letter = _header_main % ('21.3cm', '25.9cm', '26.0cm', '26.0cm', '26.1cm', '25.6cm', '23.6cm', '23.3cm', '23.3cm', '22.9cm', '22.9cm', '22.8cm', '22.8cm')
_header_a4 = _header_main % ('21.7cm', '27.7cm', '27.7cm', '27.7cm', '27.8cm', '27.3cm', '25.3cm', '25.0cm', '25.0cm', '24.6cm', '24.6cm', '24.5cm', '24.5cm')
_header_letter = _header_main % ('20cm', '26.0cm', '26.0cm', '26.0cm', '26.1cm', '25.6cm', '23.6cm', '23.3cm', '23.3cm', '22.9cm', '22.9cm', '22.8cm', '22.8cm')
def onchange_paper_format(self, cr, uid, ids, paper_format, context=None):
if paper_format == 'us_letter':

View File

@ -49,7 +49,7 @@ class res_currency(osv.osv):
id, rate = cr.fetchall()[0]
res[id] = rate
else:
res[id] = 0
raise osv.except_osv(_('Error!'),_("No currency rate associated for currency %d for the given period" % (id)))
return res
_name = "res.currency"
_description = "Currency"

View File

@ -375,16 +375,30 @@ class res_partner(osv.osv, format_address):
def create(self, cr, uid, vals, context=None):
if context is None:
context={}
context = {}
# Update parent and siblings records
if vals.get('parent_id') and vals.get('use_parent_address'):
domain_siblings = [('parent_id', '=', vals['parent_id']), ('use_parent_address', '=', True)]
update_ids = [vals['parent_id']] + self.search(cr, uid, domain_siblings, context=context)
self.update_address(cr, uid, update_ids, vals, context)
return super(res_partner,self).create(cr, uid, vals, context=context)
if vals.get('parent_id'):
if 'use_parent_address' in vals:
use_parent_address = vals['use_parent_address']
else:
use_parent_address = self.default_get(cr, uid, ['use_parent_address'], context=context)['use_parent_address']
if use_parent_address:
domain_siblings = [('parent_id', '=', vals['parent_id']), ('use_parent_address', '=', True)]
update_ids = [vals['parent_id']] + self.search(cr, uid, domain_siblings, context=context)
self.update_address(cr, uid, update_ids, vals, context)
# add missing address keys
onchange_values = self.onchange_address(cr, uid, [], use_parent_address,
vals['parent_id'], context=context).get('value') or {}
vals.update(dict((key, value)
for key, value in onchange_values.iteritems()
if key in ADDRESS_FIELDS and key not in vals))
return super(res_partner, self).create(cr, uid, vals, context=context)
def update_address(self, cr, uid, ids, vals, context=None):
addr_vals = dict((key, vals[key]) for key in POSTAL_ADDRESS_FIELDS if vals.get(key))
addr_vals = dict((key, vals[key]) for key in POSTAL_ADDRESS_FIELDS if key in vals)
if addr_vals:
return super(res_partner, self).write(cr, uid, ids, addr_vals, context)
@ -411,10 +425,10 @@ class res_partner(osv.osv, format_address):
""" Supported syntax:
- 'Raoul <raoul@grosbedon.fr>': will find name and email address
- otherwise: default, everything is set as the name """
match = re.search(r'([^\s,<@]+@[^>\s,]+)', text)
if match:
email = match.group(1)
name = text[:text.index(email)].replace('"','').replace('<','').strip()
emails = tools.email_split(text)
if emails:
email = emails[0]
name = text[:text.index(email)].replace('"', '').replace('<', '').strip()
else:
name, email = text, ''
return name, email
@ -457,8 +471,7 @@ class res_partner(osv.osv, format_address):
OR partner.name || ' (' || COALESCE(company.name,'') || ')'
''' + operator + ' %(name)s ' + limit_str, query_args)
ids = map(lambda x: x[0], cr.fetchall())
if args:
ids = self.search(cr, uid, [('id', 'in', ids)] + args, limit=limit, context=context)
ids = self.search(cr, uid, [('id', 'in', ids)] + args, limit=limit, context=context)
if ids:
return self.name_get(cr, uid, ids, context)
return super(res_partner,self).name_search(cr, uid, name, args, operator=operator, context=context, limit=limit)

View File

@ -10,7 +10,7 @@
<menuitem id="base.menu_sales" parent="base.menu_base_partner" name="Sales" sequence="1" />
<menuitem id="menu_base_config" parent="menu_base_partner" name="Configuration" sequence="30" groups="group_system"/>
<menuitem id="menu_config_address_book" parent="menu_base_config" name="Address Book" sequence="40" groups="group_system"/>
<menuitem id="menu_config_address_book" parent="menu_base_config" name="Address Book" sequence="40" groups="group_system"/>
<!-- Partner Titles -->
<record id="view_partner_title_tree" model="ir.ui.view">
@ -305,15 +305,15 @@
filter_domain="['|','|',('name','ilike',self),('parent_id','ilike',self),('ref','=',self)]"/>
<filter help="My Partners" icon="terp-personal+" domain="[('user_id','=',uid)]"/>
<separator/>
<filter string="Persons" name="type_person" icon="terp-personal" domain="[('is_company','=',0)]"/>
<filter string="Companies" name="type_company" icon="terp-partner" domain="[('is_company','=',1)]"/>
<filter string="Persons" name="type_person" domain="[('is_company','=',0)]"/>
<filter string="Companies" name="type_company" domain="[('is_company','=',1)]"/>
<separator/>
<filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
<filter string="Customers" name="customer" domain="[('customer','=',1)]" help="Customer Partners"/>
<filter string="Suppliers" name="supplier" domain="[('supplier','=',1)]" help="Supplier Partners"/>
<separator/>
<filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
<field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/>
<field name="user_id"/>
<field name="parent_id" filter_domain="[('parent_id','child_of',[self])]"/>
<field name="parent_id" domain="[('is_company','=',1)]" filter_domain="[('parent_id','child_of',[self])]"/>
<group expand="0" string="Group By...">
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
<filter string="Company" context="{'group_by': 'parent_id'}"/>
@ -420,7 +420,7 @@
<field name="view_id" ref="view_partner_tree"/>
<field name="act_window_id" ref="action_partner_form"/>
</record>
<menuitem id="menu_partner_form" parent="base.menu_sales" action="action_partner_form" sequence="1"/>
<menuitem id="menu_partner_form" parent="base.menu_sales" action="action_partner_form" sequence="2"/>
<record id="action_partner_customer_form" model="ir.actions.act_window">
<field name="name">Customers</field>

View File

@ -3,7 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2010-2012 OpenERP s.a. (<http://openerp.com>).
# Copyright (C) 2010-2013 OpenERP s.a. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -172,6 +172,10 @@ class res_users(osv.osv):
}
}
def onchange_state(self, cr, uid, ids, state_id, context=None):
partner_ids = [user.partner_id.id for user in self.browse(cr, uid, ids, context=context)]
return self.pool.get('res.partner').onchange_state(cr, uid, partner_ids, state_id, context=context)
def onchange_type(self, cr, uid, ids, is_company, context=None):
""" Wrapper on the user.partner onchange_type, because some calls to the
partner form view applied to the user may trigger the
@ -426,7 +430,9 @@ class res_users(osv.osv):
cr = self.pool.db.cursor()
try:
base = user_agent_env['base_location']
self.pool['ir.config_parameter'].set_param(cr, uid, 'web.base.url', base)
ICP = self.pool['ir.config_parameter']
if not ICP.get_param(cr, uid, 'web.base.url.freeze'):
ICP.set_param(cr, uid, 'web.base.url', base)
cr.commit()
except Exception:
_logger.exception("Failed to update web.base.url configuration parameter")

View File

@ -56,7 +56,8 @@ openerp.base = function(instance) {
});
};
i.src = _.str.sprintf('%s/web/static/src/img/sep-a.gif', client.origin);
var ts = new Date().getTime();
i.src = _.str.sprintf('%s/web/static/src/img/sep-a.gif?%s', client.origin, ts);
return d.promise();
};
if (instance.base.apps_client) {
@ -96,7 +97,7 @@ openerp.base = function(instance) {
client.replace(self.$el).
done(function() {
client.$el.removeClass('openerp');
client.do_action(self.remote_action_id);
client.do_action(self.remote_action_id, {hide_breadcrumb: true});
});
}).
fail(function(client) {

View File

@ -114,6 +114,12 @@ class test_expression(common.TransactionCase):
# Test2: inheritance + relational fields
user_ids = users_obj.search(cr, uid, [('child_ids.name', 'like', 'test_B')])
self.assertEqual(set(user_ids), set([b1]), 'searching through inheritance failed')
# Special =? operator mean "is equal if right is set, otherwise always True"
user_ids = users_obj.search(cr, uid, [('name', 'like', 'test'), ('parent_id', '=?', False)])
self.assertEqual(set(user_ids), set([a, b1, b2]), '(x =? False) failed')
user_ids = users_obj.search(cr, uid, [('name', 'like', 'test'), ('parent_id', '=?', b1_user.partner_id.id)])
self.assertEqual(set(user_ids), set([b2]), '(x =? id) failed')
def test_20_auto_join(self):
registry, cr, uid = self.registry, self.cr, self.uid

View File

@ -220,15 +220,7 @@ def quit_on_signals():
os.unlink(config['pidfile'])
sys.exit(0)
def configure_babel_localedata_path():
# Workaround: py2exe and babel.
if hasattr(sys, 'frozen'):
import babel
babel.localedata._dirname = os.path.join(os.path.dirname(sys.executable), 'localedata')
def main(args):
os.environ["TZ"] = "UTC"
check_root_user()
openerp.tools.config.parse_config(args)
@ -246,8 +238,6 @@ def main(args):
config = openerp.tools.config
configure_babel_localedata_path()
setup_signal_handlers(signal_handler)
if config["test_file"]:

View File

@ -34,6 +34,7 @@ import openerp
import openerp.modules.db
import openerp.modules.graph
import openerp.modules.migration
import openerp.modules.registry
import openerp.osv as osv
import openerp.tools as tools
from openerp import SUPERUSER_ID
@ -131,7 +132,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
loaded_modules = []
registry = openerp.registry(cr.dbname)
migrations = openerp.modules.migration.MigrationManager(cr, graph)
_logger.debug('loading %d packages...', len(graph))
_logger.info('loading %d modules...', len(graph))
# Query manual fields for all models at once and save them on the registry
# so the initialization code for each model does not have to do it
@ -149,7 +150,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
if skip_modules and module_name in skip_modules:
continue
_logger.info('module %s: loading objects', package.name)
_logger.debug('module %s: loading objects', package.name)
migrations.migrate_module(package, 'pre')
load_openerp_module(package.name)
@ -276,7 +277,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
tools.config["demo"]['all'] = 1
# This is a brand new registry, just created in
# openerp.modules.registry.RegistryManger.new().
# openerp.modules.registry.RegistryManager.new().
registry = openerp.registry(cr.dbname)
if 'base' in tools.config['update'] or 'all' in tools.config['update']:
@ -406,7 +407,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
# modules to remove next time
cr.commit()
_logger.info('Reloading registry once more after uninstalling modules')
return openerp.modules.registry.RegistryManger.new(cr.dbname, force_demo, status, update_module)
return openerp.modules.registry.RegistryManager.new(cr.dbname, force_demo, status, update_module)
if report.failures:
_logger.error('At least one test failed when loading the modules.')

View File

@ -204,6 +204,10 @@ class RegistryManager(object):
except KeyError:
return cls.new(db_name, force_demo, status,
update_module)
finally:
# set db tracker - cleaned up at the WSGI
# dispatching phase in openerp.service.wsgi_server.application
threading.current_thread().dbname = db_name
@classmethod
def new(cls, db_name, force_demo=False, status=None,
@ -245,6 +249,9 @@ class RegistryManager(object):
registry.ready = True
if update_module:
# only in case of update, otherwise we'll have an infinite reload loop!
cls.signal_registry_change(db_name)
return registry
@classmethod

View File

@ -198,7 +198,7 @@ def normalize_domain(domain):
expected -= 1
else:
expected += op_arity.get(token, 0) - 1
assert expected == 0
assert expected == 0, 'This domain is syntactically not correct: %s' % (domain)
return result
@ -597,6 +597,15 @@ class ExtendedLeaf(object):
self.leaf = normalize_leaf(self.leaf)
return True
def create_substitution_leaf(leaf, new_elements, new_model=None):
""" From a leaf, create a new leaf (based on the new_elements tuple
and new_model), that will have the same join context. Used to
insert equivalent leafs in the processing stack. """
if new_model is None:
new_model = leaf.model
new_join_context = [tuple(context) for context in leaf.join_context]
new_leaf = ExtendedLeaf(new_elements, new_model, join_context=new_join_context)
return new_leaf
class expression(object):
""" Parse a domain expression
@ -714,16 +723,6 @@ class expression(object):
return ids + recursive_children(ids2, model, parent_field)
return [(left, 'in', recursive_children(ids, left_model, parent or left_model._parent_name))]
def create_substitution_leaf(leaf, new_elements, new_model=None):
""" From a leaf, create a new leaf (based on the new_elements tuple
and new_model), that will have the same join context. Used to
insert equivalent leafs in the processing stack. """
if new_model is None:
new_model = leaf.model
new_join_context = [tuple(context) for context in leaf.join_context]
new_leaf = ExtendedLeaf(new_elements, new_model, join_context=new_join_context)
return new_leaf
def pop():
""" Pop a leaf to process. """
return self.stack.pop()
@ -1152,7 +1151,8 @@ class expression(object):
params = []
else:
# '=?' behaves like '=' in other cases
query, params = self.__leaf_to_sql((left, '=', right), model)
query, params = self.__leaf_to_sql(
create_substitution_leaf(eleaf, (left, '=', right), model))
elif left == 'id':
query = '%s.id %s %%s' % (table_alias, operator)

View File

@ -1028,7 +1028,7 @@ class BaseModel(object):
'required': bool(field['required']),
'readonly': bool(field['readonly']),
'domain': eval(field['domain']) if field['domain'] else None,
'size': field['size'],
'size': field['size'] or None,
'ondelete': field['on_delete'],
'translate': (field['translate']),
'manual': True,
@ -3536,6 +3536,14 @@ class BaseModel(object):
return res
def get_empty_list_help(self, cr, user, help, context=None):
""" Generic method giving the help message displayed when having
no result to display in a list or kanban view. By default it returns
the help given in parameter that is generally the help message
defined in the action.
"""
return help
def check_field_access_rights(self, cr, user, operation, fields, context=None):
"""
Check the user access rights on the given fields. This raises Access
@ -4449,7 +4457,6 @@ class BaseModel(object):
upd1 += ",%s,(now() at time zone 'UTC'),%s,(now() at time zone 'UTC')"
upd2.extend((user, user))
cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
self.check_access_rule(cr, user, [id_new], 'create', context=context)
upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)
if self._parent_store and not context.get('defer_parent_store_computation'):
@ -4502,6 +4509,7 @@ class BaseModel(object):
self.name_get(cr, user, [id_new], context=context)[0][1] + \
"' " + _("created.")
self.log(cr, user, id_new, message, True, context=context)
self.check_access_rule(cr, user, [id_new], 'create', context=context)
self.create_workflow(cr, user, [id_new], context=context)
return id_new

View File

@ -49,6 +49,19 @@ _logger = logging.getLogger(__name__)
encoding = 'utf-8'
def select_fontname(fontname, default_fontname):
if fontname not in pdfmetrics.getRegisteredFontNames()\
or fontname not in pdfmetrics.standardFonts:
# let reportlab attempt to find it
try:
pdfmetrics.getFont(fontname)
except Exception:
_logger.warning('Could not locate font %s, substituting default: %s',
fontname, default_fontname)
fontname = default_fontname
return fontname
def _open_image(filename, path=None):
"""Attempt to open a binary file and return the descriptor
"""
@ -159,7 +172,12 @@ class _rml_styles(object,):
for attr in ['textColor', 'backColor', 'bulletColor', 'borderColor']:
if node.get(attr):
data[attr] = color.get(node.get(attr))
for attr in ['fontName', 'bulletFontName', 'bulletText']:
for attr in ['bulletFontName', 'fontName']:
if node.get(attr):
fontname= select_fontname(node.get(attr), None)
if fontname is not None:
data['fontName'] = fontname
for attr in ['bulletText']:
if node.get(attr):
data[attr] = node.get(attr)
for attr in ['fontSize', 'leftIndent', 'rightIndent', 'spaceBefore', 'spaceAfter',
@ -537,17 +555,7 @@ class _rml_canvas(object):
self.canvas.drawPath(self.path, **utils.attr_get(node, [], {'fill':'bool','stroke':'bool'}))
def setFont(self, node):
fontname = node.get('name')
if fontname not in pdfmetrics.getRegisteredFontNames()\
or fontname not in pdfmetrics.standardFonts:
# let reportlab attempt to find it
try:
pdfmetrics.getFont(fontname)
except Exception:
_logger.debug('Could not locate font %s, substituting default: %s',
fontname,
self.canvas._fontname)
fontname = self.canvas._fontname
fontname = select_fontname(node.get('name'), self.canvas._fontname)
return self.canvas.setFont(fontname, utils.unit_get(node.get('size')))
def render(self, node):

View File

@ -30,6 +30,7 @@ cron jobs, for all databases of a single OpenERP server instance.
import logging
import threading
import time
from datetime import datetime
import openerp
@ -56,6 +57,12 @@ def start_service():
threads it spawns are not marked daemon).
"""
# Force call to strptime just before starting the cron thread
# to prevent time.strptime AttributeError within the thread.
# See: http://bugs.python.org/issue7980
datetime.strptime('2012-01-01', '%Y-%m-%d')
for i in range(openerp.tools.config['max_cron_threads']):
def target():
cron_runner(i)

View File

@ -37,7 +37,7 @@ def _initialize_db(id, db_name, demo, lang, user_password):
cr = None
registry = openerp.modules.registry.RegistryManager.new(
db_name, demo, self_actions[id], update_module=True)[1]
db_name, demo, self_actions[id], update_module=True)
try:
cr = openerp.sql_db.db_connect(db_name).cursor()
@ -197,18 +197,26 @@ def exp_drop(db_name):
return True
@contextlib.contextmanager
def _set_pg_password_in_environment():
""" On Win32, pg_dump (and pg_restore) require that
:envvar:`PGPASSWORD` be set
def _set_pg_password_in_environment(self):
""" On systems where pg_restore/pg_dump require an explicit
password (i.e. when not connecting via unix sockets, and most
importantly on Windows), it is necessary to pass the PG user
password in the environment or in a special .pgpass file.
This context management method handles setting
:envvar:`PGPASSWORD` iif win32 and the envvar is not already
:envvar:`PGPASSWORD` if it is not already
set, and removing it afterwards.
See also http://www.postgresql.org/docs/8.4/static/libpq-envars.html
.. note:: This is not thread-safe, and should never be enabled for
SaaS (giving SaaS users the super-admin password is not a good idea
anyway)
"""
if os.name != 'nt' or os.environ.get('PGPASSWORD'):
if os.environ.get('PGPASSWORD') or not tools.config['db_password']:
yield
else:
os.environ['PGPASSWORD'] = openerp.tools.config['db_password']
os.environ['PGPASSWORD'] = tools.config['db_password']
try:
yield
finally:
@ -234,7 +242,7 @@ def exp_dump(db_name):
if not data or res:
_logger.error(
'DUMP DB: %s failed! Please verify the configuration of the database password on the server. '
'It should be provided as a -w <PASSWD> command-line option, or as `db_password` in the '
'You may need to create a .pgpass file for authentication, or specify `db_password` in the '
'server configuration file.\n %s', db_name, data)
raise Exception, "Couldn't dump database"
_logger.info('DUMP DB successful: %s', db_name)

View File

@ -2,8 +2,10 @@
from functools import wraps
import logging
from psycopg2 import IntegrityError, errorcodes
from psycopg2 import IntegrityError, OperationalError, errorcodes
import random
import threading
import time
import openerp
from openerp.tools.translate import translate
@ -13,9 +15,16 @@ import security
_logger = logging.getLogger(__name__)
PG_CONCURRENCY_ERRORS_TO_RETRY = (errorcodes.LOCK_NOT_AVAILABLE, errorcodes.SERIALIZATION_FAILURE, errorcodes.DEADLOCK_DETECTED)
MAX_TRIES_ON_CONCURRENCY_FAILURE = 5
def dispatch(method, params):
(db, uid, passwd ) = params[0:3]
# set uid tracker - cleaned up at the WSGI
# dispatching phase in openerp.service.wsgi_server.application
threading.current_thread().uid = uid
params = params[3:]
if method == 'obj_list':
raise NameError("obj_list has been discontinued via RPC as of 6.0, please query ir.model directly!")
@ -94,37 +103,50 @@ def check(f):
def _(src):
return tr(src, 'code')
try:
if openerp.registry(dbname)._init:
raise openerp.exceptions.Warning('Currently, this database is not fully loaded and can not be used.')
return f(dbname, *args, **kwargs)
except IntegrityError, inst:
registry = openerp.registry(dbname)
for key in registry._sql_error.keys():
if key in inst[0]:
raise openerp.osv.orm.except_orm(_('Constraint Error'), tr(registry._sql_error[key], 'sql_constraint') or inst[0])
if inst.pgcode in (errorcodes.NOT_NULL_VIOLATION, errorcodes.FOREIGN_KEY_VIOLATION, errorcodes.RESTRICT_VIOLATION):
msg = _('The operation cannot be completed, probably due to the following:\n- deletion: you may be trying to delete a record while other records still reference it\n- creation/update: a mandatory field is not correctly set')
_logger.debug("IntegrityError", exc_info=True)
try:
errortxt = inst.pgerror.replace('«','"').replace('»','"')
if '"public".' in errortxt:
context = errortxt.split('"public".')[1]
model_name = table = context.split('"')[1]
else:
last_quote_end = errortxt.rfind('"')
last_quote_begin = errortxt.rfind('"', 0, last_quote_end)
model_name = table = errortxt[last_quote_begin+1:last_quote_end].strip()
model = table.replace("_",".")
if model in registry:
model_obj = registry[model]
model_name = model_obj._description or model_obj._name
msg += _('\n\n[object with reference: %s - %s]') % (model_name, model)
except Exception:
pass
raise openerp.osv.orm.except_orm(_('Integrity Error'), msg)
else:
raise openerp.osv.orm.except_orm(_('Integrity Error'), inst[0])
tries = 0
while True:
try:
if openerp.registry(dbname)._init:
raise openerp.exceptions.Warning('Currently, this database is not fully loaded and can not be used.')
return f(dbname, *args, **kwargs)
except OperationalError, e:
# Automatically retry the typical transaction serialization errors
if e.pgcode not in PG_CONCURRENCY_ERRORS_TO_RETRY:
raise
if tries >= MAX_TRIES_ON_CONCURRENCY_FAILURE:
_logger.warning("%s, maximum number of tries reached" % errorcodes.lookup(e.pgcode))
raise
wait_time = random.uniform(0.0, 2 ** tries)
tries += 1
_logger.info("%s, retry %d/%d in %.04f sec..." % (errorcodes.lookup(e.pgcode), tries, MAX_TRIES_ON_CONCURRENCY_FAILURE, wait_time))
time.sleep(wait_time)
except IntegrityError, inst:
registry = openerp.registry(dbname)
for key in registry._sql_error.keys():
if key in inst[0]:
raise openerp.osv.orm.except_orm(_('Constraint Error'), tr(registry._sql_error[key], 'sql_constraint') or inst[0])
if inst.pgcode in (errorcodes.NOT_NULL_VIOLATION, errorcodes.FOREIGN_KEY_VIOLATION, errorcodes.RESTRICT_VIOLATION):
msg = _('The operation cannot be completed, probably due to the following:\n- deletion: you may be trying to delete a record while other records still reference it\n- creation/update: a mandatory field is not correctly set')
_logger.debug("IntegrityError", exc_info=True)
try:
errortxt = inst.pgerror.replace('«','"').replace('»','"')
if '"public".' in errortxt:
context = errortxt.split('"public".')[1]
model_name = table = context.split('"')[1]
else:
last_quote_end = errortxt.rfind('"')
last_quote_begin = errortxt.rfind('"', 0, last_quote_end)
model_name = table = errortxt[last_quote_begin+1:last_quote_end].strip()
model = table.replace("_",".")
if model in registry:
model_obj = registry[model]
model_name = model_obj._description or model_obj._name
msg += _('\n\n[object with reference: %s - %s]') % (model_name, model)
except Exception:
pass
raise openerp.osv.orm.except_orm(_('Integrity Error'), msg)
else:
raise openerp.osv.orm.except_orm(_('Integrity Error'), inst[0])
return wrapper

View File

@ -388,9 +388,19 @@ class WorkerBaseWSGIServer(werkzeug.serving.BaseWSGIServer):
class WorkerCron(Worker):
""" Cron workers """
def __init__(self, multi):
super(WorkerCron, self).__init__(multi)
# process_work() below process a single database per call.
# The variable db_index is keeping track of the next database to
# process.
self.db_index = 0
def sleep(self):
interval = 60 + self.pid % 10 # chorus effect
time.sleep(interval)
# Really sleep once all the databases have been processed.
if self.db_index == 0:
interval = 60 + self.pid % 10 # chorus effect
time.sleep(interval)
def process_work(self):
rpc_request = logging.getLogger('openerp.netsvc.rpc.request')
@ -400,7 +410,9 @@ class WorkerCron(Worker):
db_names = config['db_name'].split(',')
else:
db_names = openerp.service.db.exp_list(True)
for db_name in db_names:
if len(db_names):
self.db_index = (self.db_index + 1) % len(db_names)
db_name = db_names[self.db_index]
if rpc_request_flag:
start_time = time.time()
start_rss, start_vms = psutil.Process(os.getpid()).get_memory_info()
@ -419,8 +431,14 @@ class WorkerCron(Worker):
end_rss, end_vms = psutil.Process(os.getpid()).get_memory_info()
logline = '%s time:%.3fs mem: %sk -> %sk (diff: %sk)' % (db_name, end_time - start_time, start_vms / 1024, end_vms / 1024, (end_vms - start_vms)/1024)
_logger.debug("WorkerCron (%s) %s", self.pid, logline)
# TODO Each job should be considered as one request instead of each run
self.request_count += 1
self.request_count += 1
if self.request_count >= self.request_max and self.request_max < len(db_names):
_logger.error("There are more dabatases to process than allowed "
"by the `limit_request` configuration variable: %s more.",
len(db_names) - self.request_max)
else:
self.db_index = 0
def start(self):
Worker.start(self)

View File

@ -390,6 +390,16 @@ def register_rpc_endpoint(endpoint, handler):
def application_unproxied(environ, start_response):
""" WSGI entry point."""
# cleanup db/uid trackers - they're set at HTTP dispatch in
# web.session.OpenERPSession.send() and at RPC dispatch in
# openerp.service.web_services.objects_proxy.dispatch().
# /!\ The cleanup cannot be done at the end of this `application`
# method because werkzeug still produces relevant logging afterwards
if hasattr(threading.current_thread(), 'uid'):
del threading.current_thread().uid
if hasattr(threading.current_thread(), 'dbname'):
del threading.current_thread().dbname
openerp.service.start_internal()
# Try all handlers until one returns some result (i.e. not None).
@ -401,7 +411,6 @@ def application_unproxied(environ, start_response):
continue
return result
# We never returned from the loop.
response = 'No handler found.\n'
start_response('404 Not Found', [('Content-Type', 'text/plain'), ('Content-Length', str(len(response)))])

View File

@ -3,7 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>).
# Copyright (C) 2010-2013 OpenERP s.a. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -36,7 +36,6 @@ import psycopg2.extensions
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_REPEATABLE_READ
from psycopg2.pool import PoolError
from psycopg2.psycopg1 import cursor as psycopg1cursor
from threading import currentThread
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
@ -393,7 +392,7 @@ class ConnectionPool(object):
def borrow(self, dsn):
self._debug('Borrow connection to %r', dsn)
# free leaked connections
# free dead and leaked connections
for i, (cnx, _) in tools.reverse_enumerate(self._connections):
if cnx.closed:
self._connections.pop(i)
@ -407,6 +406,14 @@ class ConnectionPool(object):
for i, (cnx, used) in enumerate(self._connections):
if not used and dsn_are_equals(cnx.dsn, dsn):
try:
cnx.reset()
except psycopg2.OperationalError:
self._debug('Cannot reset connection at index %d: %r', i, cnx.dsn)
# psycopg2 2.4.4 and earlier do not allow closing a closed connection
if not cnx.closed:
cnx.close()
continue
self._connections.pop(i)
self._connections.append((cnx, True))
self._debug('Existing connection found at index %d', i)
@ -507,7 +514,6 @@ def db_connect(db_name):
global _Pool
if _Pool is None:
_Pool = ConnectionPool(int(tools.config['db_maxconn']))
currentThread().dbname = db_name
return Connection(_Pool, db_name)
def close_db(db_name):
@ -515,9 +521,6 @@ def close_db(db_name):
global _Pool
if _Pool:
_Pool.close_all(dsn(db_name))
ct = currentThread()
if hasattr(ct, 'dbname'):
delattr(ct, 'dbname')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -83,6 +83,8 @@ def image_resize_image(base64_source, size=(1024, 1024), encoding='base64', file
if image.size != size:
# If you need faster thumbnails you may use use Image.NEAREST
image = ImageOps.fit(image, size, Image.ANTIALIAS)
if image.mode not in ["1", "L", "P", "RGB", "RGBA"]:
image = image.convert("RGB")
background_stream = StringIO.StringIO()
image.save(background_stream, filetype)

View File

@ -50,7 +50,7 @@ def html_sanitize(src):
src = ustr(src, errors='replace')
# html encode email tags
part = re.compile(r"(<[^<>]+@[^<>]+>)", re.IGNORECASE | re.DOTALL)
part = re.compile(r"(<(([^a<>]|a[^<>\s])[^<>]*)@[^<>]+>)", re.IGNORECASE | re.DOTALL)
src = part.sub(lambda m: cgi.escape(m.group(1)), src)
# some corner cases make the parser crash (such as <SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT> in test_mail)
@ -185,6 +185,8 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
url_index.append(url)
html = ustr(etree.tostring(tree, encoding=encoding))
# \r char is converted into &#13;, must remove it
html = html.replace('&#13;', '')
html = html.replace('<strong>', '*').replace('</strong>', '*')
html = html.replace('<b>', '*').replace('</b>', '*')

Some files were not shown because too many files have changed in this diff Show More