summaryrefslogtreecommitdiff
path: root/bin/addons
diff options
context:
space:
mode:
authorxrg <>2009-11-20 20:01:04 +0530
committerHarry (Open ERP) <hmo@tinyerp.com>2009-11-20 20:01:04 +0530
commitdad1ff955b636ccbad687f2f3f731ee8f512bd6f (patch)
treee3405d96ef59f72094e5e300db24fb713e2b8838 /bin/addons
parentb2a9a804ebf6c93ebe98751dd6b1008b8fe09306 (diff)
parentf566ea57a83bab87a8c7fa9743d190b4520c89e2 (diff)
[merge] merge from lp:~xrg/openobject-server/optimize-5.0 and removed some confilts
bzr revid: hmo@tinyerp.com-20091120143104-tb6136unkdw7yfy9
Diffstat (limited to 'bin/addons')
-rw-r--r--bin/addons/__init__.py36
-rw-r--r--bin/addons/base/base_data.xml2
-rw-r--r--bin/addons/base/i18n/base.pot669
-rw-r--r--bin/addons/base/ir/ir.xml2
-rw-r--r--bin/addons/base/ir/ir_actions.py1
-rw-r--r--bin/addons/base/ir/ir_attachment.py2
-rw-r--r--bin/addons/base/ir/ir_cron.py17
-rw-r--r--bin/addons/base/ir/ir_sequence.py33
-rw-r--r--bin/addons/base/ir/ir_values.py3
-rw-r--r--bin/addons/base/ir/workflow/print_instance.py8
-rw-r--r--bin/addons/base/module/report/ir_module_reference.rml6
-rw-r--r--bin/addons/base/module/report/ir_module_reference_print.py29
-rw-r--r--bin/addons/base/module/wizard/wizard_export_lang.py3
-rw-r--r--bin/addons/base/res/country_view.xml2
-rw-r--r--bin/addons/base/res/ir_property.py2
-rw-r--r--bin/addons/base/res/res_company.py8
-rw-r--r--bin/addons/base/res/res_user.py8
-rw-r--r--bin/addons/base/rng/view.rng15
18 files changed, 256 insertions, 590 deletions
diff --git a/bin/addons/__init__.py b/bin/addons/__init__.py
index 025b2a7b772..713dc88b793 100644
--- a/bin/addons/__init__.py
+++ b/bin/addons/__init__.py
@@ -45,11 +45,17 @@ from cStringIO import StringIO
logger = netsvc.Logger()
_ad = os.path.abspath(opj(tools.config['root_path'], 'addons')) # default addons path (base)
-ad = os.path.abspath(tools.config['addons_path']) # alternate addons path
+ad_paths= map(lambda m: os.path.abspath(m.strip()),tools.config['addons_path'].split(','))
sys.path.insert(1, _ad)
-if ad != _ad:
- sys.path.insert(1, ad)
+
+ad_cnt=1
+for adp in ad_paths:
+ if adp != _ad:
+ sys.path.insert(ad_cnt, adp)
+ ad_cnt+=1
+
+ad_paths.append(_ad) # for get_module_path
# Modules already loaded
loaded = []
@@ -153,11 +159,10 @@ class Node(Singleton):
def get_module_path(module, downloaded=False):
"""Return the path of the given module."""
- if os.path.exists(opj(ad, module)) or os.path.exists(opj(ad, '%s.zip' % module)):
- return opj(ad, module)
+ for adp in ad_paths:
+ if os.path.exists(opj(adp, module)) or os.path.exists(opj(adp, '%s.zip' % module)):
+ return opj(adp, module)
- if os.path.exists(opj(_ad, module)) or os.path.exists(opj(_ad, '%s.zip' % module)):
- return opj(_ad, module)
if downloaded:
return opj(_ad, module)
logger.notifyChannel('init', netsvc.LOG_WARNING, 'module %s: module not found' % (module,))
@@ -282,7 +287,10 @@ def get_modules():
return os.path.isdir(name) or zipfile.is_zipfile(name)
return map(clean, filter(is_really_module, os.listdir(dir)))
- return list(set(listdir(ad) + listdir(_ad)))
+ plist = []
+ for ad in ad_paths:
+ plist.extend(listdir(ad))
+ return list(set(plist))
def get_modules_with_version():
modules = get_modules()
@@ -310,6 +318,7 @@ def upgrade_graph(graph, cr, module_list, force=None):
mod_path = get_module_path(module)
terp_file = get_module_resource(module, '__terp__.py')
if not mod_path or not terp_file:
+ logger.notifyChannel('init', netsvc.LOG_WARNING, 'module %s: not installable' % (module))
cr.execute("update ir_module_module set state=%s where name=%s", ('uninstallable', module))
continue
@@ -325,6 +334,7 @@ def upgrade_graph(graph, cr, module_list, force=None):
dependencies = dict([(p, deps) for p, deps, data in packages])
current, later = set([p for p, dep, data in packages]), set()
+
while packages and current > later:
package, deps, data = packages[0]
@@ -394,7 +404,7 @@ def register_class(m):
try:
zip_mod_path = mod_path + '.zip'
if not os.path.isfile(zip_mod_path):
- fm = imp.find_module(m, [ad, _ad])
+ fm = imp.find_module(m, ad_paths)
try:
imp.load_module(m, *fm)
finally:
@@ -571,6 +581,8 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, **kwargs):
has_updates = False
modobj = None
+ logger.notifyChannel('init', netsvc.LOG_DEBUG, 'loading %d packages..' % len(graph))
+
for package in graph:
logger.notifyChannel('init', netsvc.LOG_INFO, 'module %s: loading objects' % package.name)
migrations.migrate_module(package, 'pre')
@@ -751,7 +763,11 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
cr.execute('select model,res_id from ir_model_data where noupdate=%s and module=%s order by id desc', (False, mod_name,))
for rmod, rid in cr.fetchall():
uid = 1
- pool.get(rmod).unlink(cr, uid, [rid])
+ rmod_module= pool.get(rmod)
+ if rmod_module:
+ rmod_module.unlink(cr, uid, [rid])
+ else:
+ logger.notifyChannel('init', netsvc.LOG_ERROR, 'Could not locate %s to remove res=%d' % (rmod,rid))
cr.execute('delete from ir_model_data where noupdate=%s and module=%s', (False, mod_name,))
cr.commit()
#
diff --git a/bin/addons/base/base_data.xml b/bin/addons/base/base_data.xml
index 64c5f191fbb..710bddeb73d 100644
--- a/bin/addons/base/base_data.xml
+++ b/bin/addons/base/base_data.xml
@@ -574,7 +574,7 @@
<field name="code">mh</field>
</record>
<record id="mk" model="res.country">
- <field name="name">Macedonia</field>
+ <field name="name">FYROM</field>
<field name="code">mk</field>
</record>
<record id="ml" model="res.country">
diff --git a/bin/addons/base/i18n/base.pot b/bin/addons/base/i18n/base.pot
index a42c62bb88a..6095742ae74 100644
--- a/bin/addons/base/i18n/base.pot
+++ b/bin/addons/base/i18n/base.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
+"Project-Id-Version: OpenERP Server 5.0.1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01:51+0000\n"
-"PO-Revision-Date: 2009-08-28 16:01:51+0000\n"
+"POT-Creation-Date: 2009-08-07 13:39:32+0000\n"
+"PO-Revision-Date: 2009-08-07 13:39:32+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -94,20 +94,6 @@ msgid "The Bank type %s of the bank account: %s is not supported"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/method_test/method_test.py:0
-#, python-format
-msgid "\"\"\n"
-"This test checks if the module classes are raising exception when calling basic methods or not.\n"
-"\"\""
-msgstr ""
-
-#. module: base
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#, python-format
-msgid "Result (/10)"
-msgstr ""
-
-#. module: base
#: view:ir.module.module:0
msgid "Created Views"
msgstr ""
@@ -465,12 +451,6 @@ msgid "Bosnian / bosanski jezik"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
-#, python-format
-msgid "Feed back About Workflow of Module"
-msgstr ""
-
-#. module: base
#: help:ir.actions.report.xml,attachment_use:0
msgid "If you check this, then the second time the user prints with same attachment name, it returns the previous report."
msgstr ""
@@ -526,12 +506,6 @@ msgid "''\n"
msgstr ""
#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
-msgid "Key/value '%s' not found in selection field '%s'"
-msgstr ""
-
-#. module: base
#: code:addons/addons/crm_configuration/wizard/wizard_opportunity_set.py:0
#, python-format
msgid "You must assign a partner to this lead before converting to opportunity.\n' \\n"
@@ -627,9 +601,8 @@ msgid "Jordan"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "Tag Name"
+#: model:ir.model,name:base.model_ir_ui_view
+msgid "ir.ui.view"
msgstr ""
#. module: base
@@ -704,13 +677,6 @@ msgid "STOCK_INDEX"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#: code:addons/addons/base_module_quality/structure_test/structure_test.py:0
-#, python-format
-msgid "File Name"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.rs
msgid "Serbia"
msgstr ""
@@ -849,12 +815,6 @@ msgid "maintenance contract modules"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Not Efficient"
-msgstr ""
-
-#. module: base
#: code:addons/addons/mrp/report/price.py:0
#, python-format
msgid "TOTAL"
@@ -913,12 +873,6 @@ msgid "STOCK_FILE"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "No enough data"
-msgstr ""
-
-#. module: base
#: field:ir.report.custom.fields,field_child2:0
msgid "Field child2"
msgstr ""
@@ -956,16 +910,6 @@ msgid "You have to define a Default Credit Account for your Financial Journals!\
msgstr ""
#. module: base
-#: field:ir.actions.act_window.view,act_window_id:0
-#: view:ir.actions.actions:0
-#: field:ir.actions.todo,action_id:0
-#: field:ir.ui.menu,action:0
-#: field:ir.values,action_id:0
-#: selection:ir.values,key:0
-msgid "Action"
-msgstr ""
-
-#. module: base
#: selection:ir.actions.server,state:0
#: selection:workflow.activity,kind:0
msgid "Dummy"
@@ -995,12 +939,6 @@ msgid "The sum of the data (2nd field) is null.\nWe can't draw a pie chart !"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "<html>O(1) means that the number of SQL requests to read the object does not depand on the number of objects we are reading. This feature is hardly wished.\n</html>"
-msgstr ""
-
-#. module: base
#: code:addons/addons/sale/sale.py:0
#, python-format
msgid "invalid mode for test_state"
@@ -1115,10 +1053,9 @@ msgid "Your journal must have a default credit and debit account."
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/structure_test/structure_test.py:0
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
+#: code:addons/addons/odms/odms.py:0
#, python-format
-msgid "Module Name"
+msgid "This feature is only available for location type Amazon"
msgstr ""
#. module: base
@@ -1166,12 +1103,6 @@ msgid "Pie charts need exactly two fields"
msgstr ""
#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
-msgid "Id is not the same than existing one: %s"
-msgstr ""
-
-#. module: base
#: help:wizard.module.lang.export,lang:0
msgid "To export a new language, do not select a language."
msgstr ""
@@ -1259,11 +1190,6 @@ msgid "Role Name"
msgstr ""
#. module: base
-#: field:res.partner,user_id:0
-msgid "Dedicated Salesman"
-msgstr ""
-
-#. module: base
#: code:addons/addons/mrp/wizard/wizard_change_production_qty.py:0
#, python-format
msgid "The production is in \"%s\" state. You can not change the production quantity anymore"
@@ -1322,20 +1248,14 @@ msgid "On Create"
msgstr ""
#. module: base
-#: wizard_view:base.module.import,init:0
-msgid "Please give your module .ZIP file to import."
-msgstr ""
-
-#. module: base
#: code:addons/addons/crm/crm.py:0
#, python-format
msgid "No E-Mail ID Found for your Company address or missing reply address in section!"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "O(1)"
+#: field:ir.default,value:0
+msgid "Default Value"
msgstr ""
#. module: base
@@ -1419,12 +1339,6 @@ msgid "Simple domain setup"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/method_test/method_test.py:0
-#, python-format
-msgid "Method Test"
-msgstr ""
-
-#. module: base
#: field:res.currency,accuracy:0
msgid "Computational Accuracy"
msgstr ""
@@ -1495,12 +1409,6 @@ msgid "STOCK_FIND_AND_REPLACE"
msgstr ""
#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
-msgid "Relation not found: %s on '%s'"
-msgstr ""
-
-#. module: base
#: selection:ir.ui.menu,icon:0
msgid "terp-crm"
msgstr ""
@@ -1527,14 +1435,6 @@ msgid "Invalid Region"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#, python-format
-msgid "\"\"\n"
-"Test checks for fields, views, security rules, dependancy level\n"
-"\"\""
-msgstr ""
-
-#. module: base
#: field:ir.report.custom.fields,width:0
msgid "Fixed Width"
msgstr ""
@@ -1562,8 +1462,8 @@ msgid "Report Custom"
msgstr ""
#. module: base
-#: model:res.country,name:base.tm
-msgid "Turkmenistan"
+#: view:ir.sequence:0
+msgid "Year without century: %(y)s"
msgstr ""
#. module: base
@@ -1590,6 +1490,11 @@ msgid "Attached Model"
msgstr ""
#. module: base
+#: selection:module.lang.install,init,lang:0
+msgid "fi_FI"
+msgstr ""
+
+#. module: base
#: field:ir.actions.server,trigger_name:0
msgid "Trigger Name"
msgstr ""
@@ -1794,11 +1699,6 @@ msgid "Ireland"
msgstr ""
#. module: base
-#: view:ir.sequence:0
-msgid "Year without century: %(y)s"
-msgstr ""
-
-#. module: base
#: wizard_field:module.module.update,update,update:0
msgid "Number of modules updated"
msgstr ""
@@ -2193,12 +2093,6 @@ msgid "%p - Equivalent of either AM or PM."
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "Terp Test"
-msgstr ""
-
-#. module: base
#: view:ir.actions.server:0
msgid "Iteration Actions"
msgstr ""
@@ -2629,12 +2523,6 @@ msgid "Sir"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#, python-format
-msgid "Result of dependancy in %"
-msgstr ""
-
-#. module: base
#: wizard_button:module.upgrade,next,start:0
msgid "Start Upgrade"
msgstr ""
@@ -2885,11 +2773,6 @@ msgid "Categories of Modules"
msgstr ""
#. module: base
-#: selection:module.lang.install,init,lang:0
-msgid "Ukrainian / украї́нська мо́ва"
-msgstr ""
-
-#. module: base
#: selection:ir.actions.todo,state:0
msgid "Not Started"
msgstr ""
@@ -2987,12 +2870,6 @@ msgid "Connect Actions To Client Events"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
-#, python-format
-msgid "No Workflow define"
-msgstr ""
-
-#. module: base
#: selection:ir.module.module,license:0
msgid "GPL-2 or later version"
msgstr ""
@@ -3183,12 +3060,6 @@ msgid "Languages"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "The module does not contain the __terp__.py file"
-msgstr ""
-
-#. module: base
#: code:addons/addons/account/account_move_line.py:0
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -3245,9 +3116,8 @@ msgid "Base Field"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "N/2"
+#: wizard_view:module.module.update,update:0
+msgid "New modules"
msgstr ""
#. module: base
@@ -3350,11 +3220,6 @@ msgid "Holy See (Vatican City State)"
msgstr ""
#. module: base
-#: wizard_field:base.module.import,init,module_file:0
-msgid "Module .ZIP file"
-msgstr ""
-
-#. module: base
#: code:addons/addons/sale/sale.py:0
#, python-format
msgid "You have to select a customer in the sale form !\nPlease set one customer before choosing a product."
@@ -3412,18 +3277,6 @@ msgid "Bank account"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#, python-format
-msgid "PEP-8 Test"
-msgstr ""
-
-#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "1"
-msgstr ""
-
-#. module: base
#: view:ir.sequence.type:0
msgid "Sequence Type"
msgstr ""
@@ -3496,8 +3349,9 @@ msgid "Equatorial Guinea"
msgstr ""
#. module: base
-#: wizard_view:base.module.import,init:0
-msgid "Module Import"
+#: code:addons/addons/odms/odms.py:0
+#, python-format
+msgid "Unable to delete an active subdomain"
msgstr ""
#. module: base
@@ -3528,11 +3382,6 @@ msgid "%c - Appropriate date and time representation."
msgstr ""
#. module: base
-#: selection:module.lang.install,init,lang:0
-msgid "Finland / Suomi"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.bo
msgid "Bolivia"
msgstr ""
@@ -3626,6 +3475,7 @@ msgstr ""
#. module: base
#: code:addons/addons/account/invoice.py:0
+#: code:addons/addons/multi_company_account/multi_company_account.py:0
#, python-format
msgid "No Partner Defined !"
msgstr ""
@@ -3732,9 +3582,9 @@ msgid "Set NULL"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#, python-format
-msgid "Result of Security in %"
+#: field:res.partner.event,som:0
+#: field:res.partner.som,name:0
+msgid "State of Mind"
msgstr ""
#. module: base
@@ -3760,12 +3610,6 @@ msgid "You can not create this kind of document"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "Result (/1)"
-msgstr ""
-
-#. module: base
#: selection:ir.ui.menu,icon:0
msgid "STOCK_CONNECT"
msgstr ""
@@ -3924,11 +3768,6 @@ msgid "Rates"
msgstr ""
#. module: base
-#: selection:module.lang.install,init,lang:0
-msgid "Albanian / Shqipëri"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.sy
msgid "Syria"
msgstr ""
@@ -4063,12 +3902,6 @@ msgid "Decimal Separator"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/structure_test/structure_test.py:0
-#, python-format
-msgid "Feedback about structure of module"
-msgstr ""
-
-#. module: base
#: view:res.partner:0
#: view:res.request:0
#: field:res.request,history:0
@@ -4193,19 +4026,6 @@ msgid "No grid matching for this carrier !"
msgstr ""
#. module: base
-#: help:res.partner,user_id:0
-msgid "The internal user that is in charge of communicating with this partner if any."
-msgstr ""
-
-#. module: base
-#: code:addons/addons/base_module_quality/structure_test/structure_test.py:0
-#, python-format
-msgid "\"\"\n"
-"This test checks if the module satisfy tiny structure\n"
-"\"\""
-msgstr ""
-
-#. module: base
#: view:ir.module.module:0
msgid "Cancel Upgrade"
msgstr ""
@@ -4267,6 +4087,7 @@ msgstr ""
#. module: base
#: code:addons/addons/account/wizard/wizard_bank_reconcile.py:0
+#: code:addons/addons/stage/wizard/wizard_classend.py:0
#, python-format
msgid "Standard Encoding"
msgstr ""
@@ -4304,12 +4125,6 @@ msgid "Antarctica"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/structure_test/structure_test.py:0
-#, python-format
-msgid "Structure Test"
-msgstr ""
-
-#. module: base
#: model:res.partner.category,name:base.res_partner_category_3
msgid "Starter Partner"
msgstr ""
@@ -4769,14 +4584,13 @@ msgid "STOCK_ZOOM_OUT"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Given module has no objects.Speed test can work only when new objects are created in the module along with demo data"
-msgstr ""
-
-#. module: base
-#: model:ir.model,name:base.model_ir_ui_view
-msgid "ir.ui.view"
+#: field:ir.actions.act_window.view,act_window_id:0
+#: view:ir.actions.actions:0
+#: field:ir.actions.todo,action_id:0
+#: field:ir.ui.menu,action:0
+#: field:ir.values,action_id:0
+#: selection:ir.values,key:0
+msgid "Action"
msgstr ""
#. module: base
@@ -4818,9 +4632,8 @@ msgid "Fiji"
msgstr ""
#. module: base
-#: code:addons/addons/stock/stock.py:0
-#, python-format
-msgid "Please put a partner on the picking list if you want to generate invoice."
+#: field:ir.model.fields,size:0
+msgid "Size"
msgstr ""
#. module: base
@@ -4836,8 +4649,8 @@ msgid "This method can be called with multiple ids"
msgstr ""
#. module: base
-#: selection:ir.ui.menu,icon:0
-msgid "STOCK_CLOSE"
+#: model:res.country,name:base.sd
+msgid "Sudan"
msgstr ""
#. module: base
@@ -5134,12 +4947,6 @@ msgid "Provide the field name where the record id is stored after the create ope
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Warning! Not enough demo data"
-msgstr ""
-
-#. module: base
#: code:addons/osv/orm.py:0
#, python-format
msgid "Couldn't find tag '%s' in parent view !"
@@ -5161,12 +4968,6 @@ msgid "Luxembourg"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#, python-format
-msgid "Object Test"
-msgstr ""
-
-#. module: base
#: model:ir.model,name:base.model_ir_rule_group
msgid "ir.rule.group"
msgstr ""
@@ -5295,13 +5096,6 @@ msgid "On delete"
msgstr ""
#. module: base
-#: code:addons/addons/stock/stock.py:0
-#, python-format
-msgid "There is no stock input account defined ' \\n"
-" 'for this product: \"%s\" (id: %d)"
-msgstr ""
-
-#. module: base
#: selection:res.lang,direction:0
msgid "Left-to-Right"
msgstr ""
@@ -5394,9 +5188,9 @@ msgid "Please provide a partner for the sale."
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/base_module_quality.py:0
-#, python-format
-msgid "Test Is Not Implemented"
+#: model:ir.actions.act_window,name:base.action_translation_untrans
+#: model:ir.ui.menu,name:base.menu_action_translation_untrans
+msgid "Untranslated terms"
msgstr ""
#. module: base
@@ -5472,7 +5266,6 @@ msgstr ""
#. module: base
#: code:addons/addons/crm/crm.py:0
-#: wizard_button:base.module.import,import,open_window:0
#: wizard_button:module.upgrade,end,end:0
#: wizard_button:module.upgrade,start,end:0
#: wizard_button:server.action.create,init,end:0
@@ -5494,12 +5287,6 @@ msgid "Bhutan"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Efficient"
-msgstr ""
-
-#. module: base
#: model:res.partner.category,name:base.res_partner_category_11
msgid "Textile Suppliers"
msgstr ""
@@ -5531,12 +5318,6 @@ msgid "STOCK_DIALOG_AUTHENTICATION"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#, python-format
-msgid "Field name"
-msgstr ""
-
-#. module: base
#: view:workflow.workitem:0
msgid "Workflow Workitems"
msgstr ""
@@ -5740,12 +5521,6 @@ msgid "Custom Field"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Speed Test"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.cc
msgid "Cocos (Keeling) Islands"
msgstr ""
@@ -6025,8 +5800,9 @@ msgid "ir.server.object.lines"
msgstr ""
#. module: base
-#: field:ir.model.fields,size:0
-msgid "Size"
+#: code:addons/addons/stock/stock.py:0
+#, python-format
+msgid "Please put a partner on the picking list if you want to generate invoice."
msgstr ""
#. module: base
@@ -6073,12 +5849,6 @@ msgid "You must define a reply-to address in order to mail the participant. You
msgstr ""
#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
-msgid "Insertion Failed!"
-msgstr ""
-
-#. module: base
#: selection:ir.ui.menu,icon:0
msgid "STOCK_UNDERLINE"
msgstr ""
@@ -6099,8 +5869,8 @@ msgid "Always Searchable"
msgstr ""
#. module: base
-#: model:res.country,name:base.sd
-msgid "Sudan"
+#: selection:ir.ui.menu,icon:0
+msgid "STOCK_CLOSE"
msgstr ""
#. module: base
@@ -6378,6 +6148,7 @@ msgstr ""
#. module: base
#: code:addons/addons/account/wizard/wizard_bank_reconcile.py:0
+#: code:addons/addons/stage/wizard/wizard_classend.py:0
#, python-format
msgid "You have to define the bank account\nin the journal definition for reconciliation."
msgstr ""
@@ -6477,14 +6248,14 @@ msgid "Iteration"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Warning! Object has no demo data"
+#: selection:ir.ui.menu,icon:0
+msgid "terp-stock"
msgstr ""
#. module: base
-#: selection:ir.ui.menu,icon:0
-msgid "terp-stock"
+#: code:addons/addons/multi_company_account/multi_company_account.py:0
+#, python-format
+msgid "invoice line account company is not match with invoice company."
msgstr ""
#. module: base
@@ -6516,6 +6287,7 @@ msgstr ""
#: code:addons/addons/hr_timesheet/wizard/sign_in_out.py:0
#: code:addons/addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0
#: code:addons/addons/l10n_ch/wizard/wizard_bvr.py:0
+#: code:addons/addons/multi_company_account/wizard/wizard_journal.py:0
#: code:addons/addons/point_of_sale/wizard/wizard_get_sale.py:0
#: code:addons/addons/stock/stock.py:0
#: code:addons/addons/stock/wizard/wizard_invoice_onshipping.py:0
@@ -6552,6 +6324,11 @@ msgid "Reunion (French)"
msgstr ""
#. module: base
+#: selection:module.lang.install,init,lang:0
+msgid "sv_SV"
+msgstr ""
+
+#. module: base
#: field:ir.rule.group,global:0
msgid "Global"
msgstr ""
@@ -6742,6 +6519,11 @@ msgid "You have to select a product UOM in the same category than the purchase U
msgstr ""
#. module: base
+#: help:res.partner,user_id:0
+msgid "Internal user if any."
+msgstr ""
+
+#. module: base
#: model:res.country,name:base.fk
msgid "Falkland Islands"
msgstr ""
@@ -6800,12 +6582,6 @@ msgid "Algeria"
msgstr ""
#. module: base
-#: code:addons/addons/odms/odms.py:0
-#, python-format
-msgid "This feature is only available for location type Amazon"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.be
msgid "Belgium"
msgstr ""
@@ -6875,7 +6651,6 @@ msgstr ""
#. module: base
#: code:addons/addons/crm/crm.py:0
-#: wizard_button:base.module.import,init,end:0
#: selection:ir.actions.todo,state:0
#: wizard_button:module.lang.import,init,end:0
#: wizard_button:module.lang.install,init,end:0
@@ -6911,8 +6686,8 @@ msgid "Provide the quantities of the returned products."
msgstr ""
#. module: base
-#: model:res.country,name:base.nt
-msgid "Neutral Zone"
+#: selection:ir.ui.menu,icon:0
+msgid "STOCK_SPELL_CHECK"
msgstr ""
#. module: base
@@ -7044,6 +6819,12 @@ msgid "Select the object on which the action will work (read, write, create)."
msgstr ""
#. module: base
+#: code:addons/addons/multi_company_account/multi_company_account.py:0
+#, python-format
+msgid "Can not find account chart for this company, Please Create account."
+msgstr ""
+
+#. module: base
#: view:ir.model:0
msgid "Fields Description"
msgstr ""
@@ -7330,22 +7111,11 @@ msgid "Created Date"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
-#, python-format
-msgid "This test checks where object has workflow or not on it if there is a state field and several buttons on it and also checks validity of workflow xml file"
-msgstr ""
-
-#. module: base
#: selection:ir.report.custom,type:0
msgid "Line Plot"
msgstr ""
#. module: base
-#: field:ir.default,value:0
-msgid "Default Value"
-msgstr ""
-
-#. module: base
#: help:ir.actions.server,loop_action:0
msgid "Select the action that will be executed. Loop action will not be avaliable inside loop."
msgstr ""
@@ -7462,8 +7232,8 @@ msgid "Day of the year: %(doy)s"
msgstr ""
#. module: base
-#: selection:ir.ui.menu,icon:0
-msgid "STOCK_SPELL_CHECK"
+#: model:res.country,name:base.nt
+msgid "Neutral Zone"
msgstr ""
#. module: base
@@ -7497,12 +7267,6 @@ msgid "Months"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "N"
-msgstr ""
-
-#. module: base
#: selection:ir.translation,type:0
msgid "Selection"
msgstr ""
@@ -7614,6 +7378,11 @@ msgstr ""
#. module: base
#: selection:module.lang.install,init,lang:0
+msgid "uk_UK"
+msgstr ""
+
+#. module: base
+#: selection:module.lang.install,init,lang:0
msgid "Portugese / português"
msgstr ""
@@ -7682,6 +7451,12 @@ msgid "Activity"
msgstr ""
#. module: base
+#: code:addons/addons/multi_company_account/multi_company_account.py:0
+#, python-format
+msgid "Can not find account chart for this company in invoice line account, Please Create account."
+msgstr ""
+
+#. module: base
#: field:res.company,parent_id:0
msgid "Parent Company"
msgstr ""
@@ -7724,12 +7499,6 @@ msgid "All Properties"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "Feed back About terp file of Module"
-msgstr ""
-
-#. module: base
#: model:ir.actions.act_window,name:base.ir_action_window
#: model:ir.ui.menu,name:base.menu_ir_action_window
msgid "Window Actions"
@@ -7770,15 +7539,6 @@ msgid "Unable to get multiple url"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "\"\"\n"
-"This test checks the speed of the module. Note that at least 5 demo data is needed in order to run it.\n"
-"\n"
-"\"\""
-msgstr ""
-
-#. module: base
#: code:addons/addons/mrp/mrp.py:0
#, python-format
msgid "No address defined for the supplier"
@@ -7803,17 +7563,10 @@ msgid "There is no default default debit account defined \n' \\n"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/method_test/method_test.py:0
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
#: field:ir.model,name:0
#: field:ir.model.fields,model:0
#: field:ir.model.grid,name:0
#: field:ir.values,model:0
-#, python-format
msgid "Object Name"
msgstr ""
@@ -7845,11 +7598,9 @@ msgid "Icon"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/method_test/method_test.py:0
#: wizard_button:module.lang.import,init,finish:0
#: wizard_button:module.lang.install,start,end:0
#: wizard_button:module.module.update,update,open_window:0
-#, python-format
msgid "Ok"
msgstr ""
@@ -7930,15 +7681,7 @@ msgid "No Related Models!!"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Reading Complexity"
-msgstr ""
-
-#. module: base
-#: wizard_button:base.module.import,init,import:0
#: model:ir.actions.wizard,name:base.wizard_base_module_import
-#: model:ir.ui.menu,name:base.menu_wizard_module_import
msgid "Import module"
msgstr ""
@@ -8028,13 +7771,6 @@ msgid "STOCK_PREFERENCES"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#, python-format
-msgid "No python file found"
-msgstr ""
-
-#. module: base
#: field:res.country.state,name:0
msgid "State Name"
msgstr ""
@@ -8262,11 +7998,6 @@ msgid "Registration on the monitoring servers"
msgstr ""
#. module: base
-#: wizard_view:module.module.update,update:0
-msgid "New modules"
-msgstr ""
-
-#. module: base
#: model:ir.model,name:base.model_res_company
msgid "res.company"
msgstr ""
@@ -8288,12 +8019,6 @@ msgid "Configure Simple View"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#, python-format
-msgid "Error. Is pylint correctly installed? (http://pypi.python.org/pypi/pylint)"
-msgstr ""
-
-#. module: base
#: model:res.partner.category,name:base.res_partner_category_13
msgid "Important customers"
msgstr ""
@@ -8327,12 +8052,6 @@ msgid "Could not cancel this purchase order !"
msgstr ""
#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
-msgid "Database ID doesn't exist: %s : %s"
-msgstr ""
-
-#. module: base
#: code:addons/addons/hr_timesheet/report/user_timesheet.py:0
#: code:addons/addons/hr_timesheet/report/users_timesheet.py:0
#, python-format
@@ -8342,12 +8061,6 @@ msgstr ""
#. module: base
#: code:addons/osv/orm.py:0
#, python-format
-msgid "key '%s' not found in selection field '%s'"
-msgstr ""
-
-#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
msgid "The value \"%s\" for the field \"%s\" is not in the selection"
msgstr ""
@@ -8380,10 +8093,10 @@ msgid "Short Description"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
+#: code:addons/addons/stock/stock.py:0
#, python-format
-msgid "Result of views in %"
+msgid "There is no stock input account defined ' \\n"
+" 'for this product: \"%s\" (id: %d)"
msgstr ""
#. module: base
@@ -8442,12 +8155,6 @@ msgid "Number of time the function is called,\n"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "__terp__.py file"
-msgstr ""
-
-#. module: base
#: model:res.partner.category,name:base.res_partner_category_16
msgid "Telecom sector"
msgstr ""
@@ -8503,12 +8210,6 @@ msgid "Access Rules"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/method_test/method_test.py:0
-#, python-format
-msgid "Module has no objects"
-msgstr ""
-
-#. module: base
#: field:ir.default,ref_table:0
msgid "Table Ref."
msgstr ""
@@ -8756,11 +8457,6 @@ msgid "Load an Official Translation"
msgstr ""
#. module: base
-#: selection:res.partner.address,type:0
-msgid "Delivery"
-msgstr ""
-
-#. module: base
#: code:addons/addons/account/account_bank_statement.py:0
#, python-format
msgid "The account entries lines are not in valid state."
@@ -8804,12 +8500,6 @@ msgid "No Default Debit Account !"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "No data"
-msgstr ""
-
-#. module: base
#: help:ir.actions.wizard,multi:0
msgid "If set to true, the wizard will not be displayed on the right toolbar of a form view."
msgstr ""
@@ -8849,7 +8539,6 @@ msgstr ""
#. module: base
#: model:ir.actions.act_window,name:base.open_repository_tree
#: view:ir.module.repository:0
-#: model:ir.ui.menu,name:base.menu_module_repository_tree
msgid "Repository list"
msgstr ""
@@ -8899,6 +8588,7 @@ msgstr ""
#. module: base
#: code:addons/addons/account/invoice.py:0
+#: code:addons/addons/multi_company_account/multi_company_account.py:0
#, python-format
msgid "You must first select a partner !"
msgstr ""
@@ -8972,12 +8662,6 @@ msgid "Uncheck the active field to hide the contact."
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#, python-format
-msgid "\"\"This test uses Pylint and checks if the module satisfies the coding standard of Python. See http://www.logilab.org/project/name/pylint for further info.\n \"\""
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.dk
msgid "Denmark"
msgstr ""
@@ -9020,12 +8704,6 @@ msgid "You can not validate a non-balanced entry !"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/workflow_test/workflow_test.py:0
-#, python-format
-msgid "Workflow Test"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.nl
msgid "Netherlands"
msgstr ""
@@ -9141,6 +8819,11 @@ msgid "Company Architecture"
msgstr ""
#. module: base
+#: field:res.partner,user_id:0
+msgid "Internal User"
+msgstr ""
+
+#. module: base
#: selection:ir.ui.menu,icon:0
msgid "STOCK_GOTO_BOTTOM"
msgstr ""
@@ -9247,12 +8930,6 @@ msgid "Menu Action"
msgstr ""
#. module: base
-#: code:addons/osv/orm.py:0
-#, python-format
-msgid "Unable to delete this document because it is used as a default property"
-msgstr ""
-
-#. module: base
#: code:addons/addons/account/account.py:0
#, python-format
msgid "Purchase Journal"
@@ -9352,12 +9029,6 @@ msgid "Account Number"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/wizard/module_quality_check.py:0
-#, python-format
-msgid "Quality Check"
-msgstr ""
-
-#. module: base
#: view:res.lang:0
msgid "1. %c ==> Fri Dec 5 18:25:20 2008"
msgstr ""
@@ -9394,10 +9065,10 @@ msgid "Category Name"
msgstr ""
#. module: base
-#: code:addons/addons/hr_timesheet/report/user_timesheet.py:0
-#: code:addons/addons/hr_timesheet/report/users_timesheet.py:0
-#, python-format
-msgid "Sat"
+#: field:ir.actions.server,subject:0
+#: wizard_field:res.partner.spam_send,init,subject:0
+#: field:res.request,name:0
+msgid "Subject"
msgstr ""
#. module: base
@@ -9407,12 +9078,6 @@ msgid "From"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#, python-format
-msgid "Result of pep8_test in %"
-msgstr ""
-
-#. module: base
#: wizard_button:server.action.create,init,step_1:0
msgid "Next"
msgstr ""
@@ -9566,8 +9231,9 @@ msgid "No timebox of the type \"%s\" defined !"
msgstr ""
#. module: base
-#: field:workflow.activity,split_mode:0
-msgid "Split Mode"
+#: code:addons/addons/odms/odms.py:0
+#, python-format
+msgid "Demo instance"
msgstr ""
#. module: base
@@ -9594,6 +9260,7 @@ msgstr ""
#. module: base
#: code:addons/addons/account/account_bank_statement.py:0
+#: code:addons/addons/multi_company_account/multi_company_account.py:0
#, python-format
msgid "Configration Error !"
msgstr ""
@@ -9613,12 +9280,6 @@ msgid "No Invoice Address"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#, python-format
-msgid "Result of fields in %"
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.ir
msgid "Iran"
msgstr ""
@@ -9653,23 +9314,11 @@ msgid "Iraq"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/method_test/method_test.py:0
-#, python-format
-msgid "Exception"
-msgstr ""
-
-#. module: base
#: view:ir.actions.server:0
msgid "Action to Launch"
msgstr ""
#. module: base
-#: wizard_view:base.module.import,import:0
-#: wizard_view:base.module.import,init:0
-msgid "Module import"
-msgstr ""
-
-#. module: base
#: model:ir.actions.act_window,name:base.action_partner_supplier_form
#: model:ir.ui.menu,name:base.menu_partner_supplier_form
msgid "Suppliers Partners"
@@ -9837,12 +9486,6 @@ msgid "Turkish / Türkçe"
msgstr ""
#. module: base
-#: model:ir.actions.act_window,name:base.action_translation_untrans
-#: model:ir.ui.menu,name:base.menu_action_translation_untrans
-msgid "Untranslated terms"
-msgstr ""
-
-#. module: base
#: wizard_view:module.lang.import,init:0
msgid "Import New Language"
msgstr ""
@@ -9907,12 +9550,6 @@ msgid "High"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#, python-format
-msgid "Line number"
-msgstr ""
-
-#. module: base
#: field:ir.exports.line,export_id:0
msgid "Export"
msgstr ""
@@ -9929,10 +9566,8 @@ msgid "Bank Identifier Code"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/object_test/object_test.py:0
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#, python-format
-msgid "Suggestion"
+#: model:res.country,name:base.tm
+msgid "Turkmenistan"
msgstr ""
#. module: base
@@ -9968,10 +9603,10 @@ msgstr ""
#: code:addons/addons/proforma_followup/proforma.py:0
#: code:addons/addons/project/wizard/close_task.py:0
#: code:addons/addons/sale/wizard/make_invoice_advance.py:0
+#: code:addons/addons/stage/wizard/wizard_classend.py:0
#: code:addons/addons/stock/stock.py:0
#: code:addons/addons/stock/wizard/wizard_invoice_onshipping.py:0
#: code:addons/addons/use_control/module.py:0
-#: code:addons/osv/orm.py:0
#: code:addons/report/custom.py:0
#, python-format
msgid "Error"
@@ -9995,7 +9630,6 @@ msgid "You can not remove the field '%s' !"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/base_module_quality.py:0
#: code:addons/addons/odms/odms.py:0
#, python-format
msgid "Programming Error"
@@ -10053,9 +9687,8 @@ msgid "Technical guide"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/terp_test/terp_test.py:0
-#, python-format
-msgid "This test checks if the module satisfies the current coding standard used by OpenERP."
+#: selection:module.lang.install,init,lang:0
+msgid "cs_CS"
msgstr ""
#. module: base
@@ -10164,12 +9797,6 @@ msgid "Start configuration"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "N (Number of Records)"
-msgstr ""
-
-#. module: base
#: selection:module.lang.install,init,lang:0
msgid "Catalan / Català"
msgstr ""
@@ -10264,12 +9891,6 @@ msgid "Titles"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "Result"
-msgstr ""
-
-#. module: base
#: code:addons/addons/mrp_operations/mrp_operations.py:0
#, python-format
msgid "Operation has already started !' 'You can either Pause /Finish/Cancel the operation"
@@ -10478,12 +10099,6 @@ msgid "Action Usage"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#, python-format
-msgid "Pylint Test"
-msgstr ""
-
-#. module: base
#: model:ir.model,name:base.model_workflow_workitem
msgid "workflow.workitem"
msgstr ""
@@ -10608,9 +10223,8 @@ msgid "Bahrain"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/speed_test/speed_test.py:0
-#, python-format
-msgid "O(n) or worst"
+#: selection:res.partner.address,type:0
+msgid "Delivery"
msgstr ""
#. module: base
@@ -10643,23 +10257,12 @@ msgid "Version"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/wizard/quality_save_report.py:0
-#, python-format
-msgid "No report to save!"
-msgstr ""
-
-#. module: base
#: code:addons/addons/mrp/mrp.py:0
#, python-format
msgid "No BoM defined for this product !"
msgstr ""
#. module: base
-#: selection:module.lang.install,init,lang:0
-msgid "Vietnam / Cộng hòa xã hội chủ nghĩa Việt Nam"
-msgstr ""
-
-#. module: base
#: field:ir.actions.act_window,limit:0
#: field:ir.report.custom,limitt:0
msgid "Limit"
@@ -10697,7 +10300,6 @@ msgstr ""
#: code:addons/addons/account/wizard/wizard_state_open.py:0
#: code:addons/addons/account/wizard/wizard_validate_account_move.py:0
#: code:addons/addons/base/res/partner/partner.py:0
-#: code:addons/addons/base_module_quality/wizard/quality_save_report.py:0
#: code:addons/addons/delivery/stock.py:0
#: code:addons/addons/hr_attendance/hr_attendance.py:0
#: code:addons/addons/odms/wizard/host_status.py:0
@@ -10788,14 +10390,6 @@ msgid "Day of the week (0:Monday): %(weekday)s"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pep8_test/pep8_test.py:0
-#, python-format
-msgid "\"\"\n"
-"PEP-8 Test , copyright of py files check, method can not call from loops\n"
-"\"\""
-msgstr ""
-
-#. module: base
#: model:res.country,name:base.ck
msgid "Cook Islands"
msgstr ""
@@ -10842,11 +10436,6 @@ msgid "Country"
msgstr ""
#. module: base
-#: wizard_view:base.module.import,import:0
-msgid "Module successfully imported !"
-msgstr ""
-
-#. module: base
#: field:ir.model.fields,complete_name:0
#: field:ir.ui.menu,complete_name:0
msgid "Complete Name"
@@ -10874,12 +10463,6 @@ msgid "IT sector"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/structure_test/structure_test.py:0
-#, python-format
-msgid "Result in %"
-msgstr ""
-
-#. module: base
#: view:ir.report.custom:0
msgid "Unsubscribe Report"
msgstr ""
@@ -10912,14 +10495,15 @@ msgid "Portrait"
msgstr ""
#. module: base
-#: field:ir.actions.server,subject:0
-#: wizard_field:res.partner.spam_send,init,subject:0
-#: field:res.request,name:0
-msgid "Subject"
+#: code:addons/addons/hr_timesheet/report/user_timesheet.py:0
+#: code:addons/addons/hr_timesheet/report/users_timesheet.py:0
+#, python-format
+msgid "Sat"
msgstr ""
#. module: base
#: code:addons/addons/account/wizard/wizard_journal.py:0
+#: code:addons/addons/multi_company_account/wizard/wizard_journal.py:0
#, python-format
msgid "This period is already closed !"
msgstr ""
@@ -10967,21 +10551,14 @@ msgid "Configuration Wizards"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/pylint_test/pylint_test.py:0
-#, python-format
-msgid "Unable to parse the result. Check the details."
-msgstr ""
-
-#. module: base
#: code:addons/addons/crm/crm.py:0
#, python-format
msgid "You must put a Partner eMail to use this action!"
msgstr ""
#. module: base
-#: code:addons/addons/odms/odms.py:0
-#, python-format
-msgid "Demo instance"
+#: field:workflow.activity,split_mode:0
+msgid "Split Mode"
msgstr ""
#. module: base
@@ -11118,12 +10695,6 @@ msgid "Turks and Caicos Islands"
msgstr ""
#. module: base
-#: code:addons/addons/odms/odms.py:0
-#, python-format
-msgid "Unable to delete an active subdomain"
-msgstr ""
-
-#. module: base
#: code:addons/addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0
#, python-format
msgid "Cannot delete Sheet(s) which are already confirmed !"
@@ -11148,12 +10719,6 @@ msgid "Function"
msgstr ""
#. module: base
-#: field:res.partner.event,som:0
-#: field:res.partner.som,name:0
-msgid "State of Mind"
-msgstr ""
-
-#. module: base
#: code:addons/addons/l10n_ch/wizard/dta_wizard.py:0
#, python-format
msgid "No address defined \n' \\n"
@@ -11234,12 +10799,6 @@ msgid "Create Object"
msgstr ""
#. module: base
-#: code:addons/addons/base_module_quality/base_module_quality.py:0
-#, python-format
-msgid "The module has to be installed before running this test."
-msgstr ""
-
-#. module: base
#: field:res.bank,bic:0
msgid "BIC/Swift code"
msgstr ""
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml
index f08f023206d..b1b747c7472 100644
--- a/bin/addons/base/ir/ir.xml
+++ b/bin/addons/base/ir/ir.xml
@@ -114,6 +114,8 @@
<field name="padding"/>
<field name="number_increment"/>
<field name="number_next"/>
+ <field name="weight" />
+ <field name="condition" colspan="4" />
<separator colspan="4" string="Legend (for prefix, suffix)"/>
<group col="8" colspan="4">
<group>
diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py
index 3524a4857a6..8bfc0740781 100644
--- a/bin/addons/base/ir/ir_actions.py
+++ b/bin/addons/base/ir/ir_actions.py
@@ -127,6 +127,7 @@ class report_xml(osv.osv):
('html', 'html'),
('raw', 'raw'),
('sxw', 'sxw'),
+ ('txt', 'txt'),
('odt', 'odt'),
('html2html','HTML from HTML'),
('mako2html','HTML from HTML(Mako)'),
diff --git a/bin/addons/base/ir/ir_attachment.py b/bin/addons/base/ir/ir_attachment.py
index 554110b3880..89d4bbd49dd 100644
--- a/bin/addons/base/ir/ir_attachment.py
+++ b/bin/addons/base/ir/ir_attachment.py
@@ -30,7 +30,7 @@ class ir_attachment(osv.osv):
ima = self.pool.get('ir.model.access')
if isinstance(ids, (int, long)):
ids = [ids]
- cr.execute('select distinct res_model from ir_attachment where id in ('+','.join(map(str, ids))+')')
+ cr.execute('select distinct res_model from ir_attachment where id = ANY (%s)', (ids,))
for obj in cr.fetchall():
if obj[0]:
ima.check(cr, uid, obj[0], mode, context=context)
diff --git a/bin/addons/base/ir/ir_cron.py b/bin/addons/base/ir/ir_cron.py
index f86577889e4..78f3b97ddaf 100644
--- a/bin/addons/base/ir/ir_cron.py
+++ b/bin/addons/base/ir/ir_cron.py
@@ -25,7 +25,7 @@ import time
import netsvc
import tools
import pooler
-from osv import fields,osv
+from osv import fields, osv
def str2tuple(s):
return eval('tuple(%s)' % s)
@@ -76,7 +76,7 @@ class ir_cron(osv.osv, netsvc.Agent):
return False
return True
- _constraints= [
+ _constraints = [
(_check_args, 'Invalid arguments', ['args']),
]
@@ -92,11 +92,11 @@ class ir_cron(osv.osv, netsvc.Agent):
self._logger.notifyChannel('timers', netsvc.LOG_ERROR, tools.exception_to_unicode(e))
- def _poolJobs(self, db_name, check=False):
+ def _poolJobs(self, db_name, check=False):
try:
db, pool = pooler.get_db_and_pool(db_name)
except:
- return False
+ return False
try:
cr = db.cursor()
if not pool._init:
@@ -115,7 +115,7 @@ class ir_cron(osv.osv, netsvc.Agent):
if numbercall:
nextcall += _intervalTypes[job['interval_type']](job['interval_number'])
ok = True
- addsql=''
+ addsql = ''
if not numbercall:
addsql = ', active=False'
cr.execute("update ir_cron set nextcall=%s, numbercall=%s"+addsql+" where id=%s", (nextcall.strftime('%Y-%m-%d %H:%M:%S'), numbercall, job['id']))
@@ -124,13 +124,18 @@ class ir_cron(osv.osv, netsvc.Agent):
cr.execute('select min(nextcall) as min_next_call from ir_cron where numbercall<>0 and active and nextcall>=now()')
next_call = cr.dictfetchone()['min_next_call']
- if next_call:
+ if next_call:
next_call = time.mktime(time.strptime(next_call, '%Y-%m-%d %H:%M:%S'))
else:
next_call = int(time.time()) + 3600 # if do not find active cron job from database, it will run again after 1 day
if not check:
self.setAlarm(self._poolJobs, next_call, db_name, db_name)
+
+ except Exception, ex:
+ logger = netsvc.Logger()
+ logger.notifyChannel('cron', netsvc.LOG_WARNING,
+ 'Exception in cron:'+str(ex))
finally:
cr.commit()
diff --git a/bin/addons/base/ir/ir_sequence.py b/bin/addons/base/ir/ir_sequence.py
index aa1a498d66b..8f6eb8d8dcd 100644
--- a/bin/addons/base/ir/ir_sequence.py
+++ b/bin/addons/base/ir/ir_sequence.py
@@ -21,6 +21,7 @@
import time
from osv import fields,osv
+from tools.safe_eval import safe_eval
import pooler
class ir_sequence_type(osv.osv):
@@ -46,12 +47,15 @@ class ir_sequence(osv.osv):
'number_next': fields.integer('Next Number', required=True),
'number_increment': fields.integer('Increment Number', required=True),
'padding' : fields.integer('Number padding', required=True),
+ 'condition': fields.char('Condition', size=250, help="If set, sequence will only be used in case this python expression matches, and will precede other sequences."),
+ 'weight': fields.integer('Weight',required=True, help="If two sequences match, the highest weight will be used.")
}
_defaults = {
'active': lambda *a: True,
'number_increment': lambda *a: 1,
'number_next': lambda *a: 1,
'padding' : lambda *a : 0,
+ 'weight' : lambda *a: 10,
}
def _process(self, s):
@@ -70,10 +74,29 @@ class ir_sequence(osv.osv):
}
def get_id(self, cr, uid, sequence_id, test='id=%s', context=None):
+ if not context:
+ context = {}
try:
- cr.execute('SELECT id, number_next, prefix, suffix, padding FROM ir_sequence WHERE '+test+' AND active=%s FOR UPDATE', (sequence_id, True))
- res = cr.dictfetchone()
- if res:
+ cr.execute('SELECT id, number_next, prefix, suffix, padding, condition \
+ FROM ir_sequence \
+ WHERE '+test+' AND active=%s ORDER BY weight DESC, length(COALESCE(condition,\'\')) DESC \
+ FOR UPDATE', (sequence_id, True))
+ for res in cr.dictfetchall():
+ if res['condition']:
+ print "ir_seq: %s has condition:" %res['id'], res['condition'],
+ try:
+ bo = safe_eval(res['condition'],context)
+ if not bo:
+ print "not matched"
+ continue
+ except Exception,e:
+ # it would be normal to have exceptions, because
+ # the domain may contain errors
+ print "Exception.\ne:",e
+ print "Context:", context
+ continue
+ print "Matched!"
+
cr.execute('UPDATE ir_sequence SET number_next=number_next+number_increment WHERE id=%s AND active=%s', (res['id'], True))
if res['number_next']:
return self._process(res['prefix']) + '%%0%sd' % res['padding'] % res['number_next'] + self._process(res['suffix'])
@@ -83,8 +106,8 @@ class ir_sequence(osv.osv):
cr.commit()
return False
- def get(self, cr, uid, code):
- return self.get_id(cr, uid, code, test='code=%s')
+ def get(self, cr, uid, code, context = None):
+ return self.get_id(cr, uid, code, test='code=%s',context=context)
ir_sequence()
diff --git a/bin/addons/base/ir/ir_values.py b/bin/addons/base/ir/ir_values.py
index 64196007fd2..355a1ac01d1 100644
--- a/bin/addons/base/ir/ir_values.py
+++ b/bin/addons/base/ir/ir_values.py
@@ -249,8 +249,7 @@ class ir_values(osv.osv):
if r[2].has_key('groups_id'):
groups = r[2]['groups_id']
if len(groups) > 0:
- group_ids = ','.join([ str(x) for x in r[2]['groups_id']])
- cr.execute("select count(*) from res_groups_users_rel where gid in (%s) and uid='%s'" % (group_ids, uid))
+ cr.execute("SELECT count(*) FROM res_groups_users_rel WHERE gid = ANY(%s) AND uid=%s",(groups, uid))
gr_ids = cr.fetchall()
if not gr_ids[0][0] > 0:
res2.remove(r)
diff --git a/bin/addons/base/ir/workflow/print_instance.py b/bin/addons/base/ir/workflow/print_instance.py
index e70be5bebbe..659c6b3d2ff 100644
--- a/bin/addons/base/ir/workflow/print_instance.py
+++ b/bin/addons/base/ir/workflow/print_instance.py
@@ -81,7 +81,10 @@ def graph_get(cr, graph, wkf_id, nested=False, workitem={}):
start = cr.fetchone()[0]
cr.execute("select 'subflow.'||name,id from wkf_activity where flow_stop=True and wkf_id=%s", (wkf_id,))
stop = cr.fetchall()
- stop = (stop[0][1], dict(stop))
+ if (stop):
+ stop = (stop[0][1], dict(stop))
+ else:
+ stop = ("stop",{})
return ((start,{}),stop)
@@ -143,7 +146,8 @@ showpage'''
else:
inst_id = inst_id[0]
graph = pydot.Dot(fontsize='16', label="""\\\n\\nWorkflow: %s\\n OSV: %s""" % (wkfinfo['name'],wkfinfo['osv']),
- size='10.7, 7.3', center='1', ratio='auto', rotate='90', rankdir='LR'
+ size='7.3, 10.1', center='1', ratio='auto', rotate='0', rankdir='TB',
+ ordering='out'
)
graph_instance_get(cr, graph, inst_id, data.get('nested', False))
ps_string = graph.create(prog='dot', format='ps')
diff --git a/bin/addons/base/module/report/ir_module_reference.rml b/bin/addons/base/module/report/ir_module_reference.rml
index 1e09766e3e6..6f428d079c6 100644
--- a/bin/addons/base/module/report/ir_module_reference.rml
+++ b/bin/addons/base/module/report/ir_module_reference.rml
@@ -233,6 +233,12 @@
<para style="terp_tblheader_Details">Object: [[ object.model ]] [[ objdoc(object.model) ]]</para>
</td>
</tr>
+ <tr>
+ <td>
+ <para style="terp_default_9">[[ repeatIn(objdoc2(object.model), 'sline') ]]</para>
+ <para style="terp_default_9"> [[ sline ]] </para>
+ </td>
+ </tr>
</blockTable>
<section>
<para style="terp_default_1">
diff --git a/bin/addons/base/module/report/ir_module_reference_print.py b/bin/addons/base/module/report/ir_module_reference_print.py
index ff1fee02955..ac90ddd833f 100644
--- a/bin/addons/base/module/report/ir_module_reference_print.py
+++ b/bin/addons/base/module/report/ir_module_reference_print.py
@@ -29,11 +29,38 @@ class ir_module_reference_print(report_sxw.rml_parse):
'time': time,
'findobj': self._object_find,
'objdoc': self._object_doc,
+ 'objdoc2': self._object_doc2,
'findflds': self._fields_find,
})
def _object_doc(self, obj):
modobj = self.pool.get(obj)
- return modobj.__doc__
+ strdocs= modobj.__doc__
+ if not strdocs:
+ return None
+ else:
+ strdocs=strdocs.strip().splitlines(True)
+ res = ''
+ for stre in strdocs:
+ if not stre or stre.isspace():
+ break
+ res += stre
+ return res
+
+ def _object_doc2(self, obj):
+ modobj = self.pool.get(obj)
+ strdocs= modobj.__doc__
+ if not strdocs:
+ return None
+ else:
+ strdocs=strdocs.strip().splitlines(True)
+ res = []
+ fou = False
+ for stre in strdocs:
+ if fou:
+ res.append(stre.strip())
+ elif not stre or stre.isspace():
+ fou = True
+ return res
def _object_find(self, module):
ids2 = self.pool.get('ir.model.data').search(self.cr, self.uid, [('module','=',module), ('model','=','ir.model')])
diff --git a/bin/addons/base/module/wizard/wizard_export_lang.py b/bin/addons/base/module/wizard/wizard_export_lang.py
index 41ebbca64cb..d0f16680413 100644
--- a/bin/addons/base/module/wizard/wizard_export_lang.py
+++ b/bin/addons/base/module/wizard/wizard_export_lang.py
@@ -79,7 +79,8 @@ class wizard_export_lang(osv.osv_memory):
('get','get'), # get the file
) ),
}
- _defaults = { 'state': lambda *a: 'choose',
+ _defaults = { 'state': lambda *a: 'choose',
+ 'name': lambda *a: 'lang.tar.gz'
}
wizard_export_lang()
diff --git a/bin/addons/base/res/country_view.xml b/bin/addons/base/res/country_view.xml
index a1852bffd62..81459ff8860 100644
--- a/bin/addons/base/res/country_view.xml
+++ b/bin/addons/base/res/country_view.xml
@@ -71,7 +71,7 @@
</record>
<record id="action_country_state" model="ir.actions.act_window">
- <field name="name">States</field>
+ <field name="name">Fed. States</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.country.state</field>
<field name="view_type">form</field>
diff --git a/bin/addons/base/res/ir_property.py b/bin/addons/base/res/ir_property.py
index 952c32930cf..e14e365dce3 100644
--- a/bin/addons/base/res/ir_property.py
+++ b/bin/addons/base/res/ir_property.py
@@ -58,7 +58,7 @@ class ir_property(osv.osv):
}
def unlink(self, cr, uid, ids, context={}):
if ids:
- cr.execute('delete from ir_model_fields where id in (select fields_id from ir_property where (fields_id is not null) and (id in ('+','.join(map(str, ids))+')))')
+ cr.execute('DELETE FROM ir_model_fields WHERE id IN (SELECT fields_id FROM ir_property WHERE (fields_id IS NOT NULL) AND (id = ANY (%s)))', (ids,))
res = super(ir_property, self).unlink(cr, uid, ids, context)
return res
diff --git a/bin/addons/base/res/res_company.py b/bin/addons/base/res/res_company.py
index 1a0b4fe9a4a..48d874e5cbd 100644
--- a/bin/addons/base/res/res_company.py
+++ b/bin/addons/base/res/res_company.py
@@ -108,11 +108,11 @@ class res_company(osv.osv):
<pageGraphics>
<fill color="black"/>
<stroke color="black"/>
- <setFont name="Helvetica" size="8"/>
+ <setFont name="DejaVu Sans" size="8"/>
<drawString x="1.3cm" y="28.3cm"> [[ formatLang(time.strftime("%Y-%m-%d"), date=True) ]] [[ time.strftime("%H:%M") ]]</drawString>
- <setFont name="Helvetica-Bold" size="10"/>
+ <setFont name="DejaVu Sans Bold" size="10"/>
<drawString x="9.8cm" y="28.3cm">[[ company.partner_id.name ]]</drawString>
- <setFont name="Helvetica" size="8"/>
+ <setFont name="DejaVu Sans" size="8"/>
<drawRightString x="19.7cm" y="28.3cm"><pageNumber/> / </drawRightString>
<drawString x="19.8cm" y="28.3cm"><pageCount/></drawString>
<stroke color="#000000"/>
@@ -131,7 +131,7 @@ class res_company(osv.osv):
<pageGraphics>
<!-- You Logo - Change X,Y,Width and Height -->
<image x="1.3cm" y="27.6cm" height="40.0" >[[company.logo]]</image>
- <setFont name="Helvetica" size="8"/>
+ <setFont name="DejaVu Sans" size="8"/>
<fill color="black"/>
<stroke color="black"/>
<lines>1.3cm 27.7cm 20cm 27.7cm</lines>
diff --git a/bin/addons/base/res/res_user.py b/bin/addons/base/res/res_user.py
index 5b610096012..b14daa2b553 100644
--- a/bin/addons/base/res/res_user.py
+++ b/bin/addons/base/res/res_user.py
@@ -71,6 +71,14 @@ class groups(osv.osv):
aid.write({'groups_id': [(4, gid)]})
return gid
+ def copy(self, cr, uid, id, default={}, context={}, done_list=[], local=False):
+ group = self.browse(cr, uid, id, context=context)
+ default = default.copy()
+ if not 'name' in default:
+ default['name'] = group['name']
+ default['name'] = default['name'] + _(' (copy)')
+ return super(groups, self).copy(cr, uid, id, default, context=context)
+
groups()
diff --git a/bin/addons/base/rng/view.rng b/bin/addons/base/rng/view.rng
index 41f10afa690..49e525a59c9 100644
--- a/bin/addons/base/rng/view.rng
+++ b/bin/addons/base/rng/view.rng
@@ -12,6 +12,7 @@
<rng:choice>
<rng:ref name="notebook"/>
<rng:ref name="field"/>
+ <rng:ref name="shortcut"/>
<rng:ref name="group"/>
<rng:ref name="button"/>
<rng:ref name="hpaned" />
@@ -44,6 +45,7 @@
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
+ <rng:ref name="shortcut"/>
<rng:ref name="separator"/>
<rng:ref name="tree"/>
<rng:ref name="group"/>
@@ -184,6 +186,7 @@
<rng:element name="properties"><rng:empty/></rng:element>
<rng:ref name="label" />
<rng:ref name="field"/>
+ <rng:ref name="shortcut"/>
<rng:ref name="group"/>
<rng:ref name="separator"/>
<rng:ref name="button"/>
@@ -222,6 +225,7 @@
<rng:ref name="separator"/>
<rng:ref name="button"/>
<rng:ref name="field"/>
+ <rng:ref name="shortcut"/>
<rng:ref name="label" />
<rng:ref name="group" />
<rng:ref name="filter"/>
@@ -239,6 +243,7 @@
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="any"/>
+ <rng:ref name="button"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
@@ -351,6 +356,7 @@
<rng:ref name="separator"/>
<rng:ref name="button"/>
<rng:ref name="field"/>
+ <rng:ref name="shortcut"/>
<rng:ref name="label" />
<rng:ref name="group" />
<rng:ref name="filter"/>
@@ -473,6 +479,15 @@
</rng:element>
</rng:define>
+ <rng:define name="shortcut">
+ <rng:element name="shortcut">
+ <rng:optional><rng:attribute name="attrs"/></rng:optional>
+ <rng:optional><rng:attribute name="name" /></rng:optional>
+ <rng:optional><rng:attribute name="key"/></rng:optional>
+ <rng:optional><rng:attribute name="goto" /></rng:optional>
+ </rng:element>
+ </rng:define>
+
<rng:start>
<rng:choice>
<rng:ref name="form" />