[MERGE] merged trunk.

bzr revid: vmt@openerp.com-20120213111233-ontycsea5cpnvsgv
This commit is contained in:
Vo Minh Thu
2012-02-13 12:12:33 +01:00
32 changed files with 8532 additions and 3259 deletions
+9 -5
View File
@@ -1,11 +1,15 @@
# Gunicorn sample configuration file.
# See http://gunicorn.org/configure.html for more details.
#
# To run OpenERP via Gunicorn, change the appropriate
# To run the OpenERP server via Gunicorn, change the appropriate
# settings below, in order to provide the parameters that
# would normally be passed in the command-line,
# (at least `bind` and `conf['addons_path']`), then execute:
# $ gunicorn openerp:wsgi.application -c gunicorn.conf.py
# $ gunicorn openerp:wsgi.core.application -c gunicorn.conf.py
# or if you want to run it behind a reverse proxy, add the line
# import openerp.wsgi.proxied
# in this file and execute:
# $ gunicorn openerp:wsgi.proxied.application -c gunicorn.conf.py
import openerp
@@ -20,9 +24,9 @@ pidfile = '.gunicorn.pid'
workers = 10
# Some application-wide initialization is needed.
on_starting = openerp.wsgi.on_starting
pre_request = openerp.wsgi.pre_request
post_request = openerp.wsgi.post_request
on_starting = openerp.wsgi.core.on_starting
pre_request = openerp.wsgi.core.pre_request
post_request = openerp.wsgi.core.post_request
# openerp request-response cycle can be quite long for
# big reports for example
+1 -5
View File
@@ -241,11 +241,7 @@ if __name__ == "__main__":
for m in openerp.conf.server_wide_modules:
try:
__import__('openerp.addons.' + m)
# Call any post_load hook.
info = openerp.modules.module.load_information_from_description_file(m)
if info['post_load']:
getattr(sys.modules['openerp.addons.' + m], info['post_load'])()
openerp.modules.module.load_openerp_module(m)
except Exception:
msg = ''
if m == 'web':
+1
View File
@@ -42,6 +42,7 @@
'base_update.xml',
'ir/wizard/wizard_menu_view.xml',
'ir/ir.xml',
'ir/ir_config_parameter_view.xml',
'ir/workflow/workflow_view.xml',
'ir/report/ir_report.xml',
'module/module_view.xml',
+55 -12
View File
@@ -91,6 +91,10 @@
<field name="name">Aruba</field>
<field name="code">aw</field>
</record>
<record id="ax" model="res.country">
<field name="name">Åland Islands</field>
<field name="code">ax</field>
</record>
<record id="az" model="res.country">
<field name="name">Azerbaijan</field>
<field name="code">az</field>
@@ -132,6 +136,10 @@
<field name="name">Benin</field>
<field name="code">bj</field>
</record>
<record id="bl" model="res.country">
<field name="name">Saint Barthélémy</field>
<field name="code">bl</field>
</record>
<record id="bm" model="res.country">
<field name="name">Bermuda</field>
<field name="code">bm</field>
@@ -144,6 +152,10 @@
<field name="name">Bolivia</field>
<field name="code">bo</field>
</record>
<record id="bq" model="res.country">
<field name="name">Bonaire, Sint Eustatius and Saba</field>
<field name="code">bq</field>
</record>
<record id="br" model="res.country">
<field name="name">Brazil</field>
<field name="code">br</field>
@@ -226,15 +238,6 @@
<field name="name">Costa Rica</field>
<field name="code">cr</field>
</record>
<record id="rs" model="res.country">
<field name="name">Serbia</field>
<field name="code">rs</field>
</record>
<record id="me" model="res.country">
<field name="name">Montenegro</field>
<field name="code">me</field>
</record>
<record id="cu" model="res.country">
<field name="name">Cuba</field>
<field name="code">cu</field>
@@ -243,6 +246,10 @@
<field name="name">Cape Verde</field>
<field name="code">cv</field>
</record>
<record id="cw" model="res.country">
<field name="name">Curaçao</field>
<field name="code">cw</field>
</record>
<record id="cx" model="res.country">
<field name="name">Christmas Island</field>
<field name="code">cx</field>
@@ -358,6 +365,10 @@
<field name="name">Gibraltar</field>
<field name="code">gi</field>
</record>
<record id="gg" model="res.country">
<field name="name">Guernsey</field>
<field name="code">gg</field>
</record>
<record id="gl" model="res.country">
<field name="name">Greenland</field>
<field name="code">gl</field>
@@ -383,7 +394,7 @@
<field name="code">gr</field>
</record>
<record id="gs" model="res.country">
<field name="name">S. Georgia &amp; S. Sandwich Isls.</field>
<field name="name">South Georgia and the South Sandwich Islands</field>
<field name="code">gs</field>
</record>
<record id="gt" model="res.country">
@@ -438,6 +449,10 @@
<field name="name">Israel</field>
<field name="code">il</field>
</record>
<record id="im" model="res.country">
<field name="name">Isle of Man</field>
<field name="code">im</field>
</record>
<record id="in" model="res.country">
<field name="name">India</field>
<field name="code">in</field>
@@ -463,6 +478,10 @@
<field name="name">Italy</field>
<field name="code">it</field>
</record>
<record id="je" model="res.country">
<field name="name">Jersey</field>
<field name="code">je</field>
</record>
<record id="jm" model="res.country">
<field name="name">Jamaica</field>
<field name="code">jm</field>
@@ -575,6 +594,14 @@
<field name="name">Moldavia</field>
<field name="code">md</field>
</record>
<record id="me" model="res.country">
<field name="name">Montenegro</field>
<field name="code">me</field>
</record>
<record id="mf" model="res.country">
<field name="name">Saint Martin (French part)</field>
<field name="code">mf</field>
</record>
<record id="mg" model="res.country">
<field name="name">Madagascar</field>
<field name="code">mg</field>
@@ -584,7 +611,7 @@
<field name="code">mh</field>
</record>
<record id="mk" model="res.country">
<field name="name">FYROM</field>
<field name="name">Macedonia, the former Yugoslav Republic of</field>
<field name="code">mk</field>
</record>
<record id="ml" model="res.country">
@@ -744,6 +771,10 @@
<field name="name">Puerto Rico</field>
<field name="code">pr</field>
</record>
<record id="ps" model="res.country">
<field name="name">Palestinian Territory, Occupied</field>
<field name="code">ps</field>
</record>
<record id="pt" model="res.country">
<field name="name">Portugal</field>
<field name="code">pt</field>
@@ -768,6 +799,10 @@
<field name="name">Romania</field>
<field name="code">ro</field>
</record>
<record id="rs" model="res.country">
<field name="name">Serbia</field>
<field name="code">rs</field>
</record>
<record id="ru" model="res.country">
<field name="name">Russian Federation</field>
<field name="code">ru</field>
@@ -813,7 +848,7 @@
<field name="code">sj</field>
</record>
<record id="sk" model="res.country">
<field name="name">Slovak Republic</field>
<field name="name">Slovakia</field>
<field name="code">sk</field>
</record>
<record id="sl" model="res.country">
@@ -836,6 +871,10 @@
<field name="name">Suriname</field>
<field name="code">sr</field>
</record>
<record id="ss" model="res.country">
<field name="name">South Sudan</field>
<field name="code">ss</field>
</record>
<record id="st" model="res.country">
<field name="name">Saint Tome (Sao Tome) and Principe</field>
<field name="code">st</field>
@@ -844,6 +883,10 @@
<field name="name">El Salvador</field>
<field name="code">sv</field>
</record>
<record id="sx" model="res.country">
<field name="name">Sint Maarten (Dutch part)</field>
<field name="code">sx</field>
</record>
<record id="sy" model="res.country">
<field name="name">Syria</field>
<field name="code">sy</field>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+34 -30
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-02-08 00:44+0000\n"
"PO-Revision-Date: 2012-01-31 16:19+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"PO-Revision-Date: 2012-02-10 13:38+0000\n"
"Last-Translator: Christophe Chauvet - http://www.syleam.fr/ <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-02-09 05:48+0000\n"
"X-Generator: Launchpad (build 14763)\n"
"X-Launchpad-Export-Date: 2012-02-11 05:06+0000\n"
"X-Generator: Launchpad (build 14771)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -34,7 +34,7 @@ msgstr "Horodatage"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_mailgate
msgid "Tasks-Mail Integration"
msgstr ""
msgstr "Couplage des tâches de projet par email"
#. module: base
#: code:addons/fields.py:582
@@ -90,7 +90,7 @@ msgstr "Flux métier"
#. module: base
#: selection:ir.sequence,implementation:0
msgid "No gap"
msgstr ""
msgstr "Sans écart"
#. module: base
#: selection:base.language.install,lang:0
@@ -108,6 +108,8 @@ msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr ""
"Permet de gérer vos projets et tâches, en assurant leur suivi, en générant "
"des plannings, etc..."
#. module: base
#: field:ir.actions.act_window,display_menu_tip:0
@@ -119,6 +121,8 @@ msgstr "Afficher les astuces"
msgid ""
"Model name on which the method to be called is located, e.g. 'res.partner'."
msgstr ""
"Nom du modèle sur lequel la méthode à appeler est basé, par exemple, "
"'res.partner'."
#. module: base
#: view:ir.module.module:0
@@ -164,7 +168,7 @@ msgstr "Référence"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication"
msgstr ""
msgstr "Belgique - communication structurée"
#. module: base
#: field:ir.actions.act_window,target:0
@@ -174,17 +178,17 @@ msgstr "Fenêtre cible"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
msgstr ""
msgstr "Répartition analytique des ventes"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_process
msgid "Process"
msgstr ""
msgstr "Processus"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate
msgid "Billing Rates on Contracts"
msgstr ""
msgstr "Taux de facturation pour les contrats"
#. module: base
#: code:addons/base/res/res_users.py:558
@@ -234,12 +238,12 @@ msgstr "créé."
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
msgid "Turkey - Accounting"
msgstr ""
msgstr "Turquie - Comptabilité"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_subproduct
msgid "MRP Subproducts"
msgstr ""
msgstr "Sous-produits GPAO"
#. module: base
#: code:addons/base/module/module.py:390
@@ -273,7 +277,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#: model:ir.module.category,name:base.module_category_sales_management
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
msgstr ""
msgstr "Gestion des ventes"
#. module: base
#: view:res.partner:0
@@ -369,17 +373,17 @@ msgstr "Nom de l'assistant"
#. module: base
#: model:res.groups,name:base.group_partner_manager
msgid "Partner Manager"
msgstr ""
msgstr "Responsable des partenaires"
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
msgstr ""
msgstr "Gestion de la relation client"
#. module: base
#: view:ir.module.module:0
msgid "Extra"
msgstr ""
msgstr "Extra"
#. module: base
#: code:addons/orm.py:2526
@@ -410,7 +414,7 @@ msgstr "Mettre à jour la date"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
msgid "Automated Action Rules"
msgstr ""
msgstr "Règles d'action automatisés"
#. module: base
#: view:ir.attachment:0
@@ -425,7 +429,7 @@ msgstr "Objet source"
#. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal
msgid "%(bank_name)s: %(acc_number)s"
msgstr ""
msgstr "%(bank_name)s: %(acc_number)s"
#. module: base
#: view:ir.actions.todo:0
@@ -481,7 +485,7 @@ msgstr ""
#. module: base
#: help:res.partner,website:0
msgid "Website of Partner."
msgstr ""
msgstr "Site internet du partenaire"
#. module: base
#: help:ir.actions.act_window,views:0
@@ -510,7 +514,7 @@ msgstr "Format de date"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_report_designer
msgid "OpenOffice Report Designer"
msgstr ""
msgstr "Outil de conception des rapports d'OpenOffice"
#. module: base
#: field:res.bank,email:0
@@ -581,7 +585,7 @@ msgstr "Espagnol (VE) / Español (VE)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets"
msgstr ""
msgstr "Facturation aux temps passés"
#. module: base
#: view:base.module.upgrade:0
@@ -687,7 +691,7 @@ msgstr "Les champs personnalisés doivent avoir un nom commençant par 'x_' !"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_mx
msgid "Mexico - Accounting"
msgstr ""
msgstr "Comptabilité - Mexique"
#. module: base
#: help:ir.actions.server,action_id:0
@@ -708,7 +712,7 @@ msgstr "Export effectué"
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin_outlook
msgid "Outlook Plug-In"
msgstr ""
msgstr "Extension pour Outlook"
#. module: base
#: view:ir.model:0
@@ -737,7 +741,7 @@ msgstr "Jordanie"
#. module: base
#: help:ir.cron,nextcall:0
msgid "Next planned execution date for this job."
msgstr ""
msgstr "Prochaine date d'exécution pour cette tâche."
#. module: base
#: code:addons/base/ir/ir_model.py:139
@@ -753,7 +757,7 @@ msgstr "Érythrée"
#. module: base
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "Le nom de la société doit être unique !"
#. module: base
#: view:res.config:0
@@ -792,7 +796,7 @@ msgstr ""
#. module: base
#: view:ir.mail_server:0
msgid "Security and Authentication"
msgstr ""
msgstr "Sécurité et authentification"
#. module: base
#: view:base.language.export:0
@@ -885,7 +889,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_webdav
msgid "Shared Repositories (WebDAV)"
msgstr ""
msgstr "Répertoires partagés (WebDAV)"
#. module: base
#: model:ir.module.module,description:base.module_import_google
@@ -897,7 +901,7 @@ msgstr ""
#. module: base
#: view:res.users:0
msgid "Email Preferences"
msgstr ""
msgstr "Préférences du mail"
#. module: base
#: model:ir.module.module,description:base.module_audittrail
@@ -976,7 +980,7 @@ msgstr "Oman"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp
msgid "MRP"
msgstr ""
msgstr "MRP"
#. module: base
#: report:ir.module.reference.graph:0
@@ -1081,7 +1085,7 @@ msgstr "Type"
#. module: base
#: field:ir.mail_server,smtp_user:0
msgid "Username"
msgstr ""
msgstr "Nom d'utilisateur"
#. module: base
#: code:addons/orm.py:398
File diff suppressed because it is too large Load Diff
+64 -57
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n"
"PO-Revision-Date: 2012-01-31 16:34+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-02-12 19:08+0000\n"
"Last-Translator: Mario Gielissen <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-02-09 05:47+0000\n"
"X-Generator: Launchpad (build 14763)\n"
"X-Launchpad-Export-Date: 2012-02-13 04:49+0000\n"
"X-Generator: Launchpad (build 14781)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -34,7 +34,7 @@ msgstr "DatumTijd"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_mailgate
msgid "Tasks-Mail Integration"
msgstr ""
msgstr "Taken-Mail integratie"
#. module: base
#: code:addons/fields.py:582
@@ -108,6 +108,8 @@ msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr ""
"Helpt uw projecten en taken te beheren door ze te volgen, planningen te "
"genereren, etc..."
#. module: base
#: field:ir.actions.act_window,display_menu_tip:0
@@ -179,7 +181,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_process
msgid "Process"
msgstr ""
msgstr "Verwerken"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate
@@ -273,7 +275,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#: model:ir.module.category,name:base.module_category_sales_management
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
msgstr ""
msgstr "Verkoopbeheer"
#. module: base
#: view:res.partner:0
@@ -369,17 +371,17 @@ msgstr "Naam assistent"
#. module: base
#: model:res.groups,name:base.group_partner_manager
msgid "Partner Manager"
msgstr ""
msgstr "Partner beheer"
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
msgstr ""
msgstr "Relatiebeheer"
#. module: base
#: view:ir.module.module:0
msgid "Extra"
msgstr ""
msgstr "Extra"
#. module: base
#: code:addons/orm.py:2526
@@ -390,7 +392,7 @@ msgstr "Ongeldige group_by"
#. module: base
#: field:ir.module.category,child_ids:0
msgid "Child Applications"
msgstr ""
msgstr "Child applicaties"
#. module: base
#: field:res.partner,credit_limit:0
@@ -400,7 +402,7 @@ msgstr "Kredietlimiet"
#. module: base
#: model:ir.module.module,description:base.module_web_graph
msgid "Openerp web graph view"
msgstr ""
msgstr "Openerp web grafiek view"
#. module: base
#: field:ir.model.data,date_update:0
@@ -410,7 +412,7 @@ msgstr "Wijzigingsdatum"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
msgid "Automated Action Rules"
msgstr ""
msgstr "Automatische aktie regels"
#. module: base
#: view:ir.attachment:0
@@ -469,7 +471,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad_project
msgid "Specifications on PADs"
msgstr ""
msgstr "Specificaties van PADs"
#. module: base
#: help:ir.filters,user_id:0
@@ -481,7 +483,7 @@ msgstr ""
#. module: base
#: help:res.partner,website:0
msgid "Website of Partner."
msgstr ""
msgstr "Website van Partner."
#. module: base
#: help:ir.actions.act_window,views:0
@@ -510,7 +512,7 @@ msgstr "Datumopmaak"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_report_designer
msgid "OpenOffice Report Designer"
msgstr ""
msgstr "OpenOffice overzicht ontwerper"
#. module: base
#: field:res.bank,email:0
@@ -571,7 +573,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_layout
msgid "Sales Orders Print Layout"
msgstr ""
msgstr "Verkooporder Afdruk Layout"
#. module: base
#: selection:base.language.install,lang:0
@@ -581,7 +583,7 @@ msgstr "Spaans (VE) / Spanje (VE)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets"
msgstr ""
msgstr "Facturatie vanaf urenstaten"
#. module: base
#: view:base.module.upgrade:0
@@ -706,7 +708,7 @@ msgstr "Export voltooid"
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin_outlook
msgid "Outlook Plug-In"
msgstr ""
msgstr "Outlook Plug-In"
#. module: base
#: view:ir.model:0
@@ -750,7 +752,7 @@ msgstr "Eritrea"
#. module: base
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "De naam van het bedrijf moet uniek zijn!"
#. module: base
#: view:res.config:0
@@ -788,7 +790,7 @@ msgstr ""
#. module: base
#: view:ir.mail_server:0
msgid "Security and Authentication"
msgstr ""
msgstr "Beveiliging en Authenticatie"
#. module: base
#: view:base.language.export:0
@@ -879,7 +881,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_webdav
msgid "Shared Repositories (WebDAV)"
msgstr ""
msgstr "Gedeelde Repositories (WebDAV)"
#. module: base
#: model:ir.module.module,description:base.module_import_google
@@ -891,7 +893,7 @@ msgstr ""
#. module: base
#: view:res.users:0
msgid "Email Preferences"
msgstr ""
msgstr "E-mail voorkeuren"
#. module: base
#: model:ir.module.module,description:base.module_audittrail
@@ -969,7 +971,7 @@ msgstr "Oman"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp
msgid "MRP"
msgstr ""
msgstr "MRP"
#. module: base
#: report:ir.module.reference.graph:0
@@ -984,7 +986,7 @@ msgstr "Niue"
#. module: base
#: model:ir.module.module,shortdesc:base.module_membership
msgid "Membership Management"
msgstr ""
msgstr "Lidmaatschap beheer"
#. module: base
#: selection:ir.module.module,license:0
@@ -1011,7 +1013,7 @@ msgstr "Referentiesoorten aanvragen"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_base_account
msgid "Google Users"
msgstr ""
msgstr "Google gebruikers"
#. module: base
#: help:ir.server.object.lines,value:0
@@ -1074,7 +1076,7 @@ msgstr "Soort"
#. module: base
#: field:ir.mail_server,smtp_user:0
msgid "Username"
msgstr ""
msgstr "Gebruikersnaam"
#. module: base
#: code:addons/orm.py:398
@@ -1103,7 +1105,7 @@ msgstr ""
#: code:addons/base/ir/ir_mail_server.py:192
#, python-format
msgid "Connection test failed!"
msgstr ""
msgstr "Verbindings test mislukt!"
#. module: base
#: selection:ir.actions.server,state:0
@@ -1225,12 +1227,12 @@ msgstr "Spaans (GT) / Spanje (GT)"
#. module: base
#: field:ir.mail_server,smtp_port:0
msgid "SMTP Port"
msgstr ""
msgstr "SMTP poort"
#. module: base
#: model:ir.module.module,shortdesc:base.module_import_sugarcrm
msgid "SugarCRM Import"
msgstr ""
msgstr "SugarCRM Import"
#. module: base
#: view:res.lang:0
@@ -1247,12 +1249,12 @@ msgstr ""
#: code:addons/base/module/wizard/base_language_install.py:55
#, python-format
msgid "Language Pack"
msgstr ""
msgstr "Taalpakket"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests
msgid "Tests"
msgstr ""
msgstr "Testen"
#. module: base
#: field:ir.ui.view_sc,res_id:0
@@ -1313,7 +1315,7 @@ msgstr ""
#. module: base
#: field:ir.module.category,parent_id:0
msgid "Parent Application"
msgstr ""
msgstr "Parent applicatie"
#. module: base
#: code:addons/base/res/res_users.py:222
@@ -1330,7 +1332,7 @@ msgstr "Om een taal te exporteren, geen taal kiezen."
#: model:ir.module.module,shortdesc:base.module_document
#: model:ir.module.module,shortdesc:base.module_knowledge
msgid "Document Management System"
msgstr ""
msgstr "Document Beheer Systeem"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
@@ -1594,7 +1596,7 @@ msgstr "Drijvende comma"
#: model:ir.module.category,name:base.module_category_warehouse_management
#: model:ir.module.module,shortdesc:base.module_stock
msgid "Warehouse Management"
msgstr ""
msgstr "Magazijnbeheer"
#. module: base
#: model:ir.model,name:base.model_res_request_link
@@ -1767,6 +1769,8 @@ msgid ""
"simplified payment mode encoding, automatic picking lists generation and "
"more."
msgstr ""
"Helpt u het meeste te halen uit uw kassa's met snelle codering, eenvoudige "
"betaalmethode codering, automatische piklijst generatie en meer."
#. module: base
#: model:res.country,name:base.mv
@@ -1802,27 +1806,28 @@ msgstr "Dagen"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_rpc
msgid "OpenERP Web web"
msgstr ""
msgstr "OpenERP Web"
#. module: base
#: model:ir.module.module,shortdesc:base.module_html_view
msgid "Html View"
msgstr ""
msgstr "Html weergave"
#. module: base
#: field:res.currency,position:0
msgid "Symbol position"
msgstr ""
msgstr "Symbool positie"
#. module: base
#: model:ir.module.module,shortdesc:base.module_process
msgid "Enterprise Process"
msgstr ""
msgstr "Bedrijfsprocessen"
#. module: base
#: help:ir.cron,function:0
msgid "Name of the method to be called when this job is processed."
msgstr ""
"Naam van de methode die wordt aangeroepen als deze taak wordt uitgevoerd."
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
@@ -1844,7 +1849,7 @@ msgstr " (kopie)"
#. module: base
#: field:res.company,rml_footer1:0
msgid "General Information Footer"
msgstr ""
msgstr "Algemene Info Voettekst"
#. module: base
#: view:res.lang:0
@@ -1951,7 +1956,7 @@ msgstr "%s (kopie)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_chart
msgid "Template of Charts of Accounts"
msgstr ""
msgstr "Grootboekschema template"
#. module: base
#: field:res.partner.address,type:0
@@ -2038,12 +2043,12 @@ msgstr "Finland"
#: code:addons/base/res/res_company.py:156
#, python-format
msgid "Website: "
msgstr ""
msgstr "Website: "
#. module: base
#: model:ir.ui.menu,name:base.menu_administration
msgid "Settings"
msgstr ""
msgstr "Voorkeuren"
#. module: base
#: selection:ir.actions.act_window,view_type:0
@@ -2075,6 +2080,8 @@ msgid ""
"Display this bank account on the footer of printed documents like invoices "
"and sales orders."
msgstr ""
"Laat dit bankrekeningnummer zien in de voettekst van ieder afgedrukte "
"document zoals facturen en verkooporders."
#. module: base
#: view:base.language.import:0
@@ -2183,7 +2190,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_subscription
msgid "Recurring Documents"
msgstr ""
msgstr "Herhalende documenten"
#. module: base
#: model:res.country,name:base.bs
@@ -2222,7 +2229,7 @@ msgstr "Aantal bijgewerkte modules"
#. module: base
#: field:ir.cron,function:0
msgid "Method"
msgstr ""
msgstr "Methode"
#. module: base
#: view:res.partner.event:0
@@ -2246,7 +2253,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_setup
msgid "Initial Setup Tools"
msgstr ""
msgstr "Initiële Installatie Tools"
#. module: base
#: field:ir.actions.act_window,groups_id:0
@@ -2308,7 +2315,7 @@ msgstr "Beginpagina componenten beheer"
#. module: base
#: field:res.company,rml_header1:0
msgid "Report Header / Company Slogan"
msgstr ""
msgstr "Rapporthoofd / Bedrijfs slogan"
#. module: base
#: model:res.country,name:base.pl
@@ -2361,7 +2368,7 @@ msgstr ""
#. module: base
#: field:ir.mail_server,smtp_debug:0
msgid "Debugging"
msgstr ""
msgstr "Fouten opsporen"
#. module: base
#: model:ir.module.module,description:base.module_crm_helpdesk
@@ -2471,12 +2478,12 @@ msgstr "Huidige koers"
#. module: base
#: model:ir.module.module,shortdesc:base.module_idea
msgid "Ideas"
msgstr ""
msgstr "Ideeën"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm
msgid "Opportunity to Quotation"
msgstr ""
msgstr "Verkoopkans naar offerte"
#. module: base
#: model:ir.module.module,description:base.module_sale_analytic_plans
@@ -2503,7 +2510,7 @@ msgstr ""
#. module: base
#: model:ir.actions.report.xml,name:base.report_ir_model_overview
msgid "Model Overview"
msgstr ""
msgstr "Model Overzicht"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_margin
@@ -2513,7 +2520,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_invoiced
msgid "Invoicing"
msgstr ""
msgstr "Facturering"
#. module: base
#: field:ir.ui.view_sc,name:0
@@ -2554,7 +2561,7 @@ msgstr ""
#: field:ir.model.data,res_id:0
#: field:ir.values,res_id:0
msgid "Record ID"
msgstr ""
msgstr "Record-id"
#. module: base
#: field:ir.actions.server,email:0
@@ -2638,7 +2645,7 @@ msgstr "Fout tijdens communicatie met de uitgevers garantie server."
#: model:res.groups,name:base.group_sale_manager
#: model:res.groups,name:base.group_tool_manager
msgid "Manager"
msgstr ""
msgstr "Beheer"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom
@@ -2675,7 +2682,7 @@ msgstr "IDs opschonen"
#. module: base
#: view:res.groups:0
msgid "Inherited"
msgstr ""
msgstr "Overgeërfd"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
@@ -2698,7 +2705,7 @@ msgstr "%y - Jaar zonder eeuw [00,99]."
#: code:addons/base/res/res_company.py:155
#, python-format
msgid "Fax: "
msgstr ""
msgstr "Fax: "
#. module: base
#: model:res.country,name:base.si
@@ -15225,7 +15232,7 @@ msgstr "Mobiel nr"
#: model:ir.ui.menu,name:base.menu_partner_category_form
#: view:res.partner.category:0
msgid "Partner Categories"
msgstr "Categorieën relaties"
msgstr "Relatie Categorieën"
#. module: base
#: view:base.module.upgrade:0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+22 -12
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-02-08 00:44+0000\n"
"PO-Revision-Date: 2012-01-31 16:02+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-02-09 21:13+0000\n"
"Last-Translator: Ahmet Altınışık <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-02-09 05:53+0000\n"
"X-Generator: Launchpad (build 14763)\n"
"X-Launchpad-Export-Date: 2012-02-10 04:46+0000\n"
"X-Generator: Launchpad (build 14771)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -184,7 +184,7 @@ msgstr "Satışların analitik dağılımı"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_process
msgid "Process"
msgstr ""
msgstr "İşlem"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate
@@ -238,7 +238,7 @@ msgstr "Oluşturuldu."
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
msgid "Turkey - Accounting"
msgstr ""
msgstr "Türkiye - Muhasebe"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_subproduct
@@ -1777,6 +1777,9 @@ msgid ""
"simplified payment mode encoding, automatic picking lists generation and "
"more."
msgstr ""
"Hızlı satış şifreleme, basit ödeme modu şifreleme, otomatik ayıklama listesi "
"oluşturma ve daha birçok işlem ile Satış Noktasından en iyi verimi almanıza "
"yardım eder."
#. module: base
#: model:res.country,name:base.mv
@@ -1812,7 +1815,7 @@ msgstr "Günler"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_rpc
msgid "OpenERP Web web"
msgstr ""
msgstr "OpenERP Web web"
#. module: base
#: model:ir.module.module,shortdesc:base.module_html_view
@@ -5894,7 +5897,7 @@ msgstr "Banka Hesabı Sahibi"
#. module: base
#: model:ir.module.category,name:base.module_category_uncategorized
msgid "Uncategorized"
msgstr ""
msgstr "Sınıflandırılmamış"
#. module: base
#: field:ir.attachment,res_name:0
@@ -10383,6 +10386,9 @@ msgid ""
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
"valid payments"
msgstr ""
"\n"
"Banka tipi IBAN hesaplarına geçerli ödeme yapabilmek için lütfen bankanın "
"BIC/SWIFT kodunu tanımlayın"
#. module: base
#: view:res.lang:0
@@ -10841,6 +10847,8 @@ msgid ""
"Helps you manage your human resources by encoding your employees structure, "
"generating work sheets, tracking attendance and more."
msgstr ""
"İnsan kaynaklarınızı yönetmenize (çalışanların yapısını kodlayarak, çalışma "
"sayfaları oluşturarak, işe devamlarını takip ederek vs) yardımcı olur."
#. module: base
#: help:ir.model.fields,model_id:0
@@ -10907,7 +10915,7 @@ msgstr "Veya"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_br
msgid "Brazilian - Accounting"
msgstr ""
msgstr "Brezilya - Muhasebe"
#. module: base
#: model:res.country,name:base.pk
@@ -12421,7 +12429,7 @@ msgstr "Para Birimleri"
#: model:ir.model,name:base.model_ir_actions_client
#: selection:ir.ui.menu,action:0
msgid "ir.actions.client"
msgstr ""
msgstr "ir.actions.client"
#. module: base
#: help:ir.values,value:0
@@ -12678,7 +12686,7 @@ msgstr "Arama Sayısı"
#: code:addons/base/res/res_bank.py:189
#, python-format
msgid "BANK"
msgstr ""
msgstr "BANKA"
#. module: base
#: view:base.module.upgrade:0
@@ -14397,6 +14405,8 @@ msgid ""
"Lets you install various interesting but non-essential tools like Survey, "
"Lunch and Ideas box."
msgstr ""
"Çeşitli ilginç fakat çok zorunlu olmayan (Anket, Öğle Yemeği, Fikir Kutusu "
"gibi) araçlar kurmanıza yarar"
#. module: base
#: selection:ir.module.module,state:0
@@ -15063,7 +15073,7 @@ msgstr ""
#. module: base
#: field:ir.module.module,auto_install:0
msgid "Automatic Installation"
msgstr ""
msgstr "Otomatik Yükleme"
#. module: base
#: model:res.country,name:base.jp
+47 -19
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-02-08 00:44+0000\n"
"PO-Revision-Date: 2012-02-08 18:36+0000\n"
"PO-Revision-Date: 2012-02-10 15:20+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@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: 2012-02-09 05:55+0000\n"
"X-Generator: Launchpad (build 14763)\n"
"X-Launchpad-Export-Date: 2012-02-11 05:06+0000\n"
"X-Generator: Launchpad (build 14771)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -4366,7 +4366,7 @@ msgid ""
"An auto-installable module is automatically installed by the system when all "
"its dependencies are satisfied. If the module has no dependency, it is "
"always installed."
msgstr ""
msgstr "自动安装模块是指当它的所有依赖满足时系统会自动安装。如果该模块没有任何依赖,那么系统总是会安装它。"
#. module: base
#: model:ir.actions.act_window,name:base.res_lang_act_window
@@ -4487,6 +4487,14 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"此模块用于辅助您在第一次安装新数据库时配置系统。\n"
"============================================================================="
"===\n"
"\n"
"显示给您一个安装的应用程序特性列表。\n"
"\n"
" "
#. module: base
#: field:ir.actions.report.xml,report_sxw_content:0
@@ -4570,7 +4578,7 @@ msgstr "页眉/页脚"
msgid ""
"When no specific mail server is requested for a mail, the highest priority "
"one is used. Default priority is 10 (smaller number = higher priority)"
msgstr ""
msgstr "若邮件没有指定邮件服务器,将使用最高优先级的服务器。默认优先级是10(数字越小,优先级越高)"
#. module: base
#: model:ir.module.module,description:base.module_crm_partner_assign
@@ -5430,6 +5438,9 @@ msgid ""
" those assets. And it allows to create Move's of the depreciation lines.\n"
" "
msgstr ""
"财务与会计资产管理。\n"
" 本模块用于管理公司或个人拥有的资产。本模块将跟踪资产折旧并且允许创建资产折旧明细的分录。\n"
" "
#. module: base
#: model:res.country,name:base.bv
@@ -6047,7 +6058,7 @@ msgstr "美国海外领土"
msgid ""
"How many times the method is called,\n"
"a negative number indicates no limit."
msgstr ""
msgstr "该方法调用的次数限制,负数表示无限制。"
#. module: base
#: field:res.partner.bank.type.field,bank_type_id:0
@@ -6217,6 +6228,14 @@ msgid ""
"The user can also publish notes.\n"
" "
msgstr ""
"\n"
"允许用户创建自定义仪表盘。\n"
"========================================\n"
"\n"
"此模块也会自动创建系统管理仪表盘。\n"
"\n"
"也可以让用户发布通知。\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_scrum
@@ -6242,7 +6261,7 @@ msgstr "载入官方翻译"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_cancel
msgid "Cancel Journal Entries"
msgstr ""
msgstr "取消账簿分录"
#. module: base
#: view:ir.actions.server:0
@@ -6744,7 +6763,7 @@ msgstr "如果该业务伙伴是一个雇员的话选中此复选框"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_profiling
msgid "Customer Profiling"
msgstr ""
msgstr "客户分析"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_issue
@@ -6974,7 +6993,7 @@ msgstr "编辑"
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
msgstr ""
msgstr "补充参数"
#. module: base
#: field:res.users,view:0
@@ -7009,7 +7028,7 @@ msgstr "当删除时"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_multilang
msgid "Multi Language Chart of Accounts"
msgstr ""
msgstr "多语言科目表"
#. module: base
#: selection:res.lang,direction:0
@@ -7045,7 +7064,7 @@ msgstr "签名"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_caldav
msgid "Meetings Synchronization"
msgstr ""
msgstr "会议同步"
#. module: base
#: field:ir.actions.act_window,context:0
@@ -7077,7 +7096,7 @@ msgstr "模块名必须唯一!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_contact
msgid "Contacts Management"
msgstr ""
msgstr "联系人管理"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr_rib
@@ -7204,7 +7223,7 @@ msgstr "添加"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ec
msgid "Ecuador - Accounting"
msgstr ""
msgstr "厄瓜多尔 - 会计"
#. module: base
#: field:res.partner.category,name:0
@@ -7235,6 +7254,15 @@ msgid ""
" * HR Jobs\n"
" "
msgstr ""
"\n"
"人力资源管理模块。\n"
"=====================================\n"
"\n"
"您可以管理:\n"
" * 员工与级次:您可以定义关联了用户帐号的员工信息并可以按级次显示。\n"
" * 公司部门管理。\n"
" * 职位管理。\n"
" "
#. module: base
#: view:res.widget.wizard:0
@@ -7244,7 +7272,7 @@ msgstr "部件向导"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_hn
msgid "Honduras - Accounting"
msgstr ""
msgstr "洪都拉斯 - 会计"
#. module: base
#: model:ir.module.module,shortdesc:base.module_report_intrastat
@@ -7309,7 +7337,7 @@ msgstr "有效"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ma
msgid "Maroc - Accounting"
msgstr ""
msgstr "摩洛哥 - 会计"
#. module: base
#: model:res.country,name:base.mn
@@ -7444,7 +7472,7 @@ msgstr "读"
#. module: base
#: model:ir.module.module,shortdesc:base.module_association
msgid "Associations Management"
msgstr ""
msgstr "协会管理"
#. module: base
#: help:ir.model,modules:0
@@ -15502,7 +15530,7 @@ msgstr "业务伙伴: "
#. module: base
#: field:res.partner.bank,name:0
msgid "Bank Account"
msgstr ""
msgstr "银行账户"
#. module: base
#: model:res.country,name:base.kp
@@ -15523,12 +15551,12 @@ msgstr "上下文"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_mrp
msgid "Sales and MRP Management"
msgstr ""
msgstr "销售与 MRP 管理"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_sms_send
msgid "Send an SMS"
msgstr ""
msgstr "发送手机短信"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_1
@@ -0,0 +1,42 @@
<openerp>
<data>
<record model="ir.ui.view" id="view_ir_config_search">
<field name="name">ir.config_parameter.search</field>
<field name="model">ir.config_parameter</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="System Properties">
<field name="key"/>
<field name="value"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_ir_config_list">
<field name="name">ir.config_parameter.list</field>
<field name="model">ir.config_parameter</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="System Parameters">
<field name="key"/>
<field name="value"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_ir_config_form">
<field name="name">ir.config_parameter.form</field>
<field name="model">ir.config_parameter</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="System Parameters">
<field name="key" colspan="4"/>
<field name="value" colspan="4"/>
</form>
</field>
</record>
<act_window name="System Parameters" res_model="ir.config_parameter" id="ir_config_list_action"/>
<menuitem name="System Parameters" id="ir_config_menu"
parent="base.next_id_4" action="ir_config_list_action" groups="base.group_extended"/>
</data>
</openerp>
+6 -1
View File
@@ -69,6 +69,10 @@ class ir_rule(osv.osv):
def _check_model_obj(self, cr, uid, ids, context=None):
return not any(self.pool.get(rule.model_id.model).is_transient() for rule in self.browse(cr, uid, ids, context))
def _check_model_name(self, cr, uid, ids, context=None):
# Don't allow rules on rules records (this model).
return not any(rule.model_id.model == self._name for rule in self.browse(cr, uid, ids, context))
_columns = {
'name': fields.char('Name', size=128, select=1),
'model_id': fields.many2one('ir.model', 'Object',select=1, required=True),
@@ -95,7 +99,8 @@ class ir_rule(osv.osv):
('no_access_rights', 'CHECK (perm_read!=False or perm_write!=False or perm_create!=False or perm_unlink!=False)', 'Rule must have at least one checked access right !'),
]
_constraints = [
(_check_model_obj, 'Rules are not supported for osv_memory objects !', ['model_id'])
(_check_model_obj, 'Rules can not be applied on Transient models.', ['model_id']),
(_check_model_name, 'Rules can not be applied on the Record Rules model.', ['model_id']),
]
@tools.ormcache()
+7 -4
View File
@@ -208,10 +208,10 @@ class ir_ui_menu(osv.osv):
('model', '=', self._name), ('key', '=', 'action'),
('key2', '=', 'tree_but_open'), ('res_id', '=', menu_id)],
context=context)
if values_ids:
ir_values_obj.write(cursor, user, values_ids, {'value': value},
context=ctx)
else:
if value and values_ids:
ir_values_obj.write(cursor, user, values_ids, {'value': value}, context=ctx)
elif value:
# no values_ids, create binding
ir_values_obj.create(cursor, user, {
'name': 'Menuitem',
'model': self._name,
@@ -220,6 +220,9 @@ class ir_ui_menu(osv.osv):
'key2': 'tree_but_open',
'res_id': menu_id,
}, context=ctx)
elif values_ids:
# value is False, remove existing binding
ir_values_obj.unlink(cursor, user, values_ids, context=ctx)
def _get_icon_pict(self, cr, uid, ids, name, args, context):
res = {}
+5 -1
View File
@@ -290,10 +290,12 @@ class ir_values(osv.osv):
)
%s
ORDER BY v.user_id, u.company_id"""
query = query % ('AND v.key2 = %s' if condition else '')
params = ('default', model, uid, uid)
if condition:
query = query % 'AND v.key2 = %s'
params += (condition[:200],)
else:
query = query % 'AND v.key2 is NULL'
cr.execute(query, params)
# keep only the highest priority default for each field
@@ -376,6 +378,8 @@ class ir_values(osv.osv):
cr.execute(query, ('action', action_slot, model, res_id or None))
results = {}
for action in cr.dictfetchall():
if not action['value']:
continue # skip if undefined
action_model,id = action['value'].split(',')
fields = [
field
@@ -128,7 +128,6 @@
<field name="category_id"/>
<field name="complexity"/>
<field name="demo"/>
<field name="icon"/>
<field name="application"/>
</group>
<notebook colspan="4">
+2 -1
View File
@@ -853,7 +853,8 @@ class users_view(osv.osv):
if not fields:
fields = self.fields_get(cr, uid, context=context).keys()
group_fields, fields = partition(is_reified_group, fields)
fields.append('groups_id')
if not 'groups_id' in fields:
fields.append('groups_id')
res = super(users_view, self).read(cr, uid, ids, fields, context=context, load=load)
for values in (res if isinstance(res, list) else [res]):
self._get_reified_groups(group_fields, values)
+8 -9
View File
@@ -222,7 +222,6 @@
<rng:ref name="overload"/>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional><rng:attribute name="colors"/></rng:optional>
<rng:optional><rng:attribute name="color"/></rng:optional>
<rng:optional>
<rng:attribute name="editable">
<rng:choice>
@@ -231,11 +230,14 @@
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional><rng:attribute name="toolbar"/></rng:optional>
<rng:optional><rng:attribute name="link"/></rng:optional>
<rng:optional><rng:attribute name="type"/></rng:optional>
<rng:optional><rng:attribute name="limit"/></rng:optional>
<rng:optional><rng:attribute name="min_rows"/></rng:optional>
<rng:optional>
<rng:attribute name="toolbar">
<rng:choice>
<rng:value>1</rng:value>
<rng:value>True</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional><rng:attribute name="on_write"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
@@ -256,9 +258,6 @@
<rng:element name="search">
<rng:ref name="overload"/>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional><rng:attribute name="col"/></rng:optional>
<rng:optional><rng:attribute name="type"/></rng:optional>
<rng:optional><rng:attribute name="link"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
+19 -4
View File
@@ -2,15 +2,30 @@
Create some default value for some (non-existing) model, for all users.
-
!python {model: ir.values }: |
# use the old API
self.set(cr, uid, 'default', False, 'my_test_field',['unexisting_model'], 'global value')
# use the new API
self.set_default(cr, uid, 'other_unexisting_model', 'my_other_test_field', 'conditional value', condition='foo=bar')
-
Retrieve it.
Retrieve them.
-
!python {model: ir.values }: |
# d is a list of triple (id, name, value)
# d is a list of triplets (id, name, value)
# Old API
d = self.get(cr, uid, 'default', False, ['unexisting_model'])
assert d[0][1] == 'my_test_field', "Can't retrieve the created default value."
assert d[0][2] == 'global value', "Can't retrieve the created default value."
assert len(d) == 1, "Only one single value should be retrieved for this model"
assert d[0][1] == 'my_test_field', "Can't retrieve the created default value. (1)"
assert d[0][2] == 'global value', "Can't retrieve the created default value. (2)"
# New API, Conditional version
d = self.get_defaults(cr, uid, 'other_unexisting_model')
assert len(d) == 0, "No value should be retrieved, the condition is not met"
d = self.get_defaults(cr, uid, 'other_unexisting_model', condition="foo=eggs")
assert len(d) == 0, 'Condition is not met either, no defaults should be returned'
d = self.get_defaults(cr, uid, 'other_unexisting_model', condition="foo=bar")
assert len(d) == 1, "Only one single value should be retrieved"
assert d[0][1] == 'my_other_test_field', "Can't retrieve the created default value. (5)"
assert d[0][2] == 'conditional value', "Can't retrieve the created default value. (6)"
-
Do it again but for a specific user.
-
+1 -1
View File
@@ -36,7 +36,7 @@ from openerp.modules.module import \
load_information_from_description_file, \
get_module_resource, zip_directory, \
get_module_path, initialize_sys_path, \
register_module_classes, init_module_models
load_openerp_module, init_module_models
from openerp.modules.loading import load_modules
+3 -2
View File
@@ -58,7 +58,7 @@ from openerp.modules.module import \
load_information_from_description_file, \
get_module_resource, zip_directory, \
get_module_path, initialize_sys_path, \
register_module_classes, init_module_models
load_openerp_module, init_module_models
_logger = logging.getLogger(__name__)
@@ -162,7 +162,8 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
_logger.info('module %s: loading objects', package.name)
migrations.migrate_module(package, 'pre')
register_module_classes(package.name)
load_openerp_module(package.name)
models = pool.load(cr, package)
loaded_modules.append(package.name)
if hasattr(package, 'init') or hasattr(package, 'update') or package.state in ('to install', 'to upgrade'):
+21 -18
View File
@@ -389,40 +389,43 @@ def init_module_models(cr, module_name, obj_list):
t[1](cr, *t[2])
cr.commit()
def register_module_classes(m):
""" Register module named m, if not already registered.
def load_openerp_module(module_name):
""" Load an OpenERP module, if not already loaded.
This loads the module and register all of its models, thanks to either
the MetaModel metaclass, or the explicit instantiation of the model.
This is also used to load server-wide module (i.e. it is also used
when there is no model to register).
"""
def log(e):
mt = isinstance(e, zipimport.ZipImportError) and 'zip ' or ''
msg = "Couldn't load %smodule %s" % (mt, m)
_logger.critical(msg)
_logger.critical(e)
global loaded
if m in loaded:
if module_name in loaded:
return
_logger.info('module %s: registering objects', m)
mod_path = get_module_path(m)
initialize_sys_path()
try:
mod_path = get_module_path(module_name)
zip_mod_path = mod_path + '.zip'
if not os.path.isfile(zip_mod_path):
__import__('openerp.addons.' + m)
__import__('openerp.addons.' + module_name)
else:
zimp = zipimport.zipimporter(zip_mod_path)
zimp.load_module(m)
zimp.load_module(module_name)
# Call the module's post-load hook. This can done before any model or
# data has been initialized. This is ok as the post-load hook is for
# server-wide (instead of registry-specific) functionalities.
info = load_information_from_description_file(module_name)
if info['post_load']:
getattr(sys.modules['openerp.addons.' + module_name], info['post_load'])()
except Exception, e:
log(e)
mt = isinstance(e, zipimport.ZipImportError) and 'zip ' or ''
msg = "Couldn't load %smodule %s" % (mt, module_name)
_logger.critical(msg)
_logger.critical(e)
raise
else:
loaded.append(m)
loaded.append(module_name)
def get_modules():
"""Returns the list of module names
+2
View File
@@ -216,6 +216,8 @@ def init_logger():
pseudo_config = ['openerp:CRITICAL']
elif tools.config['log_level'] == 'debug_sql':
pseudo_config = ['openerp.sql_db:DEBUG']
else:
pseudo_config = []
logconfig = tools.config['log_handler']
+7 -1
View File
@@ -474,13 +474,19 @@ class report_sxw(report_rml, preprocess.report):
if aname:
try:
name = aname+'.'+result[1]
# Remove the default_type entry from the context: this
# is for instance used on the account.account_invoices
# and is thus not intended for the ir.attachment type
# field.
ctx = dict(context)
ctx.pop('default_type', None)
pool.get('ir.attachment').create(cr, uid, {
'name': aname,
'datas': base64.encodestring(result[0]),
'datas_fname': name,
'res_model': self.table,
'res_id': obj.id,
}, context=context
}, context=ctx
)
except Exception:
#TODO: should probably raise a proper osv_except instead, shouldn't we? see LP bug #325632
+2 -2
View File
@@ -71,7 +71,7 @@ def start_services():
openerp.netsvc.Server.startAll()
# Start the WSGI server.
openerp.wsgi.start_server()
openerp.wsgi.core.start_server()
def stop_services():
@@ -80,7 +80,7 @@ def stop_services():
openerp.cron.cancel_all()
openerp.netsvc.Server.quitAll()
openerp.wsgi.stop_server()
openerp.wsgi.core.stop_server()
config = openerp.tools.config
_logger.info("Initiating shutdown")
_logger.info("Hit CTRL-C again or send a second signal to force the shutdown.")
+4 -1
View File
@@ -3,6 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2010-2012 OpenERP s.a. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -115,6 +116,8 @@ class configmanager(object):
help="specify the TCP port for the XML-RPC protocol", type="int")
group.add_option("--no-xmlrpc", dest="xmlrpc", action="store_false", my_default=True,
help="disable the XML-RPC protocol")
group.add_option("--proxy-mode", dest="proxy_mode", action="store_true", my_default=False,
help="Enable correct behavior when behind a reverse proxy")
parser.add_option_group(group)
# XML-RPC / HTTPS
@@ -391,7 +394,7 @@ class configmanager(object):
'language', 'translate_out', 'translate_in', 'overwrite_existing_translations',
'debug_mode', 'smtp_ssl', 'load_language',
'stop_after_init', 'logrotate', 'without_demo', 'netrpc', 'xmlrpc', 'syslog',
'list_db', 'xmlrpcs',
'list_db', 'xmlrpcs', 'proxy_mode',
'test_file', 'test_disable', 'test_commit', 'test_report_directory',
'osv_memory_count_limit', 'osv_memory_age_limit', 'max_cron_threads',
'virtual_memory_limit', 'virtual_memory_reset', 'cpu_time_limit', 'unaccent',
+33
View File
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2012-2012 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
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
""" WSGI stack
This module offers a WSGI interface to/from OpenERP.
"""
from . import core
# TODO: This is for the web addons, can be removed later.
register_wsgi_handler = core.register_wsgi_handler
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+16 -11
View File
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2011 OpenERP s.a. (<http://openerp.com>).
# Copyright (C) 2011-2012 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
@@ -19,9 +19,9 @@
#
##############################################################################
""" WSGI stuffs (proof of concept for now)
"""
This module offers a WSGI interface to OpenERP.
WSGI stack, common code.
"""
@@ -41,7 +41,7 @@ import traceback
import openerp
import openerp.modules
import openerp.tools.config as config
import service.websrv_lib as websrv_lib
from ..service import websrv_lib
_logger = logging.getLogger(__name__)
@@ -423,11 +423,20 @@ def serve():
port = config['xmlrpc_port']
try:
import werkzeug.serving
if config['proxy_mode']:
from werkzeug.contrib.fixers import ProxyFix
app = ProxyFix(application)
suffix = ' (in proxy mode)'
else:
app = application
suffix = ''
httpd = werkzeug.serving.make_server(interface, port, application, threaded=True)
_logger.info('HTTP service (werkzeug) running on %s:%s', interface, port)
_logger.info('HTTP service (werkzeug) running on %s:%s%s', interface, port, suffix)
except ImportError:
import wsgiref.simple_server
_logger.warning('Werkzeug module unavailable, falling back to wsgiref.')
if config['proxy_mode']:
_logger.warning('Werkzeug module unavailable, not using proxy mode.')
httpd = wsgiref.simple_server.make_server(interface, port, application)
_logger.info('HTTP service (wsgiref) running on %s:%s', interface, port)
@@ -438,7 +447,7 @@ def start_server():
The WSGI server can be shutdown with stop_server() below.
"""
threading.Thread(name='WSGI server', target=openerp.wsgi.serve).start()
threading.Thread(name='WSGI server', target=serve).start()
def stop_server():
""" Initiate the shutdown of the WSGI server.
@@ -464,11 +473,7 @@ def on_starting(server):
openerp.modules.loading.open_openerp_namespace()
for m in openerp.conf.server_wide_modules:
try:
__import__('openerp.addons.' + m)
# Call any post_load hook.
info = openerp.modules.module.load_information_from_description_file(m)
if info['post_load']:
getattr(sys.modules['openerp.addons.' + m], info['post_load'])()
openerp.modules.module.load_openerp_module(m)
except Exception:
msg = ''
if m == 'web':
+34
View File
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2012 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
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
"""
WSGI entry point with Proxy mode (from Werkzeug).
"""
from werkzeug.contrib.fixers import ProxyFix
from . import core
application = ProxyFix(core.application)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: