[MERGE] merged trunk

bzr revid: vmt@openerp.com-20110525151722-w9qt1qjficpv71re
This commit is contained in:
Vo Minh Thu 2011-05-25 17:17:22 +02:00
commit 5d83528841
23 changed files with 18751 additions and 150 deletions

10
debian/po/tr.po vendored
View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
"PO-Revision-Date: 2010-01-29 05:27+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2011-05-17 20:53+0000\n"
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
"Language-Team: Turkish <tr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-19 04:50+0000\n"
"X-Generator: Launchpad (build 12758)\n"
"X-Launchpad-Export-Date: 2011-05-18 06:22+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. Type: string
#. Description
@ -38,4 +38,4 @@ msgstr ""
#. Description
#: ../openerp-server.templates:1001
msgid "Please choose that account's username."
msgstr "Lütfen bu hesabın kullanıcı adını seçiniz."
msgstr "Lütfen o hesabın kullanıcı adını seçiniz."

View File

@ -94,6 +94,8 @@
'test/bug_lp541545.xml',
'test/test_osv_expression.yml',
'test/test_ir_rule.yml', # <-- These tests modify/add/delete ir_rules.
'test/test_config_users.yml',
'test/test_ir_values.yml',
],
'installable': True,
'active': True,

View File

@ -1618,29 +1618,44 @@
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="CFA" model="res.currency">
<!-- There are in fact 2 CFA currencies:
- XAF for the Central African CFA franc
- XOF for the West African CFA franc
As they are interchangeable, we probably only need one.
XOF appears to have "CFA" as symbol, while "XAF" is "FCFA",
so let's pick XOF as the ISO Code, to have a code-symbol match.
We can keep CFA as XML ID to show that we only have one currency,
there is no possible conflict, as no other currency currently
has CFA as ISO Code.
See http://en.wikipedia.org/wiki/CFA_franc
http://en.wikipedia.org/wiki/ISO_4217
-->
<record id="XOF" model="res.currency">
<field name="name">XOF</field>
<field name="symbol">CFA</field>
<field name="rounding">1</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateCFA" model="res.currency.rate">
<record id="rateXOF" model="res.currency.rate">
<field name="rate">655.957</field>
<field name="currency_id" ref="CFA"/>
<field name="currency_id" ref="XOF"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="XAF" model="res.currency">
<field name="name">XAF</field>
<field name="symbol">FCFA</field>
<field name="rounding">1</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateXAF" model="res.currency.rate">
<field name="rate">655.957</field>
<field name="currency_id" ref="XAF"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="UGX" model="res.currency">
<field name="name">UGX</field>
<field name="symbol">USh</field>
<field name="rounding">1</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateUGX" model="res.currency.rate">
<field name="rate">3401.91388</field>
<field name="currency_id" ref="UGX"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
</data>
</openerp>

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-06-06 04:19+0000\n"
"Last-Translator: Vladimír Burian <vladimir.burian@email.cz>\n"
"PO-Revision-Date: 2011-05-18 16:53+0000\n"
"Last-Translator: Jan B. Krejčí <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-01-12 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Launchpad-Export-Date: 2011-05-19 06:22+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
#: view:ir.filters:0
@ -23,22 +23,22 @@ msgstr ""
#: field:ir.rule,domain_force:0
#: field:res.partner.title,domain:0
msgid "Domain"
msgstr ""
msgstr "Doména"
#. module: base
#: model:res.country,name:base.sh
msgid "Saint Helena"
msgstr ""
msgstr "Svatá Helena"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
msgstr ""
msgstr "Ostatní nastavení"
#. module: base
#: selection:ir.property,type:0
msgid "DateTime"
msgstr ""
msgstr "Datum a čas"
#. module: base
#: code:addons/fields.py:534
@ -58,12 +58,12 @@ msgstr "Metadata"
#: field:ir.ui.view,arch:0
#: field:ir.ui.view.custom,arch:0
msgid "View Architecture"
msgstr "Architektura náhledu(View Architecture)"
msgstr "Architektura zobrazení"
#. module: base
#: field:base.language.import,code:0
msgid "Code (eg:en__US)"
msgstr "Kód (eg:en__US)"
msgstr "Kód (např. en_US)"
#. module: base
#: view:workflow:0
@ -73,12 +73,12 @@ msgstr "Kód (eg:en__US)"
#: field:workflow.transition,wkf_id:0
#: field:workflow.workitem,wkf_id:0
msgid "Workflow"
msgstr "Workflow(Workflow)"
msgstr "Pracovní postup"
#. module: base
#: view:partner.sms.send:0
msgid "SMS - Gateway: clickatell"
msgstr "Brána: clickatell(Gateway: clickatell)"
msgstr "SMS brána Clickatell"
#. module: base
#: selection:base.language.install,lang:0

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-03-22 22:41+0000\n"
"Last-Translator: Pierre Burnier <Unknown>\n"
"PO-Revision-Date: 2011-05-16 16:57+0000\n"
"Last-Translator: lolivier <olivier.lenoir@free.fr>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-03-23 06:23+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-17 06:04+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
#: view:ir.filters:0
@ -8647,7 +8647,7 @@ msgstr "Danish / Dansk"
#. module: base
#: selection:ir.model.fields,select_level:0
msgid "Advanced Search (deprecated)"
msgstr ""
msgstr "Recherche avancée (obsolète)"
#. module: base
#: model:res.country,name:base.cx

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-03-31 14:18+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\n"
"PO-Revision-Date: 2011-05-14 20:16+0000\n"
"Last-Translator: Mariusz Wójtowicz <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-01 06:04+0000\n"
"X-Generator: Launchpad (build 12559)\n"
"X-Launchpad-Export-Date: 2011-05-15 05:37+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
#: view:ir.filters:0
@ -171,7 +171,7 @@ msgstr "Swaziland"
#: code:addons/orm.py:3653
#, python-format
msgid "created."
msgstr ""
msgstr "utworzona."
#. module: base
#: model:res.partner.category,name:base.res_partner_category_woodsuppliers0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: pt_BR\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-05-10 19:52+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2011-05-22 04:28+0000\n"
"Last-Translator: Emerson <Unknown>\n"
"Language-Team: <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-05-11 04:36+0000\n"
"X-Launchpad-Export-Date: 2011-05-23 05:33+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-05-10 19:56+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"PO-Revision-Date: 2011-05-24 17:21+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-05-11 04:36+0000\n"
"X-Launchpad-Export-Date: 2011-05-25 06:14+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
@ -613,7 +613,7 @@ msgstr "Королевство Камбоджа"
#: model:ir.ui.menu,name:base.menu_ir_sequence_form
#: model:ir.ui.menu,name:base.next_id_5
msgid "Sequences"
msgstr "Последовательности"
msgstr "Нумерация"
#. module: base
#: model:ir.model,name:base.model_base_language_import
@ -1139,7 +1139,7 @@ msgstr "Банк"
#. module: base
#: model:ir.model,name:base.model_ir_exports_line
msgid "ir.exports.line"
msgstr "Строки экспорта"
msgstr "ir.exports.line"
#. module: base
#: help:base.language.install,overwrite:0
@ -1191,7 +1191,7 @@ msgstr ""
#: field:res.config.users,login:0
#: field:res.users,login:0
msgid "Login"
msgstr "Вход"
msgstr "Логин"
#. module: base
#: view:ir.actions.server:0
@ -2069,7 +2069,7 @@ msgstr "Куба"
#. module: base
#: model:ir.model,name:base.model_res_partner_event
msgid "res.partner.event"
msgstr "События партнера"
msgstr "res.partner.event"
#. module: base
#: model:res.widget,title:base.facebook_widget
@ -2995,7 +2995,7 @@ msgstr "Испанский (HN) / Español (HN)"
#. module: base
#: view:ir.sequence.type:0
msgid "Sequence Type"
msgstr "Тип последовательности"
msgstr "Тип нумерации"
#. module: base
#: view:ir.ui.view.custom:0
@ -3280,7 +3280,7 @@ msgstr "Договор уже зарегистрирован в системе."
#. module: base
#: help:ir.sequence,suffix:0
msgid "Suffix value of the record for the sequence"
msgstr "Суффикс записи для последовательности"
msgstr "Суффикс записи для нумерации"
#. module: base
#: selection:base.language.install,lang:0
@ -3528,10 +3528,11 @@ msgid ""
"Would your payment have been carried out after this mail was sent, please "
"consider the present one as void."
msgstr ""
"Уведомляем, что наступило время следующего платежа. Если платёж был "
"отправлен — предоставьте, пожалуйста, подробности этого платежа. Если платёж "
"будет и далее задерживаться, свяжитесь, пожалуйста, с нами. "
" Если платёж был отправлен до отправки этого письма — возможно, письмо "
"Уведомляем, что наступило время следующего платежа. \n"
"Если платёж был отправлен — предоставьте, пожалуйста, подробности этого "
"платежа. \n"
"Если платёж будет и далее задерживаться, свяжитесь, пожалуйста, с нами.\n"
"Если платёж был отправлен до отправки этого письма — возможно, письмо "
"отправлено по ошибке."
#. module: base
@ -4794,7 +4795,7 @@ msgstr "Бутан"
#. module: base
#: help:ir.sequence,number_next:0
msgid "Next number of this sequence"
msgstr "Следующее число в этой последовательности"
msgstr "Следующее число в этой нумерации"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_11
@ -5170,7 +5171,7 @@ msgstr "Контакт"
#. module: base
#: model:ir.model,name:base.model_ir_ui_menu
msgid "ir.ui.menu"
msgstr "Меню"
msgstr "ir.ui.menu"
#. module: base
#: model:res.country,name:base.us
@ -5197,7 +5198,7 @@ msgstr "Отчет RML"
#. module: base
#: model:ir.model,name:base.model_ir_server_object_lines
msgid "ir.server.object.lines"
msgstr "События сервера"
msgstr "ir.server.object.lines"
#. module: base
#: code:addons/base/module/module.py:531
@ -5503,7 +5504,7 @@ msgstr "Обновление / Установка модуля"
#. module: base
#: model:ir.model,name:base.model_ir_actions_configuration_wizard
msgid "ir.actions.configuration.wizard"
msgstr "Диалог конфигурировая события"
msgstr "ir.actions.configuration.wizard"
#. module: base
#: view:res.lang:0
@ -5794,7 +5795,7 @@ msgstr "Дата создания"
#. module: base
#: model:ir.model,name:base.model_ir_actions_todo
msgid "ir.actions.todo"
msgstr "ТОДО"
msgstr "ir.actions.todo"
#. module: base
#: code:addons/base/res/res_config.py:94
@ -6227,7 +6228,7 @@ msgstr "Сбор средств"
#: model:ir.actions.act_window,name:base.ir_sequence_type
#: model:ir.ui.menu,name:base.menu_ir_sequence_type
msgid "Sequence Codes"
msgstr "Последовательность кодов"
msgstr "Коды нумераций"
#. module: base
#: selection:base.language.install,lang:0
@ -6749,7 +6750,7 @@ msgstr "Мартиника (заморский регион Франции)"
#. module: base
#: view:ir.sequence.type:0
msgid "Sequences Type"
msgstr "Тип последовательностей"
msgstr "Тип нумерации"
#. module: base
#: model:ir.actions.act_window,name:base.res_request-act
@ -6990,7 +6991,7 @@ msgstr "Часовой пояс"
#: model:ir.model,name:base.model_ir_actions_report_xml
#: selection:ir.ui.menu,action:0
msgid "ir.actions.report.xml"
msgstr "События отчетов"
msgstr "ir.actions.report.xml"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_miss
@ -7309,7 +7310,7 @@ msgstr "Месяц: %(месяц)ы"
#: field:res.widget.user,sequence:0
#: field:wizard.ir.model.menu.create.line,sequence:0
msgid "Sequence"
msgstr "Последовательность"
msgstr "Нумерация"
#. module: base
#: model:res.country,name:base.tn
@ -7865,8 +7866,9 @@ msgid ""
msgstr ""
"Можно устанавливать новые модули для подключения новых функций, меню, "
"отчётов или данных в вашем экземпляре OpenERP. Для установки модулей, "
"нажмите на кнопку «Отметить для установки» в представлении в виде формы, "
"затем нажмите «Применить отмеченные обновления», чтобы обновить вашу систему."
"нажмите на кнопку «Запланировать установку» в представлении в виде формы, "
"затем нажмите «Выполнить запланированные обновления», чтобы обновить вашу "
"систему."
#. module: base
#: model:ir.ui.menu,name:base.menu_emails
@ -8055,7 +8057,7 @@ msgstr "Габон"
#. module: base
#: model:ir.model,name:base.model_ir_model_data
msgid "ir.model.data"
msgstr "Данные"
msgstr "ir.model.data"
#. module: base
#: view:ir.model:0
@ -8350,7 +8352,7 @@ msgstr "Адресная книга"
#. module: base
#: model:ir.model,name:base.model_ir_sequence_type
msgid "ir.sequence.type"
msgstr "Тип последовательности"
msgstr "ir.sequence.type"
#. module: base
#: selection:base.language.export,format:0
@ -8642,7 +8644,7 @@ msgstr "События клиента"
#. module: base
#: view:ir.module.module:0
msgid "Schedule for Installation"
msgstr "Расписание установки"
msgstr "Запланировать установку"
#. module: base
#: model:ir.model,name:base.model_partner_wizard_ean_check
@ -8689,7 +8691,7 @@ msgstr "Вануату"
#. module: base
#: view:res.company:0
msgid "Internal Header/Footer"
msgstr "Внутренние верхний / нижний колонтитулы"
msgstr "Внутренние верхний/нижний колонтитулы"
#. module: base
#: code:addons/base/module/wizard/base_export_language.py:59
@ -9488,7 +9490,7 @@ msgstr "Поле мастера"
#. module: base
#: help:ir.sequence,prefix:0
msgid "Prefix value of the record for the sequence"
msgstr "Префикс записи для последовательности"
msgstr "Префикс для нумерации"
#. module: base
#: model:res.country,name:base.sc
@ -9542,7 +9544,7 @@ msgstr "Объект ресурса"
#. module: base
#: help:ir.sequence,number_increment:0
msgid "The next number of the sequence will be incremented by this number"
msgstr "Следующее число последовательности будет увеличено на это число"
msgstr "Следующее число в нумерации будет увеличено на это число"
#. module: base
#: field:ir.cron,function:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-05-13 07:33+0000\n"
"PO-Revision-Date: 2011-05-20 16:43+0000\n"
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\n"
"Language-Team: <>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-05-14 04:53+0000\n"
"X-Launchpad-Export-Date: 2011-05-21 06:14+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
@ -1522,6 +1522,8 @@ msgid ""
"This wizard will scan all module repositories on the server side to detect "
"newly added modules as well as any change to existing modules."
msgstr ""
"Denna guide söker igenom alla modularkiv på servern och upptäcker nya "
"moduler liksom uppdateringar av befintliga moduler"
#. module: base
#: field:res.company,logo:0
@ -3005,7 +3007,7 @@ msgid ""
"The selected language has been successfully installed. You must change the "
"preferences of the user and open a new menu to view the changes."
msgstr ""
"Språket du valde jhar installerats. Du kan ändra egenskaperna av användaren "
"Språket du valde har installerats. Du kan ändra egenskaperna av användaren "
"och öppna en meny för att se ändringarna."
#. module: base
@ -4614,7 +4616,7 @@ msgstr "lägg till"
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_window
#: model:ir.ui.menu,name:base.menu_view_base_module_upgrade
msgid "Apply Scheduled Upgrades"
msgstr "Applicera planerade uppgraderingar"
msgstr "Inför uppgraderingar"
#. module: base
#: view:res.widget:0
@ -5433,7 +5435,7 @@ msgstr "Lägg till användare"
#. module: base
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install
msgid "Module Upgrade Install"
msgstr "Modul uppgradering installering"
msgstr "Moduluppgradering"
#. module: base
#: model:ir.model,name:base.model_ir_actions_configuration_wizard
@ -5833,7 +5835,7 @@ msgstr "Kan inte skapa modulfilen: %s !"
#. module: base
#: model:ir.module.module,description:base.module_meta_information
msgid "The kernel of OpenERP, needed for all installation."
msgstr "OpenERP's kärna, behövs för alla installationer"
msgstr "OpenERP's kärna, behövs för alla installationer."
#. module: base
#: view:base.language.install:0
@ -6046,7 +6048,7 @@ msgstr "Vy"
#: selection:ir.module.module,state:0
#: selection:ir.module.module.dependency,state:0
msgid "To be installed"
msgstr "Att installeras"
msgstr "Kommer att installeras"
#. module: base
#: help:ir.actions.act_window,display_menu_tip:0
@ -6642,7 +6644,7 @@ msgstr ""
#: selection:ir.module.module,state:0
#: selection:ir.module.module.dependency,state:0
msgid "Not Installed"
msgstr "Inte installerat"
msgstr "Inte installerad"
#. module: base
#: view:workflow.activity:0
@ -7252,7 +7254,7 @@ msgstr "Serveråtgärder"
#. module: base
#: view:ir.module.module:0
msgid "Cancel Install"
msgstr "Avbryt installering"
msgstr "Avbryt installationen"
#. module: base
#: field:ir.model.fields,selection:0
@ -8162,7 +8164,7 @@ msgstr "Administration"
#. module: base
#: view:base.module.update:0
msgid "Click on Update below to start the process..."
msgstr "Klicka op Uppdatera nedan för att starta bearbetningen..."
msgstr "Klicka på \"Uppdatera\" nedan för att starta bearbetningen..."
#. module: base
#: model:res.country,name:base.ir

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-01-25 08:14+0000\n"
"Last-Translator: Ahmet Altınışık <Unknown>\n"
"PO-Revision-Date: 2011-05-17 20:51+0000\n"
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-01-26 04:36+0000\n"
"X-Generator: Launchpad (build 12177)\n"
"X-Launchpad-Export-Date: 2011-05-18 06:22+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
#: view:ir.filters:0
@ -47,6 +47,8 @@ msgid ""
"The second argument of the many2many field %s must be a SQL table !You used "
"%s, which is not a valid SQL table name."
msgstr ""
"Çoktan çoğanın % s alanının ikinci argümanı bir SQL tablosu olmalı! "
"Kullandığınız % s geçerli bir SQL tablo adı değil."
#. module: base
#: view:ir.values:0
@ -4550,7 +4552,7 @@ msgstr "_Tamam"
#. module: base
#: help:ir.filters,user_id:0
msgid "False means for every user"
msgstr ""
msgstr "Hata her kullanıcı içindir."
#. module: base
#: code:addons/base/module/module.py:198
@ -7109,7 +7111,7 @@ msgstr "Doğru EAN13"
#: code:addons/orm.py:2317
#, python-format
msgid "The value \"%s\" for the field \"%s\" is not in the selection"
msgstr ""
msgstr "\"%s\" Alanı değeri \"%s\" seçim kapsamında değildir"
#. module: base
#: field:res.partner,customer:0
@ -8117,7 +8119,7 @@ msgstr "İran"
#: model:ir.actions.act_window,name:base.res_widget_user_act_window
#: model:ir.ui.menu,name:base.menu_res_widget_user_act_window
msgid "Widgets per User"
msgstr ""
msgstr "Her Kullanıcı için Parçacık"
#. module: base
#: selection:base.language.install,lang:0
@ -8626,7 +8628,7 @@ msgstr "XML dizin yolu"
#. module: base
#: selection:ir.actions.todo,restart:0
msgid "On Skip"
msgstr ""
msgstr "Atlanıldığında"
#. module: base
#: model:res.country,name:base.gn

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-05-04 18:57+0000\n"
"PO-Revision-Date: 2011-05-19 13:55+0000\n"
"Last-Translator: Phong Nguyen-Thanh <Unknown>\n"
"Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-05-05 06:00+0000\n"
"X-Launchpad-Export-Date: 2011-05-20 05:51+0000\n"
"X-Generator: Launchpad (build 12959)\n"
#. module: base
@ -1678,7 +1678,8 @@ msgstr ""
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"The Object name must start with x_ and not contain any special character !"
"Tên đối tượng phải bắt đầu bằng x_ và không bao gồm bất kỳ ký tự đặc biệt "
"nào!"
#. module: base
#: field:ir.actions.configuration.wizard,note:0
@ -5705,7 +5706,7 @@ msgstr "Tự chọn"
#. module: base
#: view:res.request:0
msgid "Current"
msgstr "Current"
msgstr "Hiện hành"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_9
@ -6258,7 +6259,7 @@ msgstr ""
#: field:res.partner.address,city:0
#: field:res.partner.bank,city:0
msgid "City"
msgstr "Thành phố/Quận"
msgstr "TP thuộc Tỉnh/Quận/Huyện"
#. module: base
#: model:res.country,name:base.qa
@ -7083,7 +7084,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_country_state
#: model:ir.ui.menu,name:base.menu_country_state_partner
msgid "Fed. States"
msgstr "Bang/Tỉnh/TP"
msgstr "Tiểu bang/TPTƯ/Tỉnh"
#. module: base
#: view:ir.model:0
@ -7914,17 +7915,17 @@ msgstr ""
#: field:res.currency,name:0
#: field:res.currency.rate,currency_id:0
msgid "Currency"
msgstr "Tiền tệ"
msgstr "Loại tiền tệ"
#. module: base
#: field:res.partner.canal,name:0
msgid "Channel Name"
msgstr ""
msgstr "Tên Kênh"
#. module: base
#: view:res.lang:0
msgid "5. %y, %Y ==> 08, 2008"
msgstr ""
msgstr "5. %y, %Y ==> 08, 2008"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_ltd
@ -7935,12 +7936,12 @@ msgstr ""
#: field:ir.values,res_id:0
#: field:res.log,res_id:0
msgid "Object ID"
msgstr ""
msgstr "Mã Đối tượng"
#. module: base
#: view:res.company:0
msgid "Landscape"
msgstr ""
msgstr "Khổ ngang"
#. module: base
#: model:ir.ui.menu,name:base.menu_administration

View File

@ -86,7 +86,12 @@ class ir_cron(osv.osv, netsvc.Agent):
(_check_args, 'Invalid arguments', ['args']),
]
def _callback(self, cr, uid, model, func, args):
def _handle_callback_exception(self, cr, uid, model, func, args, job_id, job_exception):
cr.rollback()
logger=logging.getLogger('cron')
logger.exception("Call of self.pool.get('%s').%s(cr, uid, *%r) failed in Job %s" % (model, func, args, job_id))
def _callback(self, cr, uid, model, func, args, job_id):
args = str2tuple(args)
m = self.pool.get(model)
if m and hasattr(m, func):
@ -96,9 +101,7 @@ class ir_cron(osv.osv, netsvc.Agent):
depth=(None if self._logger.isEnabledFor(logging.DEBUG_RPC_ANSWER) else 1), fn='object.execute')
f(cr, uid, *args)
except Exception, e:
cr.rollback()
logger=logging.getLogger('cron')
logger.exception("Job call of self.pool.get('%s').%s(cr, uid, *%r) failed" % (model, func, args))
self._handle_callback_exception(cr, uid, model, func, args, job_id, e)
def _poolJobs(self, db_name, check=False):
@ -120,7 +123,7 @@ class ir_cron(osv.osv, netsvc.Agent):
if numbercall > 0:
numbercall -= 1
if not ok or job['doall']:
self._callback(cr, job['user_id'], job['model'], job['function'], job['args'])
self._callback(cr, job['user_id'], job['model'], job['function'], job['args'], job['id'])
if numbercall:
nextcall += _intervalTypes[job['interval_type']](job['interval_number'])
ok = True

View File

@ -174,8 +174,15 @@ class ir_values(osv.osv):
else:
where.append('res_id=%s')
params.append(res_id)
where.append('(user_id=%s or (user_id IS NULL)) order by id')
order = 'id'
if key == 'default':
# Make sure we get first the values for specific users, then
# the global values. The map/filter below will retain the first
# value for any given name. The 'order by' will put the null
# values last; this may be postgres specific (it is the
# behavior in postgres at least since 8.2).
order = 'user_id'
where.append('(user_id=%s or (user_id IS NULL)) order by '+ order)
params.append(uid)
clause = ' and '.join(where)
cr.execute('select id,name,value,object,meta, key from ir_values where ' + clause, params)

View File

@ -127,6 +127,8 @@ class users(osv.osv):
def send_welcome_email(self, cr, uid, id, context=None):
logger= netsvc.Logger()
user = self.pool.get('res.users').read(cr, uid, id, context=context)
if not user.get('email'):
return False
if not tools.config.get('smtp_server'):
logger.notifyChannel('mails', netsvc.LOG_WARNING,
_('"smtp_server" needs to be set to send mails to users'))
@ -136,8 +138,6 @@ class users(osv.osv):
_('"email_from" needs to be set to send welcome mails '
'to users'))
return False
if not user.get('email'):
return False
return tools.email_send(email_from=None, email_to=[user['email']],
subject=self.get_welcome_mail_subject(
@ -206,6 +206,9 @@ class users(osv.osv):
raise osv.except_osv(_('Operation Canceled'), _('Please use the change password wizard (in User Preferences or User menu) to change your own password.'))
self.write(cr, uid, id, {'password': value})
def _get_password(self, cr, uid, ids, arg, karg, context=None):
return dict.fromkeys(ids, '')
_columns = {
'name': fields.char('User Name', size=64, required=True, select=True,
help="The new user's real name, used for searching"
@ -213,7 +216,7 @@ class users(osv.osv):
'login': fields.char('Login', size=64, required=True,
help="Used to log into the system"),
'password': fields.char('Password', size=64, invisible=True, help="Keep empty if you don't want the user to be able to connect on the system."),
'new_password': fields.function(lambda *a:'', method=True, type='char', size=64,
'new_password': fields.function(_get_password, method=True, type='char', size=64,
fnct_inv=_set_new_password,
string='Change password', help="Only specify a value if you want to change the user password. "
"This user will have to logout and login again!"),
@ -263,7 +266,6 @@ class users(osv.osv):
if 'password' in o and ( 'id' not in o or o['id'] != uid ):
o['password'] = '********'
return o
result = super(users, self).read(cr, uid, ids, fields, context, load)
canwrite = self.pool.get('ir.model.access').check(cr, uid, 'res.users', 'write', raise_exception=False)
if not canwrite:
@ -535,15 +537,19 @@ class config_users(osv.osv_memory):
'email': base_data['email'],
'partner_id': partner_id,},
context)
user_data = dict(
base_data,
signature=self._generate_signature(
cr, base_data['name'], base_data['email'], context=context),
address_id=address,
)
# Change the read many2one values from (id,name) to id, and
# the one2many from ids to (6,0,ids).
base_data.update({'menu_id' : base_data.get('menu_id') and base_data['menu_id'][0],
'company_id' : base_data.get('company_id') and base_data['company_id'][0],
'action_id' : base_data.get('action_id') and base_data['action_id'][0],
'signature' : self._generate_signature(cr, base_data['name'], base_data['email'], context=context),
'address_id' : address,
'groups_id' : [(6,0, base_data.get('groups_id',[]))],
})
new_user = self.pool.get('res.users').create(
cr, uid, user_data, context)
cr, uid, base_data, context)
self.send_welcome_email(cr, uid, new_user, context=context)
def execute(self, cr, uid, ids, context=None):
'Do nothing on execution, just launch the next action/todo'
pass

View File

@ -0,0 +1,11 @@
-
I Create "test" user using configuration wizard.
-
!python {model: res.config.users}: |
defaults = {
'name' : 'test1',
'login' : 'test1',
'password' : 'test',
}
wizard_id = self.create(cr, uid, defaults)
self.action_add(cr, uid, [wizard_id], context)

View File

@ -0,0 +1,25 @@
-
Create some default value for some (non-existing) model, for all users.
-
!python {model: ir.values }: |
self.set(cr, uid, 'default', False, 'my_test_ir_value',['unexisting_model'], 'global value')
-
Retrieve it.
-
!python {model: ir.values }: |
# d is a list of triple (id, name, value)
d = self.get(cr, uid, 'default', False, ['unexisting_model'])
assert d[0][1] == u'my_test_ir_value', "Can't retrieve the created default value."
assert d[0][2] == 'global value', "Can't retrieve the created default value."
-
Do it again but for a specific user.
-
!python {model: ir.values }: |
self.set(cr, uid, 'default', False, 'my_test_ir_value',['unexisting_model'], 'specific value', preserve_user=True)
-
Retrieve it and check it is the one for the current user.
-
!python {model: ir.values }: |
d = self.get(cr, uid, 'default', False, ['unexisting_model'])
assert d[0][1] == u'my_test_ir_value', "Can't retrieve the created default value."
assert d[0][2] == 'specific value', "Can't retrieve the created default value."

View File

@ -63,7 +63,13 @@ class _column(object):
_symbol_set = (_symbol_c, _symbol_f)
_symbol_get = None
def __init__(self, string='unknown', required=False, readonly=False, domain=None, context=None, states=None, priority=0, change_default=False, size=None, ondelete="set null", translate=False, select=False, **args):
def __init__(self, string='unknown', required=False, readonly=False, domain=None, context=None, states=None, priority=0, change_default=False, size=None, ondelete="set null", translate=False, select=False, manual=False, **args):
"""
The 'manual' keyword argument specifies if the field is a custom one.
It corresponds to the 'state' column in ir_model_fields.
"""
if domain is None:
domain = []
if context is None:
@ -84,6 +90,7 @@ class _column(object):
self.read = False
self.view_load = 0
self.select = select
self.manual = manual
self.selectable = True
self.group_operator = args.get('group_operator', False)
for a in args:

View File

@ -762,10 +762,12 @@ class orm_template(object):
done = {}
for i in range(len(fields)):
res = False
if i >= len(line):
raise Exception(_('Please check that all your lines have %d columns.'
'Stopped around line %d having %d columns.') % \
(len(fields), position+2, len(line)))
if not line[i]:
continue
if i >= len(line):
raise Exception(_('Please check that all your lines have %d columns.') % (len(fields),))
field = fields[i]
if field[:len(prefix)] <> prefix:
@ -838,14 +840,15 @@ class orm_template(object):
res = line[i] and float(line[i]) or 0.0
elif fields_def[field[len(prefix)]]['type'] == 'selection':
for key, val in fields_def[field[len(prefix)]]['selection']:
if line[i] in [tools.ustr(key), tools.ustr(val)]:
if tools.ustr(line[i]) in [tools.ustr(key), tools.ustr(val)]:
res = key
break
if line[i] and not res:
logger.notifyChannel("import", netsvc.LOG_WARNING,
_("key '%s' not found in selection field '%s'") % \
(line[i], field[len(prefix)]))
warning += [_("Key/value '%s' not found in selection field '%s'") % (line[i], field[len(prefix)])]
(tools.ustr(line[i]), tools.ustr(field[len(prefix)])))
warning += [_("Key/value '%s' not found in selection field '%s'") % (tools.ustr(line[i]), tools.ustr(field[len(prefix)]))]
else:
res = line[i]
@ -2826,6 +2829,7 @@ class orm(orm_template):
'size': field['size'],
'ondelete': field['on_delete'],
'translate': (field['translate']),
'manual': True,
#'select': int(field['select_level'])
}
@ -3050,6 +3054,9 @@ class orm(orm_template):
for key, val in todo.items():
if key:
res2 = self._columns[val[0]].get(cr, self, ids, val, user, context=context, values=res)
assert res2 is not None, \
'The function field "%s" on the "%s" model returned None\n' \
'(a dictionary was expected).' % (val[0], self._name)
for pos in val:
for record in res:
if isinstance(res2[record['id']], str): res2[record['id']] = eval(res2[record['id']]) #TOCHECK : why got string instend of dict in python2.6
@ -3531,7 +3538,10 @@ class orm(orm_template):
#
def create(self, cr, user, vals, context=None):
"""
Create new record with specified value
Create a new record for the model.
The values for the new record are initialized using the ``vals``
argument, and if necessary the result of ``default_get()``.
:param cr: database cursor
:param user: current user id

View File

@ -293,6 +293,11 @@ class osv_memory(osv_base, orm.orm_memory):
nattr = {}
for s in ('_columns', '_defaults'):
new = copy.copy(getattr(pool.get(parent_name), s))
if s == '_columns':
# Don't _inherit custom fields.
for c in new.keys():
if new[c].manual:
del new[c]
if hasattr(new, 'update'):
new.update(cls.__dict__.get(s, {}))
else:
@ -327,6 +332,11 @@ class osv(osv_base, orm.orm):
nattr = {}
for s in ('_columns', '_defaults', '_inherits', '_constraints', '_sql_constraints'):
new = copy.copy(getattr(pool.get(parent_name), s))
if s == '_columns':
# Don't _inherit custom fields.
for c in new.keys():
if new[c].manual:
del new[c]
if hasattr(new, 'update'):
new.update(cls.__dict__.get(s, {}))
else:

View File

@ -795,10 +795,10 @@ class _rml_flowable(object):
return False
else:
import base64
newtext = node.text
if self.localcontext:
newtext = utils._process_text(self, node.text or '')
node.text = newtext
image_data = base64.decodestring(node.text)
image_data = base64.decodestring(newtext)
if not image_data:
self._logger.debug("No inline image data")
return False

View File

@ -221,7 +221,7 @@ class configmanager(object):
group.add_option("--modules", dest="translate_modules",
help="specify modules to export. Use in combination with --i18n-export")
group.add_option("--addons-path", dest="addons_path",
help="specify an alternative addons path.",
help="specify additional addons paths (separated by commas).",
action="callback", callback=self._check_addons_path, nargs=1, type="string")
parser.add_option_group(group)
@ -435,26 +435,28 @@ class configmanager(object):
import stat
os.chmod(filename, stat.S_IRUSR + stat.S_IWUSR)
def _is_addons_path(self, path):
for f in os.listdir(path):
modpath = os.path.join(path, f)
if os.path.isdir(modpath):
def hasfile(filename):
return os.path.isfile(os.path.join(modpath, filename))
if hasfile('__init__.py') and (hasfile('__openerp__.py') or hasfile('__terp__.py')):
return True
return False
def _check_addons_path(self, option, opt, value, parser):
res = os.path.abspath(os.path.expanduser(value))
if not os.path.exists(res):
raise optparse.OptionValueError("option %s: no such directory: %r" % (opt, value))
ad_paths = []
for path in value.split(','):
path = path.strip()
res = os.path.abspath(os.path.expanduser(path))
if not os.path.isdir(res):
raise optparse.OptionValueError("option %s: no such directory: %r" % (opt, path))
if not self._is_addons_path(res):
raise optparse.OptionValueError("option %s: The addons-path %r does not seem to a be a valid Addons Directory!" % (opt, path))
ad_paths.append(res)
contains_addons = False
for f in os.listdir(res):
modpath = os.path.join(res, f)
if os.path.isdir(modpath) and \
os.path.exists(os.path.join(modpath, '__init__.py')) and \
(os.path.exists(os.path.join(modpath, '__openerp__.py')) or \
os.path.exists(os.path.join(modpath, '__terp__.py'))):
contains_addons = True
break
if not contains_addons:
raise optparse.OptionValueError("option %s: The addons-path %r does not seem to a be a valid Addons Directory!" % (opt, value))
setattr(parser.values, option.dest, res)
setattr(parser.values, option.dest, ",".join(ad_paths))
def load(self):
p = ConfigParser.ConfigParser()