[MERGE] from trunk
bzr revid: rco@openerp.com-20130411073017-x6e4h8xbvmy3ofdw
This commit is contained in:
commit
05851d21ba
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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']
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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')]}"/>
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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':
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"]:
|
||||
|
|
|
@ -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.')
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))])
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 , must remove it
|
||||
html = html.replace(' ', '')
|
||||
|
||||
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
Loading…
Reference in New Issue