[MERGE] merged with latest server branch

bzr revid: bde@tinyerp.com-20131231052654-hpeyky0elkg9y1ph
This commit is contained in:
Bharat R. Devnani (OpenERP)
2013-12-31 10:56:54 +05:30
93 changed files with 16212 additions and 581 deletions
+20
View File
@@ -91,5 +91,25 @@ Administrator</field>
<field eval="10" name="sequence"/>
</record>
<!-- Basic fonts family included in PDF standart, will always be in the font list -->
<record model="res.font" id="base.font_helvetica">
<field name="name">Helvetica</field>
<field name="family">Helvetica</field>
<field name="path">/dev/null</field>
<field name="mode">all</field>
</record>
<record model="res.font" id="base.font_times">
<field name="name">Times</field>
<field name="family">Times</field>
<field name="path">/dev/null</field>
<field name="mode">all</field>
</record>
<record model="res.font" id="base.font_courier">
<field name="name">Courier</field>
<field name="family">Courier</field>
<field name="path">/dev/null</field>
<field name="mode">all</field>
</record>
</data>
</openerp>
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:48+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:27+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:48+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:29+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:29+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:29+0000\n"
"X-Generator: Launchpad (build 16872)\n"
"X-Poedit-Language: Czech\n"
#. module: base
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:50+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:29+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:30+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -12,8 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:35+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:36+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:38+0000\n"
"X-Generator: Launchpad (build 16872)\n"
"Language: \n"
#. module: base
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:38+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+3 -4
View File
@@ -9,14 +9,13 @@ msgstr ""
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-07-25 03:08+0000\n"
"Last-Translator: Federico Manuel Echeverri Choux - ( Vauxoo ) "
"<echeverrifm@gmail.com>\n"
"Last-Translator: Federico Manuel Echeverri Choux <echeverrifm@gmail.com>\n"
"Language-Team: Spanish (Mexico) <es_MX@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: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:38+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:36+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:29+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:33+0000\n"
"X-Generator: Launchpad (build 16872)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 06:01+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:38+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+104 -79
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:30+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -51,7 +51,7 @@ 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 ""
"Jälkimmäisen argumentin many2many -kentässä %s pitää olla SQL-taulu! "
"Jälkimmäisen argumentin moni-moneen -kentässä %s pitää olla SQL-taulu! "
"Antamasi nimi %s ei ole hyväksytty SQL-taulun nimi."
#. module: base
@@ -192,7 +192,7 @@ msgstr "Pääraporttitiedoston polku"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
msgstr "Kustannusten kohdistaminen myynnille"
msgstr "Myynnin analyyttinen jakaantuminen"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet_invoice
@@ -209,13 +209,12 @@ msgid ""
"reports."
msgstr ""
"\n"
"Luo laskut perustuen kuluihin, aikaan ja tuntikirjauksiin.\n"
"Luo laskut perustuen kuluihin ja tuntikortteihin.\n"
"========================================================\n"
"\n"
"Moduuli laskujen luomiseen henkilökulujen pohjalta (tuntilomakkeen "
"merkinnät, kulut,...)\n"
"Moduuli laskujen luomiseen kulujen pohjalta (henkilöstöhallinto, kulut,...)\n"
"\n"
"Voit määritellä hinnastoja kustannuspaikoille ja luoda näillä "
"Voit määritellä hinnastoja analyyttisessä kirjanpidossa ja luoda näillä "
"ennusteraportteja tuloista."
#. module: base
@@ -324,7 +323,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Search Partner"
msgstr "Etsi kumppaneista"
msgstr "Hae kumppani"
#. module: base
#: field:ir.module.category,module_nr:0
@@ -457,7 +456,7 @@ msgstr "Lähdeobjekti"
#. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal
msgid "%(bank_name)s: %(acc_number)s"
msgstr ""
msgstr "%(bank_name)s: %(acc_number)s"
#. module: base
#: view:ir.actions.todo:0
@@ -644,7 +643,7 @@ msgstr "Espanjalainen"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets"
msgstr "Laskuta tuntilistojen mukaan"
msgstr "Laskuta tuntikorttien mukaan"
#. module: base
#: view:base.module.upgrade:0
@@ -2234,7 +2233,7 @@ msgstr "Luku / Kirjoitus / Kopiointi"
#. module: base
#: view:ir.sequence:0
msgid "Second: %(sec)s"
msgstr "Sekuntti: %(sec)s"
msgstr "Sekunti: %(sec)s"
#. module: base
#: field:ir.actions.act_window,view_mode:0
@@ -2273,7 +2272,7 @@ msgstr "Logo"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_cr
msgid "Costa Rica - Accounting"
msgstr ""
msgstr "Costa Rica - Kirjanpito"
#. module: base
#: selection:ir.actions.act_url,target:0
@@ -2912,7 +2911,7 @@ msgstr ""
#: model:res.groups,name:base.group_sale_manager
#: model:res.groups,name:base.group_tool_manager
msgid "Manager"
msgstr "Ylläpitäjä"
msgstr "Päällikkö"
#. module: base
#: code:addons/base/ir/ir_model.py:726
@@ -3296,7 +3295,7 @@ msgstr "Armenia"
#. module: base
#: model:ir.module.module,summary:base.module_hr_evaluation
msgid "Periodical Evaluations, Appraisals, Surveys"
msgstr "Säännöllinen arviointi, kehityskeskustelut, tutkimukset"
msgstr "Säännöllinen arviointi, kehityskeskustelut, kyselyt"
#. module: base
#: model:ir.actions.act_window,name:base.ir_property_form
@@ -3452,7 +3451,7 @@ msgid ""
"Mr., Mrs. "
msgstr ""
"Hallitse yhteyshenkilöiden titteleitä (käytetään kirjeissä yms. jos haluat) "
"esim. Mr. Mrs. "
"esim. Herra, Rouva "
#. module: base
#: view:ir.model.access:0
@@ -3525,7 +3524,7 @@ msgstr "Syntymäpäivä"
#: 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 "Yhteyshenkilöiden arvonimet"
msgstr "Yhteyshenkilöiden tittelit"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_manufacturer
@@ -3754,7 +3753,7 @@ msgstr "Kotitoiminto"
#. module: base
#: field:res.lang,grouping:0
msgid "Separator Format"
msgstr "Erottimen muotoilu"
msgstr "Tuhansien muotoilu"
#. module: base
#: model:ir.module.module,shortdesc:base.module_report_webkit
@@ -3837,7 +3836,7 @@ msgstr "Raportointi"
#: field:res.partner,title:0
#: field:res.partner.title,name:0
msgid "Title"
msgstr "Otsikko"
msgstr "Yhtiömuoto"
#. module: base
#: help:ir.property,res_id:0
@@ -4022,7 +4021,7 @@ msgstr "12. %w = 5"
#. module: base
#: constraint:res.partner.category:0
msgid "Error ! You can not create recursive categories."
msgstr "Virhe! Et voi luoda rekursiivisia kategorioita."
msgstr "Virhe! Et voi luoda rekursiivisia ryhmiä."
#. module: base
#: view:res.lang:0
@@ -4231,7 +4230,7 @@ msgstr "Liechtenstein"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_issue_sheet
msgid "Timesheet on Issues"
msgstr "Tuntilomake asioille"
msgstr "Tuntikortti asioille"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_ltd
@@ -5190,7 +5189,7 @@ msgstr "ir.actions.actions"
#. module: base
#: selection:ir.model.fields,select_level:0
msgid "Not Searchable"
msgstr "Ei haettava"
msgstr "Ei haettavissa"
#. module: base
#: view:ir.config_parameter:0
@@ -5369,7 +5368,7 @@ msgstr "Jokaisen mallin pitää olla uniikki"
#: model:ir.module.category,name:base.module_category_localization
#: model:ir.ui.menu,name:base.menu_localisation
msgid "Localization"
msgstr "Lokalisointi"
msgstr "Kotoistus"
#. module: base
#: model:ir.module.module,description:base.module_web_api
@@ -5484,7 +5483,7 @@ msgstr "Liitetty kohteeseen"
#. module: base
#: field:res.lang,decimal_point:0
msgid "Decimal Separator"
msgstr "Desimaalin erotin"
msgstr "Desimaalierotin"
#. module: base
#: code:addons/orm.py:5319
@@ -5590,7 +5589,7 @@ msgstr "Kenttä"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_long_term
msgid "Long Term Projects"
msgstr "Pitkän aikavälin projektit"
msgstr "Pitkäkestoiset projektit"
#. module: base
#: model:res.country,name:base.ve
@@ -5779,7 +5778,7 @@ msgstr "ir.actions.act_url"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_app
msgid "Application Terms"
msgstr "Sovelluksen käyttöehdot"
msgstr "Sovelluksen termit"
#. module: base
#: model:ir.actions.act_window,help:base.open_module_tree
@@ -6548,7 +6547,7 @@ msgid ""
"request, timesheets, ...), if he is linked to an employee in the system."
msgstr ""
"käyttäjä voi hallita hänen omia henkilöstöhallintotietojaan "
"(poissaolopyyntöjä, tuntilmoakkeitaan,...), mikäli hänet on kytketty "
"(poissaolopyyntöjä, tuntikorttejaan,...), mikäli hänet on kytketty "
"järjestelmään työntekijänä."
#. module: base
@@ -6831,12 +6830,12 @@ msgstr "Konfiguraatiota ei voi monistaa!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_syscohada
msgid "OHADA - Accounting"
msgstr ""
msgstr "OHADA - Kirjanpito"
#. module: base
#: help:res.bank,bic:0
msgid "Sometimes called BIC or Swift."
msgstr "Kutsutaan myös BIC tai SWIFT koodiksi."
msgstr "Kutsutaan myös BIC tai SWIFT -koodiksi."
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in
@@ -6846,7 +6845,7 @@ msgstr "Intia - Kirjanpito"
#. module: base
#: field:res.lang,time_format:0
msgid "Time Format"
msgstr "Aika formaatti"
msgstr "Ajan esitysmuoto"
#. module: base
#: field:res.company,rml_header3:0
@@ -6866,7 +6865,7 @@ msgstr "Määritellyt raportit"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_gtd
msgid "Todo Lists"
msgstr "Tehtävälistat"
msgstr "Tehtäväluettelot"
#. module: base
#: view:ir.actions.report.xml:0
@@ -6953,12 +6952,12 @@ msgstr "Iso-Britannia"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pa
msgid "Panama Localization Chart Account"
msgstr ""
msgstr "Panama kotoistettu tilikartta"
#. module: base
#: help:res.partner.category,active:0
msgid "The active field allows you to hide the category without removing it."
msgstr "Aktiivinen kenttä sallii kategorian piilottamisen poistamatta sitä."
msgstr "Aktiivinen kenttä sallii ryhmän piilottamisen poistamatta sitä."
#. module: base
#: report:ir.module.reference:0
@@ -7154,7 +7153,7 @@ msgstr "Siirtymät"
#: model:ir.module.module,shortdesc:base.module_hr_timesheet
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_sheet
msgid "Timesheets"
msgstr "Tuntilistat"
msgstr "Tuntikortit"
#. module: base
#: help:ir.values,company_id:0
@@ -7248,6 +7247,20 @@ msgid ""
"up a management by affair.\n"
" "
msgstr ""
"\n"
"Tämä moduuli asentaa tuntikorttijärjestelmän.\n"
"==========================================\n"
"\n"
"Jokainen työntekjiä voi kirjata ajankäyttönsä ja seurata tätä "
"projekteittain.\n"
"Projekti on analyyttinen till ja projekti synnyttää kustannuksia "
"analyyttiselle tilille.\n"
"\n"
"Sisältää seurantaan paljon erilaisia aika- ja työntekijäraportteja.\n"
"\n"
"Moduuli on täysin integroitu ksutannuslaskentamoduulin kanssa. Sallii \n"
"hallinnan määrittämisen asiaryhmittäin.\n"
" "
#. module: base
#: field:res.bank,state:0
@@ -7372,7 +7385,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_project_long_term
msgid "Long Term Planning"
msgstr "Pitkän aikavälin suunnittelu"
msgstr "Pitkän tähtäimen suunnittelu (PTS)"
#. module: base
#: field:ir.actions.server,message:0
@@ -7464,7 +7477,7 @@ msgstr "Ecuador - Kirjanpito"
#. module: base
#: field:res.partner.category,name:0
msgid "Category Name"
msgstr "Kategorian nimi"
msgstr "Ryhmän nimi"
#. module: base
#: model:res.country,name:base.mp
@@ -7596,7 +7609,7 @@ msgstr "Namibia"
#. module: base
#: field:res.partner.category,child_ids:0
msgid "Child Categories"
msgstr "Alakategoriat"
msgstr "Aliryhmät"
#. module: base
#: code:addons/base/ir/ir_actions.py:606
@@ -7649,7 +7662,7 @@ msgstr "MDX"
#. module: base
#: view:ir.cron:0
msgid "Scheduled Action"
msgstr "Jaksottimen toiminto"
msgstr "Ajoitettu toimenpide"
#. module: base
#: model:res.country,name:base.bi
@@ -7776,7 +7789,7 @@ msgstr "Reklmaatioporttaali"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pe
msgid "Peru Localization Chart Account"
msgstr "Perun (maa) lokalisoitu tilikartta"
msgstr "Peru (maa) kotoistettu tilikartta"
#. module: base
#: model:ir.module.module,description:base.module_auth_oauth
@@ -7824,7 +7837,7 @@ msgstr "RML sisäinen ylätunniste"
#. module: base
#: field:ir.actions.act_window,search_view_id:0
msgid "Search View Ref."
msgstr "Hakunäkymän referenssi"
msgstr "Hae näytettävä viite"
#. module: base
#: help:res.users,partner_id:0
@@ -8006,7 +8019,7 @@ msgstr "Burkina Faso"
#. module: base
#: selection:ir.model.fields,state:0
msgid "Custom Field"
msgstr "Kustomoitu kenttä"
msgstr "Mukautettu kenttä"
#. module: base
#: model:ir.module.module,summary:base.module_account_accountant
@@ -8347,7 +8360,7 @@ msgstr "Täydet käyttöoikeudet"
#. module: base
#: field:res.partner.category,parent_id:0
msgid "Parent Category"
msgstr "Yläkategoria"
msgstr "Ylempi ryhmä"
#. module: base
#: model:res.country,name:base.fi
@@ -8395,7 +8408,7 @@ msgstr "Viestintä"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic
msgid "Analytic Accounting"
msgstr "Analyyttinen tilikirjanpito"
msgstr "Analyyttinen kirjanpito"
#. module: base
#: model:ir.model,name:base.model_ir_model_constraint
@@ -8429,7 +8442,7 @@ msgstr "ir.server.object.lines"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be
msgid "Belgium - Accounting"
msgstr ""
msgstr "Belgia - Kirjanpito"
#. module: base
#: view:ir.model.access:0
@@ -8458,9 +8471,9 @@ msgid ""
"Keep empty to not save the printed reports. You can use a python expression "
"with the object and time variables."
msgstr ""
"Tämä on liitteen nimi johon tulostus tallennetaan. Jätä tyhjäksi jos "
"tulostettuja raportteija ei haluta tallentaa. Voit käyttää python-lauseketta "
"jossa on objekti- tai aikamuuttuja."
"Tämä on liitteen tiedostonimi, johon tuloste tallennetaan. Jätä tyhjäksi jos "
"tulostettuja raportteja ei haluta tallentaa. Voit käyttää python-lauseketta, "
"jossa on objekti- tai aikamuuttujia."
#. module: base
#: sql_constraint:ir.model.data:0
@@ -8540,7 +8553,7 @@ msgstr "Filippiinit"
#. module: base
#: model:ir.module.module,summary:base.module_hr_timesheet_sheet
msgid "Timesheets, Attendances, Activities"
msgstr "Tuntilomakkeet, Poissaolot, Tehtävät"
msgstr "Tuntikortit, läsnäolot, toiminnot"
#. module: base
#: model:res.country,name:base.ma
@@ -8707,7 +8720,7 @@ msgstr "Dokumentin sivu"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ar
msgid "Argentina Localization Chart Account"
msgstr "Argentiinan lokalisoitu tilikartta"
msgstr "Argentiina kotoistettu tilikartta"
#. module: base
#: field:ir.module.module,description_html:0
@@ -9112,7 +9125,7 @@ msgstr ""
#. module: base
#: field:res.partner.title,shortcut:0
msgid "Abbreviation"
msgstr ""
msgstr "Lyhenne"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_case_job_req_main
@@ -9342,7 +9355,7 @@ msgstr "8. %I:%M:%S %p = 06:25:20 PM"
#. module: base
#: view:ir.filters:0
msgid "Filters shared with all users"
msgstr "Suodattimet jaettu kaikkien käyttäjien kanssa"
msgstr "Suodattimet jotka on jaettu kaikkien käyttäjien kanssa"
#. module: base
#: view:ir.translation:0
@@ -9414,7 +9427,7 @@ msgstr ""
#. module: base
#: view:ir.module.category:0
msgid "Module Category"
msgstr "Moduulin kategoria"
msgstr "Moduuliryhmä"
#. module: base
#: model:res.country,name:base.us
@@ -9546,7 +9559,7 @@ msgstr "Omat pikalinkit"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_si
msgid "Slovenian - Accounting"
msgstr ""
msgstr "Slovenia - Kirjanpito"
#. module: base
#: model:ir.module.module,description:base.module_account_cancel
@@ -9657,7 +9670,7 @@ msgstr "Mallia %s ei ole olemassa!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_jit
msgid "Just In Time Scheduling"
msgstr "Just in time ajoitus (JIT)"
msgstr "JOT-ajoitus (JIT)"
#. module: base
#: view:ir.actions.server:0
@@ -9920,6 +9933,15 @@ msgid ""
"handle an issue.\n"
" "
msgstr ""
"\n"
"Tämä moduuli lisää tuen tuntikortteille projektin asioiden ja virheiden "
"hallintaan.\n"
"============================================================================="
"====\n"
"\n"
"Työkohtaisia lokeja voi ylläpitää käytetyn työajan näyttämiseen "
"käyttäjittäin.\n"
" "
#. module: base
#: model:res.country,name:base.gy
@@ -10279,7 +10301,7 @@ msgstr "Tätä menetelmää ei ole enää olemassa"
#: model:ir.actions.act_window,name:base.action_wizard_update_translations
#: model:ir.ui.menu,name:base.menu_wizard_update_translations
msgid "Synchronize Terms"
msgstr "Synkronoi termi"
msgstr "Synkronoi termit"
#. module: base
#: field:res.lang,thousands_sep:0
@@ -10681,8 +10703,8 @@ msgid ""
"Manage the partner titles you want to have available in your system. The "
"partner titles is the legal status of the company: Private Limited, SA, etc."
msgstr ""
"Hallitse partneriyritysten yritystyyppejä joita on käytössäsi. Näitä ovat "
"esim OY, KY, A/S, GmBH ..."
"Hallitse kumppaniyritysten yritystyyppejä joita on käytössäsi. Näitä ovat "
"esim. Oyj, Oy, Ky, Tmi, Ay, Ry, A/S, GmBH ..."
#. module: base
#: view:res.bank:0
@@ -11558,7 +11580,7 @@ msgstr "RML-sisältö"
#. module: base
#: view:res.lang:0
msgid "Update Terms"
msgstr "Päivitä ehdot"
msgstr "Päivitä termit"
#. module: base
#: field:res.request,act_to:0
@@ -11856,7 +11878,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_bo
msgid "Bolivia Localization Chart Account"
msgstr ""
msgstr "Bolivia kotoistettu tilikartta"
#. module: base
#: model:ir.module.module,description:base.module_plugin_thunderbird
@@ -11876,7 +11898,7 @@ msgstr ""
#. module: base
#: view:res.lang:0
msgid "Legends for Date and Time Formats"
msgstr "Selitykset päivämäärän ja kellonajan muotoilusta"
msgstr "Merkinnät päivämäärän ja kellonajan muotoiluun"
#. module: base
#: selection:ir.actions.server,state:0
@@ -12078,8 +12100,7 @@ msgstr "Käyttäjän viite"
#: code:addons/base/ir/ir_fields.py:226
#, python-format
msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'"
msgstr ""
"\"%s\" ei näyttäisi olevan sallittu päivä/aika kentälle \"%%(field)s\""
msgstr "\"%s\" ei ole sallittu päivä/aika kentälle \"%%(field)s\""
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic
@@ -12175,7 +12196,7 @@ msgstr "Raportin tyyppi"
#: view:res.partner.bank:0
#: view:res.users:0
msgid "State"
msgstr "Tila"
msgstr "Valtio"
#. module: base
#: selection:base.language.install,lang:0
@@ -12195,7 +12216,7 @@ msgstr "4. %b, %B = joulu, joulukuu"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_cl
msgid "Chile Localization Chart Account"
msgstr ""
msgstr "Chile Kotoitettu tilikartta"
#. module: base
#: selection:base.language.install,lang:0
@@ -12333,7 +12354,7 @@ msgstr "Tuo käännös"
#: view:ir.module.module:0
#: field:ir.module.module,category_id:0
msgid "Category"
msgstr "Kategoria"
msgstr "Ryhmä"
#. module: base
#: view:ir.attachment:0
@@ -12797,7 +12818,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_gr
msgid "Greece - Accounting"
msgstr ""
msgstr "Kreikka - Kirjanpito"
#. module: base
#: sql_constraint:res.country:0
@@ -12812,7 +12833,7 @@ msgstr "Poistettavissa"
#. module: base
#: view:res.partner.category:0
msgid "Partner Category"
msgstr "Kumppanin katerogia"
msgstr "Kumppaniryhmä"
#. module: base
#: view:ir.actions.server:0
@@ -12917,7 +12938,7 @@ msgstr "Suodata dokumenttejani"
#. module: base
#: model:ir.module.module,summary:base.module_project_gtd
msgid "Personal Tasks, Contexts, Timeboxes"
msgstr "Henkilökohtaiset tehtävät, Asiakokonaisuudet, Aikalaatikot"
msgstr "Henkilökohtaiset tehtävät, asiakokonaisuudet, aikarajat"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cr
@@ -13005,7 +13026,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_th
msgid "Thailand - Accounting"
msgstr ""
msgstr "Thaimaa - Kirjanpito"
#. module: base
#: view:res.lang:0
@@ -13397,7 +13418,7 @@ msgstr "ir.sequence.type"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll_account
msgid "Belgium - Payroll with Accounting"
msgstr ""
msgstr "Belgia - Kirjanpito ja palkkahallinto"
#. module: base
#: selection:base.language.export,format:0
@@ -13681,8 +13702,8 @@ msgstr ""
"---------------\n"
"* Työntekijät ja hierarkiat: Voit määritellä työntekijät käyttäjinä ja "
"näyttää hierarkiat\n"
"* Henkilöstöosastot\n"
"* Henkilöstötyöt\n"
"* Henkilöstöhallinnon osastot\n"
"* Henkilöstöhallinnon tehtävät\n"
" "
#. module: base
@@ -13904,7 +13925,7 @@ msgstr "Tanska / Dansk"
#. module: base
#: selection:ir.model.fields,select_level:0
msgid "Advanced Search (deprecated)"
msgstr "Kehittynyt haku (vähehksytty)"
msgstr "Kehittynyt haku vanhentunut - hae uudelleen"
#. module: base
#: model:res.country,name:base.cx
@@ -14147,7 +14168,7 @@ msgstr "Useamman dokumentin toiminto"
#: model:ir.actions.act_window,name:base.action_partner_title_partner
#: model:ir.ui.menu,name:base.menu_partner_title_partner
msgid "Titles"
msgstr "Titteli"
msgstr "Tittelit"
#. module: base
#: model:ir.module.module,description:base.module_anonymization
@@ -15190,10 +15211,14 @@ 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 ""
"Erottimen formaatin tulisi olla muotoa [,n] jossa n > 0 ja -1 lopettaa "
"erottelun. Esimerkiksi luku 106500 (tuhaterottimena on käytetty "
"pilkkua):[3,2,-1] esittää sen muodossa 1,06,500;[1,2,-1] esittää sen "
"muodossa 106,50,0;[3] esittää sen muodossa 106,500."
"Tuhansien muotoilun tulisi olla muotoa [3, 0] eli jokaisen kolmen numeron "
"välein on tuhaterotin.\r\n"
"Tuhatmuotoilu annetaan muodossa [,n], jossa n > 0 ja erikoistapauksena n = -"
"1 lopettaa tuhaterottelun. \r\n"
"Esimerkiksi luku 106500 (tuhaterottimena on käytetty pilkkua):\r\n"
"[ 3,2,-1] esittää sen muodossa 1,06,500;\r\n"
"[1,2,-1] esittää sen muodossa 106,50,0;\r\n"
"[3] esittää sen muodossa 106,500."
#. module: base
#: field:ir.module.module,auto_install:0
@@ -15457,7 +15482,7 @@ msgstr "Matkapuhelinnumero"
#: model:ir.model,name:base.model_res_partner_category
#: view:res.partner.category:0
msgid "Partner Categories"
msgstr "Kumppanien kategoriat"
msgstr "Kumppanien ryhmät"
#. module: base
#: view:base.module.upgrade:0
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:30+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:30+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:52+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:34+0000\n"
"X-Generator: Launchpad (build 16872)\n"
"Language: hr\n"
#. module: base
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-25 05:32+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:31+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:53+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:32+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+8 -8
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:32+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -9356,7 +9356,7 @@ msgstr "マリ共和国"
#. module: base
#: model:ir.ui.menu,name:base.menu_project_config_project
msgid "Stages"
msgstr ""
msgstr "ステージ"
#. module: base
#: selection:base.language.install,lang:0
@@ -9623,7 +9623,7 @@ msgstr "アメリカ合衆国 - 勘定科目表"
#: view:res.users:0
#: view:wizard.ir.model.menu.create:0
msgid "Cancel"
msgstr "キャンセル"
msgstr "取消"
#. module: base
#: code:addons/orm.py:1507
@@ -9953,7 +9953,7 @@ msgstr "グループ化…"
#. module: base
#: view:base.module.update:0
msgid "Module Update Result"
msgstr ""
msgstr "モジュール更新結果"
#. module: base
#: model:ir.module.module,description:base.module_analytic_contract_hr_expense
@@ -11331,7 +11331,7 @@ msgstr "町名番地2"
#. module: base
#: model:ir.actions.act_window,name:base.action_view_base_module_update
msgid "Module Update"
msgstr "モジュールの更新"
msgstr "モジュール更新"
#. module: base
#: code:addons/base/module/wizard/base_module_upgrade.py:85
@@ -12752,7 +12752,7 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_base_module_update
msgid "Update Module"
msgstr "モジュールの更新"
msgstr "モジュール更新"
#. module: base
#: view:ir.model.fields:0
@@ -13220,7 +13220,7 @@ msgstr "アドミニストレーション"
#. module: base
#: view:base.module.update:0
msgid "Click on Update below to start the process..."
msgstr "プロセスを開始するために以下にある更新をクリックして下さい。"
msgstr "下の「更新」をクリックして処理を開始してください。"
#. module: base
#: model:res.country,name:base.ir
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:30+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:32+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:32+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:32+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+133 -57
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:32+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -175,7 +175,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
msgstr ""
msgstr "Pāŗdošanas Analītika"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet_invoice
@@ -265,7 +265,7 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "MultiValūtas"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -391,7 +391,7 @@ msgstr ""
#. module: base
#: field:ir.module.category,child_ids:0
msgid "Child Applications"
msgstr ""
msgstr "Apakšaplikācijas"
#. module: base
#: field:res.partner,credit_limit:0
@@ -457,6 +457,7 @@ msgid ""
"One of the records you are trying to modify has already been deleted "
"(Document type: %s)."
msgstr ""
"Kāds no ierakstiem, ko mēģināt labot ir jau dzēsts (Dokumenta Tips: %s)."
#. module: base
#: help:ir.actions.act_window,views:0
@@ -515,7 +516,7 @@ msgstr ""
#. module: base
#: view:workflow.transition:0
msgid "Workflow Transition"
msgstr ""
msgstr "Darbplūsmas Pāreja"
#. module: base
#: model:res.country,name:base.gf
@@ -608,7 +609,7 @@ msgstr "Spāņu (VE) / Español (VE)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets"
msgstr ""
msgstr "Rēķinu piestādīšana pēc darba tabelēm"
#. module: base
#: view:base.module.upgrade:0
@@ -634,7 +635,7 @@ msgstr "Kolumbija"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_mister
msgid "Mister"
msgstr ""
msgstr "Kungs"
#. module: base
#: help:res.country,code:0
@@ -663,7 +664,7 @@ msgstr "Neiztulkots"
#. module: base
#: view:ir.mail_server:0
msgid "Outgoing Mail Server"
msgstr ""
msgstr "Izejošā Pasta Serveris"
#. module: base
#: help:ir.actions.act_window,context:0
@@ -751,6 +752,9 @@ msgid ""
"Contains the installer for marketing-related modules.\n"
" "
msgstr ""
"\n"
"Izvēlne Mārketingam.\n"
" "
#. module: base
#: model:ir.module.module,description:base.module_web_linkedin
@@ -811,7 +815,7 @@ msgstr "Automatizētas darbības"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ro
msgid "Romania - Accounting"
msgstr ""
msgstr "Rumānija - Grāmatvedība"
#. module: base
#: model:ir.model,name:base.model_res_config_settings
@@ -845,7 +849,7 @@ msgstr "Drošība un Autentifikācija"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_calendar
msgid "Web Calendar"
msgstr ""
msgstr "Web Kalendārs"
#. module: base
#: selection:base.language.install,lang:0
@@ -937,12 +941,12 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_webdav
msgid "Shared Repositories (WebDAV)"
msgstr ""
msgstr "Koplietošanas Krātuves (WebDAV)"
#. module: base
#: view:res.users:0
msgid "Email Preferences"
msgstr ""
msgstr "E-pasta Uzstādījumi"
#. module: base
#: code:addons/base/ir/ir_fields.py:195
@@ -1005,7 +1009,7 @@ msgstr "Omāna"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp
msgid "MRP"
msgstr ""
msgstr "Ražošana"
#. module: base
#: model:ir.module.module,description:base.module_hr_attendance
@@ -1027,7 +1031,7 @@ msgstr "Niue"
#. module: base
#: model:ir.module.module,shortdesc:base.module_membership
msgid "Membership Management"
msgstr ""
msgstr "Biedru Pārvaldība"
#. module: base
#: selection:ir.module.module,license:0
@@ -1037,7 +1041,7 @@ msgstr "Cita OSI apstiprināta licence"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_gantt
msgid "Web Gantt"
msgstr ""
msgstr "WWW Gant Diagramma"
#. module: base
#: model:ir.actions.act_window,name:base.act_menu_create
@@ -1064,7 +1068,7 @@ msgstr "Google Lietotāji"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
msgid "Fleet Management"
msgstr ""
msgstr "Autoparka Vadība"
#. module: base
#: help:ir.server.object.lines,value:0
@@ -1146,7 +1150,7 @@ msgstr ""
#. module: base
#: view:res.users:0
msgid "Change the user password."
msgstr ""
msgstr "Mainīt lietotāja paroli."
#. module: base
#: view:res.lang:0
@@ -1241,7 +1245,7 @@ msgstr "Valsts nosaukumam jābūt unikālam!"
#. module: base
#: field:ir.module.module,installed_version:0
msgid "Latest Version"
msgstr ""
msgstr "Jaunākā versija"
#. module: base
#: view:ir.rule:0
@@ -1289,7 +1293,7 @@ msgstr ""
#: code:addons/orm.py:4920
#, python-format
msgid "Record #%d of %s not found, cannot copy!"
msgstr ""
msgstr "Ieraksts #%d %s nav atrasts, nevar kopēt!"
#. module: base
#: field:ir.module.module,contributors:0
@@ -1309,7 +1313,7 @@ msgstr "Char"
#. module: base
#: field:ir.module.category,visible:0
msgid "Visible"
msgstr ""
msgstr "Redzams"
#. module: base
#: model:ir.actions.client,name:base.action_client_base_menu
@@ -1359,7 +1363,7 @@ msgstr "Spāņu (GT) / Español (GT)"
#. module: base
#: field:ir.mail_server,smtp_port:0
msgid "SMTP Port"
msgstr ""
msgstr "SMTP Ports"
#. module: base
#: help:res.users,login:0
@@ -1391,7 +1395,7 @@ msgstr ""
#: code:addons/base/module/wizard/base_language_install.py:53
#, python-format
msgid "Language Pack"
msgstr ""
msgstr "Valodu Paka"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests
@@ -1401,7 +1405,7 @@ msgstr "Pārbaudes"
#. module: base
#: field:ir.actions.report.xml,attachment:0
msgid "Save as Attachment Prefix"
msgstr ""
msgstr "Saglabāt kā pielikuma Prefiksu."
#. module: base
#: field:ir.ui.view_sc,res_id:0
@@ -1459,7 +1463,7 @@ msgstr ""
#. module: base
#: field:ir.module.category,parent_id:0
msgid "Parent Application"
msgstr ""
msgstr "Galvenā Aplikācija"
#. module: base
#: model:ir.actions.act_window,name:base.ir_action_wizard
@@ -1477,12 +1481,12 @@ msgstr "Darbība atcelta"
#. module: base
#: model:ir.module.module,shortdesc:base.module_document
msgid "Document Management System"
msgstr ""
msgstr "Dokumentu Pārvaldes Sistēma"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
msgid "Claims Management"
msgstr ""
msgstr "Klientu pieteikumu Vadība"
#. module: base
#: model:ir.module.module,description:base.module_document_webdav
@@ -1990,6 +1994,8 @@ msgstr "Kreisais vecāks"
#: model:ir.module.module,shortdesc:base.module_project_mrp
msgid "Create Tasks on SO"
msgstr ""
"Veidot uzdevumus projektu vadības modulī, kas bāzēti uz tirdzniecības "
"pasūtījumiem"
#. module: base
#: code:addons/base/ir/ir_model.py:320
@@ -2000,7 +2006,7 @@ msgstr ""
#. module: base
#: field:res.partner.bank,footer:0
msgid "Display on Reports"
msgstr ""
msgstr "Attēlot Atskaitēs"
#. module: base
#: model:ir.module.module,description:base.module_project_timesheet
@@ -2087,7 +2093,7 @@ msgstr "%s (kopēt)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_chart
msgid "Template of Charts of Accounts"
msgstr ""
msgstr "Kontu plānu veidne"
#. module: base
#: field:res.partner,type:0
@@ -2219,7 +2225,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_subscription
msgid "Recurring Documents"
msgstr ""
msgstr "Dokumenti, kas periodiski atkārtojas"
#. module: base
#: model:res.country,name:base.bs
@@ -2422,7 +2428,7 @@ msgstr ""
#: code:addons/orm.py:3843
#, python-format
msgid "A document was modified since you last viewed it (%s:%d)"
msgstr ""
msgstr "Dokuments ir modificēts, kopš pēdējās apskates (%s:%d)"
#. module: base
#: view:workflow:0
@@ -2491,7 +2497,7 @@ msgstr "Grupas (ja nav = globāla)"
#. module: base
#: view:ir.module.module:0
msgid "Extra"
msgstr ""
msgstr "Papildus"
#. module: base
#: model:res.country,name:base.st
@@ -2635,12 +2641,12 @@ msgstr "Angilja"
#. module: base
#: model:ir.actions.report.xml,name:base.report_ir_model_overview
msgid "Model Overview"
msgstr ""
msgstr "Modelis"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_margin
msgid "Margins by Products"
msgstr ""
msgstr "Peļņa pēc Produktiem"
#. module: base
#: model:ir.ui.menu,name:base.menu_invoiced
@@ -2733,7 +2739,7 @@ msgstr ""
#: field:ir.translation,res_id:0
#: field:ir.values,res_id:0
msgid "Record ID"
msgstr ""
msgstr "Ieraksta ID"
#. module: base
#: view:ir.filters:0
@@ -2917,7 +2923,7 @@ msgstr ""
#. module: base
#: view:res.groups:0
msgid "Inherited"
msgstr ""
msgstr "Mantotais"
#. module: base
#: code:addons/base/ir/ir_fields.py:146
@@ -3187,7 +3193,7 @@ msgstr "Kuba"
#: code:addons/report_sxw.py:443
#, python-format
msgid "Unknown report type: %s"
msgstr ""
msgstr "Nezināms atskaites tips: %s"
#. module: base
#: model:ir.module.module,summary:base.module_hr_expense
@@ -3384,7 +3390,7 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_survey_user
msgid "Survey / User"
msgstr ""
msgstr "Aptauja / Lietotājs"
#. module: base
#: view:ir.module.module:0
@@ -3440,7 +3446,7 @@ msgstr "Kontaktpersonu Uzrunas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_manufacturer
msgid "Products Manufacturers"
msgstr ""
msgstr "Produktu Ražotāji"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:240
@@ -3686,7 +3692,7 @@ msgstr "Majota"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_todo
msgid "Tasks on CRM"
msgstr ""
msgstr "Uzdevumi bāzēti uz CRM"
#. module: base
#: help:ir.model.fields,relation_field:0
@@ -3808,7 +3814,7 @@ msgstr ""
#. module: base
#: selection:ir.sequence,implementation:0
msgid "Standard"
msgstr ""
msgstr "Standarta"
#. module: base
#: model:res.country,name:base.ru
@@ -4163,7 +4169,7 @@ msgstr "Portugāle"
#. module: base
#: model:ir.module.module,shortdesc:base.module_share
msgid "Share any Document"
msgstr ""
msgstr "Koplietot jebkuru dokumentu"
#. module: base
#: field:workflow.transition,group_id:0
@@ -4234,7 +4240,7 @@ msgstr "Xor"
#. module: base
#: model:ir.module.category,name:base.module_category_localization_account_charts
msgid "Account Charts"
msgstr ""
msgstr "Kontu Plāni"
#. module: base
#: model:ir.ui.menu,name:base.menu_event_main
@@ -4336,7 +4342,7 @@ msgstr "Kopsavilkums"
#. module: base
#: model:ir.module.category,name:base.module_category_hidden_dependency
msgid "Dependency"
msgstr ""
msgstr "Atkarīgie moduļi"
#. module: base
#: model:ir.module.module,description:base.module_portal
@@ -4425,7 +4431,7 @@ msgstr "Darbību izraisošais Objekts"
#. module: base
#: sql_constraint:ir.sequence.type:0
msgid "`code` must be unique."
msgstr ""
msgstr "'kods' laukam jābūt unikālam."
#. module: base
#: model:ir.module.module,shortdesc:base.module_knowledge
@@ -4477,7 +4483,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_timesheet
msgid "Bill Time on Tasks"
msgstr ""
msgstr "Izrakstīt rēķinus par patērēto laiku"
#. module: base
#: model:ir.module.category,name:base.module_category_marketing
@@ -4766,7 +4772,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,description:base.module_category_marketing
msgid "Helps you manage your marketing campaigns step by step."
msgstr ""
msgstr "Palīdz pārvaldīt mārketinga kampaņas soli pa solim."
#. module: base
#: selection:base.language.install,lang:0
@@ -4812,7 +4818,7 @@ msgstr "Noteikumi"
#. module: base
#: field:ir.mail_server,smtp_host:0
msgid "SMTP Server"
msgstr ""
msgstr "SMTP serveris"
#. module: base
#: code:addons/base/module/module.py:320
@@ -4824,7 +4830,7 @@ msgstr ""
#. module: base
#: view:base.module.upgrade:0
msgid "The selected modules have been updated / installed !"
msgstr ""
msgstr "Izvēlētie moduļi ir atjaunināti / uzinstalēti!"
#. module: base
#: selection:base.language.install,lang:0
@@ -4978,7 +4984,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
msgid "Partners Geo-Localization"
msgstr ""
msgstr "Partneru Ģeo-lokācija"
#. module: base
#: model:res.country,name:base.ke
@@ -4989,7 +4995,7 @@ msgstr "Kenija"
#: model:ir.actions.act_window,name:base.action_translation
#: model:ir.ui.menu,name:base.menu_action_translation
msgid "Translated Terms"
msgstr ""
msgstr "Tulkotie Termini"
#. module: base
#: selection:base.language.install,lang:0
@@ -5056,7 +5062,7 @@ msgstr "Benina"
#: model:ir.actions.act_window,name:base.action_res_partner_bank_type_form
#: model:ir.ui.menu,name:base.menu_action_res_partner_bank_typeform
msgid "Bank Account Types"
msgstr ""
msgstr "Bankas Kontu Tipi"
#. module: base
#: help:ir.sequence,suffix:0
@@ -5192,7 +5198,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_recruitment
msgid "Recruitment Process"
msgstr ""
msgstr "Darbā pieņemšanas Process"
#. module: base
#: model:res.country,name:base.br
@@ -5775,7 +5781,7 @@ msgstr "Angļu (CA)"
#. module: base
#: model:ir.module.category,name:base.module_category_human_resources
msgid "Human Resources"
msgstr ""
msgstr "Personāla Vadība"
#. module: base
#: model:ir.module.module,description:base.module_l10n_syscohada
@@ -8543,7 +8549,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_warning
msgid "Warning Messages and Alerts"
msgstr ""
msgstr "Brīdinājumi"
#. module: base
#: model:ir.actions.act_window,name:base.action_ui_view_custom
@@ -10190,7 +10196,7 @@ msgstr ""
#: view:base.module.upgrade:0
msgid ""
"We suggest to reload the menu tab to see the new menus (Ctrl+T then Ctrl+R)."
msgstr ""
msgstr "Lai redzētu jaunās izvēlnes, pārlādējiet logus (Ctrl+T tad Ctrl+R)."
#. module: base
#: model:ir.actions.act_window,name:base.action_rule
@@ -14720,7 +14726,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_vat
msgid "VAT Number Validation"
msgstr ""
msgstr "PVN numura pārbaude"
#. module: base
#: field:ir.model.fields,complete_name:0
@@ -16443,3 +16449,73 @@ msgstr ""
#~ msgid "Administration Dashboard"
#~ msgstr "Administrēšanas instrumentu panelis"
#~ msgid "Process"
#~ msgstr "Apstrādāt"
#~ msgid "Website of Partner."
#~ msgstr "Partnera Vietne"
#~ msgid "Set password"
#~ msgstr "Uzstādīt paroli"
#~ msgid "Tools / Customization"
#~ msgstr "Rīki / Pielāgošana"
#~ msgid "Calendar Layer"
#~ msgstr "Kalendāra Skatījums"
#~ msgid "Error ! You cannot create recursive associated members."
#~ msgstr "Kļūda! Nevar izveidot rekursīvus saistītos locekļus."
#~ msgid "Multi-Currency in Analytic"
#~ msgstr "Multi-Valūtas Analītiskajos Kontos"
#~ msgid "Report Header / Company Slogan"
#~ msgstr "Ziņojuma virsraksts / Firmas sauklis"
#~ msgid "Openerp web web"
#~ msgstr "OpenERP WWW"
#~ msgid "Expenses Management"
#~ msgstr "Izdevumi"
#~ msgid "Master Procurement Schedule"
#~ msgstr "Automātisko Pasūtījumu Grafiks"
#~ msgid "HR Officer"
#~ msgstr "Personāldaļas darbinieks"
#~ msgid "Openerp web Diagram view"
#~ msgstr "OpenERP WWW Diagrammas skatījums"
#~ msgid "Receive User Feedback"
#~ msgstr "Saņemt Lietotāju Atsauksmes"
#~ msgid "web Dashboard"
#~ msgstr "WWW Instrumentu Panelis"
#~ msgid "Point Of Sale"
#~ msgstr "Kases Iekārtas"
#, python-format
#~ msgid ""
#~ "Operation prohibited by access rules, or performed on an already deleted "
#~ "document (Operation: read, Document type: %s)."
#~ msgstr ""
#~ "Operāciija ir aizliegta, vai arī tiek veikta dokumentam, kas jau ir dzēsts "
#~ "(Operācija lasīt: Dokumenta tips %s)."
#~ msgid "web Gantt"
#~ msgstr "Gant Skatījums"
#~ msgid "Web Chat"
#~ msgstr "WWW Tērzētava"
#, python-format
#~ msgid ""
#~ "You can not create this document (%s) ! Be sure your user belongs to one of "
#~ "these groups: %s."
#~ msgstr ""
#~ "Nevar izveidot dokumentu (%s) ! Pārbaudiet, vai lietotājs pieder kādai no "
#~ "šīm grupām: %s."
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:54+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:33+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:33+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:33+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+3 -3
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:51+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:29+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -10869,7 +10869,7 @@ msgstr "Bankrekeningen gerelateerd aan dit bedrijf"
#: model:ir.ui.menu,name:base.menu_sales
#: model:ir.ui.menu,name:base.next_id_64
msgid "Sales"
msgstr "Verkoop"
msgstr "Verkopen"
#. module: base
#: field:ir.actions.server,child_ids:0
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:59+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:33+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:55+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:33+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+3 -3
View File
@@ -9,13 +9,13 @@ msgstr ""
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2012-12-16 22:18+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.net>\n"
"<webmaster@zupy.com.br>\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: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:36+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+70 -70
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:34+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -211,14 +211,14 @@ msgid ""
"reports."
msgstr ""
"\n"
"Genereaza Facturi din Cheltuieli, Inregistrari ale Fiselor de Pontaj.\n"
"Generează Facturi din Cheltuieli, Înregistrări ale Fișelor de Pontaj.\n"
"========================================================\n"
"\n"
"Modul pentru generarea facturilor pe baza costurilor (resurse umane, "
"cheltuieli, ...).\n"
"\n"
"Puteti defini liste de preturi in contul analitic, puteti face unele raporte "
"teoretice\n"
"Puteți defini liste de preturi în contul analitic, puteți face unele "
"rapoarte teoretice\n"
"ale veniturilor."
#. module: base
@@ -236,8 +236,8 @@ msgid ""
"Properties of base fields cannot be altered in this manner! Please modify "
"them through Python code, preferably through a custom addon!"
msgstr ""
"Proprietatile campurilor principale nu pot fi modificate in acest mod! Va "
"rugam sa le modificati prin codul Python, preferabil printr-un addon "
"Proprietățile câmpurilor principale nu pot fi modificate în acest mod! Vă "
"rugăm sa le modificați prin codul Python, preferabil printr-un addon "
"personalizat!"
#. module: base
@@ -333,12 +333,12 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Search Partner"
msgstr "Cauta Partener"
msgstr "Caută Partener"
#. module: base
#: field:ir.module.category,module_nr:0
msgid "Number of Modules"
msgstr "Numar de Module"
msgstr "Număr de module"
#. module: base
#: help:multi_company.default,company_dest_id:0
@@ -348,7 +348,7 @@ msgstr "Compania unde se pastreaza înregistrarea actuală"
#. module: base
#: field:res.partner.bank.type.field,size:0
msgid "Max. Size"
msgstr "Dimensiunea maxima"
msgstr "Dimensiunea maximă"
#. module: base
#: help:ir.actions.act_window,res_id:0
@@ -379,7 +379,7 @@ msgstr ""
#. module: base
#: sql_constraint:res.lang:0
msgid "The name of the language must be unique !"
msgstr "Numele limbii trebuie sa fie unic !"
msgstr "Numele limbii trebuie să fie unic !"
#. module: base
#: selection:res.request,state:0
@@ -451,7 +451,7 @@ msgstr ""
#: code:addons/orm.py:2649
#, python-format
msgid "Invalid group_by"
msgstr "Grup invalid_dupa"
msgstr "Grupare_După invalidă"
#. module: base
#: field:ir.module.category,child_ids:0
@@ -499,7 +499,7 @@ msgstr "Configurare pași asistent"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_sc
msgid "ir.ui.view_sc"
msgstr "ir.ui.vizualizare_sc"
msgstr "ir.ui.view_sc"
#. module: base
#: view:ir.model.access:0
@@ -1289,7 +1289,7 @@ msgstr "Principatul Andorra"
#. module: base
#: field:ir.rule,perm_read:0
msgid "Apply for Read"
msgstr "Se aplică pentru Citit"
msgstr "Se aplică pentru citire"
#. module: base
#: model:res.country,name:base.mn
@@ -2204,7 +2204,7 @@ msgstr "Timorul de Est"
#: view:ir.module.module:0
#, python-format
msgid "Install"
msgstr "Instalează"
msgstr "Instalați"
#. module: base
#: field:res.currency,accuracy:0
@@ -2704,7 +2704,7 @@ msgstr "Bahamas"
#. module: base
#: field:ir.rule,perm_create:0
msgid "Apply for Create"
msgstr "Aplică pentru Creare"
msgstr "Aplică pentru creare"
#. module: base
#: model:ir.module.category,name:base.module_category_tools
@@ -3310,7 +3310,7 @@ msgstr "Raport RML"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_export
msgid "Import / Export"
msgstr "Import / Export"
msgstr "Importați / Exportați"
#. module: base
#: model:ir.module.module,description:base.module_sale
@@ -3479,7 +3479,7 @@ msgstr "Letonia"
#. module: base
#: view:ir.actions.server:0
msgid "Field Mappings"
msgstr "Aplicatii Camp"
msgstr "Corespondențe câmp"
#. module: base
#: view:base.language.export:0
@@ -4557,7 +4557,7 @@ msgstr "Persoane"
#. module: base
#: view:base.language.import:0
msgid "_Import"
msgstr "_Importă"
msgstr "_Importați"
#. module: base
#: field:res.users,action_id:0
@@ -5266,7 +5266,7 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_res_lang_act_window
#: view:res.lang:0
msgid "Languages"
msgstr "Limbi"
msgstr "Limba"
#. module: base
#: selection:workflow.activity,join_mode:0
@@ -6122,7 +6122,7 @@ msgstr "Asistenta IT"
#. module: base
#: model:ir.module.category,name:base.module_category_specific_industry_applications
msgid "Specific Industry Applications"
msgstr "Aplicatii Specifice Industriei"
msgstr "Aplicații Specifice Industriei"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_docs
@@ -6340,7 +6340,7 @@ msgstr "Nu poate fi cautat"
#: view:ir.config_parameter:0
#: field:ir.config_parameter,key:0
msgid "Key"
msgstr "Tastă"
msgstr "Cheie"
#. module: base
#: field:res.company,rml_header:0
@@ -6398,7 +6398,7 @@ msgstr "Plan de conturi SNC pentru Portugalia"
#: view:ir.actions.report.xml:0
#: model:ir.ui.menu,name:base.menu_security
msgid "Security"
msgstr "Siguranță"
msgstr "Securitate"
#. module: base
#: selection:base.language.install,lang:0
@@ -7050,7 +7050,7 @@ msgstr "ir.actions.act_url"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_app
msgid "Application Terms"
msgstr "Termeni aplicație"
msgstr "Termenii aplicației"
#. module: base
#: model:ir.actions.act_window,help:base.open_module_tree
@@ -8933,7 +8933,7 @@ msgstr "Cod judet"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_multilang
msgid "Multi Language Chart of Accounts"
msgstr "Plan de Conturi multi limbi"
msgstr "Plan de Conturi multi limbă"
#. module: base
#: model:ir.module.module,description:base.module_l10n_gt
@@ -9052,7 +9052,7 @@ msgstr "Contabilitate si Finante"
#. module: base
#: view:ir.module.module:0
msgid "Upgrade"
msgstr "Actualizare"
msgstr "Actualizați"
#. module: base
#: model:ir.module.module,description:base.module_base_action_rule
@@ -9347,7 +9347,7 @@ msgstr "Burundi"
#: view:base.module.configuration:0
#: view:base.module.update:0
msgid "Close"
msgstr "Inchide"
msgstr "Închideți"
#. module: base
#: selection:base.language.install,lang:0
@@ -9570,7 +9570,7 @@ msgstr "Chineza (CN) / 简体中文"
#. module: base
#: field:ir.model.fields,selection:0
msgid "Selection Options"
msgstr "Optiuni de selectie"
msgstr "Opțiuni de selecție"
#. module: base
#: field:res.bank,street:0
@@ -9808,7 +9808,7 @@ msgstr "init"
#: view:res.partner:0
#: field:res.partner,user_id:0
msgid "Salesperson"
msgstr "Agest de vanzari"
msgstr "Agent de vânzări"
#. module: base
#: view:res.lang:0
@@ -9847,13 +9847,13 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p clasa=\"oe_vizualizare_niciuncontinut_creeaza\">\n"
" Faceti click pentru a adauga un contact in agenda "
"dumneavoastra.\n"
"<p clasa=\"oe_view_nocontent_create\">\n"
" Faceți clic pentru a adaugă un contact în agenda "
"dumneavoastră.\n"
" </p><p>\n"
" OpenERP va ajuta sa tineti evidenta cu usurinta a tuturor "
"activitatilor legate de\n"
" un client: discutii, istoricul oportunitatilor de afaceri,\n"
" OpenERP vă ajută să țineți evidența cu ușurință a tuturor "
"activităților legate de\n"
" un client: discuții, istoricul oportunităților de afaceri,\n"
" documente, etc.\n"
" </p>\n"
" "
@@ -10656,8 +10656,8 @@ msgid ""
"If the selected language is loaded in the system, all documents related to "
"this contact will be printed in this language. If not, it will be English."
msgstr ""
"Daca limba selectata este incarcata in sistem, toate documentele asociate "
"acestui contact vor fi tiparite in aceasta limba. Daca nu, limba va fi "
"Dacă limba selectata este încărcata în sistem, toate documentele asociate "
"acestui contact vor fi tipărite în aceasta limba. Dacă nu, limba va fi "
"engleza."
#. module: base
@@ -10726,7 +10726,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_view_base_module_update
msgid "Update Modules List"
msgstr "Actualizati Lista de Module"
msgstr "Actualizați lista de module"
#. module: base
#: code:addons/base/module/module.py:359
@@ -10828,7 +10828,7 @@ msgstr ""
#. module: base
#: field:ir.actions.report.xml,attachment_use:0
msgid "Reload from Attachment"
msgstr "Reincarcati din Atasament"
msgstr "Reîncarcați din Atașament"
#. module: base
#: model:res.country,name:base.mx
@@ -10982,7 +10982,7 @@ msgstr "ID-ul vizualizarii definita in fisierul xml"
#. module: base
#: model:ir.model,name:base.model_base_module_import
msgid "Import Module"
msgstr "Importati Modulul"
msgstr "Importați Modulul"
#. module: base
#: model:res.country,name:base.as
@@ -11595,7 +11595,7 @@ msgstr "Tip de vizualizare"
#. module: base
#: model:ir.ui.menu,name:base.next_id_2
msgid "User Interface"
msgstr "Interfata Utilizator"
msgstr "Interfață utilizator"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_byproduct
@@ -11632,7 +11632,7 @@ msgstr "efectuat"
#. module: base
#: view:ir.actions.act_window:0
msgid "General Settings"
msgstr "Configurari generale"
msgstr "Configurări generale"
#. module: base
#: model:ir.module.module,description:base.module_l10n_in
@@ -12526,7 +12526,7 @@ msgstr "Aceasta metoda nu mai exista"
#: model:ir.actions.act_window,name:base.action_wizard_update_translations
#: model:ir.ui.menu,name:base.menu_wizard_update_translations
msgid "Synchronize Terms"
msgstr "Sincronizati Termenii"
msgstr "Sincronizați termenii"
#. module: base
#: field:res.lang,thousands_sep:0
@@ -12827,7 +12827,7 @@ msgstr "Conturile bancare asociate acestei companii"
#: model:ir.ui.menu,name:base.menu_sales
#: model:ir.ui.menu,name:base.next_id_64
msgid "Sales"
msgstr "Vanzari"
msgstr "Vânzări"
#. module: base
#: field:ir.actions.server,child_ids:0
@@ -13074,7 +13074,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
#, python-format
msgid "Apply Schedule Upgrade"
msgstr "Aplica Programeaza Actualizarea"
msgstr "Aplică actualizările planificate"
#. module: base
#: view:workflow.activity:0
@@ -13444,7 +13444,7 @@ msgstr ""
#. module: base
#: view:base.module.import:0
msgid "Import module"
msgstr "Importati modulul"
msgstr "Importați modulul"
#. module: base
#: field:ir.actions.server,loop_action:0
@@ -13745,10 +13745,10 @@ msgid ""
"not connect to the system. You can assign them groups in order to give them "
"specific access to the applications they need to use in the system."
msgstr ""
"Creati si gestionati utilizatori care se vor conecta la sistem. Utilizatorii "
"pot fi dezactivati in caz ca exista o perioada de timp in care ei nu se "
"conecteaza la sistem. Le puteti atribui grupuri pentru a le da acces "
"specific la aplicatiile de care ei au nevoie in sistem."
"Creați și gestionați utilizatori care se vor conecta la sistem. Utilizatorii "
"pot fi dezactivați în caz că există o perioada de timp în care ei nu se "
"conectează la sistem. Le puteți atribui grupuri pentru a le da acces "
"specific la aplicațiile de care ei au nevoie în sistem."
#. module: base
#: selection:res.request,priority:0
@@ -13856,7 +13856,7 @@ msgstr "Declansati Configurarea"
#. module: base
#: view:base.language.install:0
msgid "Load"
msgstr "Incarca"
msgstr "Încărcați"
#. module: base
#: model:ir.module.module,description:base.module_warning
@@ -14298,7 +14298,7 @@ msgstr "Contactul nu a putut fi creat fara adresa de email !"
#: model:ir.ui.menu,name:base.menu_mrp_config
#: model:ir.ui.menu,name:base.menu_mrp_root
msgid "Manufacturing"
msgstr "Fabricatie"
msgstr "Fabricație"
#. module: base
#: model:res.country,name:base.km
@@ -14931,7 +14931,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_view_base_import_language
#: model:ir.ui.menu,name:base.menu_view_base_import_language
msgid "Import Translation"
msgstr "Importati Traducerea"
msgstr "Importați Traducerea"
#. module: base
#: view:ir.module.module:0
@@ -15470,7 +15470,7 @@ msgstr "Grecia"
#. module: base
#: view:res.config:0
msgid "Apply"
msgstr "Aplicati"
msgstr "Aplicați"
#. module: base
#: field:res.request,trigger_date:0
@@ -15542,7 +15542,7 @@ msgstr "ir.valori"
#. module: base
#: model:ir.model,name:base.model_base_module_update
msgid "Update Module"
msgstr "Actualizati Modulul"
msgstr "Actualizați modulul"
#. module: base
#: view:ir.model.fields:0
@@ -16117,7 +16117,7 @@ msgstr "Administrare"
#. module: base
#: view:base.module.update:0
msgid "Click on Update below to start the process..."
msgstr "Faceti click pe Actualizare pentru a porni procesul..."
msgstr "Faceți clic pe Actualizați pentru a porni procesul..."
#. module: base
#: model:res.country,name:base.ir
@@ -16156,7 +16156,7 @@ msgstr ""
#. module: base
#: view:base.update.translations:0
msgid "Synchronize Translation"
msgstr "Sincronizati Traducerea"
msgstr "Sincronizați traducerea"
#. module: base
#: view:res.partner.bank:0
@@ -16416,7 +16416,7 @@ msgstr ""
#. module: base
#: field:ir.actions.act_window,auto_refresh:0
msgid "Auto-Refresh"
msgstr "Actualizare automata"
msgstr "Actualizare automată"
#. module: base
#: model:ir.module.module,description:base.module_product_expiry
@@ -16699,7 +16699,7 @@ msgstr "Program de depistare Probleme"
#: view:base.module.upgrade:0
#: view:base.update.translations:0
msgid "Update"
msgstr "Actualizare"
msgstr "Actualizați"
#. module: base
#: model:ir.module.module,description:base.module_plugin
@@ -17452,7 +17452,7 @@ msgstr "Helpdesk (Serviciu de asistenta tehnica)"
#. module: base
#: field:ir.rule,perm_write:0
msgid "Apply for Write"
msgstr "Aplica pentru Scriere"
msgstr "Aplicați pentru scriere"
#. module: base
#: field:ir.ui.menu,parent_left:0
@@ -17558,7 +17558,7 @@ msgstr "Vizualizare :"
#. module: base
#: field:ir.model.fields,view_load:0
msgid "View Auto-Load"
msgstr "Vizualizare Incarcare Automata"
msgstr "Vizualizare încarcare automată"
#. module: base
#: model:ir.module.module,description:base.module_l10n_et
@@ -17607,7 +17607,7 @@ msgstr "Fisier Pictograma Web"
#. module: base
#: model:ir.ui.menu,name:base.menu_view_base_module_upgrade
msgid "Apply Scheduled Upgrades"
msgstr "Aplica Actualizarile Planificate"
msgstr "Aplică actualizările planificate"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_journal
@@ -18572,7 +18572,7 @@ msgstr "Conditie"
#: model:ir.actions.client,name:base.modules_updates_act_cl
#: model:ir.ui.menu,name:base.menu_module_updates
msgid "Updates"
msgstr "Actualizari"
msgstr "Actualizări"
#. module: base
#: help:res.currency,rate:0
@@ -18875,7 +18875,7 @@ msgid ""
"Helps you manage your manufacturing processes and generate reports on those "
"processes."
msgstr ""
"Va ajuta sa va administrati procesele de fabricatie si sa generati rapoarte "
"Vă ajută să vă administrați procesele de fabricație și să generați rapoarte "
"pentru aceste procese."
#. module: base
@@ -19030,13 +19030,13 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<clasa p=\"oe_vizualizare_niciuncontinut_creeaza\">\n"
" Faceti click pentru a adauga un contact in agenda "
"dumneavoastra.\n"
"<p clasa=\"oe_view_nocontent_create\">\n"
" Faceți clic pentru a adaugă un contact în agenda "
"dumneavoastră.\n"
" </p><p>\n"
" OpenERP va ajuta sa tineti evidenta cu usurinta a tuturor "
"activitatilor asociate unui\n"
" client; discutii, istoricul oportunitatilor de afaceri,\n"
" OpenERP vă ajută să țineți evidența cu ușurință a tuturor "
"activităților legate de\n"
" un client: discuții, istoricul oportunităților de afaceri,\n"
" documente, etc.\n"
" </p>\n"
" "
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:34+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:34+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:34+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:49+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:28+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:56+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:34+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 06:01+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:39+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:35+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:35+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:35+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:57+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:35+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:35+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:36+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:36+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+3 -3
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:38+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -11642,7 +11642,7 @@ msgid ""
msgstr ""
"\n"
"模块提供事件变更警告。\n"
" ==============================================\n"
"==============================================\n"
"\n"
"Warning messages can be displayed for objects like sale order, purchase "
"order,\n"
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 05:58+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:36+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
+36 -25
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-11-23 06:00+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-19 05:37+0000\n"
"X-Generator: Launchpad (build 16872)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -50,7 +50,7 @@ msgstr "日期時間"
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 "「多對多(many2many)」欄位 %s 之第二個引數須為 SQL 表格!您用了並非有效 SQL 表格名稱之 %s。"
msgstr "「多對多(many2many)」欄位 %s 之第二個引數須為 SQL 表格!您輸入的 %s 並非有效 SQL 表格名稱。"
#. module: base
#: field:ir.ui.view,arch:0
@@ -61,7 +61,7 @@ msgstr "檢視架構"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
msgstr "報價, 銷售訂單, 交貨及發票管理"
msgstr "報價單, 銷貨單, 發貨及發票管理"
#. module: base
#: selection:ir.sequence,implementation:0
@@ -88,7 +88,7 @@ msgstr "幫助你管理專案,追蹤任務,生成計劃"
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
msgstr "商店觸控螢幕界面"
msgstr "店面用觸控螢幕界面"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@@ -122,15 +122,15 @@ msgid ""
" "
msgstr ""
"\n"
"在產品表格中加入製造商及屬性之模組\n"
"此模組在產品表單中加入製造商及屬性\n"
"====================================================================\n"
"\n"
"您可以對一件產品做以下定義:\n"
"您可以對產品定義以下內容:\n"
"-----------------------------------------------\n"
" * 製造商\n"
" * 製造商的產品名稱\n"
" * 製造商的產品代碼\n"
" * 產品性質\n"
" * 產品屬性\n"
" "
#. module: base
@@ -145,11 +145,14 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
"\n"
"此模組將 Google 使用者加到 res user 中。\n"
"========================================\n"
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
msgstr "如果聯絡人是員工則請勾選"
msgstr "如果聯絡人是員工則請勾選此項"
#. module: base
#: help:ir.model.fields,domain:0
@@ -232,7 +235,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:374
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
msgstr ""
msgstr "不允許重新命名稀疏欄位「%s」"
#. module: base
#: model:res.country,name:base.sz
@@ -286,6 +289,12 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"智利會計科目及稅務在地化。\n"
"==============================================\n"
"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n"
"\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
@@ -324,7 +333,7 @@ msgstr "最大尺寸"
msgid ""
"Database ID of record to open in form view, when ``view_mode`` is set to "
"'form' only"
msgstr ""
msgstr "當「檢視模式」僅設為「表單」時,將開啟的紀錄的資料庫 ID"
#. module: base
#: help:ir.values,key2:0
@@ -389,7 +398,7 @@ msgstr ""
msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
msgstr "已有一共享的過濾器被設為 %(model)s 的預設過濾器。要設定新的預設過濾器前,請先修改或刪除原有預設過濾器。"
#. module: base
#: code:addons/orm.py:2649
@@ -465,7 +474,7 @@ msgstr "所指定為無效的日期/時間格式指示。請參照當您編寫
msgid ""
"One of the records you are trying to modify has already been deleted "
"(Document type: %s)."
msgstr ""
msgstr "您要修改的紀錄已被刪除(文件類型: %s)。"
#. module: base
#: help:ir.actions.act_window,views:0
@@ -691,7 +700,7 @@ msgstr "自訂欄位名稱開頭必須是 'x_' !"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_mx
msgid "Mexico - Accounting"
msgstr ""
msgstr "墨西哥 - 會計"
#. module: base
#: help:ir.actions.server,action_id:0
@@ -847,7 +856,7 @@ msgstr "自動化動作"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ro
msgid "Romania - Accounting"
msgstr ""
msgstr "羅馬尼亞 - 會計"
#. module: base
#: model:ir.model,name:base.model_res_config_settings
@@ -970,7 +979,7 @@ msgstr "報表類型,如 pdf, html, raw, sxw, odt, html2html, mako2html, ..."
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_webdav
msgid "Shared Repositories (WebDAV)"
msgstr ""
msgstr "共享的儲存庫(WebDAV)"
#. module: base
#: view:res.users:0
@@ -997,7 +1006,7 @@ msgstr "辛巴威"
#: help:ir.model.constraint,type:0
msgid ""
"Type of the constraint: `f` for a foreign key, `u` for other constraints."
msgstr ""
msgstr "限制條件類型:「f」為 foreign key ,「u」代表其他限制條件。"
#. module: base
#: view:ir.actions.report.xml:0
@@ -1092,7 +1101,7 @@ msgstr "請求參考類型"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_base_account
msgid "Google Users"
msgstr ""
msgstr "Google 使用者"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
@@ -1260,6 +1269,8 @@ msgid ""
"Language with code \"%s\" is not defined in your system !\n"
"Define it through the Administration menu."
msgstr ""
"您的系統中尚未定義語言代碼為「 %s 」的語言! \n"
"請於管理者介面中定義。"
#. module: base
#: model:res.country,name:base.gu
@@ -1269,7 +1280,7 @@ msgstr "關島(美屬)"
#. module: base
#: sql_constraint:res.country:0
msgid "The name of the country must be unique !"
msgstr ""
msgstr "國家名稱必須為獨一無二的!"
#. module: base
#: field:ir.module.module,installed_version:0
@@ -1406,7 +1417,7 @@ msgid ""
"suitable\n"
" for uploading to OpenERP's translation "
"platform,"
msgstr ""
msgstr "TGZ 格式:這是含有 PO 格式檔案的壓縮檔,適用於直接上傳至 OpenERP 的翻譯平台。"
#. module: base
#: view:res.lang:0
@@ -1430,7 +1441,7 @@ msgstr "測試"
#. module: base
#: field:ir.actions.report.xml,attachment:0
msgid "Save as Attachment Prefix"
msgstr ""
msgstr "另存附件檔案的前綴字元"
#. module: base
#: field:ir.ui.view_sc,res_id:0
@@ -1467,7 +1478,7 @@ msgstr "海地"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll
msgid "French Payroll"
msgstr ""
msgstr "法國薪資"
#. module: base
#: view:ir.ui.view:0
@@ -1506,12 +1517,12 @@ msgstr "操作取消"
#. module: base
#: model:ir.module.module,shortdesc:base.module_document
msgid "Document Management System"
msgstr ""
msgstr "文件管理系統"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
msgid "Claims Management"
msgstr ""
msgstr "申訴管理"
#. module: base
#: model:ir.module.module,description:base.module_document_webdav
@@ -13105,7 +13116,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll_account
msgid "Belgium - Payroll with Accounting"
msgstr ""
msgstr "比利時 - 薪資(含會計)"
#. module: base
#: selection:base.language.export,format:0
+2
View File
@@ -242,6 +242,8 @@ class ir_attachment(osv.osv):
# performed in batch as much as possible.
ima = self.pool.get('ir.model.access')
for model, targets in model_attachments.iteritems():
if model not in self.pool:
continue
if not ima.check(cr, uid, model, 'read', False):
# remove all corresponding attachment ids
for attach_id in itertools.chain(*targets.values()):
+43 -14
View File
@@ -3,6 +3,7 @@
#----------------------------------------------------------
import logging
import re
import sys
import werkzeug.exceptions
import werkzeug.routing
@@ -74,8 +75,7 @@ class ir_http(osv.AbstractModel):
request.disable_db = True
request.uid = None
def _authenticate(self, func, arguments):
auth_method = getattr(func, "auth", "user")
def _authenticate(self, auth_method='user'):
if request.session.uid:
try:
request.session.check_security()
@@ -87,13 +87,16 @@ class ir_http(osv.AbstractModel):
getattr(self, "_auth_method_%s" % auth_method)()
return auth_method
def _handle_404(self, exception):
raise exception
def _handle_exception(self, exception):
if isinstance(exception, openerp.exceptions.AccessError):
code = 403
else:
code = getattr(exception, 'code', 500)
def _handle_403(self, exception):
raise exception
fn = getattr(self, '_handle_%d' % code, self._handle_unknown_exception)
return fn(exception)
def _handle_500(self, exception):
def _handle_unknown_exception(self, exception):
raise exception
def _dispatch(self):
@@ -101,13 +104,16 @@ class ir_http(osv.AbstractModel):
try:
func, arguments = self._find_handler()
except werkzeug.exceptions.NotFound, e:
return self._handle_404(e)
return self._handle_exception(e)
# check authentication level
try:
auth_method = self._authenticate(func, arguments)
except werkzeug.exceptions.NotFound, e:
return self._handle_403(e)
auth_method = self._authenticate(getattr(func, "auth", None))
except Exception:
# force a Forbidden exception with the original traceback
return self._handle_exception(
convert_exception_to(
werkzeug.exceptions.Forbidden))
# post process arg to set uid on browse records
for arg in arguments.itervalues():
@@ -121,9 +127,7 @@ class ir_http(osv.AbstractModel):
if isinstance(result, Exception):
raise result
except Exception, e:
fn = getattr(self, '_handle_%s' % getattr(e, 'code', 500),
self._handle_500)
return fn(e)
return self._handle_exception(e)
return result
@@ -139,4 +143,29 @@ class ir_http(osv.AbstractModel):
return self._routing_map
def convert_exception_to(to_type, with_message=False):
""" Should only be called from an exception handler. Fetches the current
exception data from sys.exc_info() and creates a new exception of type
``to_type`` with the original traceback.
If ``with_message`` is ``True``, sets the new exception's message to be
the stringification of the original exception. If ``False``, does not
set the new exception's message. Otherwise, uses ``with_message`` as the
new exception's message.
:type with_message: str|bool
"""
etype, original, tb = sys.exc_info()
try:
if with_message is False:
message = None
elif with_message is True:
message = str(original)
else:
message = str(with_message)
raise to_type, message, tb
except to_type, e:
return e
# vim:et:
+1 -1
View File
@@ -425,7 +425,7 @@ class ir_translation(osv.osv):
"""
return ir_translation_import_cursor(cr, uid, self, context=context)
def load(self, cr, modules, langs, context=None):
def load_module_terms(self, cr, modules, langs, context=None):
context = dict(context or {}) # local copy
for module_name in modules:
modpath = openerp.modules.get_module_path(module_name)
+1 -1
View File
@@ -759,7 +759,7 @@ class module(osv.osv):
elif not isinstance(filter_lang, (list, tuple)):
filter_lang = [filter_lang]
modules = [m.name for m in self.browse(cr, uid, ids) if m.state == 'installed']
self.pool.get('ir.translation').load(cr, modules, filter_lang, context=context)
self.pool.get('ir.translation').load_module_terms(cr, modules, filter_lang, context=context)
def check(self, cr, uid, ids, context=None):
for mod in self.browse(cr, uid, ids, context=context):
@@ -5,9 +5,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//header-date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//company"/></drawString>
<stroke color="#000000"/>
<lines size="8">1.3cm 19.3cm 28.5cm 19.3cm</lines>
+18 -20
View File
@@ -27,7 +27,6 @@ from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp.tools.safe_eval import safe_eval as eval
from openerp.tools import image_resize_image
from openerp.report.render.rml2pdf import customfonts
class multi_company_default(osv.osv):
"""
@@ -183,17 +182,20 @@ class res_company(osv.osv):
def onchange_font_name(self, cr, uid, ids, font, rml_header, rml_header2, rml_header3, context=None):
""" To change default header style of all <para> and drawstring. """
def _change_header(header,font):
""" Replace default fontname use in header and setfont tag """
default_para = re.sub('fontName.?=.?".*"', 'fontName="%s"'% font,header)
return re.sub('(<setFont.?name.?=.?)(".*?")(.)', '\g<1>"%s"\g<3>'% font,default_para)
default_para = re.sub('fontName.?=.?".*"', 'fontName="%s"'% font, header)
return re.sub('(<setFont.?name.?=.?)(".*?")(.)', '\g<1>"%s"\g<3>'% font, default_para)
if not font:
return True
fontname = self.pool.get('res.font').browse(cr, uid, font, context=context).name
return {'value':{
'rml_header': _change_header(rml_header,fontname),
'rml_header2':_change_header(rml_header2,fontname),
'rml_header3':_change_header(rml_header3,fontname)
'rml_header': _change_header(rml_header, fontname),
'rml_header2':_change_header(rml_header2, fontname),
'rml_header3':_change_header(rml_header3, fontname)
}}
def on_change_country(self, cr, uid, ids, country_id, context=None):
@@ -294,12 +296,8 @@ class res_company(osv.osv):
def _get_font(self, cr, uid, ids):
font_obj = self.pool.get('res.font')
res = font_obj.search(cr, uid, [('name', '=', 'Helvetica')], limit=1)
if res:
return res[0]
font_obj.init_no_scan(cr, uid)
return font_obj.search(cr, uid, [('name', '=', 'Helvetica')], limit=1)[0]
res = font_obj.search(cr, uid, [('family', '=', 'Helvetica'), ('mode', '=', 'all')], limit=1)
return res and res[0] or False
_header = """
<header>
@@ -307,20 +305,20 @@ class res_company(osv.osv):
<frame id="first" x1="28.0" y1="28.0" width="%s" height="%s"/>
<stylesheet>
<!-- Set here the default font to use for all <para> tags -->
<paraStyle name='Normal' fontName="DejaVu Sans"/>
<paraStyle name='Normal' fontName="DejaVuSans"/>
</stylesheet>
<pageGraphics>
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="%s" y="%s"> [[ formatLang(time.strftime("%%Y-%%m-%%d"), date=True) ]] [[ time.strftime("%%H:%%M") ]]</drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawCentredString x="%s" y="%s">[[ company.partner_id.name ]]</drawCentredString>
<stroke color="#000000"/>
<lines>%s</lines>
<!-- Set here the default font to use for all <drawString> tags -->
<!-- don't forget to change the 2 other occurence of <setFont> above if needed -->
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
</pageGraphics>
</pageTemplate>
</header>"""
@@ -345,13 +343,13 @@ class res_company(osv.osv):
<frame id="first" x1="1.3cm" y1="3.0cm" height="%s" width="19.0cm"/>
<stylesheet>
<!-- Set here the default font to use for all <para> tags -->
<paraStyle name='Normal' fontName="DejaVu Sans"/>
<paraStyle name='Normal' fontName="DejaVuSans"/>
<paraStyle name="main_footer" fontSize="8.0" alignment="CENTER"/>
<paraStyle name="main_header" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<pageGraphics>
<!-- Set here the default font to use for all <drawString> tags -->
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<!-- You Logo - Change X,Y,Width and Height -->
<image x="1.3cm" y="%s" height="40.0" >[[ company.logo or removeParentNode('image') ]]</image>
<fill color="black"/>
@@ -396,7 +394,7 @@ class res_company(osv.osv):
return {'value': {'rml_header': self._header_a4}}
def act_discover_fonts(self, cr, uid, ids, context=None):
return self.pool.get("res.font").discover_fonts(cr, uid, ids, context)
return self.pool.get("res.font").font_scan(cr, uid, context=context)
_defaults = {
'currency_id': _get_euro,
+1 -1
View File
@@ -85,7 +85,7 @@
<label for="font" />
<div>
<div>
<field name="font" class="oe_inline" colspan="2" on_change="onchange_font_name(font, rml_header, rml_header2, rml_header3)"/>
<field name="font" class="oe_inline" colspan="2" on_change="onchange_font_name(font, rml_header, rml_header2, rml_header3)" domain="[('mode', 'in', ('normal', 'regular', 'all', 'book'))]" />
<button string="(reload fonts)" name="act_discover_fonts" type="object" class="oe_link" colspan="1"/>
</div>
</div>
+55 -36
View File
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2013 OpenERP SA (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -20,6 +20,7 @@
##############################################################################
from reportlab.pdfbase import ttfonts
from openerp.modules.registry import RegistryManager
from openerp.osv import fields, osv
from openerp.report.render.rml2pdf import customfonts
@@ -40,57 +41,75 @@ _logger = logging.getLogger(__name__)
class res_font(osv.Model):
_name = "res.font"
_description = 'Fonts available'
_order = 'name'
_order = 'family,name,id'
_rec_name = 'family'
_columns = {
'name': fields.char("Name", required=True),
'family': fields.char("Font family", required=True),
'name': fields.char("Font Name", required=True),
'path': fields.char("Path", required=True),
'mode': fields.char("Mode", required=True),
}
_sql_constraints = [
('name_font_uniq', 'unique(name)', 'You can not register two fonts with the same name'),
('name_font_uniq', 'unique(family, name)', 'You can not register two fonts with the same name'),
]
def discover_fonts(self, cr, uid, ids, context=None):
"""Scan fonts on the file system, add them to the list of known fonts
and create font object for the new ones"""
customfonts.CustomTTFonts = customfonts.BaseCustomTTFonts
def font_scan(self, cr, uid, lazy=False, context=None):
"""Action of loading fonts
In lazy mode will scan the filesystem only if there is no founts in the database and sync if no font in CustomTTFonts
In not lazy mode will force scan filesystem and sync
"""
if lazy:
# lazy loading, scan only if no fonts in db
found_fonts_ids = self.search(cr, uid, [('path', '!=', '/dev/null')], context=context)
if not found_fonts_ids:
# no scan yet or no font found on the system, scan the filesystem
self._scan_disk(cr, uid, context=context)
elif len(customfonts.CustomTTFonts) == 0:
# CustomTTFonts list is empty
self._sync(cr, uid, context=context)
else:
self._scan_disk(cr, uid, context=context)
return True
found_fonts = {}
def _scan_disk(self, cr, uid, context=None):
"""Scan the file system and register the result in database"""
found_fonts = []
for font_path in customfonts.list_all_sysfonts():
try:
font = ttfonts.TTFontFile(font_path)
_logger.debug("Found font %s at %s", font.name, font_path)
if not found_fonts.get(font.familyName):
found_fonts[font.familyName] = {'name': font.familyName}
mode = font.styleName.lower().replace(" ", "")
customfonts.CustomTTFonts.append((font.familyName, font.name, font_path, mode))
found_fonts.append((font.familyName, font.name, font_path, font.styleName))
except ttfonts.TTFError:
_logger.warning("Could not register Font %s", font_path)
# add default PDF fonts
for family in customfonts.BasePDFFonts:
if not found_fonts.get(family):
found_fonts[family] = {'name': family}
for family, name, path, mode in found_fonts:
if not self.search(cr, uid, [('family', '=', family), ('name', '=', name)], context=context):
self.create(cr, uid, {
'family': family, 'name': name,
'path': path, 'mode': mode,
}, context=context)
# remove deleted fonts
existing_font_ids = self.search(cr, uid, [], context=context)
existing_font_names = []
for font in self.browse(cr, uid, existing_font_ids):
existing_font_names.append(font.name)
if font.name not in found_fonts.keys():
self.unlink(cr, uid, font.id, context=context)
# remove fonts not present on the disk anymore
existing_font_names = [name for (family, name, path, mode) in found_fonts]
inexistant_fonts = self.search(cr, uid, [('name', 'not in', existing_font_names), ('path', '!=', '/dev/null')], context=context)
if inexistant_fonts:
self.unlink(cr, uid, inexistant_fonts, context=context)
# add unknown fonts
for family, vals in found_fonts.items():
if family not in existing_font_names:
self.create(cr, uid, vals, context=context)
RegistryManager.signal_caches_change(cr.dbname)
self._sync(cr, uid, context=context)
return True
def init_no_scan(self, cr, uid, context=None):
"""Add demo data for PDF fonts without scan (faster for db creation)"""
for font in customfonts.BasePDFFonts:
if not self.search(cr, uid, [('name', '=', font)], context=context):
self.create(cr, uid, {'name':font}, context=context)
return True
def _sync(self, cr, uid, context=None):
"""Set the customfonts.CustomTTFonts list to the content of the database"""
customfonts.CustomTTFonts = []
found_fonts_ids = self.search(cr, uid, [('path', '!=', '/dev/null')], context=context)
for font in self.browse(cr, uid, found_fonts_ids, context=None):
customfonts.CustomTTFonts.append((font.family, font.name, font.path, font.mode))
return True
def clear_caches(self):
"""Force worker to resync at next report loading by setting an empty font list"""
customfonts.CustomTTFonts = []
return super(res_font, self).clear_caches()
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:variable name="initial_bottom_pos">20.5</xsl:variable>
<xsl:variable name="initial_left_pos">1</xsl:variable>
<xsl:variable name="height_increment">6.5</xsl:variable>
<xsl:variable name="width_increment">10</xsl:variable>
<xsl:variable name="frame_height">5.5cm</xsl:variable>
<xsl:variable name="frame_width">10cm</xsl:variable>
<xsl:variable name="number_columns">2</xsl:variable>
<xsl:variable name="max_frames">8</xsl:variable>
<xsl:variable name="initial_bottom_pos">24.5</xsl:variable>
<xsl:variable name="initial_left_pos">0.5</xsl:variable>
<xsl:variable name="height_increment">3.5</xsl:variable>
<xsl:variable name="width_increment">7</xsl:variable>
<xsl:variable name="frame_height">3.7cm</xsl:variable>
<xsl:variable name="frame_width">7cm</xsl:variable>
<xsl:variable name="number_columns">3</xsl:variable>
<xsl:variable name="max_frames">24</xsl:variable>
<xsl:template match="/">
<xsl:apply-templates select="addresses"/>
+1 -1
View File
@@ -274,7 +274,7 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<form string="Users" version="7.0">
<field name="image" widget='image' class="oe_right oe_avatar" options='{"preview_image": "image_small"}'/>
<field name="image" readonly="0" widget='image' class="oe_right oe_avatar" options='{"preview_image": "image_small"}'/>
<h1>
<field name="name" readonly="1" class="oe_inline"/>
</h1>
+1
View File
@@ -663,6 +663,7 @@
<rng:optional><rng:attribute name="string" /></rng:optional>
<rng:optional><rng:attribute name="orientation" /></rng:optional>
<rng:optional><rng:attribute name="type" /></rng:optional>
<rng:optional><rng:attribute name="stacked" /></rng:optional>
<rng:optional><rng:attribute name="color"/></rng:optional>
<rng:oneOrMore>
<rng:ref name="field"/>
@@ -43,6 +43,8 @@
"access_ir_values_group_all","ir_values group_all","model_ir_values",,1,1,1,1
"access_res_company_group_erp_manager","res_company group_erp_manager","model_res_company","group_erp_manager",1,1,1,1
"access_res_company_group_user","res_company group_user","model_res_company",,1,0,0,0
"access_res_font_group_erp_manager","res_font group_erp_manager","model_res_font","group_erp_manager",1,1,1,1
"access_res_font_group_all","res_font group_all","model_res_font",,1,0,0,0
"access_res_country_group_all","res_country group_user_all","model_res_country",,1,0,0,0
"access_res_country_state_group_all","res_country_state group_user_all","model_res_country_state",,1,0,0,0
"access_res_country_group_user","res_country group_user","model_res_country","group_partner_manager",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
43 access_ir_values_group_all ir_values group_all model_ir_values 1 1 1 1
44 access_res_company_group_erp_manager res_company group_erp_manager model_res_company group_erp_manager 1 1 1 1
45 access_res_company_group_user res_company group_user model_res_company 1 0 0 0
46 access_res_font_group_erp_manager res_font group_erp_manager model_res_font group_erp_manager 1 1 1 1
47 access_res_font_group_all res_font group_all model_res_font 1 0 0 0
48 access_res_country_group_all res_country group_user_all model_res_country 1 0 0 0
49 access_res_country_state_group_all res_country_state group_user_all model_res_country_state 1 0 0 0
50 access_res_country_group_user res_country group_user model_res_country group_partner_manager 1 1 1 1
+1 -1
View File
@@ -311,7 +311,7 @@ class test_translation(common.TransactionCase):
self.res_category = self.registry('res.partner.category')
self.ir_translation = self.registry('ir.translation')
cr, uid = self.cr, self.uid
self.registry('ir.translation').load(cr, ['base'], ['fr_FR'])
self.registry('ir.translation').load_module_terms(cr, ['base'], ['fr_FR'])
self.cat_id = self.res_category.create(cr, uid, {'name': 'Customers'})
self.ir_translation.create(cr, uid, {'name': 'res.partner.category,name', 'module':'base',
'value': 'Clients', 'res_id': self.cat_id, 'lang':'fr_FR', 'state':'translated', 'type': 'model'})
+139 -3
View File
@@ -1,6 +1,9 @@
from functools import partial
import unittest2
import lxml.etree
from lxml.builder import E
import openerp.tests.common as common
from openerp.osv.orm import except_orm
from openerp.tools import mute_logger
@@ -8,7 +11,7 @@ from openerp.tools import mute_logger
class test_views(common.TransactionCase):
@mute_logger('openerp.osv.orm', 'openerp.addons.base.ir.ir_ui_view')
def test_00_init_check_views(self):
def test_whatever(self):
Views = self.registry('ir.ui.view')
self.assertTrue(Views.pool._init)
@@ -40,7 +43,7 @@ class test_views(common.TransactionCase):
""",
})
def test_20_remove_unexisting_attribute(self):
def test_nonexistent_attribute_removal(self):
Views = self.registry('ir.ui.view')
Views.create(self.cr, self.uid, {
'name': 'Test View',
@@ -65,7 +68,7 @@ class test_views(common.TransactionCase):
self.cr.execute(query, kw)
return self.cr.fetchone()[0]
def test_10_validate_custom_views(self):
def test_custom_view_validation(self):
Views = self.registry('ir.ui.view')
model = 'ir.actions.act_url'
@@ -113,6 +116,139 @@ class test_views(common.TransactionCase):
with mute_logger('openerp.osv.orm', 'openerp.addons.base.ir.ir_ui_view'):
self.assertFalse(validate()) # bad inherited view
def test_view_inheritance(self):
Views = self.registry('ir.ui.view')
v1 = Views.create(self.cr, self.uid, {
'name': "bob",
'model': 'ir.ui.view',
'arch': """
<form string="Base title" version="7.0">
<separator string="separator" colspan="4"/>
<footer>
<button name="action_next" type="object" string="Next button"/>
or
<button string="Skip" special="cancel" />
</footer>
</form>
"""
})
v2 = Views.create(self.cr, self.uid, {
'name': "edmund",
'model': 'ir.ui.view',
'inherit_id': v1,
'arch': """
<data>
<form position="attributes" version="7.0">
<attribute name="string">Replacement title</attribute>
</form>
<footer position="replace">
<footer>
<button name="action_next" type="object" string="New button"/>
</footer>
</footer>
<separator string="separator" position="replace">
<p>Replacement data</p>
</separator>
</data>
"""
})
v3 = Views.create(self.cr, self.uid, {
'name': 'jake',
'model': 'ir.ui.view',
'inherit_id': v1,
'priority': 17,
'arch': """
<footer position="attributes">
<attribute name="thing">bob</attribute>
</footer>
"""
})
view = self.registry('ir.ui.view').fields_view_get(
self.cr, self.uid, v2, view_type='form', context={
# fucking what?
'check_view_ids': [v2, v3]
})
self.assertEqual(view['type'], 'form')
self.assertEqual(
lxml.etree.tostring(lxml.etree.fromstring(
view['arch'],
parser=lxml.etree.XMLParser(remove_blank_text=True)
)),
'<form string="Replacement title" version="7.0">'
'<p>Replacement data</p>'
'<footer thing="bob">'
'<button name="action_next" type="object" string="New button"/>'
'</footer>'
'</form>')
def test_view_inheritance_divergent_models(self):
Views = self.registry('ir.ui.view')
v1 = Views.create(self.cr, self.uid, {
'name': "bob",
'model': 'ir.ui.view.custom',
'arch': """
<form string="Base title" version="7.0">
<separator string="separator" colspan="4"/>
<footer>
<button name="action_next" type="object" string="Next button"/>
or
<button string="Skip" special="cancel" />
</footer>
</form>
"""
})
v2 = Views.create(self.cr, self.uid, {
'name': "edmund",
'model': 'ir.ui.view',
'inherit_id': v1,
'arch': """
<data>
<form position="attributes" version="7.0">
<attribute name="string">Replacement title</attribute>
</form>
<footer position="replace">
<footer>
<button name="action_next" type="object" string="New button"/>
</footer>
</footer>
<separator string="separator" position="replace">
<p>Replacement data</p>
</separator>
</data>
"""
})
v3 = Views.create(self.cr, self.uid, {
'name': 'jake',
'model': 'ir.ui.menu',
'inherit_id': v1,
'priority': 17,
'arch': """
<footer position="attributes">
<attribute name="thing">bob</attribute>
</footer>
"""
})
view = self.registry('ir.ui.view').fields_view_get(
self.cr, self.uid, v2, view_type='form', context={
# fucking what?
'check_view_ids': [v2, v3]
})
self.assertEqual(view['type'], 'form')
self.assertEqual(
lxml.etree.tostring(lxml.etree.fromstring(
view['arch'],
parser=lxml.etree.XMLParser(remove_blank_text=True)
)),
'<form string="Replacement title" version="7.0">'
'<p>Replacement data</p>'
'<footer>'
'<button name="action_next" type="object" string="New button"/>'
'</footer>'
'</form>')
if __name__ == '__main__':
unittest2.main()
+74 -75
View File
@@ -3,7 +3,6 @@
# OpenERP HTTP layer
#----------------------------------------------------------
import ast
import cgi
import collections
import contextlib
import errno
@@ -36,13 +35,20 @@ import werkzeug.wsgi
import openerp
from openerp.service import security, model as service_model
from openerp.tools import config
_logger = logging.getLogger(__name__)
#----------------------------------------------------------
# RequestHandler
#----------------------------------------------------------
# Thread local global request object
_request_stack = werkzeug.local.LocalStack()
request = _request_stack()
"""
A global proxy that always redirect to the current request object.
"""
class WebRequest(object):
""" Parent class for all OpenERP Web request types, mostly deals with
initialization and setup of the request object (the dispatching itself has
@@ -138,11 +144,24 @@ class WebRequest(object):
trying to access this property will raise an exception.
"""
# some magic to lazy create the cr
if not self._cr_cm:
self._cr_cm = self.registry.cursor()
self._cr = self._cr_cm.__enter__()
if not self._cr:
self._cr = self.registry.db.cursor()
return self._cr
def __enter__(self):
_request_stack.push(self)
return self
def __exit__(self, exc_type, exc_value, traceback):
_request_stack.pop()
if self._cr:
if exc_type is None:
self._cr.commit()
self._cr.close()
# just to be sure no one tries to re-use the request
self.disable_db = True
self.uid = None
def set_handler(self, func, arguments, auth):
# is this needed ?
arguments = dict((k, v) for k, v in arguments.iteritems()
@@ -154,39 +173,30 @@ class WebRequest(object):
self.auth_method = auth
def _call_function(self, *args, **kwargs):
request = self
if self.func_request_type != self._request_type:
raise Exception("%s, %s: Function declared as capable of handling request of type '%s' but called with a request of type '%s'" \
% (self.func, self.httprequest.path, self.func_request_type, self._request_type))
kwargs.update(self.func_arguments)
# Backward for 7.0
if getattr(self.func, '_first_arg_is_req', False):
args = (request,) + args
# Correct exception handling and concurency retry
@service_model.check
def checked_call(dbname, *a, **kw):
return self.func(*a, **kw)
# FIXME: code and rollback management could be cleaned
try:
# ugly syntax only to get the __exit__ arguments to pass to self._cr
request = self
class with_obj(object):
def __enter__(self):
pass
def __exit__(self, *args):
if request._cr_cm:
request._cr_cm.__exit__(*args)
request._cr_cm = None
request._cr = None
with with_obj():
if self.func_request_type != self._request_type:
raise Exception("%s, %s: Function declared as capable of handling request of type '%s' but called with a request of type '%s'" \
% (self.func, self.httprequest.path, self.func_request_type, self._request_type))
kwargs.update(self.func_arguments)
# Backward for 7.0
if getattr(self.func, '_first_arg_is_req', False):
args = (request,) + args
# Correct exception handling and concurency retry
@service_model.check
def checked_call(dbname, *a, **kw):
return self.func(*a, **kw)
if self.db:
return checked_call(self.db, *args, **kwargs)
return self.func(*args, **kwargs)
finally:
# just to be sure no one tries to re-use the request
self.disable_db = True
self.uid = None
if self.db:
return checked_call(self.db, *args, **kwargs)
return self.func(*args, **kwargs)
except Exception:
if self._cr:
self._cr.rollback()
raise
@property
def debug(self):
@@ -197,7 +207,7 @@ class WebRequest(object):
warnings.warn('please use request.registry and request.cr directly', DeprecationWarning)
yield (self.registry, self.cr)
def route(route, type="http", auth="user"):
def route(route, type="http", auth="user", methods=None):
"""
Decorator marking the decorated method as being a handler for requests. The method must be part of a subclass
of ``Controller``.
@@ -214,6 +224,7 @@ def route(route, type="http", auth="user"):
* ``none``: The method is always active, even if there is no database. Mainly used by the framework and
authentication modules. There request code will not have any facilities to access the database nor have any
configuration indicating the current database nor the current user.
:param methods: A sequence of http methods this route applies to. If not specified, all methods are allowed.
"""
assert type in ["http", "json"]
def decorator(f):
@@ -221,6 +232,7 @@ def route(route, type="http", auth="user"):
f.routes = route
else:
f.routes = [route]
f.methods = methods
f.exposed = type
if getattr(f, "auth", None) is None:
f.auth = auth
@@ -396,22 +408,9 @@ class HttpRequest(WebRequest):
self.params = params
def dispatch(self):
try:
r = self._call_function(**self.params)
except werkzeug.exceptions.HTTPException, e:
r = e
except Exception, e:
_logger.exception("An exception occured during an http request")
se = serialize_exception(e)
error = {
'code': 200,
'message': "OpenERP Server Error",
'data': se
}
r = werkzeug.exceptions.InternalServerError(cgi.escape(simplejson.dumps(error)))
else:
if not r:
r = werkzeug.wrappers.Response(status=204) # no content
r = self._call_function(**self.params)
if not r:
r = werkzeug.wrappers.Response(status=204) # no content
return r
def make_response(self, data, headers=None, cookies=None):
@@ -451,24 +450,6 @@ def httprequest(f):
base = ""
return route([base, base + "/<path:_ignored_path>"], type="http", auth="user")(f)
#----------------------------------------------------------
# Thread local global request object
#----------------------------------------------------------
_request_stack = werkzeug.local.LocalStack()
request = _request_stack()
"""
A global proxy that always redirect to the current request object.
"""
@contextlib.contextmanager
def set_request(req):
_request_stack.push(req)
try:
yield
finally:
_request_stack.pop()
#----------------------------------------------------------
# Controller and route registration
#----------------------------------------------------------
@@ -526,7 +507,7 @@ def routing_map(modules, nodb_only, converters=None):
url = o._cp_path.rstrip('/') + '/' + url.lstrip('/')
if url.endswith("/") and len(url) > 1:
url = url[: -1]
routing_map.add(werkzeug.routing.Rule(url, endpoint=mv))
routing_map.add(werkzeug.routing.Rule(url, endpoint=mv, methods=mv.methods))
return routing_map
#----------------------------------------------------------
@@ -816,6 +797,18 @@ mimetypes.add_type('application/font-woff', '.woff')
mimetypes.add_type('application/vnd.ms-fontobject', '.eot')
mimetypes.add_type('application/x-font-ttf', '.ttf')
class LazyResponse(werkzeug.wrappers.Response):
""" Lazy werkzeug response.
API not yet frozen"""
def __init__(self, callback, **kwargs):
super(LazyResponse, self).__init__(mimetype='text/html')
self.callback = callback
self.params = kwargs
def process(self):
response = self.callback(**self.params)
self.response.append(response)
class DisableCacheMiddleware(object):
def __init__(self, app):
self.app = app
@@ -941,6 +934,12 @@ class Root(object):
return HttpRequest(httprequest)
def get_response(self, httprequest, result, explicit_session):
if isinstance(result, LazyResponse):
try:
result.process()
except(Exception), e:
result = request.registry['ir.http']._handle_exception(e)
if isinstance(result, basestring):
response = werkzeug.wrappers.Response(result, mimetype='text/html')
else:
@@ -980,7 +979,7 @@ class Root(object):
result = request.dispatch()
return result
with set_request(request):
with request:
db = request.session.db
if db:
openerp.modules.registry.RegistryManager.check_registry_signaling(db)
@@ -997,7 +996,7 @@ class Root(object):
else:
result = _dispatch_nodb()
response = self.get_response(httprequest, result, explicit_session)
response = self.get_response(httprequest, result, explicit_session)
return response(environ, start_response)
except werkzeug.exceptions.HTTPException, e:
+4 -2
View File
@@ -601,8 +601,10 @@ class one2many(_column):
else:
cr.execute('update '+_table+' set '+self._fields_id+'=null where id=%s', (act[1],))
elif act[0] == 4:
# Must use write() to recompute parent_store structure if needed
obj.write(cr, user, [act[1]], {self._fields_id:id}, context=context or {})
cr.execute("select 1 from {0} where id=%s and {1}=%s".format(_table, self._fields_id), (act[1], id))
if not cr.fetchone():
# Must use write() to recompute parent_store structure if needed and check access rules
obj.write(cr, user, [act[1]], {self._fields_id:id}, context=context or {})
elif act[0] == 5:
reverse_rel = obj._all_columns.get(self._fields_id)
assert reverse_rel, 'Trying to unlink the content of a o2m but the pointed model does not have a m2o'
+6 -5
View File
@@ -3681,11 +3681,6 @@ class BaseModel(object):
if fields_to_read is None:
fields_to_read = self._columns.keys()
# Construct a clause for the security rules.
# 'tables' hold the list of tables necessary for the SELECT including the ir.rule clauses,
# or will at least contain self._table.
rule_clause, rule_params, 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
@@ -3706,6 +3701,11 @@ class BaseModel(object):
return 'length(%s) as "%s"' % (f_qual, f)
return f_qual
# Construct a clause for the security rules.
# 'tables' hold the list of tables necessary for the SELECT including the ir.rule clauses,
# or will at least contain self._table.
rule_clause, rule_params, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
fields_pre2 = map(convert_field, fields_pre)
order_by = self._parent_order or self._order
select_fields = ','.join(fields_pre2 + ['%s.id' % self._table])
@@ -3720,6 +3720,7 @@ class BaseModel(object):
self._check_record_rules_result_count(cr, user, sub_ids, result_ids, 'read', context=context)
res.extend(results)
else:
self.check_access_rule(cr, user, ids, 'read', context=context)
res = map(lambda x: {'id': x}, ids)
if context.get('lang'):
+7 -3
View File
@@ -24,8 +24,6 @@ import re
from lxml import etree
import openerp
import openerp
import openerp.tools as tools
import openerp.modules
@@ -33,6 +31,9 @@ import print_xml
import render
import urllib
from openerp import SUPERUSER_ID
from openerp.report.render.rml2pdf import customfonts
#
# coerce any type to a unicode string (to preserve non-ascii characters)
# and escape XML entities
@@ -91,13 +92,16 @@ class report_rml(report_int):
}
def create(self, cr, uid, ids, datas, context):
registry = openerp.registry(cr.dbname)
xml = self.create_xml(cr, uid, ids, datas, context)
xml = tools.ustr(xml).encode('utf8')
report_type = datas.get('report_type', 'pdf')
if report_type == 'raw':
return xml, report_type
registry['res.font'].font_scan(cr, SUPERUSER_ID, lazy=True, context=context)
rml = self.create_rml(cr, xml, uid, context)
registry = openerp.registry(cr.dbname)
ir_actions_report_xml_obj = registry['ir.actions.report.xml']
report_xml_ids = ir_actions_report_xml_obj.search(cr, uid, [('report_name', '=', self.name[7:])], context=context)
self.title = report_xml_ids and ir_actions_report_xml_obj.browse(cr,uid,report_xml_ids)[0].name or 'OpenERP Report'
+8 -32
View File
@@ -21,10 +21,9 @@
##############################################################################
from reportlab import rl_config
from reportlab.lib import fonts
from reportlab.pdfbase import pdfmetrics, ttfonts
import logging
import os,platform
import glob
import os
# .apidoc title: TTF Font Table
@@ -39,35 +38,14 @@ and Ubuntu distros, we have to override the search path, too.
"""
_logger = logging.getLogger(__name__)
# Basic fonts family included in PDF standart, will always be in the font list
BasePDFFonts = [
'Helvetica',
'Times',
'Courier'
]
# List of fonts found on the disk
CustomTTFonts = BaseCustomTTFonts = [ ('Helvetica', "DejaVu Sans", "DejaVuSans.ttf", 'normal'),
('Helvetica', "DejaVu Sans Bold", "DejaVuSans-Bold.ttf", 'bold'),
('Helvetica', "DejaVu Sans Oblique", "DejaVuSans-Oblique.ttf", 'italic'),
('Helvetica', "DejaVu Sans BoldOblique", "DejaVuSans-BoldOblique.ttf", 'bolditalic'),
('Times', "Liberation Serif", "LiberationSerif-Regular.ttf", 'normal'),
('Times', "Liberation Serif Bold", "LiberationSerif-Bold.ttf", 'bold'),
('Times', "Liberation Serif Italic", "LiberationSerif-Italic.ttf", 'italic'),
('Times', "Liberation Serif BoldItalic", "LiberationSerif-BoldItalic.ttf", 'bolditalic'),
('Courier', "FreeMono", "FreeMono.ttf", 'normal'),
('Courier', "FreeMono Bold", "FreeMonoBold.ttf", 'bold'),
('Courier', "FreeMono Oblique", "FreeMonoOblique.ttf", 'italic'),
('Courier', "FreeMono BoldOblique", "FreeMonoBoldOblique.ttf", 'bolditalic'),
]
CustomTTFonts = []
# Search path for TTF files, in addition of rl_config.TTFSearchPath
TTFSearchPath = [
'/usr/share/fonts/truetype', # SuSE
'/usr/share/fonts/dejavu', '/usr/share/fonts/liberation', # Fedora, RHEL
'/usr/share/fonts/truetype/*','/usr/local/share/fonts' # Ubuntu,
'/usr/share/fonts/TTF/*', # at Mandriva/Mageia
'/usr/share/fonts/TTF/*', # Mandriva/Mageia
'/usr/share/fonts/TTF', # Arch Linux
'/usr/lib/openoffice/share/fonts/truetype/',
'~/.fonts',
@@ -95,10 +73,8 @@ def list_all_sysfonts():
# TTFOpenFile is not very good at it.
searchpath = list(set(TTFSearchPath + rl_config.TTFSearchPath))
for dirname in searchpath:
dirname = os.path.expanduser(dirname)
if os.path.exists(dirname):
for filename in [x for x in os.listdir(dirname) if x.lower().endswith('.ttf')]:
filepath.append(os.path.join(dirname, filename))
for filename in glob.glob(os.path.join(os.path.expanduser(dirname), '*.[Tt][Tt][Ff]')):
filepath.append(filename)
return filepath
def SetCustomFonts(rmldoc):
@@ -109,9 +85,9 @@ def SetCustomFonts(rmldoc):
This function is called once per report, so it should
avoid system-wide processing (cache it, instead).
"""
for name, font, filename, mode in CustomTTFonts:
for family, font, filename, mode in CustomTTFonts:
if os.path.isabs(filename) and os.path.exists(filename):
rmldoc.setTTFontMapping(name, font, filename, mode)
rmldoc.setTTFontMapping(family, font, filename, mode)
return True
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+6 -3
View File
@@ -56,8 +56,11 @@ def select_fontname(fontname, default_fontname):
try:
pdfmetrics.getFont(fontname)
except Exception:
_logger.warning('Could not locate font %s, substituting default: %s',
fontname, default_fontname)
addition = ""
if " " in fontname:
addition = ". Your font contains spaces which is not valid in RML."
_logger.warning('Could not locate font %s, substituting default: %s%s',
fontname, default_fontname, addition)
fontname = default_fontname
return fontname
@@ -307,7 +310,7 @@ class _rml_doc(object):
addMapping(face, 0, 1, fontname) #italic
addMapping(face, 1, 0, fontname) #bold
addMapping(face, 1, 1, fontname) #italic and bold
elif (mode== 'normal') or (mode == 'regular'):
elif (mode== 'normal') or (mode == 'regular') or (mode == 'book'):
addMapping(face, 0, 0, fontname) #normal
elif mode == 'italic':
addMapping(face, 0, 1, fontname) #italic
+4
View File
@@ -34,6 +34,7 @@ import zipfile
import common
import openerp
from openerp import SUPERUSER_ID
from openerp.osv.fields import float as float_field, function as function_field, datetime as datetime_field
from openerp.tools.translate import _
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
@@ -419,10 +420,13 @@ class report_sxw(report_rml, preprocess.report):
context = {}
if self.internal_header:
context.update(internal_header=self.internal_header)
# skip osv.fields.sanitize_binary_value() because we want the raw bytes in all cases
context.update(bin_raw=True)
registry = openerp.registry(cr.dbname)
ir_obj = registry['ir.actions.report.xml']
registry['res.font'].font_scan(cr, SUPERUSER_ID, lazy=True, context=context)
report_xml_ids = ir_obj.search(cr, uid,
[('report_name', '=', self.name[7:])], context=context)
if report_xml_ids:
+1 -1
View File
@@ -952,7 +952,7 @@ def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init',
result, rows, warning_msg, dummy = registry[model].import_data(cr, uid, fields, datas,mode, module, noupdate, filename=fname_partial)
if result < 0:
# Report failed import and abort module install
raise Exception(_('Module loading failed: file %s/%s could not be processed:\n %s') % (module, fname, warning_msg))
raise Exception(_('Module loading %s failed: file %s could not be processed:\n %s') % (module, fname, warning_msg))
if config.get('import_partial'):
data = pickle.load(file(config.get('import_partial')))
data[fname_partial] = 0