merge upstream

bzr revid: chs@openerp.com-20121015162658-z2mqao3r3p0tgjnb
This commit is contained in:
Christophe Simonis
2012-10-15 18:26:58 +02:00
90 changed files with 2233 additions and 2243 deletions
+2 -1
View File
@@ -6,6 +6,7 @@ OpenERP Server
:maxdepth: 1
import
module-versioning
test-framework
Changed in 7.0
@@ -17,4 +18,4 @@ Changed in 7.0
api/user_img_specs
api/need_action_specs
api/font_style
api/field_level_acl
api/field_level_acl
+69
View File
@@ -0,0 +1,69 @@
.. _module_versioning:
Module versioning
=================
OpenERP has been developed with modularity in mind: OpenERP should be flexible
enough so it can be adopted by any enterprise, of any size and in any market.
By using modules one can adapt OpenERP in many different ways: from completely
different business to smaller, company-specific changes.
As modules (and the core framework itself) evolve, it is necessary to identify
modules by their version so a sensible set of modules can be chosen for a
particular deployment.
There are two trends re-inforcing each others. Firstly OpenERP s.a. will work
on a smaller number of official modules and let the community handles more and
more development. Secondly all those modules will receive greater exposure on
`OpenERP Apps`_ where each module will be owned by a single author.
The solution advocated by OpenERP is straightforward and aims to avoid the
`dependency hell`_. In particular we don't want to deal with versioned
dependencies (i.e. a module depends on a specific version of another module).
For each stable release (e.g. OpenERP 6.1, or OpenERP 7.0) or, said in other
words, for each major version, there is only one (major) version of each
module. The minor version is bumped for bug fixes but is otherwise not
important here.
Making variations on some business needs must be done by creating new modules,
possibly depending on previously written modules. If depending on a module
proves too difficult, you can write a new module (not a new _version_). But
generally Python is flexible enough that depending on the existing module
should work.
For the next major version, refactoring modules can be done and similar
functionalities can be brought together in a better module.
.. _`OpenERP Apps`: http://apps.openerp.com/
.. _`dependency hell`: http://en.wikipedia.org/wiki/Dependency_hell
Example
-------
Whenever a new module is developed or must evolve, the above versioning policy
should be respected.
A particular concern one can face when deploying OpenERP to multiple customers
is now detailed as an example to provide a few guidelines. The hypotethical
situation is as follow. A partner needs to create a new module, called ``M``, for a
customer. Shortly after (but still within a typical OpenERP release cycle, so
there is no chance to bump the version number except for bug fixes), ``M`` must be
adapted for another customer.
The correct way to handle it is to leave ``M`` as it is and create a new module,
say called ``X``, that depends on ``M`` for the second customer. Both modules have the
same version (i.e. 6.1 or 7.0, targeting the corresponding OpenERP version).
If leaving ``M`` as it is is not possible (which should be very rare as Python
is incredibly flexible), the ``X`` module for the new customer can depend on a
new module ``N``, derived from ``M``. At this point, ``N`` is a new,
differently named module. It is not a ``M`` module with a increased version
number. Your goal should be to make ``N`` as close as possible to ``M``, so
that at the next version of OpenERP, the first customer can switch to ``N``
instead of ``M`` (or include the changes in a new version of ``M``). At that
point you are in the ideal situation: you have a module ``N`` for one customer,
and a module ``X`` depending on N to account for the differences between those
two customers.
+14 -4
View File
@@ -43,12 +43,22 @@ The kernel of OpenERP, needed for all installation.
'res/res_config.xml',
'data/res.country.state.csv',
'ir/wizard/wizard_menu_view.xml',
'ir/ir.xml',
'ir/ir_translation_view.xml',
'ir/ir_filters.xml',
'ir/ir_actions.xml',
'ir/ir_attachment_view.xml',
'ir/ir_config_parameter_view.xml',
'ir/workflow/workflow_view.xml',
'ir/ir_cron_view.xml',
'ir/ir_filters.xml',
'ir/ir_mail_server_view.xml',
'ir/ir_model_view.xml',
'ir/ir_rule_view.xml',
'ir/ir_sequence_view.xml',
'ir/ir_translation_view.xml',
'ir/ir_ui_menu_view.xml',
'ir/ir_ui_view_view.xml',
'ir/ir_values_view.xml',
'ir/osv_memory_autovacuum.xml',
'ir/report/ir_report.xml',
'ir/workflow/workflow_view.xml',
'module/module_view.xml',
'module/module_data.xml',
'module/module_report.xml',
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:09+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:09+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:01+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:01+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:11+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:01+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:11+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:01+0000\n"
"X-Generator: Launchpad (build 16130)\n"
"X-Poedit-Language: Czech\n"
#. module: base
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:11+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:01+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:02+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -12,8 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:06+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:18+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
"Language: \n"
#. module: base
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:18+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:09+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:18+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:09+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:11+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:02+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+114 -112
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: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:05+0000\n"
"X-Generator: Launchpad (build 16130)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"
@@ -165,7 +165,7 @@ msgstr "پنجره هدف"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
msgstr ""
msgstr "تحلیل توزیع فروش"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_process
@@ -175,7 +175,7 @@ msgstr "روند"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate
msgid "Billing Rates on Contracts"
msgstr ""
msgstr "نرخ صورت حساب در قراردادها"
#. module: base
#: code:addons/base/res/res_users.py:558
@@ -195,7 +195,7 @@ msgstr ""
#: code:addons/osv.py:129
#, python-format
msgid "Constraint Error"
msgstr ""
msgstr "خطا در محدودیت"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_custom
@@ -286,7 +286,7 @@ msgstr "تعداد پیمانه‌ها"
#. module: base
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
msgstr ""
msgstr "شرکت ذخیره رکورد جاری"
#. module: base
#: field:res.partner.bank.type.field,size:0
@@ -361,7 +361,7 @@ msgstr "مدیریت شریک"
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
msgstr ""
msgstr "مدیریت ارتباط با مشتری"
#. module: base
#: view:ir.module.module:0
@@ -397,7 +397,7 @@ msgstr "تاریخ بروزرسانی"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
msgid "Automated Action Rules"
msgstr ""
msgstr "قوانین عملیات خودکار"
#. module: base
#: view:ir.attachment:0
@@ -527,7 +527,7 @@ msgstr ""
#. module: base
#: view:ir.values:0
msgid "Action Binding"
msgstr ""
msgstr "عمل اجباری"
#. module: base
#: model:res.country,name:base.gf
@@ -659,7 +659,7 @@ msgstr "تَردست‌ها"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_miscellaneoussuppliers0
msgid "Miscellaneous Suppliers"
msgstr ""
msgstr "تولیدکنندگان متفرقه"
#. module: base
#: code:addons/base/ir/ir_model.py:287
@@ -755,7 +755,7 @@ msgstr "حسابداری - رومانی"
#. module: base
#: view:partner.wizard.ean.check:0
msgid "Want to check Ean ? "
msgstr ""
msgstr "آیا میخواهید بررسی شود؟ "
#. module: base
#: help:ir.actions.server,mobile:0
@@ -771,7 +771,7 @@ msgstr ""
#. module: base
#: view:ir.mail_server:0
msgid "Security and Authentication"
msgstr ""
msgstr "امنیت و احراز هویت"
#. module: base
#: view:base.language.export:0
@@ -814,32 +814,32 @@ msgstr "کامبوج، پادشاهی"
#: field:base.language.import,overwrite:0
#: field:base.language.install,overwrite:0
msgid "Overwrite Existing Terms"
msgstr ""
msgstr "بازنویسی قوانین موجود"
#. module: base
#: model:ir.model,name:base.model_base_language_import
msgid "Language Import"
msgstr ""
msgstr "ورود زبان"
#. module: base
#: help:ir.cron,interval_number:0
msgid "Repeat every x."
msgstr ""
msgstr "تکرار هر X."
#. module: base
#: selection:base.language.install,lang:0
msgid "Albanian / Shqip"
msgstr ""
msgstr "آلبانیایی / Shqip"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_config_opportunity
msgid "Opportunities"
msgstr ""
msgstr "فرصت"
#. module: base
#: model:ir.model,name:base.model_base_language_export
msgid "base.language.export"
msgstr ""
msgstr "پایه.زبان.خروج"
#. module: base
#: help:ir.actions.server,write_id:0
@@ -858,7 +858,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_webdav
msgid "Shared Repositories (WebDAV)"
msgstr ""
msgstr "منابع مشترک"
#. module: base
#: model:ir.module.module,description:base.module_import_google
@@ -870,7 +870,7 @@ msgstr ""
#. module: base
#: view:res.users:0
msgid "Email Preferences"
msgstr ""
msgstr "تنظیمات ایمیل"
#. module: base
#: model:ir.module.module,description:base.module_audittrail
@@ -904,7 +904,7 @@ msgstr "همکاران من"
#. module: base
#: view:ir.actions.report.xml:0
msgid "XML Report"
msgstr ""
msgstr "گزارش XML"
#. module: base
#: model:res.country,name:base.es
@@ -914,7 +914,7 @@ msgstr "اسپانیا"
#. module: base
#: view:base.module.update:0
msgid "Please be patient, as this operation may take a few seconds..."
msgstr ""
msgstr "لطفا منتظر بمانید ممکن است این عملیات طولانی شود."
#. module: base
#: help:ir.actions.act_window,domain:0
@@ -926,12 +926,12 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
#: model:ir.model,name:base.model_base_module_upgrade
msgid "Module Upgrade"
msgstr ""
msgstr "به روز رسانی ماژول"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (UY) / Español (UY)"
msgstr ""
msgstr "اسپانیایی / Español (UY)"
#. module: base
#: field:res.partner,mobile:0
@@ -947,7 +947,7 @@ msgstr "عمان"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp
msgid "MRP"
msgstr ""
msgstr "برنامه ریزی ساخت منابع"
#. module: base
#: report:ir.module.reference.graph:0
@@ -962,7 +962,7 @@ msgstr "نیوئه"
#. module: base
#: model:ir.module.module,shortdesc:base.module_membership
msgid "Membership Management"
msgstr ""
msgstr "مدیریت عضویت"
#. module: base
#: selection:ir.module.module,license:0
@@ -984,12 +984,12 @@ msgstr "هند"
#: model:ir.actions.act_window,name:base.res_request_link-act
#: model:ir.ui.menu,name:base.menu_res_request_link_act
msgid "Request Reference Types"
msgstr ""
msgstr "درخواست انواع مرجع"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_base_account
msgid "Google Users"
msgstr ""
msgstr "کاربران گوگل"
#. module: base
#: help:ir.server.object.lines,value:0
@@ -1026,6 +1026,8 @@ msgstr "بایگانی TGZ"
msgid ""
"Users added to this group are automatically added in the following groups."
msgstr ""
"کاربرانی که به این گروه اضافه میشوند به صورت خودکار به گروه های زیر افزوده "
"میشوند."
#. module: base
#: view:res.lang:0
@@ -1052,7 +1054,7 @@ msgstr "نوع"
#. module: base
#: field:ir.mail_server,smtp_user:0
msgid "Username"
msgstr ""
msgstr "نام کاربری"
#. module: base
#: code:addons/orm.py:398
@@ -1071,13 +1073,13 @@ msgstr "گوام (آمریکا)"
#: code:addons/base/res/res_users.py:558
#, python-format
msgid "Setting empty passwords is not allowed for security reasons!"
msgstr ""
msgstr "به دلایل امنیتی کلمه عبور نمیتواند خالی باشد!"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:192
#, python-format
msgid "Connection test failed!"
msgstr ""
msgstr "آزمایش ارتباط ناموفق بود!"
#. module: base
#: selection:ir.actions.server,state:0
@@ -1116,7 +1118,7 @@ msgstr ""
#. module: base
#: field:ir.module.module,contributors:0
msgid "Contributors"
msgstr ""
msgstr "شرکت کنندگان"
#. module: base
#: model:ir.module.module,description:base.module_project_planning
@@ -1147,7 +1149,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Slovak / Slovenský jazyk"
msgstr ""
msgstr "اسلواکی / Slovenský jazyk"
#. module: base
#: selection:base.language.install,lang:0
@@ -1162,7 +1164,7 @@ msgstr "اوگاندا"
#. module: base
#: field:ir.model.access,perm_unlink:0
msgid "Delete Access"
msgstr ""
msgstr "حذف دسترسی"
#. module: base
#: model:res.country,name:base.ne
@@ -1172,7 +1174,7 @@ msgstr "نیجر"
#. module: base
#: selection:base.language.install,lang:0
msgid "Chinese (HK)"
msgstr ""
msgstr "چینی"
#. module: base
#: model:res.country,name:base.ba
@@ -1190,17 +1192,17 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (GT) / Español (GT)"
msgstr ""
msgstr "اسپانیایی / Español (GT)"
#. module: base
#: field:ir.mail_server,smtp_port:0
msgid "SMTP Port"
msgstr ""
msgstr "پورت SMTP"
#. module: base
#: model:ir.module.module,shortdesc:base.module_import_sugarcrm
msgid "SugarCRM Import"
msgstr ""
msgstr "ورود SugarCRM"
#. module: base
#: view:res.lang:0
@@ -1217,12 +1219,12 @@ msgstr ""
#: code:addons/base/module/wizard/base_language_install.py:55
#, python-format
msgid "Language Pack"
msgstr ""
msgstr "بسته زبان"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests
msgid "Tests"
msgstr ""
msgstr "آزمونها"
#. module: base
#: field:ir.ui.view_sc,res_id:0
@@ -1242,7 +1244,7 @@ msgstr "URL کنش"
#. module: base
#: field:base.module.import,module_name:0
msgid "Module Name"
msgstr ""
msgstr "نام ماژول"
#. module: base
#: model:res.country,name:base.mh
@@ -1253,7 +1255,7 @@ msgstr "جزایر مارشال"
#: code:addons/base/ir/ir_model.py:368
#, python-format
msgid "Changing the model of a field is forbidden!"
msgstr ""
msgstr "تغییر مدل این فیلد ممنوع است"
#. module: base
#: model:res.country,name:base.ht
@@ -1279,13 +1281,13 @@ msgstr ""
#. module: base
#: field:ir.module.category,parent_id:0
msgid "Parent Application"
msgstr ""
msgstr "برنامه اصلی"
#. module: base
#: code:addons/base/res/res_users.py:222
#, python-format
msgid "Operation Canceled"
msgstr ""
msgstr "عملیات لغوشده"
#. module: base
#: help:base.language.export,lang:0
@@ -1296,17 +1298,17 @@ msgstr "برای برونش زبانی نو، چیزی را برنگزینید."
#: model:ir.module.module,shortdesc:base.module_document
#: model:ir.module.module,shortdesc:base.module_knowledge
msgid "Document Management System"
msgstr ""
msgstr "سیستم مدیریت اسناد"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
msgid "Claims Management"
msgstr ""
msgstr "مدیریت ادعا"
#. module: base
#: model:ir.ui.menu,name:base.menu_purchase_root
msgid "Purchases"
msgstr ""
msgstr "خریدها"
#. module: base
#: model:res.country,name:base.md
@@ -1349,7 +1351,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_sequence
msgid "Entries Sequence Numbering"
msgstr ""
msgstr "مرتب سازی ورودی ها"
#. module: base
#: model:ir.model,name:base.model_ir_exports
@@ -1416,7 +1418,7 @@ msgstr ""
#. module: base
#: view:wizard.ir.model.menu.create:0
msgid "Create _Menu"
msgstr ""
msgstr "ایجاد منو"
#. module: base
#: field:res.payterm,name:0
@@ -1461,12 +1463,12 @@ msgstr ""
msgid ""
"If you check this box, your customized translations will be overwritten and "
"replaced by the official ones."
msgstr ""
msgstr "اگر این گزینه فعال باشد، ترجمه شما جایگزین ترجمه های قبلی میشود."
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main report file path"
msgstr ""
msgstr "مسیر فایل گزارش اصلی"
#. module: base
#: model:ir.actions.act_window,name:base.ir_action_report_xml
@@ -1512,7 +1514,7 @@ msgstr "ورود"
#: model:ir.actions.act_window,name:base.action_wizard_update_translations
#: model:ir.ui.menu,name:base.menu_wizard_update_translations
msgid "Synchronize Terms"
msgstr ""
msgstr "هماهنگ سازی قوانین"
#. module: base
#: view:ir.actions.server:0
@@ -1542,18 +1544,18 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_tools
msgid "Tools"
msgstr ""
msgstr "ابزار"
#. module: base
#: selection:ir.property,type:0
msgid "Float"
msgstr ""
msgstr "شناور"
#. module: base
#: model:ir.module.category,name:base.module_category_warehouse_management
#: model:ir.module.module,shortdesc:base.module_stock
msgid "Warehouse Management"
msgstr ""
msgstr "مدیریت انبار"
#. module: base
#: model:ir.model,name:base.model_res_request_link
@@ -1570,7 +1572,7 @@ msgstr "آگهگان تردست"
#: model:ir.actions.act_window,name:base.action_wizard_lang_export
#: model:ir.ui.menu,name:base.menu_wizard_lang_export
msgid "Export Translation"
msgstr ""
msgstr "خروج ترجمه"
#. module: base
#: help:res.log,secondary:0
@@ -1582,7 +1584,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_lu
msgid "Luxembourg - Accounting"
msgstr ""
msgstr "حسابداری - لوکزامبرگ"
#. module: base
#: model:res.country,name:base.tp
@@ -1753,27 +1755,27 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_html_view
msgid "Html View"
msgstr ""
msgstr "مشاهده HTML"
#. module: base
#: field:res.currency,position:0
msgid "Symbol position"
msgstr ""
msgstr "جایگاه نماد"
#. module: base
#: model:ir.module.module,shortdesc:base.module_process
msgid "Enterprise Process"
msgstr ""
msgstr "فرآیند سازمانی"
#. module: base
#: help:ir.cron,function:0
msgid "Name of the method to be called when this job is processed."
msgstr ""
msgstr "نام این روش زمانی که این عمل در حال انجام است به آن داده میشود."
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
msgid "Employee Appraisals"
msgstr ""
msgstr "ارزیابی کارکنان"
#. module: base
#: selection:ir.actions.server,state:0
@@ -1790,7 +1792,7 @@ msgstr " STOCK_COPY"
#. module: base
#: field:res.company,rml_footer1:0
msgid "General Information Footer"
msgstr ""
msgstr "اطلاعات عمومی پاورقی"
#. module: base
#: view:res.lang:0
@@ -1822,7 +1824,7 @@ msgstr "مدل پیوست"
#. module: base
#: field:res.partner.bank,footer:0
msgid "Display on Reports"
msgstr ""
msgstr "نمایش در گزارش"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cn
@@ -1897,7 +1899,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_chart
msgid "Template of Charts of Accounts"
msgstr ""
msgstr "قالب نمودار حساب ها"
#. module: base
#: field:res.partner.address,type:0
@@ -1907,7 +1909,7 @@ msgstr "نوع نشانی"
#. module: base
#: view:ir.ui.menu:0
msgid "Full Path"
msgstr ""
msgstr "آدرس کامل"
#. module: base
#: model:ir.module.module,description:base.module_l10n_br
@@ -1973,7 +1975,7 @@ msgstr ""
#. module: base
#: view:ir.ui.view:0
msgid "Advanced"
msgstr ""
msgstr "پیشرفته"
#. module: base
#: model:res.country,name:base.fi
@@ -1984,12 +1986,12 @@ msgstr "فنلاند"
#: code:addons/base/res/res_company.py:156
#, python-format
msgid "Website: "
msgstr ""
msgstr "وب سایت "
#. module: base
#: model:ir.ui.menu,name:base.menu_administration
msgid "Settings"
msgstr ""
msgstr "تنظیمات"
#. module: base
#: selection:ir.actions.act_window,view_type:0
@@ -2003,12 +2005,12 @@ msgstr "درخت"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_multicurrency
msgid "Multi-Currency in Analytic"
msgstr ""
msgstr "تحلیل چند ارزی"
#. module: base
#: view:base.language.export:0
msgid "https://help.launchpad.net/Translations"
msgstr ""
msgstr "https://help.launchpad.net/Translations"
#. module: base
#: field:ir.actions.act_window,view_mode:0
@@ -2020,7 +2022,7 @@ msgstr "حالت نمایش"
msgid ""
"Display this bank account on the footer of printed documents like invoices "
"and sales orders."
msgstr ""
msgstr "نمایش حساب بانکی در پاورقی اسناد چاپی مانند فاکتورها و سفارشات"
#. module: base
#: view:base.language.import:0
@@ -2032,7 +2034,7 @@ msgstr ""
#. module: base
#: view:res.log:0
msgid "Logs"
msgstr ""
msgstr "گزارشات"
#. module: base
#: selection:base.language.install,lang:0
@@ -2042,7 +2044,7 @@ msgstr "اسپانیایی / Español"
#. module: base
#: selection:base.language.install,lang:0
msgid "Korean (KP) / 한국어 (KP)"
msgstr ""
msgstr "کره / 한국어 (KP)"
#. module: base
#: view:base.module.update:0
@@ -2090,7 +2092,7 @@ msgstr "نشان"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_cr
msgid "Costa Rica - Accounting"
msgstr ""
msgstr "حسابداری - کاستاریکا"
#. module: base
#: view:ir.module.module:0
@@ -2120,12 +2122,12 @@ msgstr ""
#. module: base
#: field:ir.values,action_id:0
msgid "Action (change only)"
msgstr ""
msgstr "عملیات (فقط تغییر)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_subscription
msgid "Recurring Documents"
msgstr ""
msgstr "اسناد دوره ای"
#. module: base
#: model:res.country,name:base.bs
@@ -2163,7 +2165,7 @@ msgstr "تعداد پیمانه‌های بروزرسانده"
#. module: base
#: field:ir.cron,function:0
msgid "Method"
msgstr ""
msgstr "روش"
#. module: base
#: view:res.partner.event:0
@@ -2173,7 +2175,7 @@ msgstr "شرح کلی"
#. module: base
#: view:workflow.activity:0
msgid "Workflow Activity"
msgstr ""
msgstr "فعالیت گردش کار"
#. module: base
#: model:ir.actions.act_window,help:base.action_ui_view
@@ -2185,7 +2187,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_setup
msgid "Initial Setup Tools"
msgstr ""
msgstr "ابزار تنظیمات اولیه"
#. module: base
#: field:ir.actions.act_window,groups_id:0
@@ -2209,7 +2211,7 @@ msgstr "گروه‌ها"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (CL) / Español (CL)"
msgstr ""
msgstr "اسپانیایی / Español (CL)"
#. module: base
#: model:res.country,name:base.bz
@@ -2242,12 +2244,12 @@ msgstr ""
#. module: base
#: model:ir.actions.act_window,name:base.action_res_widget_wizard
msgid "Homepage Widgets Management"
msgstr ""
msgstr "مدیریت ابزارک های صفحه اصلی"
#. module: base
#: field:res.company,rml_header1:0
msgid "Report Header / Company Slogan"
msgstr ""
msgstr "سربرگ گزارش / شعار شرکت"
#. module: base
#: model:res.country,name:base.pl
@@ -2270,7 +2272,7 @@ msgstr ""
#. module: base
#: view:workflow:0
msgid "Workflow Editor"
msgstr ""
msgstr "ویرایشگر گردش کار"
#. module: base
#: selection:ir.module.module,state:0
@@ -2297,7 +2299,7 @@ msgstr ""
#. module: base
#: field:ir.mail_server,smtp_debug:0
msgid "Debugging"
msgstr ""
msgstr "اشکال‌زدایی"
#. module: base
#: model:ir.module.module,description:base.module_crm_helpdesk
@@ -2317,7 +2319,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.ui.view_sc:0
msgid "Shortcut for this menu already exists!"
msgstr ""
msgstr "میانبر این منو موجود است"
#. module: base
#: model:ir.module.module,description:base.module_resource
@@ -2337,12 +2339,12 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Groups (no group = global)"
msgstr ""
msgstr "گروه ها (بدون گروه = عمومی)"
#. module: base
#: selection:res.users,view:0
msgid "Simplified"
msgstr ""
msgstr "ساده‌ شده"
#. module: base
#: model:res.country,name:base.st
@@ -2357,7 +2359,7 @@ msgstr "سیاهه"
#. module: base
#: selection:base.language.install,lang:0
msgid "Portugese (BR) / Português (BR)"
msgstr ""
msgstr "پرتقالی / Português (BR)"
#. module: base
#: model:res.country,name:base.bb
@@ -2406,7 +2408,7 @@ msgstr "نرخ کنونی"
#. module: base
#: model:ir.module.module,shortdesc:base.module_idea
msgid "Ideas"
msgstr ""
msgstr "‌ایده‌ها"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm
@@ -2433,22 +2435,22 @@ msgstr "هدف کنش"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_calendar
msgid "Calendar Layer"
msgstr ""
msgstr "لایه تقویم"
#. module: base
#: model:ir.actions.report.xml,name:base.report_ir_model_overview
msgid "Model Overview"
msgstr ""
msgstr "بازنگری مدل"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_margin
msgid "Margins by Products"
msgstr ""
msgstr "حاشیه های محصولات"
#. module: base
#: model:ir.ui.menu,name:base.menu_invoiced
msgid "Invoicing"
msgstr ""
msgstr "صورتحساب"
#. module: base
#: field:ir.ui.view_sc,name:0
@@ -2483,13 +2485,13 @@ msgstr "درونش / برونش"
#. module: base
#: model:ir.actions.todo.category,name:base.category_tools_customization_config
msgid "Tools / Customization"
msgstr ""
msgstr "ابزار / شخصی سازی"
#. module: base
#: field:ir.model.data,res_id:0
#: field:ir.values,res_id:0
msgid "Record ID"
msgstr ""
msgstr "شناسه ثبت شده"
#. module: base
#: field:ir.actions.server,email:0
@@ -2567,13 +2569,13 @@ msgstr "نگاشت‌های فیلد"
#: code:addons/base/publisher_warranty/publisher_warranty.py:163
#, python-format
msgid "Error during communication with the publisher warranty server."
msgstr ""
msgstr "خطا در هنگام ارتباط با سرور ناشر گارانتی"
#. module: base
#: model:res.groups,name:base.group_sale_manager
#: model:res.groups,name:base.group_tool_manager
msgid "Manager"
msgstr ""
msgstr "مدیر"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom
@@ -2605,17 +2607,17 @@ msgstr "لیتوانی"
#: model:ir.model,name:base.model_partner_clear_ids
#: view:partner.clear.ids:0
msgid "Clear IDs"
msgstr ""
msgstr "پاک کردن شناسه ها"
#. module: base
#: view:res.groups:0
msgid "Inherited"
msgstr ""
msgstr "موروثی"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
msgid "Serialization Field"
msgstr ""
msgstr "رشته فیلد"
#. module: base
#: model:ir.module.category,description:base.module_category_report_designer
@@ -2649,7 +2651,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.res_log_act_window
#: model:ir.ui.menu,name:base.menu_res_log_act_window
msgid "Client Logs"
msgstr ""
msgstr "ثبت مشتری"
#. module: base
#: code:addons/orm.py:1883
@@ -2670,7 +2672,7 @@ msgstr ""
#: code:addons/base/module/wizard/base_update_translations.py:38
#, python-format
msgid "Error!"
msgstr ""
msgstr "خطا!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_rib
@@ -2690,7 +2692,7 @@ msgstr "کنش‌های تکرار"
#. module: base
#: help:multi_company.default,company_id:0
msgid "Company where the user is connected"
msgstr ""
msgstr "شرکتی که کاربر از آن وصل شده"
#. module: base
#: field:publisher_warranty.contract,date_stop:0
@@ -2732,7 +2734,7 @@ msgstr "جزیره‌ی نورفولک"
#. module: base
#: selection:base.language.install,lang:0
msgid "Korean (KR) / 한국어 (KR)"
msgstr ""
msgstr "کره / 한국어 (KR)"
#. module: base
#: help:ir.model.fields,model:0
@@ -2758,14 +2760,14 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock_planning
msgid "Master Procurement Schedule"
msgstr ""
msgstr "کارشناس ارشد برنامه ریز تدارکات"
#. module: base
#: model:ir.model,name:base.model_ir_module_category
#: field:ir.module.module,application:0
#: field:res.groups,category_id:0
msgid "Application"
msgstr ""
msgstr "برنامه"
#. module: base
#: selection:publisher_warranty.contract,state:0
@@ -2804,7 +2806,7 @@ msgstr ""
#. module: base
#: field:ir.actions.client,params_store:0
msgid "Params storage"
msgstr ""
msgstr "پارامترهای ذخیره سازی"
#. module: base
#: code:addons/base/module/module.py:409
@@ -2851,7 +2853,7 @@ msgstr ""
#. module: base
#: model:res.widget,title:base.facebook_widget
msgid "Facebook"
msgstr ""
msgstr "فیسبوک"
#. module: base
#: model:res.country,name:base.am
@@ -2862,12 +2864,12 @@ 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
msgid "Invalid arguments"
msgstr ""
msgstr "آرگومان‌های نامعتبر"
#. module: base
#: model:res.country,name:base.se
@@ -2906,7 +2908,7 @@ msgstr "نوع حساب بانکی"
#: field:res.config,config_logo:0
#: field:res.config.installer,config_logo:0
msgid "Image"
msgstr ""
msgstr "تصویر"
#. module: base
#: view:ir.actions.server:0
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:18+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:09+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:11+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:02+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:02+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:06+0000\n"
"X-Generator: Launchpad (build 16130)\n"
"Language: hr\n"
#. module: base
+8 -8
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -218,7 +218,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:313
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
msgstr ""
msgstr "Nem megengedett a \"%s\" ritka mező átnevezése"
#. module: base
#: model:res.country,name:base.sz
@@ -234,12 +234,12 @@ msgstr "létrehozva."
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
msgid "Turkey - Accounting"
msgstr ""
msgstr "Török - könyvelés"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_subproduct
msgid "MRP Subproducts"
msgstr ""
msgstr "MRP altermékek"
#. module: base
#: code:addons/base/module/module.py:390
@@ -272,7 +272,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 "Értékesítés menedzsment"
#. module: base
#: view:res.partner:0
@@ -368,12 +368,12 @@ msgstr "Varázsló Neve"
#. module: base
#: model:res.groups,name:base.group_partner_manager
msgid "Partner Manager"
msgstr ""
msgstr "Partner kapcsolati felelős"
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
msgstr ""
msgstr "Ügyfél kapcsolati irányítás"
#. module: base
#: view:ir.module.module:0
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:13+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:13+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:03+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:13+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:13+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:12+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:02+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:13+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:13+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:04+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:05+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:05+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+8 -7
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: 2012-10-04 05:11+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:01+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -12085,7 +12085,7 @@ msgstr "Wizards welke worden gestart"
#: model:ir.module.category,name:base.module_category_manufacturing
#: model:ir.ui.menu,name:base.menu_mrp_root
msgid "Manufacturing"
msgstr "Productiebeheer"
msgstr "Productie"
#. module: base
#: model:res.country,name:base.km
@@ -15550,10 +15550,11 @@ msgid ""
"1,06,500;[1,2,-1] will represent it to be 106,50,0;[3] will represent it as "
"106,500. Provided ',' as the thousand separator in each case."
msgstr ""
"Het scheidingsformaat moet zoals [,n] zijn waarin 0 < n: -1 eindigt de "
"scheiding. Bijv. [3,2,-1] geeft op 106500 het volgende resultaat: 1,06,500. "
"[1,2,-1] geeft 106,50,0; [3] geeft 106,500. Er is in deze voorbeelden "
"uitgegaan van ',' als scheidingsteken."
"De instellingen voor het scheidingsteken heeft het formaat [,n] waarbij n > "
"0 gerekend vanaf het decimaalteken. -1 eindigt de scheiding. Bijv. [3,2,-1] "
"geeft op 106500 het volgende resultaat: 1,06,500. [1,2,-1] geeft 106,50,0; "
"[3] geeft 106,500. Er is in deze voorbeelden uitgegaan van ',' als "
"scheidingsteken."
#. module: base
#: field:ir.module.module,auto_install:0
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+4 -4
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: 2012-10-04 05:14+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:05+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
@@ -29,7 +29,7 @@ msgstr "Inna konfiguracja"
#. module: base
#: selection:ir.property,type:0
msgid "DateTime"
msgstr ""
msgstr "Data i godzina"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_mailgate
@@ -83,7 +83,7 @@ msgstr "Kod (np:en__US)"
#: field:workflow.transition,wkf_id:0
#: field:workflow.workitem,wkf_id:0
msgid "Workflow"
msgstr "Obieg"
msgstr "Przebieg procesu"
#. module: base
#: selection:ir.sequence,implementation:0
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:05+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:05+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:06+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:06+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:06+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:10+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:00+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:15+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:06+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:19+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:09+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:16+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:18+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:09+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:17+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:07+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
+2 -2
View File
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-04 05:18+0000\n"
"X-Generator: Launchpad (build 16061)\n"
"X-Launchpad-Export-Date: 2012-10-12 05:08+0000\n"
"X-Generator: Launchpad (build 16130)\n"
#. module: base
#: model:res.country,name:base.sh
-2
View File
@@ -20,8 +20,6 @@
##############################################################################
import ir_model
import ir_model_constraint
import ir_model_relation
import ir_sequence
import ir_needaction
import ir_ui_menu
File diff suppressed because it is too large Load Diff
+507
View File
@@ -0,0 +1,507 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Actions -->
<record id="action_view" model="ir.ui.view">
<field name="name">ir.actions.actions</field>
<field name="model">ir.actions.actions</field>
<field name="arch" type="xml">
<form string="Action" version="7.0">
<group>
<field name="name"/>
<field name="type"/>
<field name="usage"/>
</group>
</form>
</field>
</record>
<record id="action_view_tree" model="ir.ui.view">
<field name="name">ir.actions.actions.tree</field>
<field name="model">ir.actions.actions</field>
<field name="arch" type="xml">
<tree string="Action">
<field name="name"/>
<field name="type"/>
</tree>
</field>
</record>
<record id="action_view_search" model="ir.ui.view">
<field name="name">ir.actions.actions.search</field>
<field name="model">ir.actions.actions</field>
<field name="arch" type="xml">
<search string="Action">
<field name="name" filter_domain="['|', ('name','ilike',self), ('type','ilike',self)]" string="Action"/>
</search>
</field>
</record>
<record id="ir_sequence_actions" model="ir.actions.act_window">
<field name="name">Actions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.actions.actions</field>
<field name="view_type">form</field>
<field name="view_id" ref="action_view_tree"/>
<field name="search_view_id" ref="action_view_search"/>
</record>
<menuitem id="next_id_6" name="Actions" parent="base.menu_custom" sequence="2"/>
<menuitem action="ir_sequence_actions" id="menu_ir_sequence_actions" parent="next_id_6"/>
<record id="act_report_xml_view" model="ir.ui.view">
<field name="name">ir.actions.report.xml</field>
<field name="model">ir.actions.report.xml</field>
<field name="arch" type="xml">
<form string="Report" version="7.0">
<group>
<group>
<field name="name"/>
<field name="report_name"/>
<field name="model"/>
</group>
<group>
<field name="usage"/>
<field name="report_type"/>
<field name="report_file"/>
</group>
</group>
<notebook>
<page string="Other Configuration">
<group>
<group string="RML Report">
<field name="header"/>
</group>
<group string="XML Report">
<field name="report_xsl"/>
<field name="report_xml"/>
</group>
<group string="Attachments">
<field name="attachment"/>
<field name="attachment_use"/>
</group>
<group string="Miscellaneous">
<field name="multi"/>
<field name="auto"/>
</group>
</group>
</page>
<page string="Security">
<field name="groups_id"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="act_report_xml_view_tree" model="ir.ui.view">
<field name="name">ir.actions.report.xml.tree</field>
<field name="model">ir.actions.report.xml</field>
<field name="arch" type="xml">
<tree string="Report xml">
<field name="name"/>
<field name="model"/>
<field name="type"/>
<field name="report_name"/>
<field name="report_type"/>
<field name="attachment"/>
</tree>
</field>
</record>
<record id="act_report_xml_search_view" model="ir.ui.view">
<field name="name">ir.actions.report.xml.search</field>
<field name="model">ir.actions.report.xml</field>
<field name="arch" type="xml">
<search string="Report Xml">
<field name="name"
filter_domain="['|', '|', '|', '|', ('name','ilike',self), ('model','ilike',self), ('type','ilike',self), ('report_name','ilike',self), ('report_type','ilike',self)]"
string="Report"/>
<group expand="0" string="Group By" colspan="4">
<filter string="Report Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'report_type'}"/>
</group>
</search>
</field>
</record>
<record id="ir_action_report_xml" model="ir.actions.act_window">
<field name="name">Reports</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.actions.report.xml</field>
<field name="view_type">form</field>
<field name="view_id" ref="act_report_xml_view_tree"/>
<field name="search_view_id" ref="act_report_xml_search_view"/>
</record>
<menuitem action="ir_action_report_xml" id="menu_ir_action_report_xml" parent="base.next_id_6"/>
<record id="view_window_action_tree" model="ir.ui.view">
<field name="name">ir.actions.windows.tree</field>
<field name="model">ir.actions.act_window</field>
<field name="arch" type="xml">
<tree string="Open Window">
<field name="name"/>
<field name="res_model"/>
<field name="view_type"/>
<field name="view_id"/>
<field name="domain"/>
</tree>
</field>
</record>
<record id="view_window_action_form" model="ir.ui.view">
<field name="name">ir.actions.windows.form</field>
<field name="model">ir.actions.act_window</field>
<field name="arch" type="xml">
<form string="Open a Window" version="7.0">
<group>
<group>
<field name="name"/>
<field name="res_model" string="Object"/>
<field name="src_model" string="Source Object"/>
</group>
<group>
<field name="usage"/>
<field name="type" readonly="1"/>
<field name="target"/>
</group>
</group>
<notebook>
<page string="General Settings">
<group>
<group string="Views">
<field name="view_type"/>
<field name="view_mode"/>
<field name="view_id"/>
<field name="search_view_id"/>
</group>
<group string="Filters">
<field name="domain"/>
<field name="context"/>
<field name="limit"/>
<field name="auto_refresh"/>
<field name="auto_search"/>
<field name="filter"/>
</group>
</group>
<group string="Help">
<field colspan="2" name="help" nolabel="1"/>
</group>
<group string="Views">
<field colspan="2" name="view_ids" nolabel="1">
<form string="Views" version="7.0">
<group>
<field colspan="4" name="sequence"/>
<field name="view_mode"/>
<field domain="[('type', '=', view_mode)]" name="view_id"/>
</group>
</form>
<tree string="Views">
<field name="sequence"/>
<field name="view_mode"/>
<field name="view_id"/>
</tree>
</field>
</group>
</page>
<page string="Security">
<field name="groups_id"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="view_window_action_search" model="ir.ui.view">
<field name="name">ir.actions.windows.search</field>
<field name="model">ir.actions.act_window</field>
<field name="arch" type="xml">
<search string="Open a Window">
<field name="name" filter_domain="['|', ('name','ilike',self), ('res_model','ilike',self)]" string="Action"/>
<field name="view_type"/>
<group expand="0" string="Group By" colspan="4">
<filter string="View Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'view_type'}"/>
</group>
</search>
</field>
</record>
<record id="ir_action_window" model="ir.actions.act_window">
<field name="name">Window Actions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="search_view_id" ref="view_window_action_search"/>
</record>
<record id="ir_action_window_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_window_action_tree"/>
<field name="act_window_id" ref="ir_action_window"/>
</record>
<record id="ir_action_window_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_window_action_form"/>
<field name="act_window_id" ref="ir_action_window"/>
</record>
<menuitem action="ir_action_window" id="menu_ir_action_window" parent="base.next_id_6"/>
<record id="act_wizard_view_tree" model="ir.ui.view">
<field name="name">ir.actions.wizard.tree</field>
<field name="model">ir.actions.wizard</field>
<field name="arch" type="xml">
<tree string="Wizard">
<field name="name"/>
<field name="wiz_name"/>
<field name="multi"/>
</tree>
</field>
</record>
<record id="act_wizard_view" model="ir.ui.view">
<field name="name">ir.actions.wizard</field>
<field name="model">ir.actions.wizard</field>
<field name="arch" type="xml">
<form string="Wizards" version="7.0">
<group col="4">
<field name="name"/>
<field name="type"/>
<field name="wiz_name"/>
<field name="multi"/>
</group>
<label for="groups_id"/>
<field name="groups_id"/>
</form>
</field>
</record>
<record id="act_wizard_search_view" model="ir.ui.view">
<field name="name">ir.actions.wizard.search</field>
<field name="model">ir.actions.wizard</field>
<field name="arch" type="xml">
<search string="Wizards">
<field name="name"
filter_domain="['|', '|', ('name','ilike',self), ('type','ilike',self), ('wiz_name','ilike',self)]"
string="Wizard"/>
</search>
</field>
</record>
<record id="ir_action_wizard" model="ir.actions.act_window">
<field name="name">Wizards</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.actions.wizard</field>
<field name="view_type">form</field>
<field name="search_view_id" ref="act_wizard_search_view"/>
</record>
<menuitem action="ir_action_wizard" id="menu_ir_action_wizard" parent="base.next_id_6"/>
<record id="property_rule" model="ir.rule">
<field name="name">Property multi-company</field>
<field model="ir.model" name="model_id" ref="model_ir_property"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
</record>
<!--server action view-->
<record id="view_server_action_form" model="ir.ui.view">
<field name="name">Server Action</field>
<field name="model">ir.actions.server</field>
<field name="arch" type="xml">
<form string="Server Action" version="7.0">
<group>
<group>
<field name="name"/>
<field name="model_id"/>
<field name="state"/>
</group>
<group>
<field name="condition"/>
<field name="sequence"/>
</group>
</group>
<notebook colspan="4">
<page string="Python Code" attrs="{'invisible':[('state','!=','code')]}">
<field name="code"/>
</page>
<page string="Trigger" attrs="{'invisible':[('state','!=','trigger')]}">
<group string="Trigger Configuration" col="4">
<field name="wkf_model_id" attrs="{'required':[('state','=','trigger')]}"/>
<field name="trigger_obj_id" context="{'key':''}"
domain="[('model_id','=',model_id),('ttype','in',['many2one','int'])]"
attrs="{'required':[('state','=','trigger')]}"/>
<field name="trigger_name" attrs="{'required':[('state','=','trigger')]}"/>
</group>
</page>
<page string="Action to Launch" attrs="{'invisible':[('state','!=','client_action')]}">
<group>
<field name="action_id" attrs="{'required':[('state','=','client_action')]}"/>
</group>
</page>
<page string="Email Configuration" attrs="{'invisible':[('state','!=','email')]}">
<group>
<field name="email" domain="[('model_id','=',model_id)]" attrs="{'required':[('state','=','email')]}"/>
<field name="subject" attrs="{'required':[('state','=','email')]}"/>
<field name="message" attrs="{'required':[('state','=','email')]}"/>
<newline/>
<label colspan="2" string="Access all the fields related to the current object using expressions, i.e. object.partner_id.name " align="0.0"/>
</group>
</page>
<page string="SMS Configuration" attrs="{'invisible':[('state','!=','sms')]}">
<group>
<field name="mobile" domain="[('model_id','=',model_id)]" attrs="{'required':[('state','=','sms')]}"/>
<field name="sms" attrs="{'required':[('state','=','sms')]}"/>
</group>
<label string="Access all the fields related to the current object using expressions, i.e. object.partner_id.name " align="0.0"/>
</page>
<page string="Create / Write / Copy" attrs="{'invisible':[('state','!=','object_create'), ('state','!=','object_write'), ('state','!=','object_copy')]}">
<group col="4" string="Fields Mapping">
<field name="srcmodel_id" attrs="{'required':[('state','!=','dummy'), ('state','!=','sms'), ('state','!=','code'), ('state','!=','loop'), ('state','!=','trigger'), ('state','!=','object_copy'), ('state','!=','client_action'), ('state','!=','email'), ('state','!=','sms'), ('state','!=','other')]}"/>
<field name="copy_object" on_change="change_object(copy_object, state)" attrs="{'required':[('state','!=','dummy'), ('state','!=','sms'), ('state','!=','code'), ('state','!=','loop'), ('state','!=','trigger'), ('state','!=','object_write'), ('state','!=','object_create'), ('state','!=','client_action'), ('state','!=','email'), ('state','!=','sms'), ('state','!=','other')]}"/>
<field name="fields_lines" nolabel="1" colspan="2">
<tree string="Field Mappings" editable="top">
<field name="col1" domain="[('model_id','=',parent.srcmodel_id or parent.model_id)]"/>
<field name="type"/>
<field name="value" colspan="4"/>
</tree>
<form string="Field Mapping" version="7.0">
<group col="4">
<field name="col1" domain="[('model_id','=',parent.srcmodel_id or parent.model_id)]"/>
<field name="type"/>
<field name="value" colspan="4"/>
</group>
</form>
</field>
<field name="record_id" attrs="{'readonly':[('state','!=','object_create')]}" domain="[('model_id','in',[model_id])]"/>
<field name="write_id" attrs="{'readonly':[('state','!=','object_write')]}"/>
</group>
<label string="If you use a formula type, use a python expression using the variable 'object'." align="0.0"/>
</page>
<page string="Iteration Actions" attrs="{'invisible':[('state','!=','loop')]}">
<group col="4">
<field name="expression" attrs="{'required':[('state','=','loop')]}"/>
<field name="loop_action" domain="[('state','!=','loop')]" attrs="{'required':[('state','=','loop')]}"/>
</group>
</page>
<page string="Multi Actions" attrs="{'invisible':[('state','!=','other')]}">
<field name="child_ids"/>
<label string="Only one client action will be executed, last client action will be considered in case of multiple client actions." align="0.0"/>
</page>
</notebook>
<field name="type" readonly="1"/>
</form>
</field>
</record>
<record id="view_server_action_tree" model="ir.ui.view">
<field name="name">Server Actions</field>
<field name="model">ir.actions.server</field>
<field name="arch" type="xml">
<tree string="Server Actions">
<field name="name"/>
<field name="state"/>
<field name="model_id"/>
<field name="sequence"/>
</tree>
</field>
</record>
<record id="view_server_action_search" model="ir.ui.view">
<field name="name">ir.actions.server.search</field>
<field name="model">ir.actions.server</field>
<field name="arch" type="xml">
<search string="Server Actions">
<field name="name" string="Server Action"/>
<field name="model_id"/>
<field name="state"/>
<group expand="0" string="Group By" colspan="4" col="4">
<filter string="Action Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'state'}"/>
</group>
</search>
</field>
</record>
<record id="action_server_action" model="ir.actions.act_window">
<field name="name">Server Actions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.actions.server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_server_action_tree"/>
<field name="search_view_id" ref="view_server_action_search"/>
<field name="context">{'key':'server_action'}</field>
</record>
<menuitem action="action_server_action" id="menu_server_action" parent="base.next_id_6"/>
<!-- ir.actions.todo -->
<record id="ir_actions_todo_tree" model="ir.ui.view">
<field name="model">ir.actions.todo</field>
<field name="name">Config Wizard Steps</field>
<field name="arch" type="xml">
<tree string="Config Wizard Steps">
<field name="sequence"/>
<field name="action_id"/>
<field name="type"/>
<field name="state" readonly="1"/>
<button name="action_launch" states="open" string="Launch" type="object" icon="gtk-execute" help="Launch Configuration Wizard"/>
<button name="action_open" states="done"
string="Todo" type="object" help="Set as Todo"
icon="gtk-convert"/>
</tree>
</field>
</record>
<record id="config_wizard_step_view_form" model="ir.ui.view">
<field name="model">ir.actions.todo</field>
<field name="name">Config Wizard Steps</field>
<field name="arch" type="xml">
<form string="Config Wizard Steps" version="7.0">
<header>
<button name="action_launch"
states="open" string="Launch"
type="object" icon="gtk-execute" class="oe_highlight"
help="Launch Configuration Wizard"/>
<button name="action_open" states="done"
string="Set as Todo" type="object"
icon="gtk-convert" class="oe_highlight"/>
<field name="state" widget="statusbar" statusbar_visible="open,done" nolabel="1" readonly="1" statusbar_colors='{"open":"red","done":"blue"}'/>
</header>
<sheet>
<group col="4">
<field name="action_id"/>
<field name="type"/>
<field name="sequence"/>
</group>
<group string="Groups">
<field name="groups_id" nolabel="1" colspan="4"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="config_wizard_step_view_search" model="ir.ui.view">
<field name="model">ir.actions.todo</field>
<field name="name">ir.actions.todo.select</field>
<field name="arch" type="xml">
<search string="Search Actions">
<filter string="To Do" name="todo" icon="terp-camera_test" domain=" [('state','=','open')]" help="Wizards to be Launched"/>
<field name="action_id"/>
<field name="state"/>
</search>
</field>
</record>
<record id="act_ir_actions_todo_form" model="ir.actions.act_window">
<field name="name">Configuration Wizards</field>
<field name="res_model">ir.actions.todo</field>
<field name="view_id" ref="ir_actions_todo_tree"/>
<field name="view_type">form</field>
<field name="help">The configuration wizards are used to help you configure a new instance of OpenERP. They are launched during the installation of new modules, but you can choose to restart some wizards manually from this menu.</field>
</record>
<menuitem id="menu_ir_actions_todo" name="Configuration Wizards" parent="menu_custom" sequence="20" groups="base.group_no_one"/>
<menuitem id="menu_ir_actions_todo_form" action="act_ir_actions_todo_form" parent="menu_ir_actions_todo"/>
</data>
</openerp>
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Attachment -->
<record id="view_attachment_form" model="ir.ui.view">
<field name="model">ir.attachment</field>
<field name="arch" type="xml">
<form string="Attachments" version="7.0">
<sheet>
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
<group>
<group string="Data">
<field name="type"/>
<field name="datas" filename="datas_fname" attrs="{'invisible':[('type','=','url')]}"/>
<field name="datas_fname" invisible="1" attrs="{'invisible':[('type','=','url')]}" class="oe_inline oe_right"/>
<field name="url" widget="url" attrs="{'invisible':[('type','=','binary')]}"/>
</group>
<group string="Attached To">
<field name="res_model"/>
<field name="res_id"/>
<field name="res_name"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<group groups="base.group_no_one" string="History">
<label for="create_uid" string="Creation"/>
<div name="creation_div">
<field name="create_uid" readonly="1" class="oe_inline"/> on
<field name="create_date" readonly="1" class="oe_inline"/>
</div>
</group>
<group name="description_group" string="Description" colspan="4">
<field name="description" nolabel="1"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_attachment_tree" model="ir.ui.view">
<field name="model">ir.attachment</field>
<field name="arch" type="xml">
<tree string="Attachments">
<field name="name"/>
<field name="datas_fname"/>
<field name="type" invisible="1"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="create_uid"/>
<field name="create_date"/>
</tree>
</field>
</record>
<record id="view_attachment_search" model="ir.ui.view">
<field name="model">ir.attachment</field>
<field name="arch" type="xml">
<search string="Attachments">
<field name="name" filter_domain="['|', ('name','ilike',self), ('datas_fname','ilike',self)]" string="Attachment"/>
<field name="create_date"/>
<filter icon="terp-stage"
string="URL"
domain="[('type','=','url')]"/>
<filter icon="terp-stock_align_left_24"
string="Binary"
domain="[('type','=','binary')]"/>
<separator/>
<filter name="my_documents_filter"
string="My Document(s)"
icon="terp-personal"
domain="[('create_uid','=',uid)]"
help="Filter on my documents"/>
<field name="create_uid"/>
<field name="type"/>
<group expand="0" string="Group By...">
<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'}"/>
</group>
</search>
</field>
</record>
<record id="action_attachment" model="ir.actions.act_window">
<field name="name">Attachments</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.attachment</field>
<field name="view_type">form</field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_attachment_search"/>
</record>
<menuitem action="action_attachment" id="menu_action_attachment" parent="base.next_id_4"/>
</data>
</openerp>
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<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="arch" type="xml">
<search string="System Properties">
@@ -13,7 +11,6 @@
</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="arch" type="xml">
<tree string="System Parameters">
@@ -23,7 +20,6 @@
</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="arch" type="xml">
<form string="System Parameters" version="7.0">
@@ -36,7 +32,6 @@
</form>
</field>
</record>
<act_window name="System Parameters" res_model="ir.config_parameter" id="ir_config_list_action"/>
<menuitem id="ir_config_menu" name="System Parameters" parent="menu_ir_property" action="ir_config_list_action"/>
</data>
+92
View File
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- ir.cron -->
<record id="ir_cron_view" model="ir.ui.view">
<field name="model">ir.cron</field>
<field name="arch" type="xml">
<form string="Scheduled Actions" version="7.0">
<sheet>
<group col="4">
<field name="name"/>
<field name="active"/>
<field name="user_id" />
<field name="priority" />
</group>
<notebook>
<page string="Information">
<group col="4">
<field name="interval_number"/>
<field name="interval_type"/>
<newline/>
<field name="nextcall"/>
<field name="numbercall"/>
<field name="doall"/>
</group>
</page>
<page string="Technical Data" groups="base.group_no_one">
<group string="Action to Trigger">
<field name="model"/>
<field name="function"/>
</group>
<label for="args"/>
<field name="args"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="ir_cron_view_tree" model="ir.ui.view">
<field name="model">ir.cron</field>
<field name="arch" type="xml">
<tree string="Scheduled Actions">
<field name="priority" string="Sequence"/>
<field name="name"/>
<field name="nextcall"/>
<field name="interval_number"/>
<field name="interval_type"/>
<field name="numbercall"/>
<field name="user_id" invisible="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="ir_cron_view_calendar">
<field name="model">ir.cron</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Scheduled Actions" date_start="nextcall" color="user_id">
<field name="name"/>
<field name="user_id"/>
</calendar>
</field>
</record>
<record id="ir_cron_view_search" model="ir.ui.view">
<field name="model">ir.cron</field>
<field name="arch" type="xml">
<search string="Scheduled Actions">
<field name="name" string="Scheduled Action"/>
<field name="user_id"/>
<field name="nextcall"/>
<field name="active"/>
<group expand="0" string="Group By...">
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Execution" icon="terp-go-month"
domain="[]" context="{'group_by':'nextcall'}" />
</group>
</search>
</field>
</record>
<record id="ir_cron_act" model="ir.actions.act_window">
<field name="name">Scheduled Actions</field>
<field name="res_model">ir.cron</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="context">{'active_test': False}</field>
<field name="view_id" ref="ir_cron_view_tree"/>
</record>
<menuitem id="menu_ir_cron" name="Scheduler" parent="menu_custom" groups="base.group_no_one" sequence="23"/>
<menuitem id="menu_ir_cron_act" action="ir_cron_act" parent="menu_ir_cron"/>
</data>
</openerp>
-8
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Restrict modifications on ir.filters to owner only -->
<record id="ir_filters_rule" model="ir.rule">
@@ -12,7 +11,6 @@
<data>
<record id="ir_filters_view_form" model="ir.ui.view">
<field name="name">ir.filters.form</field>
<field name="model">ir.filters</field>
<field name="arch" type="xml">
<form string="Filters" version="7.0">
@@ -30,9 +28,7 @@
</form>
</field>
</record>
<record id="ir_filters_view_tree" model="ir.ui.view">
<field name="name">ir.filters.tree</field>
<field name="model">ir.filters</field>
<field name="arch" type="xml">
<tree string="Filters">
@@ -44,9 +40,7 @@
</tree>
</field>
</record>
<record id="ir_filters_view_search" model="ir.ui.view">
<field name="name">ir.filters.search</field>
<field name="model">ir.filters</field>
<field name="arch" type="xml">
<search string="Filters">
@@ -62,13 +56,11 @@
</search>
</field>
</record>
<record id="actions_ir_filters_view" model="ir.actions.act_window">
<field name="name">Filters</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.filters</field>
</record>
<menuitem parent="base.next_id_2" name="User-defined Filters"
id="menu_ir_filters" action="actions_ir_filters_view" sequence="5"/>
</data>
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- ir.mail.server -->
<record model="ir.ui.view" id="ir_mail_server_form">
<field name="model">ir.mail_server</field>
<field name="arch" type="xml">
<form string="Outgoing Mail Servers" version="7.0">
<sheet>
<group col="4">
<field name="name"/>
<field name="sequence"/>
</group>
<group col="4" string="Connection Information">
<field name="smtp_host"/>
<field name="smtp_port"/>
<field name="smtp_debug" groups="base.group_no_one"/>
</group>
<group string="Security and Authentication" colspan="4">
<field name="smtp_encryption" on_change="on_change_encryption(smtp_encryption)"/>
<field name="smtp_user"/>
<field name="smtp_pass" password="True"/>
<button name="test_smtp_connection" type="object" string="Test Connection" icon="gtk-network"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="ir_mail_server_list">
<field name="model">ir.mail_server</field>
<field name="arch" type="xml">
<tree string="Outgoing Mail Servers">
<field name="sequence"/>
<field name="name"/>
<field name="smtp_host"/>
<field name="smtp_user"/>
<field name="smtp_encryption"/>
</tree>
</field>
</record>
<record id="view_ir_mail_server_search" model="ir.ui.view">
<field name="model">ir.mail_server</field>
<field name="arch" type="xml">
<search string="Outgoing Mail Servers">
<field name="name"
filter_domain="['|', '|', ('name','ilike',self), ('smtp_host','ilike',self), ('smtp_user','ilike',self)]"
string="Outgoing Mail Server"/>
<field name="smtp_encryption"/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_ir_mail_server_list">
<field name="name">Outgoing Mail Servers</field>
<field name="res_model">ir.mail_server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="ir_mail_server_list" />
<field name="search_view_id" ref="view_ir_mail_server_search"/>
</record>
<menuitem id="menu_mail_servers" parent="menu_email" action="action_ir_mail_server_list" sequence="15" groups="base.group_no_one"/>
</data>
</openerp>
+126 -7
View File
@@ -24,8 +24,11 @@ import re
import time
import types
from openerp.osv import fields,osv
import openerp
from openerp import SUPERUSER_ID
from openerp import netsvc, pooler, tools
from openerp.osv import fields,osv
from openerp.osv.orm import Model
from openerp.tools.safe_eval import safe_eval as eval
from openerp.tools import config
from openerp.tools.translate import _
@@ -58,7 +61,6 @@ def _in_modules(self, cr, uid, ids, field_name, arg, context=None):
result[k] = ', '.join(sorted(installed_modules & set(xml_id.split('.')[0] for xml_id in v)))
return result
class ir_model(osv.osv):
_name = 'ir.model'
_description = "Models"
@@ -204,7 +206,6 @@ class ir_model(osv.osv):
else:
x_name = a._columns.keys()[0]
x_custom_model._rec_name = x_name
ir_model()
class ir_model_fields(osv.osv):
_name = 'ir.model.fields'
@@ -462,7 +463,128 @@ class ir_model_fields(osv.osv):
obj._auto_init(cr, ctx)
return res
ir_model_fields()
class ir_model_constraint(Model):
"""
This model tracks PostgreSQL foreign keys and constraints used by OpenERP
models.
"""
_name = 'ir.model.constraint'
_columns = {
'name': fields.char('Constraint', required=True, size=128, select=1,
help="PostgreSQL constraint or foreign key name."),
'model': fields.many2one('ir.model', string='Model',
required=True, select=1),
'module': fields.many2one('ir.module.module', string='Module',
required=True, select=1),
'type': fields.char('Constraint Type', required=True, size=1, select=1,
help="Type of the constraint: `f` for a foreign key, "
"`u` for other constraints."),
'date_update': fields.datetime('Update Date'),
'date_init': fields.datetime('Initialization Date')
}
_sql_constraints = [
('module_name_uniq', 'unique(name, module)',
'Constraints with the same name are unique per module.'),
]
def _module_data_uninstall(self, cr, uid, ids, context=None):
"""
Delete PostgreSQL foreign keys and constraints tracked by this model.
"""
if uid != SUPERUSER_ID and not self.pool.get('ir.model.access').check_groups(cr, uid, "base.group_system"):
raise except_orm(_('Permission Denied'), (_('Administrator access is required to uninstall a module')))
context = dict(context or {})
ids_set = set(ids)
ids.sort()
ids.reverse()
for data in self.browse(cr, uid, ids, context):
model = data.model.model
model_obj = self.pool.get(model)
name = openerp.tools.ustr(data.name)
typ = data.type
# double-check we are really going to delete all the owners of this schema element
cr.execute("""SELECT id from ir_model_constraint where name=%s""", (data.name,))
external_ids = [x[0] for x in cr.fetchall()]
if (set(external_ids)-ids_set):
# as installed modules have defined this element we must not delete it!
continue
if typ == 'f':
# test if FK exists on this table (it could be on a related m2m table, in which case we ignore it)
cr.execute("""SELECT 1 from pg_constraint cs JOIN pg_class cl ON (cs.conrelid = cl.oid)
WHERE cs.contype=%s and cs.conname=%s and cl.relname=%s""", ('f', name, model_obj._table))
if cr.fetchone():
cr.execute('ALTER TABLE "%s" DROP CONSTRAINT "%s"' % (model_obj._table, name),)
_logger.info('Dropped FK CONSTRAINT %s@%s', name, model)
if typ == 'u':
# test if constraint exists
cr.execute("""SELECT 1 from pg_constraint cs JOIN pg_class cl ON (cs.conrelid = cl.oid)
WHERE cs.contype=%s and cs.conname=%s and cl.relname=%s""", ('u', name, model_obj._table))
if cr.fetchone():
cr.execute('ALTER TABLE "%s" DROP CONSTRAINT "%s"' % (model_obj._table, name),)
_logger.info('Dropped CONSTRAINT %s@%s', name, model)
self.unlink(cr, uid, ids, context)
class ir_model_relation(Model):
"""
This model tracks PostgreSQL tables used to implement OpenERP many2many
relations.
"""
_name = 'ir.model.relation'
_columns = {
'name': fields.char('Relation Name', required=True, size=128, select=1,
help="PostgreSQL table name implementing a many2many relation."),
'model': fields.many2one('ir.model', string='Model',
required=True, select=1),
'module': fields.many2one('ir.module.module', string='Module',
required=True, select=1),
'date_update': fields.datetime('Update Date'),
'date_init': fields.datetime('Initialization Date')
}
def _module_data_uninstall(self, cr, uid, ids, context=None):
"""
Delete PostgreSQL many2many relations tracked by this model.
"""
if uid != SUPERUSER_ID and not self.pool.get('ir.model.access').check_groups(cr, uid, "base.group_system"):
raise except_orm(_('Permission Denied'), (_('Administrator access is required to uninstall a module')))
ids_set = set(ids)
to_drop_table = []
ids.sort()
ids.reverse()
for data in self.browse(cr, uid, ids, context):
model = data.model
model_obj = self.pool.get(model)
name = openerp.tools.ustr(data.name)
# double-check we are really going to delete all the owners of this schema element
cr.execute("""SELECT id from ir_model_relation where name = %s""", (data.name,))
external_ids = [x[0] for x in cr.fetchall()]
if (set(external_ids)-ids_set):
# as installed modules have defined this element we must not delete it!
continue
cr.execute("SELECT 1 FROM information_schema.tables WHERE table_name=%s", (name,))
if cr.fetchone() and not name in to_drop_table:
to_drop_table.append(name)
self.unlink(cr, uid, ids, context)
# drop m2m relation tables
for table in to_drop_table:
cr.execute('DROP TABLE %s CASCADE'% (table),)
_logger.info('Dropped table %s', table)
cr.commit()
class ir_model_access(osv.osv):
_name = 'ir.model.access'
@@ -643,8 +765,6 @@ class ir_model_access(osv.osv):
res = super(ir_model_access, self).unlink(cr, uid, *args, **argv)
return res
ir_model_access()
class ir_model_data(osv.osv):
"""Holds external identifier keys for records in the database.
This has two main uses:
@@ -978,5 +1098,4 @@ class ir_model_data(osv.osv):
_logger.info('Deleting %s@%s', res_id, model)
self.pool.get(model).unlink(cr, uid, [res_id])
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,77 +0,0 @@
import logging
import openerp
from openerp import SUPERUSER_ID
from openerp.osv import fields
from openerp.osv.orm import Model
_logger = logging.getLogger(__name__)
class ir_model_constraint(Model):
"""
This model tracks PostgreSQL foreign keys and constraints used by OpenERP
models.
"""
_name = 'ir.model.constraint'
_columns = {
'name': fields.char('Constraint', required=True, size=128, select=1,
help="PostgreSQL constraint or foreign key name."),
'model': fields.many2one('ir.model', string='Model',
required=True, select=1),
'module': fields.many2one('ir.module.module', string='Module',
required=True, select=1),
'type': fields.char('Constraint Type', required=True, size=1, select=1,
help="Type of the constraint: `f` for a foreign key, "
"`u` for other constraints."),
'date_update': fields.datetime('Update Date'),
'date_init': fields.datetime('Initialization Date')
}
_sql_constraints = [
('module_name_uniq', 'unique(name, module)',
'Constraints with the same name are unique per module.'),
]
def _module_data_uninstall(self, cr, uid, ids, context=None):
"""
Delete PostgreSQL foreign keys and constraints tracked by this model.
"""
if uid != SUPERUSER_ID and not self.pool.get('ir.model.access').check_groups(cr, uid, "base.group_system"):
raise except_orm(_('Permission Denied'), (_('Administrator access is required to uninstall a module')))
context = dict(context or {})
ids_set = set(ids)
ids.sort()
ids.reverse()
for data in self.browse(cr, uid, ids, context):
model = data.model.model
model_obj = self.pool.get(model)
name = openerp.tools.ustr(data.name)
typ = data.type
# double-check we are really going to delete all the owners of this schema element
cr.execute("""SELECT id from ir_model_constraint where name=%s""", (data.name,))
external_ids = [x[0] for x in cr.fetchall()]
if (set(external_ids)-ids_set):
# as installed modules have defined this element we must not delete it!
continue
if typ == 'f':
# test if FK exists on this table (it could be on a related m2m table, in which case we ignore it)
cr.execute("""SELECT 1 from pg_constraint cs JOIN pg_class cl ON (cs.conrelid = cl.oid)
WHERE cs.contype=%s and cs.conname=%s and cl.relname=%s""", ('f', name, model_obj._table))
if cr.fetchone():
cr.execute('ALTER TABLE "%s" DROP CONSTRAINT "%s"' % (model_obj._table, name),)
_logger.info('Dropped FK CONSTRAINT %s@%s', name, model)
if typ == 'u':
# test if constraint exists
cr.execute("""SELECT 1 from pg_constraint cs JOIN pg_class cl ON (cs.conrelid = cl.oid)
WHERE cs.contype=%s and cs.conname=%s and cl.relname=%s""", ('u', name, model_obj._table))
if cr.fetchone():
cr.execute('ALTER TABLE "%s" DROP CONSTRAINT "%s"' % (model_obj._table, name),)
_logger.info('Dropped CONSTRAINT %s@%s', name, model)
self.unlink(cr, uid, ids, context)
@@ -1,62 +0,0 @@
import logging
import openerp
from openerp import SUPERUSER_ID
from openerp.osv import fields
from openerp.osv.orm import Model
_logger = logging.getLogger(__name__)
class ir_model_relation(Model):
"""
This model tracks PostgreSQL tables used to implement OpenERP many2many
relations.
"""
_name = 'ir.model.relation'
_columns = {
'name': fields.char('Relation Name', required=True, size=128, select=1,
help="PostgreSQL table name implementing a many2many relation."),
'model': fields.many2one('ir.model', string='Model',
required=True, select=1),
'module': fields.many2one('ir.module.module', string='Module',
required=True, select=1),
'date_update': fields.datetime('Update Date'),
'date_init': fields.datetime('Initialization Date')
}
def _module_data_uninstall(self, cr, uid, ids, context=None):
"""
Delete PostgreSQL many2many relations tracked by this model.
"""
if uid != SUPERUSER_ID and not self.pool.get('ir.model.access').check_groups(cr, uid, "base.group_system"):
raise except_orm(_('Permission Denied'), (_('Administrator access is required to uninstall a module')))
ids_set = set(ids)
to_drop_table = []
ids.sort()
ids.reverse()
for data in self.browse(cr, uid, ids, context):
model = data.model
model_obj = self.pool.get(model)
name = openerp.tools.ustr(data.name)
# double-check we are really going to delete all the owners of this schema element
cr.execute("""SELECT id from ir_model_relation where name = %s""", (data.name,))
external_ids = [x[0] for x in cr.fetchall()]
if (set(external_ids)-ids_set):
# as installed modules have defined this element we must not delete it!
continue
cr.execute("SELECT 1 FROM information_schema.tables WHERE table_name=%s", (name,))
if cr.fetchone() and not name in to_drop_table:
to_drop_table.append(name)
self.unlink(cr, uid, ids, context)
# drop m2m relation tables
for table in to_drop_table:
cr.execute('DROP TABLE %s CASCADE'% (table),)
_logger.info('Dropped table %s', table)
cr.commit()
+416
View File
@@ -0,0 +1,416 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- model -->
<record id="view_model_form" model="ir.ui.view">
<field name="model">ir.model</field>
<field name="arch" type="xml">
<form string="Model Description" version="7.0">
<sheet>
<group>
<group>
<field name="name"/>
<field name="model"/>
<field name="osv_memory"/>
</group>
<group>
<field name="state"/>
<field name="modules"/>
</group>
</group>
<notebook>
<page string="Fields">
<field context="{'manual':True}" name="field_id">
<tree string="Fields Description">
<field name="name"/>
<field name="field_description"/>
<field name="ttype"/>
<field name="required"/>
<field name="readonly"/>
<field name="select_level"/>
<field name="state"/>
</tree>
<form string="Fields Description" version="7.0">
<group col="4">
<field name="name"/>
<field name="state"/>
<field name="field_description"/>
</group>
<group string="Properties">
<group>
<field name="ttype"/>
<field name="relation" attrs="{'required': [('ttype','in',['many2one','one2many','many2many'])],'readonly': [('ttype','!=','one2many'), ('ttype','!=','many2one'), ('ttype','!=','many2many')]}"/>
<field name="relation_field" attrs="{'required': [('ttype','=','one2many')], 'readonly': [('ttype','!=','one2many')]}"/>
<field name="selection" attrs="{'required': [('ttype','in',['selection','reference'])], 'readonly': [('ttype','not in',['selection','reference'])]}"/>
<field name="size" attrs="{'required': [('ttype','in',['char','reference'])], 'readonly': [('ttype','not in',['char','reference'])]}"/>
<field name="domain" attrs="{'readonly': [('relation','=','')]}"/>
<field name="serialization_field_id" attrs="{'readonly': [('state','=','base')]}" domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]"/>
</group>
<group>
<field name="required"/>
<field name="readonly"/>
<field name="select_level"/>
<field name="translate"/>
<field name="on_delete" attrs="{'readonly': [('ttype','!=','many2one')]}"/>
<field name="modules"/>
</group>
</group>
<separator string="Groups"/>
<field name="groups"/>
</form>
</field>
<button
icon="gtk-justify-fill"
name="%(act_menu_create)d"
string="Create a Menu" type="action"
target="new" />
</page>
<page string="Access Rights">
<field name="access_ids">
<tree string="Access Rules" editable="bottom">
<field name="group_id"/>
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
<field name="name"/>
</tree>
</field>
</page>
<page string="Notes">
<field name="info"/>
</page>
<page string="Views">
<field name="view_ids"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_model_tree" model="ir.ui.view">
<field name="model">ir.model</field>
<field name="arch" type="xml">
<tree string="Model Description">
<field name="model"/>
<field name="name"/>
<field name="state"/>
<field name="osv_memory"/>
</tree>
</field>
</record>
<record id="view_model_search" model="ir.ui.view">
<field name="model">ir.model</field>
<field name="arch" type="xml">
<search string="Model Description">
<field name="name" filter_domain="['|', ('name','ilike',self), ('model','ilike',self)]" string="Model"/>
<filter icon="terp-camera_test"
string="In Memory"
domain="[('osv_memory', '=', True)]"/>
<separator/>
<filter icon="terp-stock_align_left_24"
string="Custom"
domain="[('state', '=', 'manual')]"/>
<filter icon="terp-translate"
string="Base"
domain="[('state', '=', 'base')]"/>
</search>
</field>
</record>
<record id="action_model_model" model="ir.actions.act_window">
<field name="name">Models</field>
<field name="res_model">ir.model</field>
<field name="view_type">form</field>
<field name="context">{'manual':True}</field>
<field name="view_id" ref="view_model_tree"/>
</record>
<menuitem id="next_id_9" name="Database Structure" parent="base.menu_custom" groups="base.group_no_one"/>
<menuitem action="action_model_model" id="ir_model_model_menu" parent="next_id_9"/>
<!-- ir model fields -->
<record id="view_model_fields_form" model="ir.ui.view">
<field name="model">ir.model.fields</field>
<field name="arch" type="xml">
<form string="Fields" version="7.0">
<sheet>
<group>
<group>
<field name="name" string="Field Name"/>
<field name="field_description"/>
</group>
<group>
<field name="state"/>
<field name="model_id" attrs="{'readonly': [('state','!=', 'manual')]}"/>
<field name="modules"/>
</group>
</group>
<group>
<group>
<field name="ttype"/>
<field name="relation" attrs="{'required': [('ttype','in', ['many2one','one2many','many2many'])],
'readonly': [('ttype','not in', ['many2one','one2many','many2many'])]}"/>
<field name="relation_field" attrs="{'required': [('ttype','=','one2many')], 'readonly': [('ttype','!=','one2many')]}"/>
<field name="selection" attrs="{'required': [('ttype','in',['selection','reference'])], 'readonly': [('ttype','not in',['selection','reference'])]}"/>
<field name="size" attrs="{'required': [('ttype','in',['char','reference'])], 'readonly': [('ttype','not in',['char','reference'])]}"/>
<field name="domain" attrs="{'readonly': [('relation','=','')]}"/>
<field name="serialization_field_id" attrs="{'readonly': [('state','=','base')]}" domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]"/>
<field name="on_delete" attrs="{'readonly': [('ttype','!=','many2one')]}"/>
</group>
<group>
<field name="required"/>
<field name="readonly"/>
<field name="select_level"/>
<field name="translate"/>
</group>
</group>
<field name="groups" invisible="1"/>
</sheet>
</form>
</field>
</record>
<record id="view_model_fields_tree" model="ir.ui.view">
<field name="model">ir.model.fields</field>
<field name="arch" type="xml">
<tree string="Fields">
<field name="name"/>
<field name="field_description"/>
<field name="model_id"/>
<field name="ttype"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_model_fields_search" model="ir.ui.view">
<field name="model">ir.model.fields</field>
<field name="arch" type="xml">
<search string="Fields">
<field name="name" filter_domain="['|', ('name','ilike',self), ('field_description','ilike',self)]" string="Field"/>
<filter icon="terp-gnome-cpu-frequency-applet+"
string="Required"
domain="[('required', '=', True)]"/>
<separator/>
<filter icon="terp-dialog-close"
string="Readonly"
domain="[('readonly', '=', True)]"/>
<separator/>
<filter icon="terp-translate"
string="Translate"
domain="[('translate', '=', True)]"/>
<field name="model_id"/>
<field name="ttype"/>
<field name="required"/>
<field name="readonly"/>
<group expand="0" string="Group By...">
<filter string="Object" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'model_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_model_fields" model="ir.actions.act_window">
<field name="name">Fields</field>
<field name="res_model">ir.model.fields</field>
<field name="view_type">form</field>
<field name="context">{'manual':True}</field>
<field name="view_id" ref="view_model_fields_tree"/>
</record>
<menuitem action="action_model_fields" id="ir_model_model_fields" parent="base.next_id_9"/>
<!-- ir model data -->
<record model="ir.ui.view" id="view_model_data_form">
<field name="model">ir.model.data</field>
<field name="arch" type="xml">
<form string="External Identifiers" version="7.0">
<group>
<group>
<field name="complete_name"/>
<field name="module"/>
<field name="name"/>
</group>
<group>
<field name="display_name"/>
<field name="model"/>
<field name="res_id"/>
</group>
<group>
<field name="noupdate"/>
<field name="date_update" />
<field name="date_init" />
</group>
</group>
</form>
</field>
</record>
<record id="view_model_data_list" model="ir.ui.view">
<field name="model">ir.model.data</field>
<field name="arch" type="xml">
<tree string="External Identifiers">
<field name="complete_name"/>
<field name="display_name"/>
<field name="res_id"/>
<field name="model" groups="base.group_no_one"/>
</tree>
</field>
</record>
<record id="view_model_data_search" model="ir.ui.view">
<field name="model">ir.model.data</field>
<field name="arch" type="xml">
<search string="External Identifiers">
<field name="name"
filter_domain="['|', '|', ('name','ilike',self), ('model','ilike',self), ('module','ilike',self)]"
string="External Identifier"/>
<filter icon="terp-camera_test"
string="Updatable"
domain="[('noupdate', '=', False)]"/>
<field name="res_id"/>
<field name="noupdate"/>
<group expand="0" string="Group By...">
<filter string="Module" icon="terp-folder-blue" domain="[]" context="{'group_by':'module'}"/>
<filter string="Object" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'model'}"/>
</group>
</search>
</field>
</record>
<record id="action_model_data" model="ir.actions.act_window">
<field name="name">External Identifiers</field>
<field name="res_model">ir.model.data</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_model_data_list"/>
</record>
<menuitem id="next_id_5" name="Sequences &amp; Identifiers" parent="base.menu_custom" sequence="21" groups="base.group_no_one"/>
<menuitem action="action_model_data" id="ir_model_data_menu" parent="base.next_id_5"
groups="base.group_no_one"/>
<!-- ir model contraints -->
<record model="ir.ui.view" id="view_model_constraint_form">
<field name="model">ir.model.constraint</field>
<field name="arch" type="xml">
<form string="Model Constraints">
<field name="type"/>
<field name="name"/>
<field name="module"/>
<field name="model"/>
<newline/>
<field name="date_update" />
<field name="date_init" />
</form>
</field>
</record>
<record id="view_model_constraint_list" model="ir.ui.view">
<field name="model">ir.model.constraint</field>
<field name="arch" type="xml">
<tree string="Model Constraints">
<field name="type"/>
<field name="name"/>
<field name="module"/>
<field name="model"/>
</tree>
</field>
</record>
<record id="action_model_constraint" model="ir.actions.act_window">
<field name="name">Model Constraints</field>
<field name="res_model">ir.model.constraint</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_model_constraint_list"/>
</record>
<menuitem action="action_model_constraint" id="ir_model_constraint_menu" parent="base.next_id_9"
groups="base.group_no_one"/>
<!-- ir model relations -->
<record model="ir.ui.view" id="view_model_relation_form">
<field name="model">ir.model.relation</field>
<field name="arch" type="xml">
<form string="ManyToMany Relations">
<field name="name"/>
<field name="module"/>
<field name="model"/>
<newline/>
<field name="date_update" />
<field name="date_init" />
</form>
</field>
</record>
<record id="view_model_relation_list" model="ir.ui.view">
<field name="model">ir.model.relation</field>
<field name="arch" type="xml">
<tree string="ManyToMany Relations">
<field name="name"/>
<field name="module"/>
<field name="model"/>
</tree>
</field>
</record>
<record id="action_model_relation" model="ir.actions.act_window">
<field name="name">ManyToMany Relations</field>
<field name="res_model">ir.model.relation</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_model_relation_list"/>
</record>
<menuitem action="action_model_relation" id="ir_model_relation_menu" parent="base.next_id_9"
groups="base.group_no_one"/>
<!-- ir.model.access -->
<record id="ir_access_view_tree" model="ir.ui.view">
<field name="model">ir.model.access</field>
<field name="arch" type="xml">
<tree string="Access Controls" editable="bottom">
<field name="name"/>
<field name="model_id"/>
<field name="group_id"/>
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</tree>
</field>
</record>
<record id="ir_access_view_form" model="ir.ui.view">
<field name="model">ir.model.access</field>
<field name="arch" type="xml">
<form string="Access Controls" version="7.0">
<sheet>
<group col="4">
<field name="name"/>
<field name="model_id"/>
<field name="group_id"/>
<field name="active"/>
</group>
<group string="Access" col="4">
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="ir_access_view_search" model="ir.ui.view">
<field name="model">ir.model.access</field>
<field name="arch" type="xml">
<search string="Access Controls">
<field name="name" string="Access Control"/>
<filter string="Global" icon="terp-stage" domain="[('group_id','=',False)]"/>
<separator/>
<filter string="Full Access" icon="terp-gtk-select-all" domain="[('perm_read','=',True),('perm_write','=',True),('perm_create','=',True),('perm_unlink','=',True)]"/>
<filter string="Read Access" icon="terp-stock_align_left_24" domain="[('perm_read','=',True)]"/>
<filter string="Write Access" icon="terp-tools" domain="[('perm_write','=',True)]"/>
<field name="model_id"/>
<field name="group_id"/>
<group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_no_one">
<filter string="Group" icon="terp-personal" domain="[]" context="{'group_by':'group_id'}"/>
<filter string="Object" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'model_id'}"/>
</group>
</search>
</field>
</record>
<record id="ir_access_act" model="ir.actions.act_window">
<field name="name">Access Controls List</field>
<field name="res_model">ir.model.access</field>
<field name="view_type">form</field>
<field name="view_id" ref="ir_access_view_tree"/>
<field name="search_view_id" ref="ir_access_view_search"/>
</record>
<menuitem action="ir_access_act" id="menu_ir_access_act" parent="base.menu_security"/>
</data>
</openerp>
+87
View File
@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Rules -->
<record id="view_rule_form" model="ir.ui.view">
<field name="model">ir.rule</field>
<field name="arch" type="xml">
<form string="Record rules" version="7.0">
<sheet>
<group>
<group string="General">
<field name="name"/>
<field name="model_id"/>
<field name="active"/>
</group>
<group col="4" string="Access Rights">
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</group>
</group>
<separator string="Rule Definition (Domain Filter)"/>
<field name="domain_force" colspan="2" nolabel="1"/>
<group string="Groups (no group = global)">
<field name="global"/>
<field name="groups" nolabel="1" colspan="4"/>
</group>
<group string="Interaction between rules">
<label colspan="2"
string="Global rules (non group-specific) are restrictions, and cannot be bypassed. Group-local rules grant additional permissions, but are constrained within the bounds of global ones. The first group rules restrict further than global rules, but any additional group rule will add more permissions"/>
<label colspan="2"
string="Detailed algorithm:"/>
<label colspan="2"
string="1. Global rules are combined together with a logical AND operator, and with the result of the following steps"/>
<label colspan="2"
string="2. Group-specific rules are combined together with a logical OR operator"/>
<label colspan="2"
string="3. If user belongs to several groups, the results from step 2 are combined with logical OR operator"/>
<label colspan="2"
string="Example: GLOBAL_RULE_1 AND GLOBAL_RULE_2 AND ( (GROUP_A_RULE_1 OR GROUP_A_RULE_2) OR (GROUP_B_RULE_1 OR GROUP_B_RULE_2) )"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_rule_tree" model="ir.ui.view">
<field name="model">ir.rule</field>
<field name="arch" type="xml">
<tree string="Record rules">
<field name="model_id"/>
<field name="name"/>
<field name="global"/>
<field name="domain_force"/>
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</tree>
</field>
</record>
<record id="view_rule_search" model="ir.ui.view">
<field name="model">ir.rule</field>
<field name="arch" type="xml">
<search string="Record Rules">
<field name="name" string="Record Rule"/>
<filter string="Global" icon="terp-stage" domain="[('global','=',True)]"/>
<separator/>
<filter string="Full Access" icon="terp-gtk-select-all" domain="[('perm_read','=',True),('perm_write','=',True),('perm_create','=',True),('perm_unlink','=',True)]"/>
<filter string="Read Access" icon="terp-stock_align_left_24" domain="[('perm_read','=',True)]"/>
<filter string="Write Access" icon="terp-tools" domain="[('perm_write','=',True)]"/>
<field name="model_id"/>
<field name="groups"/>
</search>
</field>
</record>
<record id="action_rule" model="ir.actions.act_window">
<field name="name">Record Rules</field>
<field name="res_model">ir.rule</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_rule_tree"/>
<field name="search_view_id" ref="view_rule_search"/>
</record>
<menuitem action="action_rule" id="menu_action_rule" parent="base.menu_security" sequence="3"/>
</data>
</openerp>
+130
View File
@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Sequences -->
<record id="sequence_view" model="ir.ui.view">
<field name="model">ir.sequence</field>
<field name="arch" type="xml">
<form string="Sequences" version="7.0">
<sheet>
<group col="4">
<field name="name"/>
<field name="code"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="active" groups="base.group_no_one"/>
</group>
<notebook>
<page string="Sequence">
<group col="4">
<field name="prefix"/>
<field name="suffix"/>
<field name="padding"/>
<field name="number_increment"/>
<field name="number_next"/>
<field name="implementation"/>
</group>
<group col="3" string="Legend (for prefix, suffix)">
<group>
<label colspan="2" string="Current Year with Century: %%(year)s"/>
<label colspan="2" string="Current Year without Century: %%(y)s"/>
<label colspan="2" string="Month: %%(month)s"/>
<label colspan="2" string="Day: %%(day)s"/>
</group>
<group>
<label colspan="2" string="Day of the Year: %%(doy)s"/>
<label colspan="2" string="Week of the Year: %%(woy)s"/>
<label colspan="2" string="Day of the Week (0:Monday): %%(weekday)s"/>
</group>
<group>
<label colspan="2" string="Hour 00->24: %%(h24)s"/>
<label colspan="2" string="Hour 00->12: %%(h12)s"/>
<label colspan="2" string="Minute: %%(min)s"/>
<label colspan="2" string="Second: %%(sec)s"/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="sequence_view_tree" model="ir.ui.view">
<field name="model">ir.sequence</field>
<field name="arch" type="xml">
<tree string="Sequences">
<field name="code"/>
<field name="name"/>
<field name="prefix"/>
<field name="padding"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="number_next"/>
<field name="number_increment"/>
<field name="implementation"/>
</tree>
</field>
</record>
<record id="view_sequence_search" model="ir.ui.view">
<field name="model">ir.sequence</field>
<field name="arch" type="xml">
<search string="Sequences">
<field name="name" string="Sequence"/>
<field name="code"/>
<field name="company_id" groups="base.group_multi_company"/>
</search>
</field>
</record>
<record id="ir_sequence_form" model="ir.actions.act_window">
<field name="name">Sequences</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.sequence</field>
<field name="view_type">form</field>
<field name="view_id" ref="sequence_view_tree"/>
<field name="context">{'active_test': False}</field>
</record>
<menuitem action="ir_sequence_form" id="menu_ir_sequence_form" parent="next_id_5"/>
<!-- Sequences Types -->
<record id="sequence_type_form_view" model="ir.ui.view">
<field name="model">ir.sequence.type</field>
<field name="arch" type="xml">
<form string="Sequence Type" version="7.0">
<sheet>
<group col="4">
<field name="name"/>
<field name="code"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sequence_type_tree_view" model="ir.ui.view">
<field name="model">ir.sequence.type</field>
<field name="arch" type="xml">
<tree string="Sequence Type">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_sequence_type_search" model="ir.ui.view">
<field name="model">ir.sequence.type</field>
<field name="arch" type="xml">
<search string="Sequences Type">
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Sequence Type"/>
</search>
</field>
</record>
<record id="ir_sequence_type" model="ir.actions.act_window">
<field name="name">Sequence Codes</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.sequence.type</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field eval="False" name="view_id"/>
</record>
<menuitem action="ir_sequence_type" id="menu_ir_sequence_type"
groups="base.group_no_one"
parent="base.next_id_5"/>
</data>
</openerp>
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Translations -->
<record id="view_translation_search" model="ir.ui.view">
<field name="name">Translations</field>
<field name="model">ir.translation</field>
<field name="arch" type="xml">
<search string="Translations">
@@ -21,7 +21,6 @@
</record>
<record id="view_translation_form" model="ir.ui.view">
<field name="name">Translations</field>
<field name="model">ir.translation</field>
<field name="arch" type="xml">
<form string="Translations" version="7.0">
@@ -53,7 +52,6 @@
</field>
</record>
<record id="view_translation_tree" model="ir.ui.view">
<field name="name">Translations</field>
<field name="model">ir.translation</field>
<field name="arch" type="xml">
<tree string="Translations" editable="bottom">
@@ -76,4 +74,4 @@
<menuitem action="action_translation" id="menu_action_translation" parent="base.menu_translation_app" />
</data>
</openerp>
</openerp>
-4
View File
@@ -316,9 +316,5 @@ class ir_ui_menu(osv.osv):
'sequence' : 10,
}
_order = "sequence,id"
ir_ui_menu()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="edit_menu_access" model="ir.ui.view">
<field name="model">ir.ui.menu</field>
<field name="arch" type="xml">
<form string="Menu" version="7.0">
<sheet>
<group>
<group>
<field name="name"/>
<field name="parent_id"/>
<field name="sequence"/>
</group>
<group>
<field name="complete_name"/>
<field name="action"/>
<field name="icon"/>
</group>
</group>
<notebook>
<page string="Groups">
<field name="groups_id"/>
</page>
<page string="Submenus">
<!-- Note: make sure you have 'ir.ui.menu.full_list'
in the context to see all submenus! -->
<field name="child_id"
context="{'default_parent_id': active_id}">
<tree string="Menu">
<field name="sequence"/>
<field icon="icon" name="name" string="Menu"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="edit_menu" model="ir.ui.view">
<field name="model">ir.ui.menu</field>
<field eval="8" name="priority"/>
<field name="arch" type="xml">
<tree string="Menu">
<field name="sequence"/>
<field icon="icon" name="complete_name" string="Menu"/>
</tree>
</field>
</record>
<record id="edit_menu_access_search" model="ir.ui.view">
<field name="name">ir.ui.menu.search</field>
<field name="model">ir.ui.menu</field>
<field name="arch" type="xml">
<search string="Menu">
<field name="name" string="Menu"/>
<field name="parent_id"/>
</search>
</field>
</record>
<record id="grant_menu_access" model="ir.actions.act_window">
<field name="name">Menu Items</field>
<field name="res_model">ir.ui.menu</field>
<field name="view_type">form</field>
<field name="view_id" ref="edit_menu"/>
<field name="context">{'ir.ui.menu.full_list':True}</field>
<field name="search_view_id" ref="edit_menu_access_search"/>
<field name="help">Manage and customize the items available and displayed in your OpenERP system menu. You can delete an item by clicking on the box at the beginning of each line and then delete it through the button that appeared. Items can be assigned to specific groups in order to make them accessible to some users within the system.</field>
</record>
<menuitem action="grant_menu_access" id="menu_grant_menu_access" parent="base.next_id_2" sequence="1"/>
</data>
</openerp>
+9 -8
View File
@@ -44,7 +44,6 @@ class view_custom(osv.osv):
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_ui_view_custom_user_id_ref_id\'')
if not cr.fetchone():
cr.execute('CREATE INDEX ir_ui_view_custom_user_id_ref_id ON ir_ui_view_custom (user_id, ref_id)')
view_custom()
class view(osv.osv):
_name = 'ir.ui.view'
@@ -60,7 +59,7 @@ class view(osv.osv):
return result
_columns = {
'name': fields.char('View Name',size=64, required=True),
'name': fields.char('View Name', required=True),
'model': fields.char('Object', size=64, required=True, select=True),
'priority': fields.integer('Sequence', required=True),
'type': fields.function(_type_field, type='selection', selection=[
@@ -88,11 +87,17 @@ class view(osv.osv):
_order = "priority,name"
# Holds the RNG schema
_relaxng_validator = None
_relaxng_validator = None
def create(self, cr, uid, values, context=None):
if 'type' in values:
_logger.warning("Setting the `type` field is deprecated in the `ir.ui.view` model.")
if not values.get('name'):
if values.get('inherit_id'):
inferred_type = self.browse(cr, uid, values['inherit_id'], context).type
else:
inferred_type = etree.fromstring(values['arch'].encode('utf8')).tag
values['name'] = "%s %s" % (values['model'], inferred_type)
return super(osv.osv, self).create(cr, uid, values, context)
def _relaxng(self):
@@ -106,8 +111,7 @@ class view(osv.osv):
finally:
frng.close()
return self._relaxng_validator
def _check_render_view(self, cr, uid, view, context=None):
"""Verify that the given view's hierarchy is valid for rendering, along with all the changes applied by
its inherited views, by rendering it using ``fields_view_get()``.
@@ -267,7 +271,6 @@ class view(osv.osv):
'label' : labels,
'blank_nodes': blank_nodes,
'node_parent_field': _Model_Field,}
view()
class view_sc(osv.osv):
_name = 'ir.ui.view_sc'
@@ -304,7 +307,5 @@ class view_sc(osv.osv):
('shortcut_unique', 'unique(res_id, resource, user_id)', 'Shortcut for this menu already exists!'),
]
view_sc()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+144
View File
@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- View -->
<record id="view_view_form" model="ir.ui.view">
<field name="model">ir.ui.view</field>
<field name="arch" type="xml">
<form string="Views" version="7.0">
<sheet>
<group>
<group>
<field name="name"/>
<field name="type"/>
<field name="model"/>
<field name="priority"/>
</group>
<group>
<field name="field_parent"/>
<field name="inherit_id"/>
<field name="xml_id"/>
</group>
</group>
<notebook>
<page string="Architecture">
<field name="arch"/>
</page>
<page string="Groups">
<field name="groups_id"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_view_tree" model="ir.ui.view">
<field name="model">ir.ui.view</field>
<field name="arch" type="xml">
<tree string="Views">
<field name="priority" string="Sequence"/>
<field name="name"/>
<field name="type"/>
<field name="model"/>
<field name="xml_id"/>
<field name="inherit_id"/>
</tree>
</field>
</record>
<record id="view_view_search" model="ir.ui.view">
<field name="model">ir.ui.view</field>
<field name="arch" type="xml">
<search string="Views">
<field name="name" filter_domain="['|', ('name','ilike',self), ('model','ilike',self)]" string="View"/>
<filter icon="terp-stock_zoom"
string="Search"
domain="[('type', '=', 'search')]"/>
<filter icon="gtk-indent"
string="Tree"
domain="[('type', '=', 'tree')]"/>
<filter icon="gtk-new"
string="Form"
domain="[('type', '=','form')]"/>
<field name="inherit_id"/>
<field name="type"/>
<group expand="0" string="Group By...">
<filter string="Object" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'model'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
</group>
</search>
</field>
</record>
<record id="action_ui_view" model="ir.actions.act_window">
<field name="name">Views</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.ui.view</field>
<field name="view_id" ref="view_view_tree"/>
<field name="help">Views allows you to personalize each view of OpenERP. You can add new fields, move fields, rename them or delete the ones that you do not need.</field>
</record>
<menuitem action="action_ui_view" id="menu_action_ui_view" parent="base.next_id_2" sequence="2"/>
<!-- View customizations -->
<record id="view_view_custom_form" model="ir.ui.view">
<field name="model">ir.ui.view.custom</field>
<field name="arch" type="xml">
<form string="Customized Views" version="7.0">
<sheet>
<group col="4">
<field name="user_id"/>
<field name="ref_id"/>
<field name="arch" colspan="4" nolabel="1"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_view_custom_tree" model="ir.ui.view">
<field name="model">ir.ui.view.custom</field>
<field name="arch" type="xml">
<tree string="Customized Views">
<field name="user_id"/>
<field name="ref_id"/>
</tree>
</field>
</record>
<record id="view_view_custom_search" model="ir.ui.view">
<field name="model">ir.ui.view.custom</field>
<field name="arch" type="xml">
<search string="Customized Views">
<field name="user_id"/>
<field name="ref_id"/>
</search>
</field>
</record>
<record id="action_ui_view_custom" model="ir.actions.act_window">
<field name="name">Customized Views</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.ui.view.custom</field>
<field name="help">Customized views are used when users reorganize the content of their dashboard views (via web client)</field>
</record>
<menuitem id="menu_action_ui_view_custom" action="action_ui_view_custom" parent="base.next_id_2" sequence="3"/>
<!-- Shortcuts -->
<record id="shortcut_form" model="ir.ui.view">
<field name="model">ir.ui.view_sc</field>
<field name="arch" type="xml">
<form string="Shortcut" version="7.0">
<group col="4">
<field name="name"/>
<field name="sequence"/>
</group>
</form>
</field>
</record>
<record id="shortcut_tree" model="ir.ui.view">
<field name="model">ir.ui.view_sc</field>
<field name="arch" type="xml">
<tree string="Shortcut">
<field name="name"/>
<field name="sequence"/>
</tree>
</field>
</record>
</data>
</openerp>
+126
View File
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Values -->
<record id="values_view_form_action" model="ir.ui.view">
<field name="name">ir.values.form.action</field>
<field name="model">ir.values</field>
<field name="arch" type="xml">
<form string="Action Bindings" version="7.0">
<group>
<group>
<field name="name"/>
<field name="model_id" on_change="onchange_object_id(model_id)"/>
<field name="model"/>
<field name="res_id"/>
<field name="key2"/>
</group>
<group>
<field name="action_id" on_change="onchange_action_id(action_id)"/>
<field name="value_unpickle" colspan="4" string="Action Reference"/>
</group>
</group>
</form>
</field>
</record>
<record id="values_view_form_defaults" model="ir.ui.view">
<field name="name">ir.values.form.defaults</field>
<field name="model">ir.values</field>
<field name="arch" type="xml">
<form string="User-defined Defaults" version="7.0">
<group>
<group>
<field name="name"/>
<field name="model"/>
<field name="model_id" on_change="onchange_object_id(model_id)"/>
<field name="value_unpickle" nolabel="1"/>
</group>
<group>
<field name="key2" string="Condition"/>
<field name="user_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
</group>
</form>
</field>
</record>
<record id="values_view_tree_action" model="ir.ui.view">
<field name="name">ir.values.tree.action</field>
<field name="model">ir.values</field>
<field name="arch" type="xml">
<tree string="Action Bindings/Defaults">
<field name="name"/>
<field name="model"/>
<field name="key2"/>
</tree>
</field>
</record>
<record id="values_view_search_action" model="ir.ui.view">
<field name="name">ir.values.search.action</field>
<field name="model">ir.values</field>
<field name="arch" type="xml">
<search string="Client Actions">
<field name="name"
filter_domain="['|', '|', ('name','ilike',self), ('model','ilike',self), ('key2','ilike',self)]"
string="Client Action"/>
<group expand="0" string="Group By...">
<filter string="Model" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'model'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'key2'}"/>
</group>
</search>
</field>
</record>
<record id="act_values_form_action" model="ir.actions.act_window">
<field name="name">Action Bindings</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.values</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="values_view_search_action"/>
<field name="domain">[('key','=','action')]</field>
<field name="context">{'default_key':'action'}</field>
</record>
<record model="ir.actions.act_window.view" id="action_values_tree_view">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="values_view_tree_action"/>
<field name="act_window_id" ref="act_values_form_action"/>
</record>
<record model="ir.actions.act_window.view" id="action_values_form_view">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="values_view_form_action"/>
<field name="act_window_id" ref="act_values_form_action"/>
</record>
<menuitem action="act_values_form_action" id="menu_values_form_action" parent="next_id_6"/>
<record id="act_values_form_defaults" model="ir.actions.act_window">
<field name="name">User-defined Defaults</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.values</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="values_view_search_action"/>
<field name="domain">[('key','=','default')]</field>
<field name="context">{'default_key':'default','default_key2':''}</field>
</record>
<record model="ir.actions.act_window.view" id="action_values_defaults_tree_view">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="values_view_tree_action"/>
<field name="act_window_id" ref="act_values_form_defaults"/>
</record>
<record model="ir.actions.act_window.view" id="action_values_defaults_form_view">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="values_view_form_defaults"/>
<field name="act_window_id" ref="act_values_form_defaults"/>
</record>
<menuitem action="act_values_form_defaults" id="menu_values_form_defaults" parent="next_id_6"/>
</data>
</openerp>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.cron" id="cronjob_osv_memory_autovacuum">
<field name='name'>AutoVacuum osv_memory objects</field>
<field name='interval_number'>30</field>
<field name='interval_type'>minutes</field>
<field name="numbercall">-1</field>
<field name="active">True</field>
<field name="doall" eval="False" />
<field name="model">osv_memory.autovacuum</field>
<field name="function">power_on</field>
<field name="args">()</field>
</record>
</data>
</openerp>
+5 -9
View File
@@ -41,6 +41,7 @@
"""
import babel.dates
import calendar
import collections
import copy
@@ -66,7 +67,6 @@ import openerp.tools as tools
from openerp.tools.config import config
from openerp.tools.misc import CountingStream
from openerp.tools.safe_eval import safe_eval as eval
from ast import literal_eval
from openerp.tools.translate import _
from openerp import SUPERUSER_ID
from query import Query
@@ -1812,13 +1812,7 @@ class BaseModel(object):
field = model_fields.get(node.get('name'))
if field:
transfer_field_to_modifiers(field, modifiers)
#evaluate the options as python code, but send it as json to the client
if node.get('options'):
try:
node.set('options', simplejson.dumps(literal_eval(node.get('options'))))
except Exception, e:
_logger.exception('Invalid `options´ attribute, should be a valid python expression: %r', node.get('options'))
raise except_orm('Invalid options', 'Invalid options: %r %s' % (node.get('options'), e))
elif node.tag in ('form', 'tree'):
result = self.view_header_get(cr, user, False, node.tag, context)
@@ -2708,7 +2702,9 @@ class BaseModel(object):
dt = datetime.datetime.strptime(alldata[d['id']][groupby][:7], '%Y-%m')
days = calendar.monthrange(dt.year, dt.month)[1]
d[groupby] = datetime.datetime.strptime(d[groupby][:10], '%Y-%m-%d').strftime('%B %Y')
date_value = datetime.datetime.strptime(d[groupby][:10], '%Y-%m-%d')
d[groupby] = babel.dates.format_date(
date_value, format='MMMM yyyy', locale=context.get('lang', 'en_US'))
d['__domain'] = [(groupby, '>=', alldata[d['id']][groupby] and datetime.datetime.strptime(alldata[d['id']][groupby][:7] + '-01', '%Y-%m-%d').strftime('%Y-%m-%d') or False),\
(groupby, '<=', alldata[d['id']][groupby] and datetime.datetime.strptime(alldata[d['id']][groupby][:7] + '-' + str(days), '%Y-%m-%d').strftime('%Y-%m-%d') or False)] + domain
del alldata[d['id']][groupby]
+2 -10
View File
@@ -312,16 +312,8 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
html = ustr(html)
from lxml.etree import tostring
try:
from lxml.html.soupparser import fromstring
kwargs = {}
except ImportError:
_logger.debug('tools.misc.html2plaintext: cannot use BeautifulSoup, fallback to lxml.etree.HTMLParser')
from lxml.etree import fromstring, HTMLParser
kwargs = dict(parser=HTMLParser())
tree = fromstring(html, **kwargs)
from lxml.etree import tostring, fromstring, HTMLParser
tree = fromstring(html, parser=HTMLParser())
if body_id is not None:
source = tree.xpath('//*[@id=%s]'%(body_id,))