[MERGE] merge with trunk server.

bzr revid: ysa@tinyerp.co.in-20100401045806-ios9i8fz1xgob6tb
This commit is contained in:
Ysa (Open ERP)
2010-04-01 10:28:06 +05:30
25 changed files with 521 additions and 379 deletions
+4 -2
View File
@@ -145,9 +145,11 @@ CREATE TABLE res_users (
email varchar(64) default null,
context_tz varchar(64) default null,
signature text,
-- action_id int references ir_act_window on delete set null,
context_lang varchar(64) default '',
-- No FK references below, will be added later by ORM
-- (when the destination rows exist)
action_id int,
company_id int,
primary key(id)
);
alter table res_users add constraint res_users_login_uniq unique (login);
@@ -342,7 +344,7 @@ CREATE TABLE ir_model_data (
-- Users
---------------------------------
insert into res_users (id,login,password,name,action_id,active) values (1,'admin',NULL,'Administrator',NULL,True);
insert into res_users (id,login,password,name,action_id,active,company_id) values (1,'admin',NULL,'Administrator',NULL,True,1);
insert into ir_model_data (name,module,model,noupdate,res_id) values ('user_root','base','res.users',True,1);
-- Compatibility purpose, to remove V6.0
+18 -3
View File
@@ -1001,6 +1001,8 @@
<record id="main_partner" model="res.partner">
<field name="name">Tiny sprl</field>
<!-- Company ID will be set later -->
<field name="company_id" eval="None"/>
</record>
<record id="main_address" model="res.partner.address">
<field name="partner_id" ref="main_partner"/>
@@ -1011,14 +1013,18 @@
<field name="phone">(+32).81.81.37.00</field>
<field name="type">default</field>
<field model="res.country" name="country_id" ref="be"/>
<!-- Company ID will be set later -->
<field name="company_id" eval="None"/>
</record>
<!-- Currencies -->
<record id="EUR" model="res.currency">
<field name="name">EUR</field>
<field name="code">EUR</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<!-- Company ID will be set later -->
<field name="company_id" eval="None"/>
</record>
<record id="rateEUR" model="res.currency.rate">
<field name="rate">1.0</field>
@@ -1042,12 +1048,21 @@
</assert>
<record id="user_admin" model="res.users">
<field name="company_id" ref="main_company"/>
</record>
</record>
<record id="main_partner" model="res.partner">
<field name="company_id" ref="main_company"/>
</record>
<record id="main_address" model="res.partner.address">
<field name="company_id" ref="main_company"/>
</record>
<record id="EUR" model="res.currency">
<field name="company_id" ref="main_company"/>
</record>
<!-- Currencies -->
<record id="EUR" model="res.currency">
<field name="company_id" ref="main_company"/>
</record>
<record id="USD" model="res.currency">
<field name="name">USD</field>
<field name="code">USD</field>
+146 -88
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-02-18 05:29+0000\n"
"PO-Revision-Date: 2010-03-31 08:05+0000\n"
"Last-Translator: Boris <boris.t.ivanov@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: 2010-02-19 04:36+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -582,7 +582,7 @@ msgstr "Папуа Нова Гвинея"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_4
msgid "Basic Partner"
msgstr ""
msgstr "Обикновен партньор"
#. module: base
#: rml:ir.module.reference:0
@@ -1114,6 +1114,9 @@ msgid ""
"consider the present one as void. Do not hesitate to contact our accounting "
"department at (+32).81.81.37.00."
msgstr ""
"Ако вашето плащане е извършено вече, моля не обръщайте внимание на това "
"писмо. При възникване на въпроси не се колебайте да се свържете с нашия "
"счетоводен отдел на телефон _____________."
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -1254,6 +1257,9 @@ msgid ""
"If set, sequence will only be used in case this python expression matches, "
"and will precede other sequences."
msgstr ""
"Ако е зададено, последователноста ще бъде използвана само в случай, че "
"изразът отговаря на условията и ще има приоритет пред други "
"последователности."
#. module: base
#: selection:ir.actions.act_window,view_type:0
@@ -1405,7 +1411,7 @@ msgid ""
"This wizard will detect new terms in the application so that you can update "
"them manually."
msgstr ""
"Помощника установи нови условия в приложението които можете да обновите "
"Помощника установи нови преводи в приложението които можете да обновите "
"ръчно."
#. module: base
@@ -1415,6 +1421,9 @@ msgid ""
"order in Object, and you can have loop on the sales order line. Expression = "
"`object.order_line`."
msgstr ""
"Въведете поле/израз, който връща списък. Например, изберете поръчка за "
"продажба в обект и ще може да имате цикъл върху редовете от поръчка за "
"продажба. Израз = 'object.order_line'."
#. module: base
#: selection:ir.translation,type:0
@@ -1468,6 +1477,8 @@ msgstr ""
#: help:ir.rule.group,global:0
msgid "Make the rule global, otherwise it needs to be put on a group"
msgstr ""
"Направете правилото глобално, в противен случай то трябва да се зададе към "
"определена група."
#. module: base
#: model:ir.actions.act_window,name:base.action_menu_admin
@@ -1538,6 +1549,9 @@ msgid ""
"Provide the field name that the record id refers to for the write operation. "
"If it is empty it will refer to the active id of the object."
msgstr ""
"Задайте името на полето към което се отнася идентификатора на записа при "
"операцията на запис. Ако оставите празно, ще сочи към активния запис от "
"обекта."
#. module: base
#: model:res.country,name:base.zw
@@ -1657,7 +1671,7 @@ msgstr "%p - Еквивалент на \"AM\" или \"PM\"."
#. module: base
#: view:ir.actions.server:0
msgid "Iteration Actions"
msgstr ""
msgstr "Повтарящи се действия"
#. module: base
#: field:maintenance.contract,date_stop:0
@@ -1723,7 +1737,7 @@ msgstr "Грешка! НЕ може да създавате рекурсивни
#. module: base
#: selection:maintenance.contract,state:0
msgid "Valid"
msgstr ""
msgstr "Валиден"
#. module: base
#: code:addons/base/ir/ir_model.py:0
@@ -1777,7 +1791,7 @@ msgstr "Швеция"
#: selection:ir.ui.view,type:0
#: selection:wizard.ir.model.menu.create.line,view_type:0
msgid "Gantt"
msgstr ""
msgstr "Диаграма Гант"
#. module: base
#: view:ir.property:0
@@ -1883,7 +1897,7 @@ msgstr "Рождена дата"
#: model:ir.actions.act_window,name:base.action_partner_title_contact
#: model:ir.ui.menu,name:base.menu_partner_title_contact
msgid "Contact Titles"
msgstr ""
msgstr "Обръщение"
#. module: base
#: model:ir.model,name:base.model_res_partner_som
@@ -1968,7 +1982,7 @@ msgstr "Малта"
#. module: base
#: field:ir.actions.server,fields_lines:0
msgid "Field Mappings."
msgstr ""
msgstr "Свързвания на полето"
#. module: base
#: model:ir.model,name:base.model_ir_module_module
@@ -2436,7 +2450,7 @@ msgstr "SXW съдържание"
#. module: base
#: view:ir.cron:0
msgid "Action to Trigger"
msgstr ""
msgstr "Действие за извършване"
#. module: base
#: field:ir.report.custom.fields,fc0_operande:0
@@ -2538,7 +2552,7 @@ msgstr "Обновяване на системата"
#. module: base
#: field:workflow.activity,in_transitions:0
msgid "Incoming Transitions"
msgstr ""
msgstr "Входящи преходи"
#. module: base
#: model:res.country,name:base.sr
@@ -2587,7 +2601,7 @@ msgstr "Лиценз"
#: code:addons/base/ir/ir_report_custom.py:0
#, python-format
msgid "Invalid operation"
msgstr ""
msgstr "Невалидна операция"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -2648,7 +2662,7 @@ msgstr "Автор"
#. module: base
#: model:res.country,name:base.mk
msgid "FYROM"
msgstr ""
msgstr "Република Македония"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -2851,7 +2865,7 @@ msgstr "RML горен колонтитул"
#. module: base
#: wizard_field:res.partner.sms_send,init,app_id:0
msgid "API ID"
msgstr ""
msgstr "API ID"
#. module: base
#: model:res.country,name:base.mu
@@ -3171,7 +3185,7 @@ msgstr "Монсерат"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_app
msgid "Application Terms"
msgstr "Условия за използване на програмата"
msgstr "Изрази в програмата"
#. module: base
#: selection:ir.report.custom.fields,operation:0
@@ -3269,6 +3283,9 @@ msgid ""
"\"%s\" contains too many dots. XML ids should not contain dots ! These are "
"used to refer to other modules data, as in module.reference_id"
msgstr ""
"\"%s\" съдържа твърде много точки. XML-идентификаторите не трябва да "
"съдържат точки! Те се използват за свързване към данни от други модули, "
"например в module.reference_id"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -3324,7 +3341,7 @@ msgstr "Списък за контрол на достъпа"
#. module: base
#: model:res.country,name:base.um
msgid "USA Minor Outlying Islands"
msgstr ""
msgstr "САЩ Малки далечни острови"
#. module: base
#: field:res.partner.bank,state:0
@@ -3375,7 +3392,7 @@ msgstr "Собственик на банковата сметка"
#: model:ir.actions.act_window,name:base.act_values_form
#: model:ir.ui.menu,name:base.menu_values_form
msgid "Client Actions Connections"
msgstr ""
msgstr "Връзки на действията на клиента"
#. module: base
#: field:ir.ui.view_sc,resource:0
@@ -3395,7 +3412,7 @@ msgstr "Гваделупа (Франция)"
#. module: base
#: field:ir.report.custom.fields,cumulate:0
msgid "Accumulate"
msgstr ""
msgstr "Акумулирай"
#. module: base
#: code:addons/base/ir/ir_report_custom.py:0
@@ -3505,7 +3522,7 @@ msgstr "STOCK_DND_MULTIPLE"
#: model:ir.actions.act_window,name:base.action_partner_addess_tree
#: view:res.partner:0
msgid "Partner Contacts"
msgstr ""
msgstr "Партньорски контакти"
#. module: base
#: wizard_field:module.module.update,update,add:0
@@ -3694,7 +3711,7 @@ msgstr "terp-sale"
#. module: base
#: view:res.lang:0
msgid "%d - Day of the month as a decimal number [01,31]."
msgstr ""
msgstr "%d - пореден номер на деня от месеца като десетично число [01,31]."
#. module: base
#: view:res.lang:0
@@ -3763,12 +3780,12 @@ msgstr "Ботсвана"
#: model:ir.ui.menu,name:base.menu_partner_title_partner
#: view:res.partner.title:0
msgid "Partner Titles"
msgstr ""
msgstr "Обръщения към партньори"
#. module: base
#: selection:ir.actions.todo,type:0
msgid "Service"
msgstr ""
msgstr "Услуга"
#. module: base
#: help:ir.actions.act_window,auto_refresh:0
@@ -4149,7 +4166,7 @@ msgstr "А4"
#. module: base
#: field:ir.actions.act_window,search_view_id:0
msgid "Search View Ref."
msgstr ""
msgstr "\"Изглед\" търсене в справки"
#. module: base
#: view:ir.rule.group:0
@@ -4340,7 +4357,7 @@ msgstr "E-mail на изпращащия"
#. module: base
#: field:ir.default,field_name:0
msgid "Object Field"
msgstr ""
msgstr "Поле на Обекта"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -4990,7 +5007,7 @@ msgstr "Модулния файл: %s, не можеда да бъде създ
#. module: base
#: model:ir.module.module,description:base.module_meta_information
msgid "The kernel of OpenERP, needed for all installation."
msgstr ""
msgstr "Ядрото на OpenERP, необходимо при всяка инсталация"
#. module: base
#: wizard_button:base.module.import,init,end:0
@@ -5011,7 +5028,7 @@ msgstr "Откажи"
#: code:addons/base/ir/ir_actions.py:0
#, python-format
msgid "Please specify server option --smtp-from !"
msgstr ""
msgstr "Моля укажете опцията на сървъра --smtp-from !"
#. module: base
#: selection:wizard.module.lang.export,format:0
@@ -5190,7 +5207,7 @@ msgstr "Ще бъдат инсталирани"
#: model:ir.module.module,shortdesc:base.module_meta_information
#: field:res.currency,base:0
msgid "Base"
msgstr ""
msgstr "База"
#. module: base
#: model:res.country,name:base.lr
@@ -5261,7 +5278,7 @@ msgstr "Създай"
#. module: base
#: field:ir.exports,export_fields:0
msgid "Export ID"
msgstr ""
msgstr "Идентификатор на извличането"
#. module: base
#: model:res.country,name:base.fr
@@ -5292,7 +5309,7 @@ msgstr "Грешка!"
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_contry
msgid "country_id"
msgstr ""
msgstr "Идентификатор на държава"
#. module: base
#: field:ir.cron,interval_type:0
@@ -5308,7 +5325,7 @@ msgstr "Вид"
#. module: base
#: selection:ir.actions.todo,start_on:0
msgid "Manual"
msgstr ""
msgstr "Ръчно"
#. module: base
#: field:res.bank,fax:0
@@ -5337,6 +5354,8 @@ msgid ""
"Select the action that will be executed. Loop action will not be avaliable "
"inside loop."
msgstr ""
"Изберете действие което да бъде изпълнено. Циклични действия няма да бъдат "
"допустими в цикъла."
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -5409,17 +5428,17 @@ msgstr "Активни събития на партньора"
#: model:ir.ui.menu,name:base.menu_partner_function_form
#: view:res.partner.function:0
msgid "Contact Functions"
msgstr ""
msgstr "Функции на контакта"
#. module: base
#: view:multi_company.default:0
msgid "Multi Company"
msgstr ""
msgstr "Холдинг"
#. module: base
#: view:ir.sequence:0
msgid "Day of the year: %(doy)s"
msgstr ""
msgstr "Ден от годината: %(ден)а"
#. module: base
#: model:res.country,name:base.nt
@@ -5553,7 +5572,7 @@ msgstr "GPL-3 или по-късна версия"
#. module: base
#: selection:ir.actions.report.xml,report_type:0
msgid "HTML from HTML(Mako)"
msgstr ""
msgstr "HTML от HTML(Mako)"
#. module: base
#: field:workflow.activity,action:0
@@ -5686,7 +5705,7 @@ msgstr "Не е инсталиран"
#. module: base
#: field:workflow.activity,out_transitions:0
msgid "Outgoing Transitions"
msgstr ""
msgstr "Изходящи преходи"
#. module: base
#: field:ir.ui.menu,icon:0
@@ -5739,19 +5758,19 @@ msgstr "Самоа"
#. module: base
#: field:ir.ui.menu,child_id:0
msgid "Child IDs"
msgstr ""
msgstr "Подчинени идентификатори"
#. module: base
#: code:addons/base/ir/ir_actions.py:0
#, python-format
msgid "Problem in configuration `Record Id` in Server Action!"
msgstr ""
msgstr "Проблем в конфигурацията 'Record Id' в Действия на Сървъра!"
#. module: base
#: code:addons/base/maintenance/maintenance.py:0
#, python-format
msgid "This error occurs on database %s"
msgstr ""
msgstr "Тази грешка възниква в база данни %s"
#. module: base
#: wizard_button:base.module.import,init,import:0
@@ -5779,7 +5798,7 @@ msgstr "Ел. поща"
#: model:ir.actions.act_window,name:base.action_wizard_update_translations
#: model:ir.ui.menu,name:base.menu_wizard_update_translations
msgid "Resynchronise Terms"
msgstr "Повторно синхронизиране на условията"
msgstr "Ресинхронизиране на изразите"
#. module: base
#: model:res.country,name:base.tg
@@ -5794,7 +5813,7 @@ msgstr "Спиране на всички"
#. module: base
#: view:res.lang:0
msgid "3. %x ,%X ==> 12/05/08, 18:25:20"
msgstr ""
msgstr "3. %x ,%X ==> 12/05/08, 18:25:20"
#. module: base
#: selection:ir.model.fields,on_delete:0
@@ -5805,13 +5824,13 @@ msgstr "Каскадно"
#: code:addons/base/ir/ir_report_custom.py:0
#, python-format
msgid "Field %d should be a figure"
msgstr ""
msgstr "Поле %d трябва да бъде изображение"
#. module: base
#: model:ir.actions.act_window,name:base.action_inventory_form
#: model:ir.ui.menu,name:base.menu_action_inventory_form
msgid "Default Company per Object"
msgstr ""
msgstr "Компания по подразбиране за обекта"
#. module: base
#: view:ir.actions.configuration.wizard:0
@@ -5867,6 +5886,9 @@ msgid ""
"translations for your own module, you can also publish all your translation "
"at once."
msgstr ""
"За да се подобрите превода на изрази от официалния превод на OpenERP, Вие "
"трябва да промените изразите в \"launchpad\". Ако сте превели голяма част от "
"ваш модул, може да публикувате вашите преводи наведнъж."
#. module: base
#: wizard_button:module.lang.install,init,start:0
@@ -5876,7 +5898,7 @@ msgstr "Започни инсталацията"
#. module: base
#: help:res.lang,code:0
msgid "This field is used to set/get locales for user"
msgstr ""
msgstr "Това поле служи за задаване/доставяне на локали за потребителя"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_2
@@ -5930,6 +5952,9 @@ msgid ""
"' \\n 'for the currency: %s \n"
"' \\n 'at the date: %s"
msgstr ""
"Не е намерен курс \n"
"' \\n 'за валута: %s \n"
"' \\n 'към дата: %s"
#. module: base
#: view:ir.actions.act_window:0
@@ -5986,7 +6011,7 @@ msgstr "Сомалия"
#. module: base
#: model:ir.actions.act_window,name:base.action_config_simple_view_form
msgid "Configure Simple View"
msgstr ""
msgstr "Настрой прост изглед"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_13
@@ -6055,7 +6080,7 @@ msgstr "Час 00->24: %(h24)"
#. module: base
#: help:multi_company.default,field_id:0
msgid "Select field property"
msgstr ""
msgstr "Изберете свойство на полето"
#. module: base
#: field:res.request.history,date_sent:0
@@ -6125,7 +6150,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 ""
msgstr "Област/Щат"
#. module: base
#: view:ir.model:0
@@ -6146,7 +6171,7 @@ msgstr "Родител"
#. module: base
#: view:multi_company.default:0
msgid "Returning"
msgstr ""
msgstr "Възвращаемо"
#. module: base
#: field:ir.actions.act_window,res_model:0
@@ -6200,7 +6225,7 @@ msgstr "Извличане на файл с превод"
#. module: base
#: field:ir.ui.view_sc,user_id:0
msgid "User Ref."
msgstr ""
msgstr "Справка за потребител"
#. module: base
#: model:ir.ui.menu,name:base.menu_base_config
@@ -6296,7 +6321,7 @@ msgstr "terp-administration"
#: model:ir.actions.act_window,name:base.action_translation
#: model:ir.ui.menu,name:base.menu_action_translation
msgid "All terms"
msgstr "Всички условия"
msgstr "Всички изрази"
#. module: base
#: model:res.country,name:base.no
@@ -6306,7 +6331,7 @@ msgstr "Норвегия"
#. module: base
#: view:res.lang:0
msgid "4. %b, %B ==> Dec, December"
msgstr ""
msgstr "4. %b, %B ==> Дек, Декември"
#. module: base
#: model:ir.actions.wizard,name:base.wizard_lang_install
@@ -6317,7 +6342,7 @@ msgstr "Зареждане на официален превод"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_10
msgid "Open Source Service Company"
msgstr ""
msgstr "Фирма за услуги с отворен код"
#. module: base
#: selection:res.request,state:0
@@ -6350,6 +6375,8 @@ msgid ""
"If set to true, the wizard will not be displayed on the right toolbar of a "
"form view."
msgstr ""
"Ако е зададено \"истина\", помощникът няма да бъде показан в дясната страна "
"на лентата с инструменти във \"изглед–бланка\"."
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -6425,6 +6452,7 @@ msgstr "Коста Рика"
#, python-format
msgid "Your can't submit bug reports due to uncovered modules: %s"
msgstr ""
"Не можете да изпратите доклад за \"бъг\" заради неподдържани модули: %s"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_other_form
@@ -6472,7 +6500,7 @@ msgstr "workflow.instance"
#. module: base
#: view:res.lang:0
msgid "10. %S ==> 20"
msgstr ""
msgstr "10. %S ==> 20"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_madam
@@ -6563,6 +6591,8 @@ msgid ""
"Important when you deal with multiple actions, the execution order will be "
"decided based on this, low number is higher priority."
msgstr ""
"Важно! Когато работите с множество действия, реда на изпълнение ще се "
"определя от това, че по-малкия номер има по-висок приоритет."
#. module: base
#: field:ir.actions.report.xml,header:0
@@ -6602,7 +6632,7 @@ msgstr "Неинсталируем"
#. module: base
#: view:res.partner.category:0
msgid "Partner Category"
msgstr ""
msgstr "Категория на партньора"
#. module: base
#: view:ir.actions.server:0
@@ -6621,6 +6651,8 @@ msgid ""
"Access all the fields related to the current object using expression in "
"double brackets, i.e. [[ object.partner_id.name ]]"
msgstr ""
"Достъп до всички полета свързани с текущия обект чрез израз в двойни скоби "
"напр. [[ object.partner_id.name ]]"
#. module: base
#: field:res.request.history,body:0
@@ -6658,7 +6690,7 @@ msgstr "Графика"
#: field:res.partner,child_ids:0
#: field:res.request,ref_partner_id:0
msgid "Partner Ref."
msgstr ""
msgstr "Справка за партньор"
#. module: base
#: field:ir.report.custom,print_format:0
@@ -6715,7 +6747,7 @@ msgstr "Номер на сметка"
#. module: base
#: view:res.lang:0
msgid "1. %c ==> Fri Dec 5 18:25:20 2008"
msgstr ""
msgstr "1. %c ==> Пет. Дек. 5 18:25:20 2008"
#. module: base
#: help:ir.ui.menu,groups_id:0
@@ -6724,6 +6756,9 @@ msgid ""
"groups. If this field is empty, Open ERP will compute visibility based on "
"the related object's read access."
msgstr ""
"Ако използвате групи, видимоста на това меню ще се определя според групите. "
"Ако полето е празно, Open ERP ще определи видимоста на менюто според правата "
"за четене на свързаните обекти."
#. module: base
#: model:res.country,name:base.nc
@@ -6761,7 +6796,7 @@ msgstr "От"
#. module: base
#: wizard_button:server.action.create,init,step_1:0
msgid "Next"
msgstr ""
msgstr "Напред"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -6788,7 +6823,7 @@ msgstr "Китай"
#: code:addons/base/ir/ir_model.py:0
#, python-format
msgid "Password empty !"
msgstr ""
msgstr "Не е въведена парола !"
#. module: base
#: model:res.country,name:base.eh
@@ -6836,6 +6871,8 @@ msgid ""
"Only one client action will be execute, last "
"clinent action will be consider in case of multiples clients actions"
msgstr ""
"Ще бъде изпълнено само едно клиентско действие. В случай, че са въведени "
"множество действия, ще бъде изпълнено само последното."
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -6861,7 +6898,7 @@ msgstr "Име на канала"
#. module: base
#: view:res.lang:0
msgid "5. %y, %Y ==> 08, 2008"
msgstr ""
msgstr "5. %y, %Y ==> 08, 2008"
#. module: base
#: field:ir.model.fields,model_id:0
@@ -6899,7 +6936,7 @@ msgstr "child_of"
#: view:res.users:0
#: field:res.users,company_ids:0
msgid "Accepted Companies"
msgstr ""
msgstr "Одобрени компании"
#. module: base
#: field:ir.report.custom.fields,operation:0
@@ -6926,7 +6963,7 @@ msgstr "Ирак"
#. module: base
#: view:ir.actions.server:0
msgid "Action to Launch"
msgstr ""
msgstr "Действие за стартиране"
#. module: base
#: wizard_view:base.module.import,import:0
@@ -6948,7 +6985,7 @@ msgstr "CSV Файл"
#: selection:ir.model,state:0
#: selection:ir.model.grid,state:0
msgid "Base Object"
msgstr ""
msgstr "Базов обект"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -6991,7 +7028,7 @@ msgstr "Джибути"
#. module: base
#: field:ir.translation,value:0
msgid "Translation Value"
msgstr "Преведено значение"
msgstr "Превод"
#. module: base
#: model:res.country,name:base.ag
@@ -7036,6 +7073,9 @@ msgid ""
"through launchpad. We use their online interface to synchronize all "
"translations efforts."
msgstr ""
"Официалният превод на всички OpenERP/OpenObjects модули се управляват чрез "
"launchpad. Ние използваме техния онлайн интерфейс за синхронизиране на "
"всички действия по преводите."
#. module: base
#: field:ir.actions.report.xml,report_rml:0
@@ -7067,7 +7107,7 @@ msgstr "турски / Türkçe"
#: model:ir.actions.act_window,name:base.action_translation_untrans
#: model:ir.ui.menu,name:base.menu_action_translation_untrans
msgid "Untranslated terms"
msgstr "Непреведен термин"
msgstr "Непреведени изрази"
#. module: base
#: wizard_view:module.lang.import,init:0
@@ -7100,7 +7140,7 @@ msgstr "="
#: code:addons/base/ir/ir_report_custom.py:0
#, python-format
msgid "Second field should be figures"
msgstr ""
msgstr "Второто поле трябва да съдържа числа"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_grid_security
@@ -7139,7 +7179,7 @@ msgstr "Туркменистан"
#. module: base
#: model:res.country,name:base.pm
msgid "Saint Pierre and Miquelon"
msgstr ""
msgstr "Сен Пиер и Микелон"
#. module: base
#: help:ir.actions.report.xml,header:0
@@ -7189,7 +7229,7 @@ msgstr "датски / Dansk"
#. module: base
#: model:res.country,name:base.cx
msgid "Christmas Island"
msgstr ""
msgstr "о. Рождество"
#. module: base
#: view:ir.actions.server:0
@@ -7211,7 +7251,7 @@ msgstr "Канали"
#. module: base
#: view:ir.module.module:0
msgid "Schedule for Installation"
msgstr "График на инсталация"
msgstr "Инсталирай"
#. module: base
#: selection:ir.model.fields,select_level:0
@@ -7232,7 +7272,7 @@ msgstr "Изпрати"
#. module: base
#: field:ir.translation,src:0
msgid "Source"
msgstr "Източник"
msgstr "Оригинал"
#. module: base
#: help:res.partner.address,partner_id:0
@@ -7242,7 +7282,7 @@ msgstr "Оставете празно за личен адрес несвърз
#. module: base
#: model:res.country,name:base.vu
msgid "Vanuatu"
msgstr ""
msgstr "Вануату"
#. module: base
#: view:res.company:0
@@ -7256,6 +7296,8 @@ msgid ""
"Save this document to a .tgz file. This archive containt UTF-8 %s files and "
"may be uploaded to launchpad."
msgstr ""
"Запази документа като .tgz файл. Този архив съдържа %s UTF-8 файлове и може "
"да бъде качен в launchpad."
#. module: base
#: wizard_button:module.upgrade,end,config:0
@@ -7287,7 +7329,7 @@ msgstr "Саудитска Арабия"
#: code:addons/base/ir/ir_report_custom.py:0
#, python-format
msgid "Bar charts need at least two fields"
msgstr ""
msgstr "Графиката с правоъгълници има нужда от минимум две полета"
#. module: base
#: help:res.partner,supplier:0
@@ -7295,16 +7337,18 @@ msgid ""
"Check this box if the partner is a supplier. If it's not checked, purchase "
"people will not see it when encoding a purchase order."
msgstr ""
"Отметнете ако партньора е доставчик. Ако не е отметнато, хората за поръчки "
"няма да го виждат когато изготвят поръчка за доставка."
#. module: base
#: field:ir.model.fields,relation_field:0
msgid "Relation Field"
msgstr ""
msgstr "Зависимо поле"
#. module: base
#: field:workflow.triggers,instance_id:0
msgid "Destination Instance"
msgstr ""
msgstr "Дестинация"
#. module: base
#: field:ir.actions.wizard,multi:0
@@ -7344,6 +7388,10 @@ msgid ""
"of each users on the different objects of the system.\n"
" "
msgstr ""
"Създайте вашите потребители.\n"
"Може да назначите групи към потребителите. Групите определят правата на "
"достъп на всеки потребител до различните обекти на системата.\n"
" "
#. module: base
#: selection:res.request,priority:0
@@ -7432,7 +7480,7 @@ msgstr "ir.actions.act_window"
#. module: base
#: model:res.country,name:base.vi
msgid "Virgin Islands (USA)"
msgstr ""
msgstr "Вирджински острови (САЩ)"
#. module: base
#: model:res.country,name:base.tw
@@ -7476,7 +7524,7 @@ msgstr "Неинсталируем"
#. module: base
#: rml:ir.module.reference:0
msgid "View :"
msgstr ""
msgstr "\"Изглед\":"
#. module: base
#: field:ir.model.fields,view_load:0
@@ -7524,7 +7572,7 @@ msgstr "Провинция"
#. module: base
#: view:multi_company.default:0
msgid "Matching"
msgstr ""
msgstr "Сравняване"
#. module: base
#: field:ir.actions.configuration.wizard,name:0
@@ -7571,7 +7619,7 @@ msgstr "Бахрейн"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_12
msgid "Segmentation"
msgstr ""
msgstr "Разделяне"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -7631,7 +7679,7 @@ msgstr "Гибралтар"
#. module: base
#: model:res.country,name:base.vg
msgid "Virgin Islands (British)"
msgstr ""
msgstr "Вирджински острови (Великобритания)"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -7646,7 +7694,7 @@ msgstr "чешки / Čeština"
#. module: base
#: model:res.country,name:base.wf
msgid "Wallis and Futuna Islands"
msgstr ""
msgstr "О-ви Уолис и Футуна"
#. module: base
#: model:res.country,name:base.rw
@@ -7666,7 +7714,7 @@ msgstr "Изчисли сума"
#. module: base
#: view:ir.sequence:0
msgid "Day of the week (0:Monday): %(weekday)s"
msgstr ""
msgstr "Ден от седмицата (0:Понеделник): %(ден)а"
#. module: base
#: model:res.country,name:base.ck
@@ -7680,6 +7728,9 @@ msgid ""
"invoice, then `object.invoice_address_id.mobile` is the field which gives "
"the correct mobile number"
msgstr ""
"Оказва полетата които ще се използват за доставяне на мобилен номер, напр., "
"когато изберете фактура, тогава 'object.invoice_address_id.mobile' е полето "
"което дава правилния мобилен номер"
#. module: base
#: field:ir.model.data,noupdate:0
@@ -7689,7 +7740,7 @@ msgstr "Не обновяем"
#. module: base
#: selection:module.lang.install,init,lang:0
msgid "Klingon"
msgstr ""
msgstr "Клингон"
#. module: base
#: model:res.country,name:base.sg
@@ -7756,7 +7807,7 @@ msgstr "Тегло"
#. module: base
#: view:res.lang:0
msgid "%X - Appropriate time representation."
msgstr ""
msgstr "%X - Правилно представяне на времето."
#. module: base
#: view:res.company:0
@@ -7771,6 +7822,11 @@ msgid ""
"1,06,500;[1,2,-1] will represent it to be 106,50,0;[3] will represent it as "
"106,500. Provided ',' as the thousand separator in each case."
msgstr ""
"Формата на разделителя трябва дабъде [,n] , където 0 < n : като се започне "
"от цифрата за единици. \"-1\" спира разделянето. Например, [3,2,-1] ще "
"представи 106500 като 1,06,500; [1,2,-1] ще представи същото като 106,50,0; "
"[3] ще представи същото като 106,500. ',' е разделител за хиляди във всеки "
"случай."
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_customer_form_new
@@ -7826,7 +7882,7 @@ msgstr "Помощници на настройките"
#. module: base
#: field:res.lang,code:0
msgid "Locale Code"
msgstr ""
msgstr "Код на локала"
#. module: base
#: field:workflow.activity,split_mode:0
@@ -7862,7 +7918,7 @@ msgstr "Вмъкни файл с превод"
#. module: base
#: help:ir.values,model_id:0
msgid "This field is not used, it only helps you to select a good model."
msgstr ""
msgstr "Това поле не се използва, то само помага да се избере добър модел."
#. module: base
#: field:ir.ui.view,name:0
@@ -7877,7 +7933,7 @@ msgstr "италиански / Italiano"
#. module: base
#: field:ir.actions.report.xml,attachment:0
msgid "Save As Attachment Prefix"
msgstr ""
msgstr "Префикс на \"Запази като приложение\""
#. module: base
#: model:res.country,name:base.hr
@@ -7918,7 +7974,7 @@ msgstr "Сейшелски о-ви"
#: code:addons/base/res/res_user.py:0
#, python-format
msgid "You can not have two users with the same login !"
msgstr ""
msgstr "Не може да има двама потребитела с един и същ \"логин\"!"
#. module: base
#: model:res.country,name:base.sl
@@ -7939,7 +7995,7 @@ msgstr "terp-product"
#. module: base
#: model:res.country,name:base.tc
msgid "Turks and Caicos Islands"
msgstr ""
msgstr "о-ви Търкс и Кайкос"
#. module: base
#: field:res.partner.bank,owner_name:0
@@ -8014,7 +8070,7 @@ msgstr "BIC/Swift код"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_1
msgid "Prospect"
msgstr ""
msgstr "Перспектива"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -8024,7 +8080,7 @@ msgstr "полски / Język polski"
#. module: base
#: field:ir.exports,name:0
msgid "Export Name"
msgstr ""
msgstr "Име на извлечането"
#. module: base
#: help:res.partner.address,type:0
@@ -8032,6 +8088,8 @@ msgid ""
"Used to select automatically the right address according to the context in "
"sales and purchases documents."
msgstr ""
"Използва се за автоматично избаране на правилния адрес според контекста на "
"документите за продажби и поръчки."
#. module: base
#: wizard_view:module.lang.install,init:0
+9 -8
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-16 05:12+0000\n"
"PO-Revision-Date: 2010-03-19 08:39+0000\n"
"Last-Translator: OpenERP Administrators <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: 2010-03-17 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-03-20 04:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -174,7 +174,7 @@ msgstr "ir.report.custom.fields"
#. module: base
#: view:res.partner:0
msgid "Search Partner"
msgstr ""
msgstr "Otsi partnerit"
#. module: base
#: code:addons/base/module/wizard/wizard_export_lang.py:0
@@ -574,7 +574,7 @@ msgstr "Papua Uus Guinea"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_4
msgid "Basic Partner"
msgstr "Elementaarne partner"
msgstr "Elementaarne klient"
#. module: base
#: rml:ir.module.reference:0
@@ -584,7 +584,7 @@ msgstr ","
#. module: base
#: view:res.partner:0
msgid "My Partners"
msgstr ""
msgstr "Minu partnerid"
#. module: base
#: model:res.country,name:base.es
@@ -1319,6 +1319,7 @@ msgstr "Kommertsperspektiiv"
msgid ""
"Couldn't generate the next id because some partners have an alphabetic id !"
msgstr ""
"Ei saanud genereerida järgmist id-d sest osadel partneritel on täheline id!"
#. module: base
#: view:ir.attachment:0
@@ -3096,7 +3097,7 @@ msgstr "Sisemine kasutaja, kes vastutab selle partneriga suhtlemise eest."
#. module: base
#: field:res.partner,parent_id:0
msgid "Parent Partner"
msgstr ""
msgstr "Ülem partner"
#. module: base
#: view:ir.module.module:0
@@ -6203,7 +6204,7 @@ msgstr "Algusaeg"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_5
msgid "Gold Partner"
msgstr "Kuldpartnerid"
msgstr "Kuldpartner"
#. module: base
#: model:ir.model,name:base.model_res_partner
@@ -6402,7 +6403,7 @@ msgstr ""
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_other_form
msgid "Other Partners"
msgstr ""
msgstr "Teised partnerid"
#. module: base
#: view:ir.model:0
+8 -8
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-13 05:29+0000\n"
"PO-Revision-Date: 2010-03-24 05:45+0000\n"
"Last-Translator: OpenERP Administrators <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: 2010-03-14 05:02+0000\n"
"X-Launchpad-Export-Date: 2010-03-26 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -938,7 +938,7 @@ msgstr ""
#. module: base
#: field:res.roles,name:0
msgid "Role Name"
msgstr "Roolinimi"
msgstr "Työtehtävän nimi"
#. module: base
#: field:res.partner,user_id:0
@@ -2173,7 +2173,7 @@ msgstr "Yrityksen nimi"
#: view:res.users:0
#: field:res.users,roles_id:0
msgid "Roles"
msgstr "Roolit"
msgstr "Työtehtävät"
#. module: base
#: model:ir.actions.act_window,name:base.action_country
@@ -3240,7 +3240,7 @@ msgstr "%H - Tunnit (24:n tunnin kello) desimaalilukuna [00,23]."
#. module: base
#: view:res.roles:0
msgid "Role"
msgstr "Rooli"
msgstr "Työtehtävä"
#. module: base
#: help:res.country.state,code:0
@@ -3485,7 +3485,7 @@ msgstr "Tapahtumat"
#: model:ir.actions.act_window,name:base.action_res_roles
#: model:ir.ui.menu,name:base.menu_action_res_roles
msgid "Roles Structure"
msgstr "Roolien rakenne"
msgstr "Työtehtävien rakenne"
#. module: base
#: model:ir.model,name:base.model_ir_actions_url
@@ -3517,7 +3517,7 @@ msgstr "Lisättyjen moduulien määrä"
#. module: base
#: field:workflow.transition,role_id:0
msgid "Role Required"
msgstr "Vaadittu rooli"
msgstr "Vaadittu työtehtävä"
#. module: base
#: view:ir.module.module:0
@@ -5060,7 +5060,7 @@ msgstr "Islanti"
#: view:res.users:0
msgid "Roles are used to defined available actions, provided by workflows."
msgstr ""
"Roolit määrittelevät käytettävissä olevat toiminnot, joita työnkulut "
"Työtehtävät määrittelevät käytettävissä olevat toiminnot, joita työnkulut "
"edellyttävät."
#. module: base
+2 -2
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-17 05:13+0000\n"
"PO-Revision-Date: 2010-03-31 06:01+0000\n"
"Last-Translator: goranc <goranc@gmail.com>\n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-18 04:34+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
+21 -19
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-12 05:20+0000\n"
"Last-Translator: Maurizio.Colella <m.colella88@gmail.com>\n"
"PO-Revision-Date: 2010-03-31 05:14+0000\n"
"Last-Translator: OpenERP Administrators <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: 2010-03-13 04:50+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -2452,7 +2452,7 @@ msgstr "Contenuto SXW"
#. module: base
#: view:ir.cron:0
msgid "Action to Trigger"
msgstr ""
msgstr "Azione da innescare"
#. module: base
#: field:ir.report.custom.fields,fc0_operande:0
@@ -3348,7 +3348,7 @@ msgstr "Isole minori esterne degli USA"
#: field:res.partner.bank,state:0
#: field:res.partner.bank.type.field,bank_type_id:0
msgid "Bank Type"
msgstr ""
msgstr "Tipo Conto"
#. module: base
#: code:addons/base/res/res_user.py:0
@@ -3393,7 +3393,7 @@ msgstr "Titolare del conto"
#: model:ir.actions.act_window,name:base.act_values_form
#: model:ir.ui.menu,name:base.menu_values_form
msgid "Client Actions Connections"
msgstr ""
msgstr "Connessioni alle azioni del client"
#. module: base
#: field:ir.ui.view_sc,resource:0
@@ -3413,13 +3413,15 @@ msgstr "Guadalupa (Francia)"
#. module: base
#: field:ir.report.custom.fields,cumulate:0
msgid "Accumulate"
msgstr ""
msgstr "Accumula"
#. module: base
#: code:addons/base/ir/ir_report_custom.py:0
#, python-format
msgid "Tree can only be used in tabular reports"
msgstr ""
"La struttura ad albero può essere utilizzata esclusivamente nei report "
"tabellari"
#. module: base
#: rml:ir.module.reference:0
@@ -3639,7 +3641,7 @@ msgstr "Crea azione"
#. module: base
#: selection:ir.actions.report.xml,report_type:0
msgid "HTML from HTML"
msgstr ""
msgstr "HTML da HTML"
#. module: base
#: selection:ir.actions.report.xml,report_type:0
@@ -3731,12 +3733,12 @@ msgstr "STOCK_ADD"
#. module: base
#: field:ir.cron,doall:0
msgid "Repeat Missed"
msgstr ""
msgstr "Ripeti mancato"
#. module: base
#: help:ir.actions.server,state:0
msgid "Type of the Action that is to be executed"
msgstr ""
msgstr "Tipo dell'azione che deve essere eseguita"
#. module: base
#: field:ir.server.object.lines,server_id:0
@@ -3781,7 +3783,7 @@ msgstr "Botswana"
#: model:ir.ui.menu,name:base.menu_partner_title_partner
#: view:res.partner.title:0
msgid "Partner Titles"
msgstr ""
msgstr "Qualifiche Partner"
#. module: base
#: selection:ir.actions.todo,type:0
@@ -6720,7 +6722,7 @@ msgstr ""
#. module: base
#: field:res.partner.bank,acc_number:0
msgid "Account Number"
msgstr ""
msgstr "Numero conto"
#. module: base
#: view:res.lang:0
@@ -7512,7 +7514,7 @@ msgstr "Visualizza Auto-Caricamento"
#: model:ir.actions.act_window,name:base.action_partner_supplier_form
#: view:res.partner:0
msgid "Suppliers"
msgstr ""
msgstr "Fornitori"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -7549,7 +7551,7 @@ msgstr "Stati"
#. module: base
#: view:multi_company.default:0
msgid "Matching"
msgstr ""
msgstr "Confronto"
#. module: base
#: field:ir.actions.configuration.wizard,name:0
@@ -7624,7 +7626,7 @@ msgstr "Limite"
#. module: base
#: help:ir.actions.server,wkf_model_id:0
msgid "Workflow to be executed on this model."
msgstr ""
msgstr "Flusso di lavoro da eseguire su questo modello."
#. module: base
#: model:res.country,name:base.jm
@@ -7640,7 +7642,7 @@ msgstr "Azerbaijan"
#: code:addons/base/res/partner/partner.py:0
#, python-format
msgid "Warning"
msgstr ""
msgstr "Avviso"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -7770,12 +7772,12 @@ msgstr "Nome Categoria"
#. module: base
#: view:ir.actions.act_window:0
msgid "Select Groups"
msgstr ""
msgstr "Seleziona gruppi"
#. module: base
#: field:ir.sequence,weight:0
msgid "Weight"
msgstr ""
msgstr "Peso"
#. module: base
#: view:res.lang:0
@@ -7975,7 +7977,7 @@ msgstr "Turks e Caicos"
#. module: base
#: field:res.partner.bank,owner_name:0
msgid "Account Owner"
msgstr ""
msgstr "Titolare Conto"
#. module: base
#: field:ir.attachment,res_model:0
+2 -2
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-17 05:14+0000\n"
"PO-Revision-Date: 2010-03-31 05:47+0000\n"
"Last-Translator: Harry (Open ERP) <hmo@tinyerp.com>\n"
"Language-Team: Japanese <ja@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: 2010-03-18 04:33+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+7 -7
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-02-21 06:01+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-03-22 05:21+0000\n"
"Last-Translator: Bartosz Kaszubowski <gosimek@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: 2010-02-22 04:41+0000\n"
"X-Launchpad-Export-Date: 2010-03-24 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -1592,7 +1592,7 @@ msgstr "Akcja serwera"
#. module: base
#: model:res.country,name:base.tt
msgid "Trinidad and Tobago"
msgstr "Trinidad i Tobago"
msgstr "Trynidad i Tobago"
#. module: base
#: model:res.country,name:base.lv
@@ -2687,7 +2687,7 @@ msgstr "Boliwia"
#. module: base
#: model:res.country,name:base.gh
msgid "Ghana"
msgstr "Gana"
msgstr "Ghana"
#. module: base
#: field:res.lang,direction:0
@@ -6817,7 +6817,7 @@ msgstr "Puste hasło !"
#. module: base
#: model:res.country,name:base.eh
msgid "Western Sahara"
msgstr "Zachodnia Sahara"
msgstr "Sahara Zachodnia"
#. module: base
#: model:ir.model,name:base.model_workflow
@@ -7218,7 +7218,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.cx
msgid "Christmas Island"
msgstr "Wyspy Bożego Narodzenia"
msgstr "Wyspa Bożego Narodzenia"
#. module: base
#: view:ir.actions.server:0
File diff suppressed because it is too large Load Diff
+2 -2
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-17 05:09+0000\n"
"PO-Revision-Date: 2010-03-31 04:49+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: 2010-03-18 04:34+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-17 05:13+0000\n"
"PO-Revision-Date: 2010-03-31 05:27+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.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: 2010-03-18 04:34+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
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: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-17 05:11+0000\n"
"PO-Revision-Date: 2010-03-31 05:03+0000\n"
"Last-Translator: OpenERP Administrators <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: 2010-03-18 04:34+0000\n"
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+12 -3
View File
@@ -369,7 +369,7 @@
<separator colspan="4" string="Select Groups" />
<field name="groups_id" nolabel="1" colspan="4" />
</page>
</notebook>
</notebook>
</form>
</field>
</record>
@@ -431,7 +431,7 @@
<menuitem action="ir_action_wizard" id="menu_ir_action_wizard" parent="base.next_id_6"/>
<!-- Companies -->
<menuitem id="menu_res_company_global"
<menuitem id="menu_res_company_global"
parent="base.menu_administration"
name="Companies"
sequence="5"/>
@@ -570,7 +570,7 @@
<field name="name"/>
<field name="type"/>
<field name="model"/>
<field name="inherit_id"/>
<field name="inherit_id"/>
<field name="priority"/>
<field name="field_parent"/>
</tree>
@@ -1176,6 +1176,11 @@
<separator colspan="4" string="Manual domain setup"/>
<field name="domain_force"/>
<label colspan="4" string="If you don't force the domain, it will use the simple domain setup"/>
<newline/>
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</form>
</field>
</record>
@@ -1187,6 +1192,10 @@
<field name="arch" type="xml">
<tree string="Test">
<field name="domain"/>
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</tree>
</field>
</record>
+22 -8
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@@ -88,7 +88,7 @@ class ir_rule(osv.osv):
for rule in self.browse(cr, uid, ids, context):
eval_user_data = {'user': self.pool.get('res.users').browse(cr, 1, uid),
'time':time}
if rule.domain_force:
res[rule.id] = eval(rule.domain_force, eval_user_data)
else:
@@ -111,27 +111,41 @@ class ir_rule(osv.osv):
'operand':fields.selection(_operand,'Operand', size=64),
'rule_group': fields.many2one('ir.rule.group', 'Group', select=2, required=True, ondelete="cascade"),
'domain_force': fields.char('Force Domain', size=250),
'domain': fields.function(_domain_force_get, method=True, string='Domain', type='char', size=250)
'domain': fields.function(_domain_force_get, method=True, string='Domain', type='char', size=250),
'perm_read': fields.boolean('Read Access'),
'perm_write': fields.boolean('Write Access'),
'perm_create': fields.boolean('Create Access'),
'perm_unlink': fields.boolean('Delete Access')
}
_defaults = {
'perm_read': lambda *a: True,
'perm_write': lambda *a: True,
'perm_create': lambda *a: True,
'perm_unlink': lambda *a: True,
}
_sql_constraints = [
('no_access_rights', 'CHECK (perm_read!=False or perm_write!=False or perm_create!=False or perm_unlink!=False)', 'Rule must have atleast one checked access right'),
]
def onchange_all(self, cr, uid, ids, field_id, operator, operand):
if not (field_id or operator or operand):
return {}
def domain_get(self, cr, uid, model_name, context={}):
def domain_get(self, cr, uid, model_name, mode='read', context={}):
if uid == 1:
return [], [], ['"'+self.pool.get(model_name)._table+'"']
cr.execute("""SELECT r.id FROM
ir_rule r
cr.execute("""SELECT r.id
FROM ir_rule r
JOIN (ir_rule_group g
JOIN ir_model m ON (g.model_id = m.id))
ON (g.id = r.rule_group)
WHERE m.model = %s
AND r.perm_""" + mode + """
AND (g.id IN (SELECT rule_group_id FROM group_rule_group_rel g_rel
JOIN res_groups_users_rel u_rel ON (g_rel.group_id = u_rel.gid)
WHERE u_rel.uid = %s) OR g.global)""", (model_name, uid))
ids = map(lambda x:x[0], cr.fetchall())
ids = map(lambda x: x[0], cr.fetchall())
dom = []
for rule in self.browse(cr, uid, ids):
dom += rule.domain
+1 -5
View File
@@ -100,11 +100,7 @@ class ir_ui_menu(osv.osv):
if menu.action:
# we check if the user has access to the action of the menu
#m, oid = menu.action.split(',', 1)
#data = self.pool.get(m).browse(cr, 1, int(oid))
data = menu.action
m = data._name
if data:
model_field = { 'ir.actions.act_window': 'res_model',
'ir.actions.report.custom': 'model',
@@ -113,7 +109,7 @@ class ir_ui_menu(osv.osv):
'ir.actions.server': 'model_id',
}
field = model_field.get(m)
field = model_field.get(menu.action._name)
if field and data[field]:
if not modelaccess.check(cr, uid, data[field], raise_exception=False):
continue
+2 -2
View File
@@ -104,6 +104,7 @@
</group>
<group colspan="2" col="2">
<separator string="Postal Address" colspan="4" col="4"/>
<field name="type"/>
<field name="street"/>
<field name="street2"/>
<field name="zip"/>
@@ -113,7 +114,6 @@
</group>
<group colspan="2" col="2">
<separator string="Communication" colspan="4" col="4"/>
<field name="type"/>
<field name="phone"/>
<field name="fax"/>
<field name="mobile"/>
@@ -287,6 +287,7 @@
<newline/>
<group colspan="2" col="4">
<separator string="Postal Address" colspan="4" col="4" />
<field name="type" string="Type" colspan="2"/>
<field name="street" colspan="4"/>
<field name="street2" colspan="4"/>
<field name="zip"/>
@@ -296,7 +297,6 @@
</group>
<group colspan="2" col="2">
<separator string="Communication" colspan="2" col="2" />
<field name="type" string="Type" />
<field name="phone"/>
<field name="mobile"/>
<field name="fax"/>
+2 -2
View File
@@ -62,7 +62,7 @@ class lang(osv.osv):
]
@tools.cache(skiparg=3)
def _lang_data_get(self, cr, uid, lang_id):
def _lang_data_get(self, cr, uid, lang_id, monetary=False):
conv = localeconv()
lang_obj=self.browse(cr,uid,lang_id)
thousands_sep = lang_obj.thousands_sep or conv[monetary and 'mon_thousands_sep' or 'thousands_sep']
@@ -120,7 +120,7 @@ class lang(osv.osv):
if percent[0] != '%':
raise ValueError("format() must be given exactly one %char format specifier")
lang_grouping, thousands_sep, decimal_point = self._lang_data_get(cr, uid, ids[0])
lang_grouping, thousands_sep, decimal_point = self._lang_data_get(cr, uid, ids[0], monetary)
formatted = percent % value
# floats and decimal ints need special action!
+6 -3
View File
@@ -366,7 +366,7 @@ class one2many(_column):
_prefetch = False
_type = 'one2many'
def __init__(self, obj, fields_id, string='unknown', limit=20, **args):
def __init__(self, obj, fields_id, string='unknown', limit=None, **args):
args.update({'parent_field':fields_id})
_column.__init__(self, string=string, **args)
self._obj = obj
@@ -756,11 +756,14 @@ class related(function):
if self._type != "many2one":
t_id = t_data.id
t_data = t_data[self.arg[i]][0]
else:
t_data = False
break
else:
t_id = t_data['id']
t_data = t_data[self.arg[i]]
if t_id:
if t_id and t_data:
obj.pool.get(field_detail['object']).write(cr,uid,[t_id],{args[-1]:values}, context=context)
def _fnct_read(self, obj, cr, uid, ids, field_name, args, context=None):
@@ -921,7 +924,7 @@ class property(function):
res[id] = default_val
for prop in property.browse(cr, uid, nids):
if prop.value.find(',') >= 0:
res[int(prop.res_id.split(',')[1])] = (prop.value and \
res[int(prop.res_id.id)] = (prop.value and \
int(prop.value.split(',')[1])) or False
else:
res[int(prop.res_id.split(',')[1])] = prop.value or ''
+72 -68
View File
@@ -69,6 +69,15 @@ from tools.config import config
regex_order = re.compile('^(([a-z0-9_]+|"[a-z0-9_]+")( *desc| *asc)?( *, *|))+$', re.I)
POSTGRES_CONFDELTYPES = {
'RESTRICT': 'r',
'NO ACTION': 'a',
'CASCADE': 'c',
'SET NULL': 'n',
'SET DEFAULT': 'd',
}
def last_day_of_current_month():
today = datetime.date.today()
last_day = str(calendar.monthrange(today.year, today.month)[1])
@@ -249,11 +258,14 @@ class browse_record(object):
new_data[n] = self._list_class([browse_record(self._cr, self._uid, id, self._table.pool.get(f._obj), self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process) for id in data[n]], self._context)
elif f._type in ('reference'):
if data[n]:
ref_obj, ref_id = data[n].split(',')
ref_id = long(ref_id)
obj = self._table.pool.get(ref_obj)
compids = False
new_data[n] = browse_record(self._cr, self._uid, ref_id, obj, self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process)
if isinstance(data[n], browse_record):
new_data[n] = data[n]
else:
ref_obj, ref_id = data[n].split(',')
ref_id = long(ref_id)
obj = self._table.pool.get(ref_obj)
compids = False
new_data[n] = browse_record(self._cr, self._uid, ref_id, obj, self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process)
else:
new_data[n] = browse_null()
else:
@@ -1866,13 +1878,15 @@ class orm(orm_template):
_protected = ['read','write','create','default_get','perm_read','unlink','fields_get','fields_view_get','search','name_get','distinct_field_get','name_search','copy','import_data','search_count', 'exists']
def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None):
groupby_list = groupby
groupby = groupby[0]
context = context or {}
self.pool.get('ir.model.access').check(cr, uid, self._name, 'read', context=context)
if not fields:
fields = self._columns.keys()
(where_clause, where_params, tables) = self._where_calc(cr, uid, domain, context=context)
dom = self.pool.get('ir.rule').domain_get(cr, uid, self._name, context=context)
dom = self.pool.get('ir.rule').domain_get(cr, uid, self._name, 'read', context=context)
where_clause = where_clause + dom[0]
where_params = where_params + dom[1]
for t in dom[2]:
@@ -1912,6 +1926,8 @@ class orm(orm_template):
alldata = {}
groupby = group_by
for r in cr.dictfetchall():
for fld,val in r.items():
if val == None:r[fld] = False
alldata[r['id']] = r
del r['id']
data = self.read(cr, uid, alldata.keys(), [groupby], context=context)
@@ -1919,6 +1935,7 @@ class orm(orm_template):
for d in data:
d['__domain'] = [(groupby,'=',alldata[d['id']][groupby] or False)] + domain
d['__context'] = {'group_by':groupby_list[1:]}
if fget.has_key(groupby):
if d[groupby] and fget[groupby]['type'] in ('date','datetime'):
dt = datetime.datetime.strptime(alldata[d['id']][groupby][:7],'%Y-%m')
@@ -2274,14 +2291,7 @@ class orm(orm_template):
"AND con.contype = 'f'", (self._table, ref, k, 'id'))
res = cr.dictfetchall()
if res:
confdeltype = {
'RESTRICT': 'r',
'NO ACTION': 'a',
'CASCADE': 'c',
'SET NULL': 'n',
'SET DEFAULT': 'd',
}
if res[0]['confdeltype'] != confdeltype.get(f.ondelete.upper(), 'a'):
if res[0]['confdeltype'] != POSTGRES_CONFDELTYPES.get(f.ondelete.upper(), 'a'):
cr.execute('ALTER TABLE "' + self._table + '" DROP CONSTRAINT "' + res[0]['conname'] + '"')
cr.execute('ALTER TABLE "' + self._table + '" ADD FOREIGN KEY ("' + k + '") REFERENCES "' + ref + '" ON DELETE ' + f.ondelete)
cr.commit()
@@ -2474,6 +2484,7 @@ class orm(orm_template):
#
# Update objects that uses this one to update their _inherits fields
#
def _inherits_reload_src(self):
for obj in self.pool.obj_pool.values():
if self._name in obj._inherits:
@@ -2540,8 +2551,7 @@ class orm(orm_template):
fields_to_read = self._columns.keys()
# construct a clause for the rules :
d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, context=context)
d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
# all inherited fields + all non inherited fields for which the attribute whose name is in load is True
fields_pre = [f for f in fields_to_read if
f == self.CONCURRENCY_CHECK_FIELD
@@ -2562,17 +2572,16 @@ class orm(orm_template):
return '"%s"' % (f,)
fields_pre2 = map(convert_field, fields_pre)
order_by = self._parent_order or self._order
for i in range(0, len(ids), cr.IN_MAX):
sub_ids = ids[i:i+cr.IN_MAX]
for sub_ids in cr.split_for_in_conditions(ids):
if d1:
cr.execute('SELECT %s FROM %s WHERE %s.id = ANY (%%s) AND %s ORDER BY %s' % \
cr.execute('SELECT %s FROM %s WHERE %s.id IN %%s AND %s ORDER BY %s' % \
(','.join(fields_pre2 + [self._table + '.id']), ','.join(tables), self._table, ' and '.join(d1),
order_by),[sub_ids,]+d2)
if not cr.rowcount == len({}.fromkeys(sub_ids)):
if cr.rowcount != len(sub_ids):
raise except_orm(_('AccessError'),
_('You try to bypass an access rule while reading (Document type: %s).') % self._description)
else:
cr.execute('SELECT %s FROM \"%s\" WHERE id = ANY (%%s) ORDER BY %s' %
cr.execute('SELECT %s FROM \"%s\" WHERE id IN %%s ORDER BY %s' %
(','.join(fields_pre2 + ['id']), self._table,
order_by), (sub_ids,))
res.extend(cr.dictfetchall())
@@ -2724,6 +2733,25 @@ class orm(orm_template):
if res and res[0]:
raise except_orm('ConcurrencyException', _('Records were modified in the meanwhile'))
def check_access_rule(self, cr, uid, ids, operation, context=None):
"""Verifies that the operation given by ``operation`` is allowed for the user
according to ir.rules.
@param ``operation``: one of ``'read'``, ``'write'``, ``'unlink'``
@raise ``except_orm``: if current ir.rules do not permit this operation.
@return: ``None`` if the operation is allowed
"""
where_clause, where_params, tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, operation, context=context)
if where_clause:
where_clause = ' and ' + ' and '.join(where_clause)
for sub_ids in cr.split_for_in_conditions(ids):
cr.execute('SELECT ' + self._table + '.id FROM ' + ','.join(tables) +
' WHERE ' + self._table + '.id IN %s' + where_clause,
[sub_ids] + where_params)
if cr.rowcount != len(sub_ids):
raise except_orm(_('AccessError'),
_('Operation prohibited by access rules (Operation: %s, Document type: %s).')
% (operation, self._name))
def unlink(self, cr, uid, ids, context=None):
if not ids:
return True
@@ -2753,26 +2781,13 @@ class orm(orm_template):
# ids2 = [x[self._inherits[key]] for x in res]
# self.pool.get(key).unlink(cr, uid, ids2)
d1, d2,tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, context=context)
if d1:
d1 = ' AND '+' and '.join(d1)
for i in range(0, len(ids), cr.IN_MAX):
sub_ids = ids[i:i+cr.IN_MAX]
str_d = string.join(('%s',)*len(sub_ids), ',')
if d1:
cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
'WHERE '+self._table+'.id IN ('+str_d+')'+d1, sub_ids+d2)
if not cr.rowcount == len(sub_ids):
raise except_orm(_('AccessError'),
_('You try to bypass an access rule (Document type: %s).') % \
self._description)
cr.execute('delete from '+self._table+' ' \
'where id in ('+str_d+')', sub_ids)
self.check_access_rule(cr, uid, ids, 'unlink', context=context)
for sub_ids in cr.split_for_in_conditions(ids):
cr.execute('delete from ' + self._table + ' ' \
'where id in %s', sub_ids)
for order, object, store_ids, fields in result_store:
if object<>self._name:
if object != self._name:
obj = self.pool.get(object)
cr.execute('select id from '+obj._table+' where id in ('+','.join(map(str, store_ids))+')')
rids = map(lambda x: x[0], cr.fetchall())
@@ -2868,29 +2883,10 @@ class orm(orm_template):
upd1.append(user)
if len(upd0):
d1, d2,tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, context=context)
if d1:
d1 = ' and '+' and '.join(d1)
for i in range(0, len(ids), cr.IN_MAX):
sub_ids = ids[i:i+cr.IN_MAX]
ids_str = string.join(map(str, sub_ids), ',')
if d1:
cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
'WHERE '+self._table+'.id IN ('+ids_str+')'+d1, d2)
if not cr.rowcount == len({}.fromkeys(sub_ids)):
raise except_orm(_('AccessError'),
_('You try to bypass an access rule while writing (Document type: %s).') % \
self._description)
else:
cr.execute('SELECT id FROM "'+self._table+'" WHERE id IN ('+ids_str+')')
if not cr.rowcount == len({}.fromkeys(sub_ids)):
raise except_orm(_('AccessError'),
_('You try to write on an record that doesn\'t exist ' \
'(Document type: %s).') % self._description)
cr.execute('update '+self._table+' set '+string.join(upd0, ',')+' ' \
'where id in ('+ids_str+')', upd1)
self.check_access_rule(cr, user, ids, 'write', context=context)
for sub_ids in cr.split_for_in_conditions(ids):
cr.execute('update ' + self._table + ' set ' + ','.join(upd0) + ' ' \
'where id in %s', upd1 + [sub_ids])
if totranslate:
# TODO: optimize
@@ -2921,11 +2917,9 @@ class orm(orm_template):
for table in self._inherits:
col = self._inherits[table]
nids = []
for i in range(0, len(ids), cr.IN_MAX):
sub_ids = ids[i:i+cr.IN_MAX]
ids_str = string.join(map(str, sub_ids), ',')
for sub_ids in cr.split_for_in_conditions(ids):
cr.execute('select distinct "'+col+'" from "'+self._table+'" ' \
'where id in ('+ids_str+')', upd1)
'where id in %s', (sub_ids,))
nids.extend([x[0] for x in cr.fetchall()])
v = {}
@@ -3104,7 +3098,8 @@ class orm(orm_template):
upd1 = upd1 + ',' + self._columns[field]._symbol_set[0]
upd2.append(self._columns[field]._symbol_set[1](vals[field]))
else:
upd_todo.append(field)
if not isinstance(self._columns[field], fields.related):
upd_todo.append(field)
if field in self._columns \
and hasattr(self._columns[field], 'selection') \
and vals[field]:
@@ -3128,6 +3123,15 @@ class orm(orm_template):
upd1 += ',%s,now()'
upd2.append(user)
cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'create', context=context)
if d1:
d1 = ' AND '+' AND '.join(d1)
cr.execute('SELECT '+self._table+'.id FROM '+','.join(tables)+' ' \
'WHERE '+self._table+'.id = ' +str(id_new)+d1,d2)
if not cr.rowcount:
raise except_orm(_('AccessError'),
_('You try to bypass an access rule to create (Document type: %s).') \
% self._name)
upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)
if self._parent_store:
@@ -3334,7 +3338,7 @@ class orm(orm_template):
context = {}
# compute the where, order by, limit and offset clauses
(qu1, qu2, tables) = self._where_calc(cr, user, args, context=context)
dom = self.pool.get('ir.rule').domain_get(cr, user, self._name, context=context)
dom = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
qu1 = qu1 + dom[0]
qu2 = qu2 + dom[1]
for t in dom[2]:
+3 -4
View File
@@ -138,7 +138,8 @@ class report_rml(report_int):
def create_rml(self, cr, xml, uid, context=None):
if not context:
context={}
service = netsvc.LocalService("object_proxy")
pool = pooler.get_pool(cr.dbname)
ir_translation_obj = pool.get('ir.translation')
# In some case we might not use xsl ...
if not self.xsl:
@@ -159,9 +160,7 @@ class report_rml(report_int):
def translate(doc, lang):
for node in doc.xpath('//*[@t]'):
translation = service.execute(
cr.dbname, uid, 'ir.translation', '_get_source',
self.name2, 'xsl', lang, node.text)
translation = ir_translation_obj._get_source(cr, uid, self.name2, 'xsl', lang, node.text)
if translation:
node.text = translation
+3 -2
View File
@@ -30,6 +30,7 @@ import os
import socket
import tiny_socket
class TinySocketClientThread(threading.Thread, netsvc.OpenERPDispatcher):
def __init__(self, sock, threads):
threading.Thread.__init__(self)
@@ -119,8 +120,8 @@ class TinySocketServerThread(threading.Thread,netsvc.Server):
"Netrpc: %d threads" % len(self.threads))
self.socket.close()
except Exception, e:
netsvc.Logger().notifyChannel("web-services", netsvc.LOG_WARNING,
"Netrpc: closing because of exception %s" % str(e))
import logging
logging.getLogger('web-services').warning("Netrpc: closing because of exception %s" % str(e))
self.socket.close()
return False
+7 -1
View File
@@ -63,7 +63,7 @@ re_into = re.compile('.* into "?([a-zA-Z_0-9]+)"? .*$');
sql_counter = 0
class Cursor(object):
IN_MAX = 1000
IN_MAX = 1000 # decent limit on size of IN queries - guideline = Oracle limit
__logger = logging.getLogger('db.cursor')
def check(f):
@@ -142,6 +142,12 @@ class Cursor(object):
self.sql_into_log[res_into.group(1)][1] += delay
return res
def split_for_in_conditions(self, ids):
"""Split a list of identifiers into one or more smaller tuples
safe for IN conditions, after uniquifying them."""
return tools.misc.split_every(self.IN_MAX, set(ids))
def print_log(self):
global sql_counter
sql_counter += self.sql_log_count
+1 -1
View File
@@ -376,7 +376,7 @@ form: module.record_id""" % (xml_id,)
usage = rec.get('usage','').encode('utf-8')
limit = rec.get('limit','').encode('utf-8')
auto_refresh = rec.get('auto_refresh','').encode('utf-8')
uid = self.uid
# def ref() added because , if context has ref('id') eval wil use this ref
active_id=str("active_id") # for further reference in client/bin/tools/__init__.py
+13
View File
@@ -32,6 +32,7 @@ import zipfile
import release
import socket
import re
from itertools import islice
if sys.version_info[:2] < (2, 4):
from threadinglocal import local
@@ -1267,6 +1268,18 @@ def detect_server_timezone():
return 'UTC'
def split_every(n, iterable, piece_maker=tuple):
"""Splits an iterable into length-n pieces. The last piece will be shorter
if ``n`` does not evenly divide the iterable length.
@param ``piece_maker``: function to build the pieces
from the slices (tuple,list,...)
"""
iterator = iter(iterable)
piece = piece_maker(islice(iterator, n))
while piece:
yield piece
piece = piece_maker(islice(iterator, n))
if __name__ == '__main__':
import doctest
doctest.testmod()