[MERGE]: Merged with server

bzr revid: atp@tinyerp.com-20130916152046-vc454ytxm3gkq5sj
This commit is contained in:
Atul Patel (OpenERP) 2013-09-16 20:50:46 +05:30
commit 58fcaa9d40
91 changed files with 17620 additions and 1217 deletions

View File

@ -37,7 +37,6 @@ There are two types of views:
.. note:: Since OpenERP 4.1, form views can also contain graphs.
Form views
----------
@ -388,6 +387,33 @@ The easiest method to compute real statistics on objects is:
You can get en example in all modules of the form: report\_.... Example: report_crm.
Controlling view actions
------------------------
When defining a view, the following attributes can be added on the
opening element of the view (i.e. ``<form>``, ``<tree>``...)
``create``
set to ``false`` to hide the link / button which allows to create a new
record.
``delete``
set to ``false`` to hide the link / button which allows to remove a
record.
``edit``
set to ``false`` to hide the link / button which allows to
edit a record.
These attributes are available on form, tree, kanban and gantt
views. They are normally automatically set from the access rights of
the users, but can be forced globally in the view definition. A
possible use case for these attributes is to define an inner tree view
for a one2many relation inside a form view, in which the user cannot
add or remove related records, but only edit the existing ones (which
are presumably created through another way, such as a wizard).
Calendar Views
--------------
@ -680,6 +706,7 @@ toolbar
its descendants will be displayed in the main tree. The value is ignored
for flat lists.
Grouping Elements
+++++++++++++++++
@ -1351,12 +1378,22 @@ When you add a one2many field in a form view, you do something like this :
If you want to specify the views to use, you can add a *context* attribute, and
specify a view id for each type of view supported, exactly like the action's
*view_id* attribute:
*view_id* attribute, except that the provided view id must always be
fully-qualified with the module name, even if it belongs to the same module:
.. code-block:: xml
<field name="order_line" colspan="4" nolabel="1"
context="{'form_view_ref' : 'module.view_id', 'tree_view_ref' : 'model.view_id'}"/>
context="{'form_view_ref': 'module.view_id',
'tree_view_ref': 'module.view_id'}"/>
.. note::
You *have to* put the module name in the view_id, because this
is evaluated when the view is displayed, and not when the XML file
is parsed, so the module name information is not available. Failing
to do so will result in the default view being selected (see
below).
If you don't specify the views, OpenERP will choose one in this order :

View File

@ -31,5 +31,15 @@ Changelog
``openerp.exceptions.RedirectWarning``.
- Give a pair of new methods to ``res.config.settings`` and a helper to make
them easier to use: ``get_config_warning()``.
- Path to webkit report files (field ``report_file``) must be writen with the
Unix way (with ``/`` and not ``\``)
- Path to webkit report files (field ``report_file``) must be written the
Unix way (with ``/`` and not ``\``)
`7.0`
-----
- Modules may now include an ``i18n_extra`` directory that will be treated like the
default ``i18n`` directory. This is typically useful for manual translation files
that are not managed by Launchpad's translation system. An example is l10n modules
that depend on ``l10n_multilang``.

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-08-03 05:44+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:15+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:45+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:17+0000\n"
"X-Generator: Launchpad (build 16760)\n"
"X-Poedit-Language: Czech\n"
#. module: base

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:45+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:17+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -64,12 +64,12 @@ msgstr "Vis arkitektur"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
msgstr ""
msgstr "Tilbud, Salgs ordre, Følgeseddel og Faktura kontrol"
#. module: base
#: selection:ir.sequence,implementation:0
msgid "No gap"
msgstr ""
msgstr "Ingen forskel"
#. module: base
#: selection:base.language.install,lang:0
@ -98,7 +98,7 @@ msgstr "Touchscreen-grænseflade for butikker"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
msgid "Indian Payroll"
msgstr ""
msgstr "Indisk Løn"
#. module: base
#: help:ir.cron,model:0
@ -166,6 +166,9 @@ msgid ""
"specified as a Python expression defining a list of triplets. For example: "
"[('color','=','red')]"
msgstr ""
"Valgfrit domæne til at begrænse mulige værdier for forholdsfelter, angivet "
"som et Python-udtryk definerer en liste af trillinger. For eksempel: "
"[('color', '=', 'red')]"
#. module: base
#: field:res.partner,ref:0
@ -175,7 +178,7 @@ msgstr "Reference"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication"
msgstr ""
msgstr "Belgisk struktureret kommunikation"
#. module: base
#: field:ir.actions.act_window,target:0

View File

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

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-08-03 05:47+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:19+0000\n"
"X-Generator: Launchpad (build 16760)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:26+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -270,7 +270,7 @@ msgstr "created."
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
msgstr ""
msgstr "XSL Path"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@ -296,7 +296,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "Multi Currencies"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@ -308,6 +308,12 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Chilean accounting chart and tax localisation.\n"
"==============================================\n"
"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n"
"\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
@ -419,6 +425,8 @@ msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
#. module: base
#: code:addons/orm.py:2649
@ -516,12 +524,12 @@ msgstr ""
#. module: base
#: field:ir.model.relation,name:0
msgid "Relation Name"
msgstr ""
msgstr "Relation Name"
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
msgstr ""
msgstr "Create Access Right"
#. module: base
#: model:res.country,name:base.tv
@ -561,7 +569,7 @@ msgstr ""
#. module: base
#: view:workflow.transition:0
msgid "Workflow Transition"
msgstr ""
msgstr "Workflow Transition"
#. module: base
#: model:res.country,name:base.gf
@ -571,7 +579,7 @@ msgstr "French Guyana"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
msgstr ""
msgstr "Jobs, Departments, Employees Details"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@ -611,7 +619,7 @@ msgid ""
"event registration\n"
msgstr ""
"\n"
"Organization and management of Events.\n"
"Organisation and management of Events.\n"
"======================================\n"
"\n"
"The event module allows you to efficiently organise events and all related "
@ -634,7 +642,7 @@ msgstr "Bosnian / bosanski jezik"
msgid ""
"If you check this, then the second time the user prints with same attachment "
"name, it returns the previous report."
msgstr "On checking this successive reports are generated from cache."
msgstr "With this checked, successive reports are retrieved from cache."
#. module: base
#: model:ir.module.module,description:base.module_mrp_byproduct
@ -792,6 +800,32 @@ msgid ""
"module named account_voucher.\n"
" "
msgstr ""
"\n"
"Accounting and Financial Management.\n"
"====================================\n"
"\n"
"Financial and accounting module which covers:\n"
"---------------------------------------------\n"
" * General Accounting\n"
" * Cost/Analytic accounting\n"
" * Third party accounting\n"
" * Taxes management\n"
" * Budgets\n"
" * Customer and Supplier Invoices\n"
" * Bank statements\n"
" * Reconciliation process by partner\n"
"\n"
"Creates a dashboard for accountants that includes:\n"
"--------------------------------------------------\n"
" * List of Customer Invoices to Approve\n"
" * Company Analysis\n"
" * Graph of Treasury\n"
"\n"
"Processes like maintaining the general ledger are done through the defined "
"financial Journals (entry move line or grouping is maintained through "
"journal) for a particular financial year.\n"
"For the preparation of vouchers there is a module named account_voucher.\n"
" "
#. module: base
#: view:ir.model:0
@ -819,13 +853,18 @@ msgid ""
"This module provides the Integration of the LinkedIn with OpenERP.\n"
" "
msgstr ""
"\n"
"OpenERP Web LinkedIn module.\n"
"============================\n"
"This module integrates LinkedIn with OpenERP.\n"
" "
#. module: base
#: help:ir.actions.act_window,src_model:0
msgid ""
"Optional model name of the objects on which this action should be visible"
msgstr ""
"Optional model name of the objects on which this action should be visible"
"Optional model name of the objects for which this action should be visible"
#. module: base
#: field:workflow.transition,trigger_expr_id:0
@ -840,7 +879,7 @@ msgstr "Jordan"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_hr
msgid "Croatia - RRIF 2012 COA"
msgstr ""
msgstr "Croatia - RRIF 2012 COA"
#. module: base
#: help:ir.cron,nextcall:0
@ -969,6 +1008,30 @@ msgid ""
"also possible in order to automatically create a meeting when a holiday "
"request is accepted by setting up a type of meeting in Leave Type.\n"
msgstr ""
"\n"
"Manage leaves and allocation requests\n"
"=====================================\n"
"\n"
"This application controls the holiday schedule of your company. It allows "
"employees to request holidays. Then, managers can review requests for "
"holidays and approve or reject them. This way, you can control the overall "
"holiday planning for the company or department.\n"
"\n"
"You can configure several kinds of leaves (sickness, holiday, paid days, "
"...) and quickly allocate leaves to an employee or department via allocation "
"requests. An employee can also make a request for more days off by making a "
"new Allocation. This will increase the total available days for that leave "
"type (if the request is accepted).\n"
"\n"
"You can keep track of leaves in different ways by the following reports: \n"
"\n"
"* Leaves Summary\n"
"* Leaves by Department\n"
"* Leaves Analysis\n"
"\n"
"Synchronisation with an internal agenda (Meetings of the CRM module) is also "
"possible. In order to automatically create a meeting when a holiday request "
"is accepted, set up the type of meeting in Leave Type.\n"
#. module: base
#: selection:base.language.install,lang:0
@ -1199,6 +1262,35 @@ msgid ""
"* Planned Revenue by Stage and User (graph)\n"
"* Opportunities by Stage (graph)\n"
msgstr ""
"\n"
"The generic OpenERP Customer Relationship Management\n"
"====================================================\n"
"\n"
"This application enables a group of people to intelligently and efficiently "
"manage leads, opportunities, meetings and phone calls.\n"
"\n"
"It manages key tasks such as communication, identification, prioritisation, "
"assignment, resolution and notification.\n"
"\n"
"OpenERP ensures that all cases are successfully tracked by users, customers "
"and suppliers. It can automatically send reminders, escalate the request, "
"trigger specific methods and many other actions based on your own enterprise "
"rules.\n"
"\n"
"The greatest thing about this system is that users don't need to do anything "
"special. The CRM module has an email gateway for the synchronisation "
"interface between mails and OpenERP. That way, users can just send emails to "
"the request tracker.\n"
"\n"
"OpenERP will take care of thanking them for their message, automatically "
"routing it to the appropriate staff and make sure all future correspondence "
"gets to the right place.\n"
"\n"
"\n"
"Dashboard for CRM will include:\n"
"-------------------------------\n"
"* Planned Revenue by Stage and User (graph)\n"
"* Opportunities by Stage (graph)\n"
#. module: base
#: selection:base.language.export,format:0
@ -1295,6 +1387,48 @@ msgid ""
"come with any additional paid permission for online use of 'private "
"modules'.\n"
msgstr ""
"\n"
"Base module for the Brazilian localisation\n"
"==========================================\n"
"\n"
"This module consists in:\n"
"\n"
" - Generic Brazilian chart of accounts\n"
" - Brazilian taxes such as:\n"
"\n"
" - IPI\n"
" - ICMS\n"
" - PIS\n"
" - COFINS\n"
" - ISS\n"
" - IR\n"
" - IRPJ\n"
" - CSLL\n"
"\n"
"The field tax_discount has also been added in the account.tax.template and \n"
"account.tax objects to allow the proper computation of some Brazilian VATs \n"
"such as ICMS. The chart of account creation wizard has been extended to \n"
"propagate those new data properly.\n"
"\n"
"It's important to note however that this module lack many implementations to "
"\n"
"use OpenERP properly in Brazil. Those implementations (such as the "
"electronic \n"
"fiscal Invoicing which is already operational) are brought by more than 15 \n"
"additional modules of the Brazilian Launchpad localisation project \n"
"https://launchpad.net/openerp.pt-br-localiz and their dependencies in the \n"
"extra addons branch. Those modules aim at not breaking with the remarkable \n"
"OpenERP modularity, this is why they are numerous but small. One of the \n"
"reasons for maintaining those modules apart is that Brazilian Localisation \n"
"leaders need commit rights agility to complete the localisation as companies "
"\n"
"fund the remaining legal requirements (such as soon fiscal ledgers, \n"
"accounting SPED, fiscal SPED and PAF ECF that are still missing as September "
"\n"
"2011). Those modules are also strictly licensed under AGPL V3 and today "
"don't \n"
"come with any additional paid permission for online use of 'private "
"modules'.\n"
#. module: base
#: code:addons/orm.py:406
@ -1303,8 +1437,8 @@ msgid ""
"Language with code \"%s\" is not defined in your system !\n"
"Define it through the Administration menu."
msgstr ""
"Language with code \"%s\" is not defined in your system !\n"
"Define it through the Administration menu."
"Language with code \"%s\" is not defined in your system!\n"
"Define it through the Settings menu."
#. module: base
#: model:res.country,name:base.gu
@ -1746,6 +1880,26 @@ msgid ""
"in their pockets, this module is essential.\n"
" "
msgstr ""
"\n"
"The base module to manage lunch.\n"
"================================\n"
"\n"
"Many companies order sandwiches, pizzas and more from regular suppliers for "
"their employees providing them with extra facilities. \n"
"\n"
"However lunch management within a company requires proper administration "
"especially when the number of employees or suppliers is large. \n"
"\n"
"The “Lunch Order” module has been developed to make this management easier "
"and also to offer employees more tools and better usability. \n"
"\n"
"In addition to full meal and supplier management, this module offers the "
"possibility to display warnings and provide quick order selection based on "
"employees' preferences.\n"
"\n"
"If you want to save your employees' time and the need to always have coins "
"in their pockets, this module is essential.\n"
" "
#. module: base
#: view:wizard.ir.model.menu.create:0
@ -2031,6 +2185,22 @@ msgid ""
"synchronization with other companies.\n"
" "
msgstr ""
"\n"
"This module adds generic sharing tools to your current OpenERP database.\n"
"========================================================================\n"
"\n"
"It specifically adds a 'share' button that is available in the Web client "
"to\n"
"share any kind of OpenERP data with colleagues, customers, friends.\n"
"\n"
"The system will work by creating new users and groups on the fly, and by\n"
"combining the appropriate access rights and ir.rules to ensure that the "
"shared\n"
"users only have access to the data that has been shared with them.\n"
"\n"
"This is extremely useful for collaborative work, knowledge sharing,\n"
"synchronisation with other companies.\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_process
@ -2563,7 +2733,7 @@ msgid ""
msgstr ""
"\n"
" \n"
"Belgian localization for in/outgoing invoices (prereq to account_coda):\n"
"Belgian localisation for in/outgoing invoices (prereq to account_coda):\n"
"=========================================================================\n"
" - Rename 'reference' field labels to 'Communication'\n"
" - Add support for Belgian Structured Communication\n"
@ -2658,10 +2828,10 @@ msgstr ""
"Helpdesk Management.\n"
"====================\n"
"\n"
"Like records and processing of claims, Helpdesk and Support are good tools\n"
"Like records and claims processing, Helpdesk and Support are good tools\n"
"to trace your interventions. This menu is more adapted to oral "
"communication,\n"
"which is not necessarily related to a claim. Select a customer, add notes\n"
"communication\n"
"that is not necessarily related to a claim. Select a customer, add notes\n"
"and categorise your interventions with a channel and a priority level.\n"
" "
@ -3010,6 +3180,15 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Peruvian accounting chart and tax localisation. In accordance with PCGE "
"2010.\n"
"========================================================================\n"
"\n"
"Plan contable peruano e impuestos de acuerdo a disposiciones vigentes de la\n"
"SUNAT 2011 (PCGE 2010).\n"
"\n"
" "
#. module: base
#: view:ir.actions.server:0
@ -3170,6 +3349,19 @@ msgid ""
" * Unlimited \"Group By\" levels (not stacked), two cross level analysis "
"(stacked)\n"
msgstr ""
"\n"
"Graph Views for Web Client.\n"
"===========================\n"
"\n"
" * Parse a <graph> view allowing the presentation to be changed "
"dynamically\n"
" * Graph Types: pie, line, area, bar, radar\n"
" * Stacked/Not Stacked for areas and bars\n"
" * Legends: top, inside (top/left), hidden\n"
" * Features: download as PNG or CSV, browse data grid, switch "
"orientation\n"
" * Unlimited \"Group By\" levels (not stacked), two cross level analysis "
"(stacked)\n"
#. module: base
#: view:res.groups:0
@ -3248,6 +3440,25 @@ msgid ""
"purchase price and fixed product standard price are booked on a separate \n"
"account."
msgstr ""
"\n"
"This module supports the Anglo-Saxon accounting methodology by changing the "
"accounting logic for stock transactions.\n"
"============================================================================="
"=======================================\n"
"\n"
"The difference between the Anglo-Saxon accounting countries and the Rhine \n"
"(or also called Continental accounting) countries is the timing of taking \n"
"the Cost of Goods Sold versus the Cost of Sales. Anglo-Saxon accounting \n"
"takes the cost when a sales invoice is created whereas Continental "
"accounting will \n"
"take the cost at the moment the goods are shipped.\n"
"\n"
"This module adds the functionality by using an interim account to \n"
"store the value of shipped goods. It also contra-books the interim \n"
"account at creation to transfer the amount to the \n"
"debtor or creditor account. Additionally, price differences between actual \n"
"purchase prices and fixed product standard prices are booked on a separate \n"
"account."
#. module: base
#: model:res.country,name:base.si
@ -3314,7 +3525,7 @@ msgstr "French RIB Bank Details"
#. module: base
#: view:res.lang:0
msgid "%p - Equivalent of either AM or PM."
msgstr "%p - Equivalent of either AM or PM."
msgstr "%p - Writes either AM or PM."
#. module: base
#: view:ir.actions.server:0
@ -3332,6 +3543,7 @@ msgid ""
"the user will have an access to the sales configuration as well as statistic "
"reports."
msgstr ""
"the user will have access to the sales configuration and statistic reports."
#. module: base
#: model:res.country,name:base.nz
@ -3396,6 +3608,18 @@ msgid ""
" above. Specify the interval information and partner to be invoice.\n"
" "
msgstr ""
"\n"
"Create recurring documents.\n"
"===========================\n"
"\n"
"This module allows the creation of new documents and their subscriptions.\n"
"\n"
"e.g. To have an invoice generated automatically periodically:\n"
"-------------------------------------------------------------\n"
" * Define a document type based on an Invoice object.\n"
" * Define a subscription whose source document is the document defined\n"
" above. Specify the repeat interval and the partner to be invoiced.\n"
" "
#. module: base
#: field:res.company,rml_header1:0
@ -3418,6 +3642,8 @@ msgid ""
"the user will have an access to the human resources configuration as well as "
"statistic reports."
msgstr ""
"the user will have access to the human resources configuration as well as "
"statistics reports."
#. module: base
#: model:ir.module.module,description:base.module_l10n_pl
@ -3541,6 +3767,22 @@ msgid ""
" - Yearly Salary by Head and Yearly Salary by Employee Report\n"
" "
msgstr ""
"\n"
"Indian Payroll Salary Rules.\n"
"============================\n"
"\n"
" -Configuration of hr_payroll for India localisation\n"
" -All main contributions rules for India payslip.\n"
" * New payslip report\n"
" * Employee Contracts\n"
" * Allow to configure Basic / Gross / Net Salary\n"
" * Employee PaySlip\n"
" * Allowance / Deduction\n"
" * Integrated with Holiday Management\n"
" * Medical Allowance, Travel Allowance, Child Allowance, ...\n"
" - Payroll Advice and Report\n"
" - Yearly Salary by Head and Yearly Salary by Employee Report\n"
" "
#. module: base
#: code:addons/orm.py:3871
@ -3649,8 +3891,8 @@ msgid ""
"way you want to print them in letters and other documents. Some example: "
"Mr., Mrs. "
msgstr ""
"Manage the contact titles you want to have available in your system and the "
"way you want to print them in letters and other documents. Some example: "
"Manage the contact titles you wish to have available in your system and how "
"you want them to be printed in letters and other documents. Some examples: "
"Mr., Mrs. "
#. module: base
@ -3707,7 +3949,7 @@ msgid ""
"If you use a formula type, use a python expression using the variable "
"'object'."
msgstr ""
"If you use a formula type, use a python expression using the variable "
"If you use a formula type, use a python expression with the variable "
"'object'."
#. module: base
@ -3729,7 +3971,7 @@ msgstr "Contact Titles"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_manufacturer
msgid "Products Manufacturers"
msgstr "Products Manufacturers"
msgstr "Product Manufacturer Info"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:240
@ -3902,6 +4144,38 @@ msgid ""
"* Work Order Analysis\n"
" "
msgstr ""
"\n"
"Manage the Manufacturing process in OpenERP\n"
"===========================================\n"
"\n"
"The manufacturing module allows you to cover planning, ordering, stock and "
"the manufacturing or assembly of products from raw materials and components. "
"It handles the consumption and production of products according to a bill of "
"materials, the necessary operations by machinery and tools, and the aid of "
"human resources, all via the use of routings.\n"
"\n"
"It supports the complete integration and planning of stockable goods, "
"consumables and services. Services are completely integrated with the rest "
"of the software. For instance, you can set up a sub-contracting service in a "
"bill of materials which, on order, automatically purchases your product "
"assembly.\n"
"\n"
"Key Features\n"
"------------\n"
"* Make to Stock/Make to Order\n"
"* Multi-level bill of materials, no limit\n"
"* Multi-level routing, no limit\n"
"* Routing and work centre integrated with analytic accounting\n"
"* Periodic scheduler computation \n"
"* Allows browsing bills of materials in a complete structure including child "
"and phantom bills of materials\n"
"\n"
"Dashboard / Reports for MRP includes:\n"
"-------------------------------------\n"
"* Procurements in Exception (Graph)\n"
"* Stock Value Variation (Graph)\n"
"* Work Order Analysis\n"
" "
#. module: base
#: view:ir.attachment:0
@ -4001,8 +4275,8 @@ msgid ""
"For one2many fields, the field on the target model that implement the "
"opposite many2one relationship"
msgstr ""
"For one2many fields, the field on the target model that implements the "
"opposite many2one relationship"
"For one2many fields, the field in the target model that implements the "
"reverse many2one relationship"
#. module: base
#: view:ir.rule:0
@ -4097,6 +4371,24 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"This module allows you to define the default timesheet function of a user on "
"a given account.\n"
"============================================================================="
"================\n"
"\n"
"This is useful when a user encodes their timesheet: the values are "
"retrieved\n"
"and the fields are auto-filled. However the possibility to change these "
"values is\n"
"still available.\n"
"\n"
"Obviously if no data has been recorded for the current account, the default\n"
"value is given as usual from the employee data so that this module is "
"perfectly\n"
"compatible with older configurations.\n"
"\n"
" "
#. module: base
#: view:ir.model:0
@ -4328,7 +4620,7 @@ msgid ""
" "
msgstr ""
"\n"
"Italian accounting chart and localization.\n"
"Italian accounting chart and localisation.\n"
"================================================\n"
" "
@ -4559,7 +4851,7 @@ msgstr "Account Charts"
#. module: base
#: model:ir.ui.menu,name:base.menu_event_main
msgid "Events Organization"
msgstr ""
msgstr "Events Organisation"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_customer_form
@ -8008,6 +8300,16 @@ msgid ""
"shortcut.\n"
" "
msgstr ""
"\n"
"Enable shortcut feature in the web client.\n"
"==========================================\n"
"\n"
"Add a Shortcut icon to the systray in order to access the user's shortcuts "
"(if any).\n"
"\n"
"Add a Shortcut icon beside the views title in order to add/remove a "
"shortcut.\n"
" "
#. module: base
#: field:res.company,rml_header2:0
@ -8266,6 +8568,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a contact to your address book.\n"
" </p><p>\n"
" OpenERP helps you easily track all activities related to\n"
" a customer: discussions, history of business opportunities,\n"
" documents, etc.\n"
" </p>\n"
" "
#. module: base
#: model:ir.actions.act_window,name:base.bank_account_update
@ -16672,9 +16982,6 @@ msgstr ""
#~ msgid "maintenance.contract"
#~ msgstr "maintenance.contract"
#~ msgid "Last Connection"
#~ msgstr "Copy text \t Last Connection"
#~ msgid ""
#~ "If you need another language than the official ones available, you can "
#~ "import a language pack from here. Other OpenERP languages than the official "
@ -16770,10 +17077,6 @@ msgstr ""
#~ msgid "SMS Send"
#~ msgstr "SMS Send"
#, python-format
#~ msgid "Object %s does not exists"
#~ msgstr "Copy text \t Object %s does not exist"
#~ msgid "Waiting"
#~ msgstr "Waiting"
@ -16781,9 +17084,6 @@ msgstr ""
#~ msgid "Could not load base module"
#~ msgstr "Could not load base module"
#~ msgid "Secondary Log"
#~ msgstr "Copy text \t Secondary Log"
#~ msgid "Ignore"
#~ msgstr "Ignore"
@ -16886,9 +17186,6 @@ msgstr ""
#~ "you can add translations manually or perform a complete export (as a "
#~ "template for a new language example)."
#~ msgid "Publisher warranty contract successfully registered!"
#~ msgstr "Copy text \t Publisher warranty contract successfully registered!"
#~ msgid "state"
#~ msgstr "state"
@ -17310,6 +17607,19 @@ msgstr ""
#~ msgid "key '%s' not found in selection field '%s'"
#~ msgstr "key '%s' not found in selection field '%s'"
#~ msgid "Last Connection"
#~ msgstr "Last Connection"
#, python-format
#~ msgid "Object %s does not exists"
#~ msgstr "Object %s does not exist"
#~ msgid "Secondary Log"
#~ msgstr "Secondary Log"
#~ msgid "Publisher warranty contract successfully registered!"
#~ msgstr "Publisher warranty contract successfully registered!"
#, python-format
#~ msgid ""
#~ "Group(s) cannot be deleted, because some user(s) still belong to them: %s !"

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-08-03 05:51+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:24+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -8712,6 +8712,30 @@ msgid ""
" are scheduled with taking the phase's start date.\n"
" "
msgstr ""
"\n"
"Módulo de gestión de proyectos a largo plazo que registra la planificación, "
"la programación, la asignación de recursos.\n"
"============================================================================="
"==============\n"
"Características:\n"
"---------\n"
" * Gestión de grandes proyectos\n"
" * Definición de varias fases de proyecto\n"
" * Calculo de programación de fase: Calcula la fecha de inicio y fin de "
"las fases \n"
" del proyecto que están en estado borrador, abierto y pendiente. Si no "
"se especifica el proyecto\n"
" entonces se tomarán todas las fases en estado borrador, abierto y "
"pendiente.\n"
" * Calculo de programación de tareas: Funciona igual que el botón de "
"planificador en\n"
" project.phase. Toma el proyecto como argumento y calcula todas las "
"tareas en borrador,\n"
" abiertas y pendientes.\n"
" * Programación de tareas: todas las tareas que están en estado "
"borrador, abierto y pendiente\n"
" se programan tomando la fecha de inicio de la fase.\n"
" "
#. module: base
#: code:addons/orm.py:2021

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-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:26+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:26+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:54+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:27+0000\n"
"X-Generator: Launchpad (build 16760)\n"
"Language: \n"
#. module: base

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:26+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:54+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:27+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -15,8 +15,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-08-03 05:54+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:27+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:26+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

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

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:49+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:22+0000\n"
"X-Generator: Launchpad (build 16760)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:54+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:28+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:46+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:18+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -8819,7 +8819,7 @@ msgstr "Traduisible"
#. module: base
#: help:base.language.import,code:0
msgid "ISO Language and Country code, e.g. en_US"
msgstr ""
msgstr "Code ISO de la langue et du pays, ex: en_US"
#. module: base
#: model:res.country,name:base.vn
@ -9204,7 +9204,7 @@ msgstr "Cette fenêtre"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_anonymous
msgid "Anonymous portal"
msgstr ""
msgstr "Portail anonyme"
#. module: base
#: field:base.language.export,format:0
@ -9261,7 +9261,7 @@ msgstr "Mot de passe"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_claim
msgid "Portal Claim"
msgstr ""
msgstr "Portail Réclamation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pe
@ -9275,6 +9275,9 @@ msgid ""
"Allow users to login through OAuth2 Provider.\n"
"=============================================\n"
msgstr ""
"\n"
"Permettre aux utilisateurs de se connecter via un fournisseur OAuth2.\n"
"=============================================\n"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_fields
@ -9528,7 +9531,7 @@ msgstr "Comptabilité financière et analytique"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project
msgid "Portal Project"
msgstr ""
msgstr "Portail Projet"
#. module: base
#: model:res.country,name:base.cc
@ -9690,6 +9693,8 @@ msgid ""
"Select this if you want to set company's address information for this "
"contact"
msgstr ""
"Sélecionnez ceci si vous voulez indiquer l'adresse de la société de ce "
"contact."
#. module: base
#: field:ir.default,field_name:0
@ -9728,6 +9733,8 @@ msgid ""
"This field holds the image used as avatar for this contact, limited to "
"1024x1024px"
msgstr ""
"Ce champ contient l'image utilisée comme photo d'identité pour ce contact, "
"de taille limitée à 1024x1024px."
#. module: base
#: model:res.country,name:base.to
@ -9942,6 +9949,9 @@ msgid ""
"The kernel of OpenERP, needed for all installation.\n"
"===================================================\n"
msgstr ""
"\n"
"Le noyau d'OpenERP, nécessaire pour toute installation.\n"
"===================================================\n"
#. module: base
#: model:ir.model,name:base.model_ir_server_object_lines
@ -10050,7 +10060,7 @@ msgstr "Hong-Kong"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_sale
msgid "Portal Sale"
msgstr ""
msgstr "Portail Vente"
#. module: base
#: field:ir.default,ref_id:0
@ -10288,6 +10298,9 @@ 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 ""
"Si la langue sélectionnée est chargée dans le système, tous les documents "
"pour ce contact seront imprimés dans cette langue. Dans le cas contraire, "
"ils le seront en anglais."
#. module: base
#: model:ir.module.module,description:base.module_hr_evaluation
@ -10502,7 +10515,7 @@ msgstr "Actions multiples"
#. module: base
#: model:ir.module.module,summary:base.module_mail
msgid "Discussions, Mailing Lists, News"
msgstr ""
msgstr "Discussions, listes de diffusion, nouvelles"
#. module: base
#: model:ir.module.module,description:base.module_fleet
@ -11088,7 +11101,7 @@ msgstr "Raccourcis personnalisés"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_si
msgid "Slovenian - Accounting"
msgstr ""
msgstr "Comptabilité - Slovénie"
#. module: base
#: model:ir.module.module,description:base.module_account_cancel
@ -11102,6 +11115,15 @@ msgid ""
"If set to true it allows user to cancel entries & invoices.\n"
" "
msgstr ""
"\n"
"Autoriser l'annulation d'écritures comptables.\n"
"====================================\n"
"\n"
"Ce module ajoute un champ \"Autoriser l'annulation d'écriture\" sur la vue "
"formulaire d'un journal de compte.\n"
"Lorsque ce champ est coché, un utilisateur peut annuler des écritures et des "
"factures.\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin
@ -11249,7 +11271,7 @@ msgstr "Annuler"
#: code:addons/orm.py:1507
#, python-format
msgid "Unknown database identifier '%s'"
msgstr ""
msgstr "Identifiant de base de données inconnu '%s'"
#. module: base
#: selection:base.language.export,format:0
@ -11402,7 +11424,7 @@ msgstr "Allemagne"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth
msgid "OAuth2 Authentication"
msgstr ""
msgstr "Identification OAuth2"
#. module: base
#: view:workflow:0
@ -11581,7 +11603,7 @@ msgstr "Regrouper par..."
#. module: base
#: view:base.module.update:0
msgid "Module Update Result"
msgstr ""
msgstr "Résultat de la mise à jour des modules"
#. module: base
#: model:ir.module.module,description:base.module_analytic_contract_hr_expense
@ -11596,7 +11618,7 @@ msgstr ""
#. module: base
#: field:ir.attachment,store_fname:0
msgid "Stored Filename"
msgstr ""
msgstr "Nom du fichier enregistré"
#. module: base
#: field:res.partner,use_parent_address:0
@ -11653,6 +11675,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
"Cliquez pour ajouter un contact dans votre carnet d'adresses.\n"
"</p><p>\n"
"OpenERP vous aide à suivre toutes les activités d'un fournisseur :\n"
"les discussions, l'historique des achats,\n"
"les documents, etc.\n"
"</p>\n"
" "
#. module: base
#: model:res.country,name:base.lr
@ -11820,7 +11850,7 @@ msgstr "Unité de l'intervalle"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_stock
msgid "Portal Stock"
msgstr ""
msgstr "Portail Stock"
#. module: base
#: field:workflow.activity,kind:0
@ -11903,7 +11933,7 @@ msgstr "res.request"
#. module: base
#: field:res.partner,image_medium:0
msgid "Medium-sized image"
msgstr ""
msgstr "Image de taille moyenne"
#. module: base
#: view:ir.model:0
@ -11988,7 +12018,7 @@ msgstr "Règles sur les enregistrements"
#. module: base
#: view:multi_company.default:0
msgid "Multi Company"
msgstr ""
msgstr "Multi société"
#. module: base
#: model:ir.module.category,name:base.module_category_portal
@ -12005,7 +12035,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:294
#, python-format
msgid "See all possible values"
msgstr ""
msgstr "Voir toutes les valeurs possibles"
#. module: base
#: model:ir.module.module,description:base.module_claim_from_delivery
@ -12066,7 +12096,7 @@ msgstr "Guinée Bissau"
#. module: base
#: field:ir.actions.report.xml,header:0
msgid "Add RML Header"
msgstr ""
msgstr "Ajouter l'en-tête RML"
#. module: base
#: help:res.company,rml_footer:0
@ -12201,7 +12231,7 @@ msgstr "A Faire"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_hr_employees
msgid "Portal HR employees"
msgstr ""
msgstr "Portail RH Employés"
#. module: base
#: selection:base.language.install,lang:0
@ -12321,6 +12351,8 @@ msgstr ""
msgid ""
"Please contact your system administrator if you think this is an error."
msgstr ""
"Vous pouvez contacter votre administrateur système si vous pensez qu'il "
"s'agit d'une erreur."
#. module: base
#: code:addons/base/module/module.py:545
@ -12368,6 +12400,8 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
"L'un des documents que vous voulez consulter a été supprimé : actualisez la "
"page puis réessayez."
#. module: base
#: model:ir.model,name:base.model_ir_mail_server
@ -12539,7 +12573,7 @@ msgstr ""
#. module: base
#: help:res.partner,ean13:0
msgid "BarCode"
msgstr ""
msgstr "Code-barres"
#. module: base
#: help:ir.model.fields,model_id:0
@ -12561,6 +12595,7 @@ msgstr "Martinique (Française)"
#: help:res.partner,is_company:0
msgid "Check if the contact is a company, otherwise it is a person"
msgstr ""
"Cochez si ce contact est une société, sinon il s'agit d'un particulier"
#. module: base
#: view:ir.sequence.type:0
@ -12570,7 +12605,7 @@ msgstr "Type de séquences"
#. module: base
#: view:res.partner:0
msgid "Mobile:"
msgstr ""
msgstr "Portable :"
#. module: base
#: code:addons/base/res/res_bank.py:195
@ -12637,7 +12672,7 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:1031
#, python-format
msgid "Permission Denied"
msgstr ""
msgstr "Permission refusée"
#. module: base
#: field:ir.ui.menu,child_id:0
@ -12758,7 +12793,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.bl
msgid "Saint Barthélémy"
msgstr ""
msgstr "Saint Barthélémy"
#. module: base
#: selection:ir.module.module,license:0
@ -12830,7 +12865,7 @@ msgstr "Arabe / الْعَرَبيّة"
#. module: base
#: selection:ir.translation,state:0
msgid "Translated"
msgstr ""
msgstr "Traduit"
#. module: base
#: model:ir.actions.act_window,name:base.action_inventory_form
@ -12866,7 +12901,7 @@ msgstr "Domaine"
#: code:addons/base/ir/ir_fields.py:166
#, python-format
msgid "Use '1' for yes and '0' for no"
msgstr ""
msgstr "Utilisez \"1\" pour oui et \"0\" pour non"
#. module: base
#: model:ir.module.module,shortdesc:base.module_marketing_campaign
@ -13004,6 +13039,9 @@ msgid ""
"Allow users to sign up through OAuth2 Provider.\n"
"===============================================\n"
msgstr ""
"\n"
"Permettre aux utilisateurs de se connecter via un fournisseur OAuth2.\n"
"===============================================\n"
#. module: base
#: field:change.password.user,user_id:0
@ -13062,7 +13100,7 @@ msgstr "Grenade"
#. module: base
#: help:res.partner,customer:0
msgid "Check this box if this contact is a customer."
msgstr ""
msgstr "Cochez cette case si le contact est un client."
#. module: base
#: view:ir.actions.server:0
@ -13142,7 +13180,7 @@ msgstr ""
#: field:ir.actions.report.xml,report_rml_content:0
#: field:ir.actions.report.xml,report_rml_content_data:0
msgid "RML Content"
msgstr ""
msgstr "Contenu RML"
#. module: base
#: view:res.lang:0
@ -13416,7 +13454,7 @@ msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
msgstr ""
msgstr "Écriture de chèques"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@ -13641,7 +13679,7 @@ msgstr "Grande Bretagne - Comptabilité"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_madam
msgid "Mrs."
msgstr ""
msgstr "Mme"
#. module: base
#: code:addons/base/ir/ir_model.py:432
@ -13663,6 +13701,7 @@ msgstr "Réf. utilisateur"
#, python-format
msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'"
msgstr ""
"'%s' ne semble pas être une date/heure valide pour le champ '%%(fields)s'"
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic
@ -13813,7 +13852,7 @@ msgstr "Informations sur la connexion"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_prof
msgid "Professor"
msgstr ""
msgstr "Professeur"
#. module: base
#: model:res.country,name:base.hm
@ -13842,7 +13881,7 @@ msgstr "Vous aide à gérer vos devis, commandes et factures"
#. module: base
#: field:res.users,login_date:0
msgid "Latest connection"
msgstr ""
msgstr "Dernière connexion"
#. module: base
#: field:res.groups,implied_ids:0
@ -13859,7 +13898,7 @@ msgstr "Sélection"
#: model:ir.actions.act_window,name:base.change_password_wizard_action
#: view:res.users:0
msgid "Change Password"
msgstr ""
msgstr "Modifier le mot de passe"
#. module: base
#: model:ir.module.module,description:base.module_l10n_es
@ -13927,7 +13966,7 @@ msgstr "Binaire"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_doctor
msgid "Doctor"
msgstr ""
msgstr "Docteur"
#. module: base
#: model:ir.module.module,description:base.module_mrp_repair
@ -14136,12 +14175,12 @@ msgstr "Mois de création"
#. module: base
#: field:ir.module.module,demo:0
msgid "Demo Data"
msgstr ""
msgstr "Données de démonstration"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_mister
msgid "Mr."
msgstr ""
msgstr "M."
#. module: base
#: model:res.country,name:base.mv
@ -14261,7 +14300,7 @@ msgstr ""
#. module: base
#: field:ir.actions.report.xml,report_sxw:0
msgid "SXW Path"
msgstr ""
msgstr "Emplacement SXW"
#. module: base
#: model:ir.module.module,description:base.module_account_asset
@ -15480,7 +15519,7 @@ msgstr "Modules d'installation"
#. module: base
#: model:ir.ui.menu,name:base.menu_import_crm
msgid "Import & Synchronize"
msgstr ""
msgstr "Importer et synchroniser"
#. module: base
#: view:res.partner:0
@ -15680,7 +15719,7 @@ msgstr "Action due plusieurs documents"
#: model:ir.actions.act_window,name:base.action_partner_title_partner
#: model:ir.ui.menu,name:base.menu_partner_title_partner
msgid "Titles"
msgstr ""
msgstr "Civilités et Formes juridiques"
#. module: base
#: model:ir.module.module,description:base.module_anonymization
@ -16288,7 +16327,7 @@ msgstr "Accès"
#: field:res.partner,vat:0
#, python-format
msgid "TIN"
msgstr ""
msgstr "Numéro fiscal"
#. module: base
#: model:res.country,name:base.aw
@ -16388,7 +16427,7 @@ msgstr "Services après vente"
#. module: base
#: field:base.language.import,code:0
msgid "ISO Code"
msgstr ""
msgstr "Code ISO"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr
@ -16567,6 +16606,9 @@ msgid ""
"Allow users to login through OpenID.\n"
"====================================\n"
msgstr ""
"\n"
"Permettre aux utilisateurs de se connecter via OpenID.\n"
"====================================\n"
#. module: base
#: help:ir.mail_server,smtp_port:0
@ -16809,7 +16851,7 @@ msgstr "Canada - Comptabilité"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_co
msgid "Colombian - Accounting"
msgstr ""
msgstr "Colombie - Comptabilité"
#. module: base
#: model:ir.module.module,description:base.module_account_voucher
@ -16991,7 +17033,7 @@ msgstr "Mise à jour du système"
#: field:ir.actions.report.xml,report_sxw_content:0
#: field:ir.actions.report.xml,report_sxw_content_data:0
msgid "SXW Content"
msgstr ""
msgstr "Contenu SXW"
#. module: base
#: field:ir.attachment,file_size:0
@ -17038,7 +17080,7 @@ msgstr "Informations générales"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pt
msgid "Portugal - Chart of Accounts"
msgstr ""
msgstr "Portugal - Plan comptable"
#. module: base
#: field:ir.model.data,complete_name:0
@ -17088,6 +17130,8 @@ msgid ""
"Tax Identification Number. Check the box if this contact is subjected to "
"taxes. Used by the some of the legal statements."
msgstr ""
"Numéro fiscal. Cochez cette case si ce contact est soumis au paiement de "
"taxe. Utilisé dans certains documents légaux."
#. module: base
#: field:res.partner.bank,partner_id:0
@ -17269,6 +17313,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
"Cliquez pour ajouter un contact dans votre carnet d'adresses.\n"
"</p><p>\n"
"OpenERP vous aide à suivre toutes les activités d'un client :\n"
"les discussions, l'historique des opportunités,\n"
"les documents, etc.\n"
"</p>\n"
" "
#. module: base
#: model:res.partner.category,name:base.res_partner_category_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-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:26+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:44+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:16+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:48+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:20+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -32,7 +32,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sh
msgid "Saint Helena"
msgstr "Saint Helena"
msgstr "Sant'Elena"
#. module: base
#: view:ir.actions.report.xml:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:48+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:20+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -80,12 +80,12 @@ msgstr "スペイン語(パラグアイ)/ Español (PY)"
msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr "プロジェクトやタスクを追跡,計画生成などすることにより、あなたのプロジェクトとタスクの管理を補助します。"
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
@ -234,7 +234,7 @@ msgstr "作成済"
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
msgstr ""
msgstr "XLSパス"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@ -260,7 +260,7 @@ msgstr "イヌクウティトット語 / Inuktitut"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
msgstr ""
msgstr "多通貨"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@ -276,7 +276,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
msgstr "受注管理"
msgstr "販売管理"
#. module: base
#: help:res.partner,user_id:0
@ -654,7 +654,7 @@ msgstr "パラオ"
#. module: base
#: view:res.partner:0
msgid "Sales & Purchases"
msgstr "受注と発注"
msgstr "販売・購買"
#. module: base
#: view:ir.translation:0
@ -1535,7 +1535,7 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_purchase_management
#: model:ir.ui.menu,name:base.menu_purchase_root
msgid "Purchases"
msgstr "発注"
msgstr "購買"
#. module: base
#: model:res.country,name:base.md
@ -1635,7 +1635,7 @@ msgstr "コード %s を持つ言語が存在しません。"
#: model:ir.module.category,name:base.module_category_social_network
#: model:ir.module.module,shortdesc:base.module_mail
msgid "Social Network"
msgstr ""
msgstr "ソーシャルネットワーク"
#. module: base
#: view:res.lang:0
@ -4589,7 +4589,7 @@ msgstr "ヒンディー語 / हिंदी"
#: model:ir.actions.act_window,name:base.action_view_base_language_install
#: model:ir.ui.menu,name:base.menu_view_base_language_install
msgid "Load a Translation"
msgstr ""
msgstr "言語の追加"
#. module: base
#: field:ir.module.module,latest_version:0
@ -5316,7 +5316,7 @@ msgstr "レート"
#. module: base
#: model:ir.module.module,shortdesc:base.module_email_template
msgid "Email Templates"
msgstr ""
msgstr "Eメールテンプレート"
#. module: base
#: model:res.country,name:base.sy
@ -9728,7 +9728,7 @@ msgstr "受注オーダーのマージン"
#. module: base
#: model:ir.module.module,shortdesc:base.module_purchase
msgid "Purchase Management"
msgstr "発注管理"
msgstr "購買管理"
#. module: base
#: field:ir.module.module,published_version:0
@ -9993,7 +9993,7 @@ msgstr "インストールする"
#: model:ir.module.module,shortdesc:base.module_base
#: field:res.currency,base:0
msgid "Base"
msgstr "基本"
msgstr "ベース"
#. module: base
#: field:ir.model.data,model:0
@ -14274,7 +14274,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
msgid "Multi-Companies"
msgstr ""
msgstr "複数会社設定"
#. module: base
#: field:workflow,osv:0
@ -15190,7 +15190,7 @@ msgstr "条件"
#: model:ir.actions.client,name:base.modules_updates_act_cl
#: model:ir.ui.menu,name:base.menu_module_updates
msgid "Updates"
msgstr ""
msgstr "アップデート"
#. module: base
#: help:res.currency,rate:0
@ -15402,7 +15402,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.open_module_tree
#: model:ir.ui.menu,name:base.menu_module_tree
msgid "Installed Modules"
msgstr ""
msgstr "インストール済モジュール"
#. module: base
#: code:addons/base/res/res_users.py:170
@ -15465,7 +15465,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
msgstr ""
msgstr "内部注記"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_pvt_ltd
@ -15476,7 +15476,7 @@ msgstr "会社"
#. module: base
#: model:ir.module.module,shortdesc:base.module_purchase_requisition
msgid "Purchase Requisitions"
msgstr "発注依頼"
msgstr "購買依頼"
#. module: base
#: selection:ir.actions.act_window,target:0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:49+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:22+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:49+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:22+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:45+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:17+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -9702,7 +9702,7 @@ msgstr "Gebruikersinterface"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_byproduct
msgid "MRP Byproducts"
msgstr "productie bijproducten"
msgstr "Productie bijproducten"
#. module: base
#: field:res.request,ref_partner_id:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:53+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:27+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:49+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:22+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:50+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:22+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -24,6 +24,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
"\n"
"Módulo para Verificar a Escrita e Verificar a Impresaão.\n"
"================================================\n"
" "
#. module: base
#: model:res.country,name:base.sh
@ -122,6 +126,18 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
"\n"
"Um modulo que acrescenta a identificação de fabricantes e atributos ao "
"formulário de produtos.\n"
"====================================================================\n"
"\n"
"Agora é possível definir o seguinte para cada produto:\n"
"\n"
" Fabricante\n"
" Nome do produto atribuído pelo fabricante\n"
" Código do produto atribuído pelo fabricante\n"
" Atributos do produto\n"
" "
#. module: base
#: field:ir.actions.client,params:0
@ -135,6 +151,8 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
"\n"
"O modulo acrescenta utilizador google em \"res user\".\n"
#. module: base
#: help:res.partner,employee:0
@ -170,7 +188,7 @@ msgstr "Janela alvo"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
msgstr ""
msgstr "Caminho para o ficheiro do relatório principal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@ -191,6 +209,15 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
"\n"
"Gerar faturas através de Despesas, Folhas de Horas\n"
"========================================================\n"
"\n"
"Modulo que gera faturas baseadas em custos (recursos humanos, despesas, "
"...).\n"
"\n"
"Pode definir tabelas de preços na conta analítica, criar analises teoréticas "
"de vendas."
#. module: base
#: code:addons/base/ir/ir_sequence.py:134
@ -226,7 +253,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 "Não é permitido mudar o nome de sparse field \"%s\""
#. module: base
#: model:res.country,name:base.sz
@ -292,6 +319,8 @@ msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
"O utilizador interno responsável pela comunicação com este contacto (se "
"houver)"
#. module: base
#: view:res.partner:0
@ -376,6 +405,15 @@ msgid ""
"invoices from picking, OpenERP is able to add and compute the shipping "
"line.\n"
msgstr ""
"\n"
"Permite adicionar métodos de entrega nas ordens de venda e ordens de "
"preparação de encomendas.\n"
"==============================================================\n"
"\n"
"Assim é possível definir transportadores adicionais e tabelas de preços para "
"entregas. No acto de criar \n"
"uma fatura através um ordem de preparação de encomenda, OpenERP consegue "
"adicionar e calcular custos de entrega.\n"
#. module: base
#: code:addons/base/ir/ir_filters.py:80
@ -384,6 +422,8 @@ msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
"Um filtro partilhado já está definido para %(model)s, apague ou modifique o "
"filtro existente antes de criar um novo."
#. module: base
#: code:addons/orm.py:2649
@ -452,8 +492,8 @@ msgid ""
"Invalid date/time format directive specified. Please refer to the list of "
"allowed directives, displayed when you edit a language."
msgstr ""
"Data inválida/especifique diretiva do formato da hora. Por favor, consulte a "
"lista de diretivas permitidas, exibida quando se edita uma linguagem."
"A diretiva data/hora especificada é invalida. Por favor, consulte a lista de "
"diretivas permitidas, exibida quando se edita uma linguagem."
#. module: base
#: code:addons/orm.py:4153
@ -462,7 +502,7 @@ msgid ""
"One of the records you are trying to modify has already been deleted "
"(Document type: %s)."
msgstr ""
"Um dos registos que está a tentar modificar já deve ter sido excluído "
"Um dos registos que está a tentar modificar já deve ter sido apagado "
"(Document type: %s)."
#. module: base
@ -552,6 +592,15 @@ msgid ""
"that have no counterpart in the general financial accounts.\n"
" "
msgstr ""
"\n"
"Modulo para definir objetos de contabilidade analítica.\n"
"===============================================\n"
"\n"
"Na OpenERP, contas analíticas estão ligados a contas gerais embora são "
"tratados \n"
"de uma forma independente. Assim é possível adicionar operações analíticas \n"
"mesmo quando não tenham homólogos nas contas gerais.\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_idea
@ -575,6 +624,19 @@ msgid ""
"* Use emails to automatically confirm and send acknowledgements for any "
"event registration\n"
msgstr ""
"\n"
"Organização e gestão de Eventos.\n"
"======================================\n"
"\n"
"O modulo de gestão de eventos permite gerir todos as tarefas associadas a "
"organização de eventos: planificação, controlo de inscrições, "
"comparecimento, etc.\n"
"\n"
"Principais Funções\n"
"------------\n"
"* Gerir os seus Eventos e Inscrições\n"
"* Utilizar e-mail para enviar confirmações de forma automática para "
"inscrições nos seus eventos.\n"
#. module: base
#: selection:base.language.install,lang:0
@ -774,6 +836,11 @@ msgid ""
"This module provides the Integration of the LinkedIn with OpenERP.\n"
" "
msgstr ""
"\n"
"Módulo OpenERP Web LinkedIn.\n"
"============================\n"
"Este módulo disponibiliza a integração do LinkedIn com o OpenERP.\n"
" "
#. module: base
#: help:ir.actions.act_window,src_model:0
@ -839,6 +906,9 @@ msgid ""
"image, with aspect ratio preserved. Use this field anywhere a small image is "
"required."
msgstr ""
"Imagem em pequeno formato para este contacto. É automaticamente "
"redimensionada para 64x64px com o racio do aspect preservado. Utilize este "
"campo onde quer que uma imagem pequena seja necessária."
#. module: base
#: help:ir.actions.server,mobile:0
@ -1327,7 +1397,7 @@ msgstr "Contribuintes"
#. module: base
#: field:ir.rule,perm_unlink:0
msgid "Apply for Delete"
msgstr ""
msgstr "Aplicar para Apagar"
#. module: base
#: selection:ir.property,type:0
@ -1465,7 +1535,7 @@ msgstr "Haiti"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll
msgid "French Payroll"
msgstr ""
msgstr "Folha de pagamentos Francesa"
#. module: base
#: view:ir.ui.view:0
@ -1996,6 +2066,8 @@ msgid ""
"Check this box if this contact is a supplier. If it's not checked, purchase "
"people will not see it when encoding a purchase order."
msgstr ""
"Assinala nesta caixa se o contacto é fornecedor. Se não for assinalado, o "
"contacto não será visível no acto de criar uma nota de encomenda."
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
@ -2173,6 +2245,27 @@ msgid ""
"* *Before Delivery*: A Draft invoice is created and must be paid before "
"delivery\n"
msgstr ""
"\n"
"Gerir orçamentos e encomendas\n"
"==================================\n"
"\n"
"Este modulo liga a aplicação de vendas com a de gestão de armazéns.\n"
"\n"
"Preferências\n"
"-----------\n"
"* Envios: Escolha entre a entrega total ou parcial de uma encomenda.\n"
"* Faturação: Escolha o prazo de pagamento da fatura\n"
"* Incoterms: Escolha os termos de entrega da mercadoria (EXW, DDU, FOB, "
"etc.)\n"
"\n"
"Escolhe entre varias maneiras flexíveis de faturação:\n"
"\n"
"* *Manualmente*: As faturas são criados manualmente das notas de encomenda "
"quando necessário\n"
"* *Através de Ordem de Entrega*: As faturas são geradas das ordens de "
"entrega (pickings)\n"
"* *Antes de Entrega*: Uma fatura pro-forma é criado e tem de ser liquidada "
"antes de efetuar a entrega\n"
#. module: base
#: field:ir.ui.menu,complete_name:0
@ -2198,7 +2291,7 @@ msgstr ""
#. module: base
#: view:base.language.export:0
msgid "PO(T) format: you should edit it with a PO editor such as"
msgstr ""
msgstr "Formato PO(T): deve editá-lo com um editor de PO tal como"
#. module: base
#: model:ir.ui.menu,name:base.menu_administration
@ -2287,7 +2380,7 @@ msgstr "Bahamas"
#. module: base
#: field:ir.rule,perm_create:0
msgid "Apply for Create"
msgstr ""
msgstr "Aplicar para Criar"
#. module: base
#: model:ir.module.category,name:base.module_category_tools
@ -2310,6 +2403,8 @@ msgid ""
"Appears by default on the top right corner of your printed documents (report "
"header)."
msgstr ""
"Aparece por defeito no campo superior direito dos documentos impressos "
"(cabeçalho do relatório)."
#. module: base
#: field:base.module.update,update:0
@ -2357,6 +2452,31 @@ msgid ""
"* Maximal difference between timesheet and attendances\n"
" "
msgstr ""
"\n"
"Gravar e validar folhas de horas e comparecimento/assiduidade com "
"facilidade\n"
"=====================================================\n"
"\n"
"Esta aplicação cria uma nova ecrã que permite gerir comparecimento (entradas "
"e saídas) e o preenchimento de folhas de horas por período. Entradas na "
"folha de horas são efetuadas pelos funcionários diariamente. No fim do "
"período estipulado, o funcionário valida a folha de horas. De seguida a "
"folha é sujeito a aprovação da gerente de equipa. A definição do tempo de "
"cada período é feito nas configurações da empresa e podem ser efetuados "
"mensalmente ou semanalmente.\n"
"\n"
"O processo de validação da folha de horas é feito assim:\n"
"---------------------------------------------\n"
"* Preencher folha (funcionário)\n"
"* Confirmar a folha no fim do período (funcionário)\n"
"* Validação da folha pelo gestor da equipa\n"
"\n"
"As preferências de validação podem ser escolhidos nas configurações da "
"empresa:\n"
"------------------------------------------------\n"
"Periodicidade (Dia, Semana, Mês)\n"
"Diferenciação máxima permitida entre a folha de horas e comparecimento\n"
" "
#. module: base
#: code:addons/base/ir/ir_fields.py:341
@ -2429,6 +2549,9 @@ msgid ""
"=================================\n"
" "
msgstr ""
"\n"
"Permite que um utilizador anónimo aceda ao portal.\n"
" "
#. module: base
#: model:res.country,name:base.ge
@ -2677,6 +2800,12 @@ msgid ""
"orders.\n"
" "
msgstr ""
"\n"
"O modulo base para gerir distribuição analítica e notas de encomenda.\n"
"=================================================================\n"
"\n"
"Este modulo permite ligar contas analíticas a notas de encomenda.\n"
" "
#. module: base
#: model:ir.module.module,description:base.module_l10n_us
@ -2817,6 +2946,9 @@ msgid ""
"Module to attach a google document to any model.\n"
"================================================\n"
msgstr ""
"\n"
"Módulo para anexar um documento google a qualquer modelo.\n"
"=========================================================\n"
#. module: base
#: code:addons/base/ir/ir_fields.py:333
@ -5010,7 +5142,7 @@ msgstr "ir.needaction_mixin"
#. module: base
#: view:base.language.export:0
msgid "This file was generated using the universal"
msgstr ""
msgstr "Este ficheiro foi gerado usando o universal"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_7
@ -5082,7 +5214,7 @@ msgstr "Saltar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_event_sale
msgid "Events Sales"
msgstr ""
msgstr "Vendas dos Eventos"
#. module: base
#: model:res.country,name:base.ls
@ -5269,7 +5401,7 @@ msgstr "Apenas se a conta bancária pertencer à sua empresa"
#: code:addons/base/ir/ir_fields.py:337
#, python-format
msgid "Unknown sub-field '%s'"
msgstr ""
msgstr "Sub-campo '%s' desconhecido"
#. module: base
#: model:res.country,name:base.za
@ -5385,6 +5517,10 @@ msgid ""
"================\n"
"\n"
msgstr ""
"\n"
"Openerp Web API.\n"
"================\n"
"\n"
#. module: base
#: selection:res.request,state:0
@ -6154,6 +6290,8 @@ msgid ""
"How many times the method is called,\n"
"a negative number indicates no limit."
msgstr ""
"Quantas vezes o método é chamado,\n"
"um número negativo sem limite."
#. module: base
#: field:res.partner.bank.type.field,bank_type_id:0
@ -6280,7 +6418,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:182
#, python-format
msgid "'%s' does not seem to be a number for field '%%(field)s'"
msgstr ""
msgstr "'%s' não parece ser um número para o campo '%%(field)s'"
#. module: base
#: help:res.country.state,name:0
@ -8013,7 +8151,7 @@ msgstr "Campo Personalizado"
#. module: base
#: model:ir.module.module,summary:base.module_account_accountant
msgid "Financial and Analytic Accounting"
msgstr ""
msgstr "Contabilidade Financeira e Analítica"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project
@ -8352,7 +8490,7 @@ msgstr "Finlândia"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_shortcuts
msgid "Web Shortcuts"
msgstr ""
msgstr "Atalhos web"
#. module: base
#: view:res.partner:0
@ -8558,6 +8696,8 @@ msgid ""
"Translation features are unavailable until you install an extra OpenERP "
"translation."
msgstr ""
"As opções de tradução estão indisponíveis até que instale uma tradução extra "
"do OpenERP."
#. module: base
#: model:ir.module.module,description:base.module_l10n_nl
@ -8752,6 +8892,9 @@ 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 ""
"Se o idioma seleccionado está carregado no sistema, todos os documentos "
"relacionados com este contacto serão impressos neste idioma. Caso contrário "
"serão impressos em Inglês."
#. module: base
#: model:ir.module.module,description:base.module_hr_evaluation
@ -8860,7 +9003,7 @@ msgstr "Esloveno / slovenščina"
#. module: base
#: field:res.currency,position:0
msgid "Symbol Position"
msgstr ""
msgstr "Posição do Símbolo"
#. module: base
#: model:ir.module.module,description:base.module_l10n_de
@ -10007,7 +10150,7 @@ msgstr "Agrupar por..."
#. module: base
#: view:base.module.update:0
msgid "Module Update Result"
msgstr ""
msgstr "Resultado da actualização do módulo"
#. module: base
#: model:ir.module.module,description:base.module_analytic_contract_hr_expense
@ -10469,7 +10612,7 @@ msgstr ""
#. module: base
#: view:res.company:0
msgid "Click to set your company logo."
msgstr ""
msgstr "Clique para definir o logo da empresa."
#. module: base
#: view:res.lang:0
@ -10792,6 +10935,8 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
"Um dos documentos a que tenta aceder foi removido, tente novamente depois de "
"actualizar."
#. module: base
#: model:ir.model,name:base.model_ir_mail_server
@ -11300,7 +11445,7 @@ msgstr "Ficheiro binário ou URL"
#: code:addons/base/ir/ir_fields.py:313
#, python-format
msgid "Invalid database id '%s' for the field '%%(field)s'"
msgstr ""
msgstr "Id de base de dados '%s' inválido para o campo '%%(field)s'"
#. module: base
#: view:res.lang:0
@ -11444,7 +11589,7 @@ msgstr ""
#. module: base
#: field:workflow.transition,signal:0
msgid "Signal (Button Name)"
msgstr ""
msgstr "Sinal (Nome do botão)"
#. module: base
#: view:ir.actions.act_window:0
@ -11819,7 +11964,7 @@ msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
msgstr ""
msgstr "Verificar escrita"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@ -12387,7 +12532,7 @@ msgstr "Outros Parceiros"
#: view:workflow.workitem:0
#: field:workflow.workitem,state:0
msgid "Status"
msgstr ""
msgstr "Estado"
#. module: base
#: model:ir.actions.act_window,name:base.action_currency_form
@ -13376,7 +13521,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 "Bélgica - Folha de pagamentos com Contabildade"
#. module: base
#: selection:base.language.export,format:0
@ -15269,7 +15414,7 @@ msgstr "Chile"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_view_editor
msgid "View Editor"
msgstr ""
msgstr "Ver o Editor"
#. module: base
#: view:ir.cron:0
@ -15349,6 +15494,8 @@ msgid ""
"Do you confirm the uninstallation of this module? This will permanently "
"erase all data currently stored by the module!"
msgstr ""
"Confirma a desinstalação deste módulo? Esta acção apaga todos os dados "
"guardados neste momento por este módulo!"
#. module: base
#: field:ir.actions.server,mobile:0

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:52+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:25+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-01-24 13:14+0000\n"
"PO-Revision-Date: 2013-08-16 11:16+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:50+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:23+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -3428,7 +3428,7 @@ msgstr "Периодические оценки, оценки, опросы"
#: model:ir.actions.act_window,name:base.ir_property_form
#: model:ir.ui.menu,name:base.menu_ir_property_form_all
msgid "Configuration Parameters"
msgstr "Конфигурационные параметры:"
msgstr "Параметры конфигурации"
#. module: base
#: constraint:ir.cron:0

View File

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

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:51+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:24+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

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

View File

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

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:55+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:28+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:51+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:24+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:51+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:24+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:51+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:24+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:52+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:25+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -7495,7 +7495,7 @@ msgstr "Tam Adı"
#. module: base
#: view:ir.attachment:0
msgid "on"
msgstr ""
msgstr "bunda"
#. module: base
#: view:ir.property:0
@ -9540,6 +9540,17 @@ msgid ""
"Thank you in advance for your cooperation.\n"
"Best Regards,"
msgstr ""
"Sayın Yetkili,\n"
"\n"
"Kayıtlarımıza göre hesabınızda halen yapılmamış ödemeler bulunmaktadır. "
"Lütfen aşağıdaki ayrıntıları inceleyin.\n"
"Eğer ödeme yaptıysanız, lütfen bu yazımızı dikkate almayın. Aksi durumda, "
"aşağıda belirtilen tutarı tarafımıza ödemenizi rica ederiz.\n"
"Hesabınızla ilgili herhangi bir sorunuz olursa, lütfen bize danışın.\n"
"\n"
"İşbirliğiniz için şimdiden teşekkür ederiz.\n"
"\n"
"Saygılarımızla,"
#. module: base
#: view:ir.module.category:0
@ -11264,7 +11275,7 @@ msgstr "E-Mail"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_12
msgid "Office Supplies"
msgstr ""
msgstr "Büro Malzemeleri"
#. module: base
#: field:ir.attachment,res_model:0
@ -12549,7 +12560,7 @@ msgstr "Grup adı tekil olmalı !"
#. module: base
#: help:ir.translation,module:0
msgid "Module this term belongs to"
msgstr ""
msgstr "Bu terimin ait olduğu modül"
#. module: base
#: model:ir.module.module,description:base.module_web_view_editor
@ -12763,6 +12774,8 @@ msgid ""
"Here is what we got instead:\n"
" %s"
msgstr ""
"Yerine elimize geçen:\n"
" %s"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_data
@ -13126,7 +13139,7 @@ msgstr "Yeni Kaledonya"
#. module: base
#: field:ir.model,osv_memory:0
msgid "Transient Model"
msgstr ""
msgstr "Geçici Model"
#. module: base
#: model:res.country,name:base.cy
@ -13388,7 +13401,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_test
msgid "Accounting Consistency Tests"
msgstr ""
msgstr "Muhasebe Tutarlılık Testleri"
#. module: base
#: model:ir.module.module,description:base.module_purchase_double_validation
@ -14093,6 +14106,8 @@ msgid ""
"Invalid group_by specification: \"%s\".\n"
"A group_by specification must be a list of valid fields."
msgstr ""
"Geçersiz group_by özellikleri: \"%s\".\n"
"Bir group_by özellikler geçerli alanların bir listesi olmalı."
#. module: base
#: selection:ir.mail_server,smtp_encryption:0
@ -14250,7 +14265,7 @@ msgstr "Hata ! iç içe çağırılan menü oluşturamazsınız."
#. module: base
#: view:ir.translation:0
msgid "Web-only translations"
msgstr ""
msgstr "Yalnızca-web çevirileri"
#. module: base
#: view:ir.rule:0
@ -14718,6 +14733,10 @@ msgid ""
"\n"
"(Document type: %s, Operation: %s)"
msgstr ""
"Güvenlik sınırlamalarından dolayı istenen işlem tamamlanamıyor. Lütfen "
"sistem yöneticinize danışın.\n"
"\n"
"(Belge tipi: %s, İşlem: %s)"
#. module: base
#: model:ir.module.module,description:base.module_idea

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-08-03 05:52+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:25+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:52+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:25+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:52+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:25+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:54+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:27+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@ -25,7 +25,7 @@ msgid ""
" "
msgstr ""
"\n"
"此模块用于支票和支票打印\n"
"此模块用于支票填写和打印\n"
"================================================\n"
" "
@ -384,6 +384,12 @@ msgid ""
"document and Wiki based Hidden.\n"
" "
msgstr ""
"\n"
"知识管理的隐藏依赖模块\n"
"=====================================\n"
"\n"
"在安装文档管理和wiki等知识管理应用的时候所依赖的隐藏模块\n"
" "
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
@ -991,6 +997,21 @@ msgid ""
"also possible in order to automatically create a meeting when a holiday "
"request is accepted by setting up a type of meeting in Leave Type.\n"
msgstr ""
"\n"
"休假申请和假期分配\n"
"=====================================\n"
"\n"
"此模块管理公司员工的休假。员工可以申请休假,然后等待经理批准,当然也可能拒绝。这样就可以使公司或部门的整体休假计划得到管控。\n"
"\n"
"可以配置多种休假类型(病假、法定假日、带薪休假等)并通过分配申请分配给单个员工或部门。员工也可以申请\n"
"增加假期天数,这需要填写一个额外的假期申请。如果增加假期天数的申请被批准,这个类型假期的可用天数会自动增加。\n"
"\n"
"以下报表用于对假期进行跟踪:\n"
"* 休假总览\n"
"* 按部门休假\n"
"* 休假分析\n"
"\n"
"如果为休假设置了一种日程类型就可以与CRM中的日程同步也就是说休假批准后会在日程上标识出此员工正在休假中。\n"
#. module: base
#: selection:base.language.install,lang:0
@ -1216,6 +1237,20 @@ msgid ""
"* Planned Revenue by Stage and User (graph)\n"
"* Opportunities by Stage (graph)\n"
msgstr ""
"\n"
"通用客户关系管理CRM模块\n"
"====================================================\n"
"此模块能让群组人员合理有效地管理线索、商机、会谈以及电话访问等活动。\n"
"管理涉及的重要功能包括:通信、身份识别、优先级设定、任务委派、投诉解决及通知等。\n"
"OpenERP可以有效跟踪用户、客户和供应商的所有的活动案例。根据设定的规则可以自动发送提醒、请求触发各种动作。\n"
"最重要的好处是用户不需要做任何特殊的事。此模块集成了电子邮件网关邮件在OpenERP中自动同步用户只需在OpenERP中根据系统反馈按需发送和回复"
"邮件。\n"
"OpenERP将接管其余的事诸如发送感谢信、自动转发到相关人员并确保之后相应的回复能准确送达。\n"
"\n"
"CRM 仪表盘Dashboard 包括:\n"
"---------------------------------------\n"
"* 可按阶段和用户分类的预计收益图表\n"
"* 按阶段分类的商机图表\n"
#. module: base
#: selection:base.language.export,format:0
@ -1991,15 +2026,13 @@ msgid ""
"rights to the Demo user. \n"
msgstr ""
"\n"
"会计访问权限\n"
"会计访问权限管理\n"
"\n"
"========================\n"
"\n"
"It gives the Administrator user access to all accounting features such as "
"journal items and the chart of accounts.\n"
"此模块用来管理所有会计功能的访问权限如凭证行归类journal items和会计科目chart of accounts等。\n"
"\n"
"It assigns manager and user access rights to the Administrator and only user "
"rights to the Demo user。 \n"
"默认设置管理员Administrator拥有经理和一般用户的访问权限而演示用户Demo user仅拥有一般用户的权限。 \n"
#. module: base
#: view:ir.sequence:0
@ -2059,7 +2092,7 @@ msgstr "读权限"
#. module: base
#: help:ir.attachment,res_id:0
msgid "The record id this is attached to"
msgstr ""
msgstr "附件相关的数据记录id"
#. module: base
#: model:ir.module.module,description:base.module_share
@ -2160,6 +2193,11 @@ msgid ""
"with the effect of creating, editing and deleting either ways.\n"
" "
msgstr ""
"\n"
"项目进度与工时记录的集成\n"
"====================================================================\n"
"安装了此模块,项目进度的添加删除和修改会自动同步到工时表上。\n"
" "
#. module: base
#: model:ir.model,name:base.model_ir_model_access
@ -2179,6 +2217,11 @@ msgid ""
" templates to target objects.\n"
" "
msgstr ""
"\n"
" * 科目表、税、税项、凭证类型、科目模版、成本要素和成本凭证类型的多语言支持。\n"
" * 对设置向导的修改\n"
" - 从模版复制科目表、税、税项和替换规则到目标数据表。\n"
" "
#. module: base
#: field:workflow.transition,act_from:0
@ -2934,6 +2977,36 @@ msgid ""
"* Monthly Turnover (Graph)\n"
" "
msgstr ""
"\n"
"报价单和销售订单管理\n"
"==================================\n"
"此模块用来有效记录和跟踪所有销售订单及其历史,从而有效管理你的销售目标。\n"
"\n"
"整个销售流程包括:\n"
"\n"
"* **报价单** -> **销售订单** -> **发票**\n"
"\n"
"参数设置(仅在安装了仓库管理模块的情况下):\n"
"------------------------------------------------------\n"
"\n"
"如果安装了仓库管理模块,您可以设置以下参数:\n"
"\n"
"* 发货:选择一次性发货或部分发货\n"
"* 发票:选择发票是如何被支付\n"
"* Incoterms选择所使用的国际贸易术语\n"
"\n"
"您可以选择灵活的开票方式:\n"
"\n"
"* *按需开具*:需要时,手动从销售订单开具发票\n"
"* *按发货单*:按发货单自动生成发票\n"
"* *发运前*:先创建发票草稿,待支付后发货\n"
"\n"
"\n"
"销售经理的仪表盘Dashboard包括\n"
"------------------------------------------------\n"
"* 我的报价单\n"
"* 月成交量(图表)\n"
" "
#. module: base
#: field:ir.actions.act_window,res_id:0
@ -8779,6 +8852,13 @@ msgid ""
"\n"
"Notes can be found in the 'Home' menu.\n"
msgstr ""
"\n"
"此模块能让用户在OpenERP中创建他们自己的笔记Notes\n"
"=================================================================\n"
"Notes可用来记录会议纪要、即时的想法和创意、个人待办事项等等。每个用户管理其自己的个人笔记。笔记只能由创建者自己看到但可通过分享笔记给其它用户以便"
"多人协作实时更新同一笔记。这对诸如分享会议纪要等十分有效。\n"
"\n"
"Notes菜单可在“消息”菜单中找到\n"
#. module: base
#: model:res.country,name:base.dm
@ -11918,7 +11998,7 @@ msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
msgstr "检查写作"
msgstr "支票填写"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@ -12355,7 +12435,7 @@ msgstr "选中内容"
#: model:ir.actions.act_window,name:base.change_password_wizard_action
#: view:res.users:0
msgid "Change Password"
msgstr ""
msgstr "更改密码"
#. module: base
#: model:ir.module.module,description:base.module_l10n_es
@ -12665,7 +12745,7 @@ msgstr "地址格式"
#. module: base
#: model:ir.model,name:base.model_change_password_user
msgid "Change Password Wizard User"
msgstr ""
msgstr "密码更改向导"
#. module: base
#: model:res.groups,name:base.group_no_one
@ -14304,7 +14384,7 @@ msgstr "泰国"
#. module: base
#: model:ir.model,name:base.model_change_password_wizard
msgid "Change Password Wizard"
msgstr ""
msgstr "密码更改向导"
#. module: base
#: model:ir.module.module,summary:base.module_account_voucher
@ -15618,7 +15698,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
msgstr "内部单据"
msgstr "内部备注"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_pvt_ltd
@ -15639,7 +15719,7 @@ msgstr "行内编辑"
#. module: base
#: selection:ir.cron,interval_type:0
msgid "Months"
msgstr "月"
msgstr "月"
#. module: base
#: view:workflow.instance:0
@ -15662,7 +15742,7 @@ msgstr "是一个公司?"
#: field:res.partner.bank,name:0
#, python-format
msgid "Bank Account"
msgstr "银行账"
msgstr "银行账"
#. module: base
#: model:res.country,name:base.kp

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-08-03 05:52+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:25+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-08-03 05:54+0000\n"
"X-Generator: Launchpad (build 16718)\n"
"X-Launchpad-Export-Date: 2013-09-06 05:27+0000\n"
"X-Generator: Launchpad (build 16760)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing

View File

@ -76,7 +76,7 @@
<filter string="Owner" icon="terp-personal" domain="[]" context="{'group_by':'create_uid'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}" groups="base.group_no_one"/>
<filter string="Company" icon="terp-gtk-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter string="Month" help="Creation Month" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}"/>
<filter string="Creation Month" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}"/>
</group>
</search>
</field>

View File

@ -195,7 +195,8 @@ class ir_model(osv.osv):
ctx = dict(context,
field_name=vals['name'],
field_state='manual',
select=vals.get('select_level', '0'))
select=vals.get('select_level', '0'),
update_custom_fields=True)
self.pool[vals['model']]._auto_init(cr, ctx)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res

View File

@ -84,7 +84,7 @@ class ir_sequence(openerp.osv.osv.osv):
_columns = {
'name': openerp.osv.fields.char('Name', size=64, required=True),
'code': openerp.osv.fields.selection(_code_get, 'Code', size=64),
'code': openerp.osv.fields.selection(_code_get, 'Sequence Type', size=64),
'implementation': openerp.osv.fields.selection( # TODO update the view
[('standard', 'Standard'), ('no_gap', 'No gap')],
'Implementation', required=True,

View File

@ -445,6 +445,13 @@ class ir_translation(osv.osv):
tools.trans_load(cr, base_trans_file, lang, verbose=False, module_name=module_name, context=context)
context['overwrite'] = True # make sure the requested translation will override the base terms later
# i18n_extra folder is for additional translations handle manually (eg: for l10n_be)
base_trans_extra_file = openerp.modules.get_module_resource(module_name, 'i18n_extra', base_lang_code + '.po')
if base_trans_extra_file:
_logger.info('module %s: loading extra base translation file %s for language %s', module_name, base_lang_code, lang)
tools.trans_load(cr, base_trans_extra_file, lang, verbose=False, module_name=module_name, context=context)
context['overwrite'] = True # make sure the requested translation will override the base terms later
# Step 2: then load the main translation file, possibly overriding the terms coming from the base language
trans_file = openerp.modules.get_module_resource(module_name, 'i18n', lang_code + '.po')
if trans_file:
@ -452,6 +459,11 @@ class ir_translation(osv.osv):
tools.trans_load(cr, trans_file, lang, verbose=False, module_name=module_name, context=context)
elif lang_code != 'en_US':
_logger.warning('module %s: no translation for language %s', module_name, lang_code)
trans_extra_file = openerp.modules.get_module_resource(module_name, 'i18n_extra', lang_code + '.po')
if trans_extra_file:
_logger.info('module %s: loading extra translation file (%s) for language %s', module_name, lang_code, lang)
tools.trans_load(cr, trans_extra_file, lang, verbose=False, module_name=module_name, context=context)
return True

View File

@ -187,7 +187,7 @@ class view(osv.osv):
if self.pool._init:
# Module init currently in progress, only consider views from modules whose code was already loaded
query = """SELECT v.id FROM ir_ui_view v LEFT JOIN ir_model_data md ON (md.model = 'ir.ui.view' AND md.res_id = v.id)
WHERE v.inherit_id=%s AND v.model=%s AND md.module in %s
WHERE v.inherit_id=%s AND v.model=%s AND (md.module IS NULL or md.module in %s)
ORDER BY priority"""
query_params = (view_id, model, tuple(self.pool._init_modules))
else:

View File

@ -49,10 +49,10 @@ class res_config_module_installation_mixin(object):
to_install_missing_names.append(name)
elif module.state == 'uninstalled':
to_install_ids.append(module.id)
result = None
if to_install_ids:
ir_module.button_immediate_install(cr, uid, to_install_ids, context=context)
result = ir_module.button_immediate_install(cr, uid, to_install_ids, context=context)
#FIXME: if result is not none, the corresponding todo will be skipped because it was just marked done
if to_install_missing_names:
return {
'type': 'ir.actions.client',
@ -60,7 +60,7 @@ class res_config_module_installation_mixin(object):
'params': {'modules': to_install_missing_names},
}
return None
return result
class res_config_configurable(osv.osv_memory):
''' Base classes for new-style configuration items

View File

@ -30,11 +30,13 @@ from openerp.tools.translate import _
CURRENCY_DISPLAY_PATTERN = re.compile(r'(\w+)\s*(?:\((.*)\))?')
class res_currency(osv.osv):
def _current_rate(self, cr, uid, ids, name, arg, context=None):
return self._get_current_rate(cr, uid, ids, name, arg, context=context)
return self._get_current_rate(cr, uid, ids, context=context)
def _get_current_rate(self, cr, uid, ids, name, arg, context=None):
def _current_rate_silent(self, cr, uid, ids, name, arg, context=None):
return self._get_current_rate(cr, uid, ids, raise_on_no_rate=False, context=context)
def _get_current_rate(self, cr, uid, ids, raise_on_no_rate=True, context=None):
if context is None:
context = {}
res = {}
@ -52,9 +54,12 @@ class res_currency(osv.osv):
if cr.rowcount:
id, rate = cr.fetchall()[0]
res[id] = rate
elif not raise_on_no_rate:
res[id] = 0
else:
raise osv.except_osv(_('Error!'),_("No currency rate associated for currency %d for the given period" % (id)))
return res
_name = "res.currency"
_description = "Currency"
_columns = {
@ -63,6 +68,10 @@ class res_currency(osv.osv):
'symbol': fields.char('Symbol', size=4, help="Currency sign, to be used when printing amounts."),
'rate': fields.function(_current_rate, string='Current Rate', digits=(12,6),
help='The rate of the currency to the currency of rate 1.'),
# Do not use for computation ! Same as rate field with silent failing
'rate_silent': fields.function(_current_rate_silent, string='Current Rate', digits=(12,6),
help='The rate of the currency to the currency of rate 1 (0 if no rate defined).'),
'rate_ids': fields.one2many('res.currency.rate', 'currency_id', 'Rates'),
'accuracy': fields.integer('Computational Accuracy'),
'rounding': fields.float('Rounding Factor', digits=(12,6)),

View File

@ -22,7 +22,7 @@
<field name="company_id" groups="base.group_multi_company"/>
<field name="rate_ids" invisible="1"/>
<field name="date"/>
<field name="rate"/>
<field name="rate_silent"/>
<field name="rounding"/>
<field name="accuracy"/>
<field name="position"/>
@ -37,7 +37,7 @@
<form string="Currency" version="7.0">
<group col="4">
<field name="name"/>
<field name="rate"/>
<field name="rate_silent"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>

View File

@ -208,6 +208,8 @@ class res_partner(osv.osv, format_address):
return result
def _display_name_compute(self, cr, uid, ids, name, args, context=None):
context = dict(context or {})
context.pop('show_address', None)
return dict(self.name_get(cr, uid, ids, context=context))
# indirections to avoid passing a copy of the overridable method when declaring the function field
@ -479,7 +481,11 @@ class res_partner(osv.osv, format_address):
if partner.child_ids:
# 2a. Commercial Fields: sync if commercial entity
if partner.commercial_partner_id == partner:
self._commercial_sync_to_children(cr, uid, partner, context=context)
commercial_fields = self._commercial_fields(cr, uid,
context=context)
if any(field in update_values for field in commercial_fields):
self._commercial_sync_to_children(cr, uid, partner,
context=context)
# 2b. Address fields: sync if address changed
address_fields = self._address_fields(cr, uid, context=context)
if any(field in update_values for field in address_fields):
@ -502,6 +508,16 @@ class res_partner(osv.osv, format_address):
def write(self, cr, uid, ids, vals, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
#res.partner must only allow to set the company_id of a partner if it
#is the same as the company of all users that inherit from this partner
#(this is to allow the code from res_users to write to the partner!) or
#if setting the company_id to False (this is compatible with any user company)
if vals.get('company_id'):
for partner in self.browse(cr, uid, ids, context=context):
if partner.user_ids:
user_companies = set([user.company_id.id for user in partner.user_ids])
if len(user_companies) > 1 or vals['company_id'] not in user_companies:
raise osv.except_osv(_("Warning"),_("You can not change the company as the partner/user has multiple user linked with different companies."))
result = super(res_partner,self).write(cr, uid, ids, vals, context=context)
for partner in self.browse(cr, uid, ids, context=context):
self._fields_sync(cr, uid, partner, vals, context)
@ -602,14 +618,15 @@ class res_partner(osv.osv, format_address):
if operator in ('=ilike', '=like'):
operator = operator[1:]
query_args = {'name': search_name}
limit_str = ''
query = ('''SELECT id FROM res_partner
WHERE email ''' + operator + ''' %(name)s
OR display_name ''' + operator + ''' %(name)s
ORDER BY display_name
''')
if limit:
limit_str = ' limit %(limit)s'
query += ' limit %(limit)s'
query_args['limit'] = limit
cr.execute('''SELECT partner.id FROM res_partner partner
LEFT JOIN res_partner company ON partner.parent_id = company.id
WHERE partner.email ''' + operator +''' %(name)s OR
partner.display_name ''' + operator + ' %(name)s ' + limit_str, query_args)
cr.execute(query, query_args)
ids = map(lambda x: x[0], cr.fetchall())
ids = self.search(cr, uid, [('id', 'in', ids)] + args, limit=limit, context=context)
if ids:

View File

@ -283,6 +283,13 @@ class res_users(osv.osv):
return result
def create(self, cr, uid, vals, context=None):
user_id = super(res_users, self).create(cr, uid, vals, context=context)
user = self.browse(cr, uid, user_id, context=context)
if user.partner_id.company_id:
user.partner_id.write({'company_id': user.company_id.id})
return user_id
def write(self, cr, uid, ids, values, context=None):
if not hasattr(ids, '__iter__'):
ids = [ids]
@ -297,7 +304,11 @@ class res_users(osv.osv):
uid = 1 # safe fields only, so we write as super-user to bypass access rights
res = super(res_users, self).write(cr, uid, ids, values, context=context)
if 'company_id' in values:
for user in self.browse(cr, uid, ids, context=context):
# if partner is global we keep it that way
if user.partner_id.company_id and user.partner_id.company_id.id != values['company_id']:
user.partner_id.write({'company_id': user.company_id.id})
# clear caches linked to the users
self.pool['ir.model.access'].call_cache_clearing_methods(cr)
clear = partial(self.pool['ir.rule'].clear_cache, cr)

View File

@ -18,6 +18,7 @@
"access_ir_model_relation","ir_model_relation","model_ir_model_relation",,1,0,0,0
"access_ir_model_access_all","ir_model_access_all","model_ir_model_access",,1,0,0,0
"access_ir_model_data_all","ir_model_data all","model_ir_model_data",,1,0,0,0
"access_ir_model_data_user","ir_model_data user","model_ir_model_data",base.group_user,1,0,1,0
"access_ir_model_fields_all","ir_model_fields all","model_ir_model_fields",,1,0,0,0
"access_ir_module_category_group_user","ir_module_category group_user","model_ir_module_category",,1,0,0,0
"access_ir_module_module_group_user","ir_module_module group_user","model_ir_module_module","group_system",1,1,1,1
@ -110,9 +111,7 @@
"access_res_bank_user","res_bank user","model_res_bank","group_user",1,0,0,0
"access_multi_company_default user","multi_company_default all","model_multi_company_default",,1,0,0,0
"access_multi_company_default manager","multi_company_default Manager","model_multi_company_default","group_erp_manager",1,1,1,1
"access_ir_filter all","ir_filters all","model_ir_filters",,1,0,0,0
"access_ir_filter employee","ir_filters employee","model_ir_filters","group_user",1,1,1,1
"access_ir_filters","ir_filters_all","model_ir_filters",,1,1,1,1
"access_ir_filter all","ir_filters all","model_ir_filters",,1,1,1,1
"access_ir_config_parameter","ir_config_parameter","model_ir_config_parameter",,1,0,0,0
"access_ir_mail_server","ir_mail_server","model_ir_mail_server","group_system",1,1,1,1
"access_ir_actions_client","ir_actions_client all","model_ir_actions_client",,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
18 access_ir_model_relation ir_model_relation model_ir_model_relation 1 0 0 0
19 access_ir_model_access_all ir_model_access_all model_ir_model_access 1 0 0 0
20 access_ir_model_data_all ir_model_data all model_ir_model_data 1 0 0 0
21 access_ir_model_data_user ir_model_data user model_ir_model_data base.group_user 1 0 1 0
22 access_ir_model_fields_all ir_model_fields all model_ir_model_fields 1 0 0 0
23 access_ir_module_category_group_user ir_module_category group_user model_ir_module_category 1 0 0 0
24 access_ir_module_module_group_user ir_module_module group_user model_ir_module_module group_system 1 1 1 1
111 access_res_bank_user res_bank user model_res_bank group_user 1 0 0 0
112 access_multi_company_default user multi_company_default all model_multi_company_default 1 0 0 0
113 access_multi_company_default manager multi_company_default Manager model_multi_company_default group_erp_manager 1 1 1 1
114 access_ir_filter all ir_filters all model_ir_filters 1 0 1 0 1 0 1
access_ir_filter employee ir_filters employee model_ir_filters group_user 1 1 1 1
access_ir_filters ir_filters_all model_ir_filters 1 1 1 1
115 access_ir_config_parameter ir_config_parameter model_ir_config_parameter 1 0 0 0
116 access_ir_mail_server ir_mail_server model_ir_mail_server group_system 1 1 1 1
117 access_ir_actions_client ir_actions_client all model_ir_actions_client 1 0 0 0

View File

@ -102,7 +102,7 @@ openerp.base = function(instance) {
});
}).
fail(function(client) {*/
self.do_warn(_t('OpenERP Apps Unreachable'), _t('Showing locally available modules'), true);
//self.do_warn(_t('OpenERP Apps Unreachable'), _t('Showing locally available modules'), true);
self.rpc('/web/action/load', {action_id: self.failback_action_id}).done(function(action) {
self.do_action(action);
instance.webclient.menu.open_action(action.id);

View File

@ -56,19 +56,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
:param skip_modules: optional list of module names (packages) which have previously been loaded and can be skipped
:return: list of modules that were installed or updated
"""
def process_sql_file(cr, fp):
queries = fp.read().split(';')
for query in queries:
new_query = ' '.join(query.split())
if new_query:
cr.execute(new_query)
load_init_xml = lambda *args: _load_data(cr, *args, kind='init_xml')
load_update_xml = lambda *args: _load_data(cr, *args, kind='update_xml')
load_demo_xml = lambda *args: _load_data(cr, *args, kind='demo_xml')
load_data = lambda *args: _load_data(cr, *args, kind='data')
load_demo = lambda *args: _load_data(cr, *args, kind='demo')
def load_test(module_name, idref, mode):
cr.commit()
try:
@ -86,6 +73,28 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
else:
cr.rollback()
def _get_files_of_kind(kind):
if kind == 'demo':
kind = ['demo_xml', 'demo']
elif kind == 'data':
kind = ['init_xml', 'update_xml', 'data']
if isinstance(kind, str):
kind = [kind]
files = []
for k in kind:
for f in package.data[k]:
files.append(f)
if k.endswith('_xml') and not (k == 'init_xml' and not f.endswith('.xml')):
# init_xml, update_xml and demo_xml are deprecated except
# for the case of init_xml with yaml, csv and sql files as
# we can't specify noupdate for those file.
correct_key = 'demo' if k.count('demo') else 'data'
_logger.warning(
"module %s: key '%s' is deprecated in favor of '%s' for file '%s'.",
package.name, k, correct_key, f
)
return files
def _load_data(cr, module_name, idref, mode, kind):
"""
@ -95,32 +104,12 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
init mode.
"""
for filename in package.data[kind]:
for filename in _get_files_of_kind(kind):
_logger.info("module %s: loading %s", module_name, filename)
_, ext = os.path.splitext(filename)
pathname = os.path.join(module_name, filename)
fp = tools.file_open(pathname)
noupdate = False
if kind in ('demo', 'demo_xml'):
if kind in ('demo', 'demo_xml') or (filename.endswith('.csv') and kind in ('init', 'init_xml')):
noupdate = True
try:
ext = ext.lower()
if ext == '.csv':
if kind in ('init', 'init_xml'):
noupdate = True
tools.convert_csv_import(cr, module_name, pathname, fp.read(), idref, mode, noupdate)
elif ext == '.sql':
process_sql_file(cr, fp)
elif ext == '.yml':
tools.convert_yaml_import(cr, module_name, fp, kind, idref, mode, noupdate, report)
elif ext == '.xml':
tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report)
elif ext == '.js':
pass # .js files are valid but ignored here.
else:
_logger.warning("Can't load unknown file type %s.", filename)
finally:
fp.close()
tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
if status is None:
status = {}
@ -176,13 +165,10 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
if package.state=='to upgrade':
# upgrading the module information
modobj.write(cr, SUPERUSER_ID, [module_id], modobj.get_values_from_terp(package.data))
load_init_xml(module_name, idref, mode)
load_update_xml(module_name, idref, mode)
load_data(module_name, idref, mode)
_load_data(cr, module_name, idref, mode, kind='data')
if hasattr(package, 'demo') or (package.dbdemo and package.state != 'installed'):
status['progress'] = (index + 0.75) / len(graph)
load_demo_xml(module_name, idref, mode)
load_demo(module_name, idref, mode)
_load_data(cr, module_name, idref, mode, kind='demo')
cr.execute('update ir_module_module set demo=%s where id=%s', (True, module_id))
# launch tests only in demo mode, as most tests will depend
@ -329,13 +315,21 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
# they are part of the "currently installed" modules. They will
# be dropped in STEP 6 later, before restarting the loading
# process.
states_to_load = ['installed', 'to upgrade', 'to remove']
processed = load_marked_modules(cr, graph, states_to_load, force, status, report, loaded_modules, update_module)
processed_modules.extend(processed)
if update_module:
states_to_load = ['to install']
processed = load_marked_modules(cr, graph, states_to_load, force, status, report, loaded_modules, update_module)
processed_modules.extend(processed)
# IMPORTANT 2: We have to loop here until all relevant modules have been
# processed, because in some rare cases the dependencies have
# changed, and modules that depend on an uninstalled module
# will not be processed on the first pass.
# It's especially useful for migrations.
previously_processed = -1
while previously_processed < len(processed_modules):
previously_processed = len(processed_modules)
processed_modules += load_marked_modules(cr, graph,
['installed', 'to upgrade', 'to remove'],
force, status, report, loaded_modules, update_module)
if update_module:
processed_modules += load_marked_modules(cr, graph,
['to install'], force, status, report,
loaded_modules, update_module)
# load custom models
cr.execute('select model from ir_model where state=%s', ('manual',))

View File

@ -398,7 +398,9 @@ def is_leaf(element, internal=False):
INTERNAL_OPS += ('inselect',)
return (isinstance(element, tuple) or isinstance(element, list)) \
and len(element) == 3 \
and element[1] in INTERNAL_OPS
and element[1] in INTERNAL_OPS \
and ((isinstance(element[0], basestring) and element[0])
or element in (TRUE_LEAF, FALSE_LEAF))
# --------------------------------------------------

View File

@ -383,16 +383,18 @@ class browse_record(object):
raise KeyError(error_msg)
# if the field is a classic one or a many2one, we'll fetch all classic and many2one fields
if col._prefetch:
if col._prefetch and not col.groups:
# gen the list of "local" (ie not inherited) fields which are classic or many2one
fields_to_fetch = filter(lambda x: x[1]._classic_write and x[1]._prefetch, self._table._columns.items())
field_filter = lambda x: x[1]._classic_write and x[1]._prefetch and not x[1].groups
fields_to_fetch = filter(field_filter, self._table._columns.items())
# gen the list of inherited fields
inherits = map(lambda x: (x[0], x[1][2]), self._table._inherit_fields.items())
# complete the field list with the inherited fields which are classic or many2one
fields_to_fetch += filter(lambda x: x[1]._classic_write and x[1]._prefetch, inherits)
fields_to_fetch += filter(field_filter, inherits)
# otherwise we fetch only that field
else:
fields_to_fetch = [(name, col)]
ids = filter(lambda id: name not in self._data[id], self._data.keys())
# read the results
field_names = map(lambda x: x[0], fields_to_fetch)
@ -2199,7 +2201,8 @@ class BaseModel(object):
sql_res = False
parent_view_model = None
view_ref = context.get(view_type + '_view_ref')
view_ref_key = view_type + '_view_ref'
view_ref = context.get(view_ref_key)
# Search for a root (i.e. without any parent) view.
while True:
if view_ref and not view_id:
@ -2209,6 +2212,10 @@ class BaseModel(object):
view_ref_res = cr.fetchone()
if view_ref_res:
view_id = view_ref_res[0]
else:
_logger.warning('%r requires a fully-qualified external id (got: %r for model %s). '
'Please use the complete `module.view_id` form instead.', view_ref_key, view_ref,
self._name)
if view_id:
cr.execute("""SELECT arch,name,field_parent,id,type,inherit_id,model

View File

@ -109,7 +109,7 @@ class _date_format(str, _format):
if self.val:
if getattr(self,'name', None):
date = datetime.strptime(self.name[:get_date_length()], DEFAULT_SERVER_DATE_FORMAT)
return date.strftime(str(self.lang_obj.date_format))
return date.strftime(self.lang_obj.date_format.encode('utf-8'))
return self.val
class _dttime_format(str, _format):
@ -120,8 +120,8 @@ class _dttime_format(str, _format):
def __str__(self):
if self.val and getattr(self,'name', None):
return datetime.strptime(self.name, DEFAULT_SERVER_DATETIME_FORMAT)\
.strftime("%s %s"%(str(self.lang_obj.date_format),
str(self.lang_obj.time_format)))
.strftime("%s %s"%((self.lang_obj.date_format).encode('utf-8'),
(self.lang_obj.time_format).encode('utf-8')))
return self.val
@ -313,7 +313,7 @@ class rml_parse(object):
date = datetime_field.context_timestamp(self.cr, self.uid,
timestamp=date,
context=self.localcontext)
return date.strftime(date_format)
return date.strftime(date_format.encode('utf-8'))
res = self.lang_dict['lang_obj'].format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary)
if currency_obj:

View File

@ -9,6 +9,7 @@ import common
# test group that demo user should not have
GROUP_TECHNICAL_FEATURES = 'base.group_no_one'
class TestACL(common.TransactionCase):
def setUp(self):
@ -22,25 +23,25 @@ class TestACL(common.TransactionCase):
def test_field_visibility_restriction(self):
"""Check that model-level ``groups`` parameter effectively restricts access to that
field for users who do not belong to one of the explicitly allowed groups"""
field for users who do not belong to one of the explicitly allowed groups"""
# Verify the test environment first
original_fields = self.res_currency.fields_get(self.cr, self.demo_uid, [])
form_view = self.res_currency.fields_view_get(self.cr, self.demo_uid, False, 'form')
view_arch = etree.fromstring(form_view.get('arch'))
has_tech_feat = self.res_users.has_group(self.cr, self.demo_uid, GROUP_TECHNICAL_FEATURES)
self.assertFalse(has_tech_feat, "`demo` user should not belong to the restricted group before the test")
self.assertTrue('rate' in original_fields, "'rate' field must be properly visible before the test")
self.assertNotEquals(view_arch.xpath("//field[@name='rate']"), [],
"Field 'rate' must be found in view definition before the test")
self.assertTrue('accuracy' in original_fields, "'accuracy' field must be properly visible before the test")
self.assertNotEquals(view_arch.xpath("//field[@name='accuracy']"), [],
"Field 'accuracy' must be found in view definition before the test")
# Restrict access to the field and check it's gone
self.res_currency._columns['rate'].groups = GROUP_TECHNICAL_FEATURES
self.res_currency._columns['accuracy'].groups = GROUP_TECHNICAL_FEATURES
fields = self.res_currency.fields_get(self.cr, self.demo_uid, [])
form_view = self.res_currency.fields_view_get(self.cr, self.demo_uid, False, 'form')
view_arch = etree.fromstring(form_view.get('arch'))
self.assertFalse('rate' in fields, "'rate' field should be gone")
self.assertEquals(view_arch.xpath("//field[@name='rate']"), [],
"Field 'rate' must not be found in view definition")
self.assertFalse('accuracy' in fields, "'accuracy' field should be gone")
self.assertEquals(view_arch.xpath("//field[@name='accuracy']"), [],
"Field 'accuracy' must not be found in view definition")
# Make demo user a member of the restricted group and check that the field is back
self.tech_group.write({'users': [(4, self.demo_uid)]})
@ -50,13 +51,13 @@ class TestACL(common.TransactionCase):
view_arch = etree.fromstring(form_view.get('arch'))
#import pprint; pprint.pprint(fields); pprint.pprint(form_view)
self.assertTrue(has_tech_feat, "`demo` user should now belong to the restricted group")
self.assertTrue('rate' in fields, "'rate' field must be properly visible again")
self.assertNotEquals(view_arch.xpath("//field[@name='rate']"), [],
"Field 'rate' must be found in view definition again")
self.assertTrue('accuracy' in fields, "'accuracy' field must be properly visible again")
self.assertNotEquals(view_arch.xpath("//field[@name='accuracy']"), [],
"Field 'accuracy' must be found in view definition again")
#cleanup
self.tech_group.write({'users': [(3, self.demo_uid)]})
self.res_currency._columns['rate'].groups = False
self.res_currency._columns['accuracy'].groups = False
@mute_logger('openerp.osv.orm')
def test_field_crud_restriction(self):
@ -65,7 +66,7 @@ class TestACL(common.TransactionCase):
has_tech_feat = self.res_users.has_group(self.cr, self.demo_uid, GROUP_TECHNICAL_FEATURES)
self.assertFalse(has_tech_feat, "`demo` user should not belong to the restricted group")
self.assert_(self.res_partner.read(self.cr, self.demo_uid, [1], ['bank_ids']))
self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
# Now restrict access to the field and check it's forbidden
self.res_partner._columns['bank_ids'].groups = GROUP_TECHNICAL_FEATURES
@ -79,12 +80,30 @@ class TestACL(common.TransactionCase):
has_tech_feat = self.res_users.has_group(self.cr, self.demo_uid, GROUP_TECHNICAL_FEATURES)
self.assertTrue(has_tech_feat, "`demo` user should now belong to the restricted group")
self.assert_(self.res_partner.read(self.cr, self.demo_uid, [1], ['bank_ids']))
self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
#cleanup
self.tech_group.write({'users': [(3, self.demo_uid)]})
self.res_partner._columns['bank_ids'].groups = False
def test_fields_browse_restriction(self):
"""Test access to records having restricted fields"""
self.res_partner._columns['email'].groups = GROUP_TECHNICAL_FEATURES
try:
P = self.res_partner
pid = P.search(self.cr, self.demo_uid, [], limit=1)[0]
part = P.browse(self.cr, self.demo_uid, pid)
# accessing fields must no raise exceptions...
part.name
# ... except they are restricted
with self.assertRaises(openerp.osv.orm.except_orm) as cm:
part.email
self.assertEqual(cm.exception.args[0], 'Access Denied')
finally:
self.res_partner._columns['email'].groups = False
if __name__ == '__main__':
unittest2.main()

View File

@ -33,6 +33,7 @@ import time
import openerp
import openerp.release
import openerp.workflow
from yaml_import import convert_yaml_import
import assertion_report
@ -877,6 +878,33 @@ form: module.record_id""" % (xml_id,)
'url': self._tag_url
}
def convert_file(cr, module, filename, idref, mode='update', noupdate=False, kind=None, report=None):
pathname = os.path.join(module, filename)
fp = misc.file_open(pathname)
ext = os.path.splitext(filename)[1].lower()
try:
if ext == '.csv':
convert_csv_import(cr, module, pathname, fp.read(), idref, mode, noupdate)
elif ext == '.sql':
convert_sql_import(cr, fp)
elif ext == '.yml':
convert_yaml_import(cr, module, fp, kind, idref, mode, noupdate, report)
elif ext == '.xml':
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
elif ext == '.js':
pass # .js files are valid but ignored here.
else:
_logger.warning("Can't load unknown file type %s.", filename)
finally:
fp.close()
def convert_sql_import(cr, fp):
queries = fp.read().split(';')
for query in queries:
new_query = ' '.join(query.split())
if new_query:
cr.execute(new_query)
def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init',
noupdate=False):
'''Import csv file :

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Business Applications
# Copyright (C) 2012 OpenERP S.A. (<http://openerp.com>).
# Copyright (C) 2012-2013 OpenERP S.A. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -43,30 +43,59 @@ _logger = logging.getLogger(__name__)
tags_to_kill = ["script", "head", "meta", "title", "link", "style", "frame", "iframe", "base", "object", "embed"]
tags_to_remove = ['html', 'body', 'font']
# allow new semantic HTML5 tags
allowed_tags = clean.defs.tags | frozenset('article section header footer hgroup nav aside figure'.split())
safe_attrs = clean.defs.safe_attrs | frozenset(['style'])
def html_sanitize(src):
def html_sanitize(src, silent=True):
if not src:
return src
src = ustr(src, errors='replace')
logger = logging.getLogger(__name__ + '.html_sanitize')
# html encode email tags
part = re.compile(r"(<(([^a<>]|a[^<>\s])[^<>]*)@[^<>]+>)", re.IGNORECASE | re.DOTALL)
src = part.sub(lambda m: cgi.escape(m.group(1)), src)
# some corner cases make the parser crash (such as <SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT> in test_mail)
kwargs = {
'page_structure': True,
'style': False, # do not remove style attributes
'forms': True, # remove form tags
'remove_unknown_tags': False,
'allow_tags': allowed_tags,
}
if etree.LXML_VERSION >= (2, 3, 1):
# kill_tags attribute has been added in version 2.3.1
kwargs.update({
'kill_tags': tags_to_kill,
'remove_tags': tags_to_remove,
})
else:
kwargs['remove_tags'] = tags_to_kill + tags_to_remove
if etree.LXML_VERSION >= (3, 1, 0):
kwargs.update({
'safe_attrs_only': True,
'safe_attrs': safe_attrs,
})
else:
# lxml < 3.1.0 does not allow to specify safe_attrs. We keep all attributes in order to keep "style"
kwargs['safe_attrs_only'] = False
try:
cleaner = clean.Cleaner(page_structure=True, style=False, safe_attrs_only=False, forms=False, kill_tags=tags_to_kill, remove_tags=tags_to_remove)
# some corner cases make the parser crash (such as <SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT> in test_mail)
cleaner = clean.Cleaner(**kwargs)
cleaned = cleaner.clean_html(src)
except TypeError, e:
# lxml.clean version < 2.3.1 does not have a kill_tags attribute
# to remove in 2014
cleaner = clean.Cleaner(page_structure=True, style=False, safe_attrs_only=False, forms=False, remove_tags=tags_to_kill + tags_to_remove)
cleaned = cleaner.clean_html(src)
except etree.ParserError, e:
_logger.warning('html_sanitize: ParserError "%s" obtained when sanitizing "%s"' % (e, src))
except etree.ParserError:
if not silent:
raise
logger.warning('ParserError obtained when sanitizing %r', src, exc_info=True)
cleaned = '<p>ParserError when sanitizing</p>'
except Exception, e:
_logger.warning('html_sanitize: unknown error "%s" obtained when sanitizing "%s"' % (e, src))
except Exception:
if not silent:
raise
logger.warning('unknown error obtained when sanitizing %r', src, exc_info=True)
cleaned = '<p>Unknown error when sanitizing</p>'
return cleaned

View File

@ -421,6 +421,7 @@ def get_iso_codes(lang):
ALL_LANGUAGES = {
'ab_RU': u'Abkhazian / аҧсуа',
'am_ET': u'Amharic / አምሃርኛ',
'ar_SY': u'Arabic / الْعَرَبيّة',
'bg_BG': u'Bulgarian / български език',
'bs_BS': u'Bosnian / bosanski jezik',