From 73297439ff4af6f78f42a4b4606bb144e158fbb2 Mon Sep 17 00:00:00 2001
From: Nhomar Hernandez
Date: Mon, 12 Nov 2012 00:42:05 -0430
Subject: [PATCH 001/164] [FIX] Improved message when you define a view with an
incorrect name in developing time
lp bug: https://launchpad.net/bugs/1077794 fixed
bzr revid: nhomar@gmail.com-20121112051205-a8uxa76xbwsn6jen
---
openerp/addons/base/ir/ir_ui_view.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py
index 2f2a610877d..ba681938f70 100644
--- a/openerp/addons/base/ir/ir_ui_view.py
+++ b/openerp/addons/base/ir/ir_ui_view.py
@@ -121,8 +121,10 @@ class view(osv.osv):
if no error occurred, else False.
"""
try:
- fvg = self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context)
- return fvg['arch']
+ fvg = self.pool.get(view.model) and self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context)
+ if not fvg:
+ _logger.exception("Your view definition is wrong, model = '%s' defined on view = '%s' doesn't exist " % (view.model,view.name) )
+ return fvg and fvg['arch'] or False
except:
_logger.exception("Can't render view %s for model: %s", view.xml_id, view.model)
return False
From 5445b5f616246f1174deb185d608b032f7cca3ae Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Thu, 13 Dec 2012 22:20:06 +0100
Subject: [PATCH 002/164] [FIX] l10n_it - default taxes for CoA wizard
bzr revid: lorenzo.battistini@agilebg.com-20121213212006-sa9kqysq13nxb3np
---
addons/l10n_it/data/account.tax.template.csv | 126 +++++++++----------
1 file changed, 63 insertions(+), 63 deletions(-)
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index 641f495dd72..fafcdb89bca 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -1,64 +1,64 @@
id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depend,type,account_collected_id:id,account_paid_id:id,type_tax_use,base_code_id:id,tax_code_id:id,ref_base_code_id:id,ref_tax_code_id:id,ref_base_sign,ref_tax_sign,price_include,base_sign,tax_sign
-21a,21a,l10n_it_chart_template_generic,Iva al 21% (debito),,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,,
-21b,21b,l10n_it_chart_template_generic,Iva al 21% (credito),,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,,,False,-1,-1
-20a,20a,l10n_it_chart_template_generic,Iva al 20% (debito),,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,,
-20b,20b,l10n_it_chart_template_generic,Iva al 20% (credito),,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,,,False,-1,-1
-10a,10a,l10n_it_chart_template_generic,Iva al 10% (debito),,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,,
-10b,10b,l10n_it_chart_template_generic,Iva al 10% (credito),,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,,,False,-1,-1
-10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,,,False,-1,-1
-10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),2,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,,,False,,
-10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),1,1,10AO,False,percent,,,purchase,,,,,,,False,,
-12a,12a,l10n_it_chart_template_generic,Iva 12% (debito),,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,,
-12b,12b,l10n_it_chart_template_generic,Iva 12% (credito),,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,,,False,-1,-1
-2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,,,False,-1,-1
-2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),2,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,,,False,,
-2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),1,0.9,2010,False,percent,,,purchase,,,,,,,False,,
-2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,,,False,-1,-1
-2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),2,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,,,False,,
-2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),1,0.85,2015,False,percent,,,purchase,,,,,,,False,,
-2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,,,False,-1,-1
-2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),2,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,,,False,,
-2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),1,0.6,2040,False,percent,,,purchase,,,,,,,False,,
-20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,,,False,-1,-1
-20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),2,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,,,False,,
-20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),1,1,20AO,False,percent,,,purchase,,,,,,,False,,
-20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,,,False,-1,-1
-20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),1,0.5,20I5,False,percent,,,purchase,,,,,,,False,,
-20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),2,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,,,False,,
-22a,22a,l10n_it_chart_template_generic,Iva 2% (debito),,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,,
-22b,22b,l10n_it_chart_template_generic,Iva 2% (credito),,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,,,False,-1,-1
-4a,4a,l10n_it_chart_template_generic,Iva 4% (debito),,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,,
-4b,4b,l10n_it_chart_template_generic,Iva 4% (credito),,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,,,False,-1,-1
-4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,,,False,-1,-1
-4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),2,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,,,False,,
-4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),1,1,4AO,False,percent,,,purchase,,,,,,,False,,
-10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,,,False,-1,-1
-10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),2,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,,,False,,
-10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),1,0.5,10I5,False,percent,,,purchase,,,,,,,False,,
-4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,,,False,-1,-1
-4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),2,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,,,False,,
-4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),1,0.5,4I5,False,percent,,,purchase,,,,,,,False,,
-00a,00a,l10n_it_chart_template_generic,Esente IVA (debito),,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
-00b,00b,l10n_it_chart_template_generic,Esente IVA (credito),,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
-21a INC,21a INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,,
-20a INC,20a INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,,
-10a INC,10a INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,,
-12a INC,12a INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,,
-22a INC,22a INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,,
-4a INC,4a INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,,
-00a INC,00a INC,l10n_it_chart_template_generic,Esente IVA (debito) INC,,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
-2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,,,False,-1,-1
-2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),2,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,,,False,,
-2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),1,0.9,2110,False,percent,,,purchase,,,,,,,False,,
-2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,,,False,-1,-1
-2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),2,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,,,False,,
-2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),1,0.85,2115,False,percent,,,purchase,,,,,,,False,,
-2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,,,False,-1,-1
-2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),2,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,,,False,,
-2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),1,0.6,2140,False,percent,,,purchase,,,,,,,False,,
-21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,,,False,-1,-1
-21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),2,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,,,False,,
-21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),1,1,21AO,False,percent,,,purchase,,,,,,,False,,
-21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1
-21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),1,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
-21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),2,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
+21a,21a,l10n_it_chart_template_generic,Iva al 21% (debito),1,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,,
+21b,21b,l10n_it_chart_template_generic,Iva al 21% (credito),2,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,,,False,-1,-1
+20a,20a,l10n_it_chart_template_generic,Iva al 20% (debito),3,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,,
+20b,20b,l10n_it_chart_template_generic,Iva al 20% (credito),4,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,,,False,-1,-1
+10a,10a,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,,
+10b,10b,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,,,False,-1,-1
+10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,7,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,,,False,-1,-1
+10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,,,False,,
+10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,,,False,,
+12a,12a,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,,
+12b,12b,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,,,False,-1,-1
+2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,10,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,,,False,-1,-1
+2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,,,False,,
+2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,,,False,,
+2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,11,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,,,False,-1,-1
+2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,,,False,,
+2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,,,False,,
+2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,12,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,,,False,-1,-1
+2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,,,False,,
+2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,,,False,,
+20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,13,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,,,False,-1,-1
+20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,,,False,,
+20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,,,False,,
+20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,,,False,-1,-1
+20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,,,False,,
+20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,,,False,,
+22a,22a,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,,
+22b,22b,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,,,False,-1,-1
+4a,4a,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,,
+4b,4b,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,,,False,-1,-1
+4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,,,False,-1,-1
+4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,,,False,,
+4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,,,False,,
+10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,20,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,,,False,-1,-1
+10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,,,False,,
+10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,,,False,,
+4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,,,False,-1,-1
+4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,,,False,,
+4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,,,False,,
+00a,00a,l10n_it_chart_template_generic,Esente IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
+00b,00b,l10n_it_chart_template_generic,Esente IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
+21a INC,21a INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,,
+20a INC,20a INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,,
+10a INC,10a INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,,
+12a INC,12a INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,,
+22a INC,22a INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,,
+4a INC,4a INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,,
+00a INC,00a INC,l10n_it_chart_template_generic,Esente IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
+2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,,,False,-1,-1
+2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,,,False,,
+2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,,,False,,
+2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,32,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,,,False,-1,-1
+2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,,,False,,
+2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,,,False,,
+2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,33,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,,,False,-1,-1
+2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,,,False,,
+2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,,,False,,
+21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,34,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,,,False,-1,-1
+21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,,,False,,
+21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,,,False,,
+21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1
+21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
+21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
From 9986fc5a30252be219ee12c7b0dd497319458d31 Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Thu, 13 Dec 2012 22:32:41 +0100
Subject: [PATCH 003/164] [FIX] l10n_it - taxes renaming 21a to 21v (vendite)
and 21b to 21a (acquisti) and so on
bzr revid: lorenzo.battistini@agilebg.com-20121213213241-b4rq6cbyega89hz0
---
addons/l10n_it/data/account.tax.template.csv | 98 ++++++++++----------
1 file changed, 49 insertions(+), 49 deletions(-)
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index fafcdb89bca..c557a32cb66 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -1,64 +1,64 @@
id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depend,type,account_collected_id:id,account_paid_id:id,type_tax_use,base_code_id:id,tax_code_id:id,ref_base_code_id:id,ref_tax_code_id:id,ref_base_sign,ref_tax_sign,price_include,base_sign,tax_sign
-21a,21a,l10n_it_chart_template_generic,Iva al 21% (debito),1,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,,
-21b,21b,l10n_it_chart_template_generic,Iva al 21% (credito),2,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,,,False,-1,-1
-20a,20a,l10n_it_chart_template_generic,Iva al 20% (debito),3,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,,
-20b,20b,l10n_it_chart_template_generic,Iva al 20% (credito),4,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,,,False,-1,-1
-10a,10a,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,,
-10b,10b,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,,,False,-1,-1
+21v,21v,l10n_it_chart_template_generic,Iva al 21% (debito),1,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,,
+21a,21a,l10n_it_chart_template_generic,Iva al 21% (credito),2,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,,,False,-1,-1
+20v,20v,l10n_it_chart_template_generic,Iva al 20% (debito),3,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,,
+20a,20a,l10n_it_chart_template_generic,Iva al 20% (credito),4,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,,,False,-1,-1
+10v,10v,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,,
+10a,10a,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,,,False,-1,-1
10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,7,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,,,False,-1,-1
-10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,,,False,,
-10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,,,False,,
-12a,12a,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,,
-12b,12b,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,,,False,-1,-1
+10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,,,False,,
+10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,,,False,,
+12v,12v,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,,
+12a,12a,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,,,False,-1,-1
2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,10,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,,,False,-1,-1
-2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,,,False,,
-2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,,,False,,
+2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,,,False,,
+2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,,,False,,
2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,11,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,,,False,-1,-1
-2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,,,False,,
-2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,,,False,,
+2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,,,False,,
+2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,,,False,,
2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,12,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,,,False,-1,-1
-2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,,,False,,
-2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,,,False,,
+2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,,,False,,
+2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,,,False,,
20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,13,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,,,False,-1,-1
-20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,,,False,,
-20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,,,False,,
+20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,,,False,,
+20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,,,False,,
20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,,,False,-1,-1
-20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,,,False,,
-20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,,,False,,
-22a,22a,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,,
-22b,22b,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,,,False,-1,-1
-4a,4a,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,,
-4b,4b,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,,,False,-1,-1
+20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,,,False,,
+20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,,,False,,
+22v,22v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,,
+22a,22a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,,,False,-1,-1
+4v,4v,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,,
+4a,4a,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,,,False,-1,-1
4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,,,False,-1,-1
-4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,,,False,,
-4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,,,False,,
+4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,,,False,,
+4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,,,False,,
10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,20,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,,,False,-1,-1
-10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,,,False,,
-10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,,,False,,
+10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,,,False,,
+10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,,,False,,
4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,,,False,-1,-1
-4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,,,False,,
-4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,,,False,,
-00a,00a,l10n_it_chart_template_generic,Esente IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
-00b,00b,l10n_it_chart_template_generic,Esente IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
-21a INC,21a INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,,
-20a INC,20a INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,,
-10a INC,10a INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,,
-12a INC,12a INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,,
-22a INC,22a INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,,
-4a INC,4a INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,,
-00a INC,00a INC,l10n_it_chart_template_generic,Esente IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
+4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,,,False,,
+4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,,,False,,
+00v,00v,l10n_it_chart_template_generic,Esente IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
+00a,00a,l10n_it_chart_template_generic,Esente IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
+21v INC,21v INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,,
+20v INC,20v INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,,
+10v INC,10v INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,,
+12v INC,12v INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,,
+22v INC,22v INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,,
+4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,,
+00v INC,00v INC,l10n_it_chart_template_generic,Esente IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,,,False,-1,-1
-2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,,,False,,
-2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,,,False,,
+2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,,,False,,
+2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,,,False,,
2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,32,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,,,False,-1,-1
-2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,,,False,,
-2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,,,False,,
+2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,,,False,,
+2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,,,False,,
2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,33,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,,,False,-1,-1
-2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,,,False,,
-2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,,,False,,
+2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,,,False,,
+2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,,,False,,
21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,34,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,,,False,-1,-1
-21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,,,False,,
-21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,,,False,,
+21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,,,False,,
+21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,,,False,,
21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1
-21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
-21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
+21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
+21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
From 47d68ea6211e75046e8ea1ff1f7a3ce7e6474b28 Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Mon, 17 Dec 2012 09:29:04 +0100
Subject: [PATCH 004/164] [ADD] taxes: "Fuori campo iva" e "Imponibile Escluso
Art.15"
bzr revid: lorenzo.battistini@agilebg.com-20121217082904-u01yjop6fvajvs6t
---
addons/l10n_it/data/account.tax.code.template.csv | 12 ++++++++----
addons/l10n_it/data/account.tax.template.csv | 8 +++++---
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/addons/l10n_it/data/account.tax.code.template.csv b/addons/l10n_it/data/account.tax.code.template.csv
index d6d6667f43b..18286632700 100644
--- a/addons/l10n_it/data/account.tax.code.template.csv
+++ b/addons/l10n_it/data/account.tax.code.template.csv
@@ -1,9 +1,11 @@
code,id,name,parent_id:id
,vat_code_chart_root,Tassazione,
IVC,template_ivacode_pagata,IVA a credito,vat_code_chart_root
-IVC0,template_ivacode_pagata_0,Esente IVA (credito),template_ivacode_pagata
+IVC0,template_ivacode_pagata_0,Fuori Campo IVA (credito),template_ivacode_pagata
IVCI,template_impcode_pagata,IVA a credito (imponibile),vat_code_chart_root
-IVC0I,template_impcode_pagata_0,Esente IVA a credito (imponibile),template_impcode_pagata
+IVC0I,template_impcode_pagata_0,Fuori Campo IVA (credito) (imponibile),template_impcode_pagata
+IVCart15,template_ivacode_pagata_art15,Escluso Art.15 (credito),template_ivacode_pagata
+IVCart15I,template_impcode_pagata_art15,Escluso Art.15. (credito) (imponibile),template_impcode_pagata
IVC10,template_ivacode_pagata_10,IVA a credito 10%,template_ivacode_pagata
IVC10I,template_impcode_pagata_10,IVA a credito 10% (imponibile),template_impcode_pagata
IVC10ind,template_ivacode_pagata_10ind,IVA a credito 10% indetraibile,template_ivacode_pagata
@@ -35,9 +37,11 @@ IVC12I,template_impcode_pagata_12,IVA a credito 12% (imponibile),template_impco
IVC2,template_ivacode_pagata_2,IVA a credito 2%,template_ivacode_pagata
IVC2I,template_impcode_pagata_2,IVA a credito 2% (imponibile),template_impcode_pagata
IVD,template_ivacode_riscossa,IVA a debito,vat_code_chart_root
-IVD0,template_ivacode_riscossa_0,Esente IVA (debito),template_ivacode_riscossa
+IVD0,template_ivacode_riscossa_0,Fuori Campo IVA (debito),template_ivacode_riscossa
IVDI,template_impcode_riscossa,IVA a debito (imponibile),vat_code_chart_root
-IVD0I,template_impcode_riscossa_0,Esente IVA a debito (imponibile),template_impcode_riscossa
+IVD0I,template_impcode_riscossa_0,Fuori Campo IVA (debito) (imponibile),template_impcode_riscossa
+IVDart15,template_ivacode_riscossa_art15,Escluso Art.15 (debito),template_ivacode_riscossa
+IVDart15I,template_impcode_riscossa_art15,Escluso Art.15 (debito) (imponibile),template_impcode_riscossa
IVD10,template_ivacode_riscossa_10,IVA a debito 10%,template_ivacode_riscossa
IVD10I,template_impcode_riscossa_10,IVA a debito 10% (imponibile),template_impcode_riscossa
IVD20,template_ivacode_riscossa_20,IVA a debito 20%,template_ivacode_riscossa
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index c557a32cb66..25d177efc1b 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -38,15 +38,17 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,,,False,-1,-1
4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,,,False,,
4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,,,False,,
-00v,00v,l10n_it_chart_template_generic,Esente IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
-00a,00a,l10n_it_chart_template_generic,Esente IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
+00v,00v,l10n_it_chart_template_generic,Fuori Campo IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
+00a,00a,l10n_it_chart_template_generic,Fuori Campo IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
+00art15v,00art15v,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,-1,-1,False,,
+00art15a,00art15a,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_art15,template_ivacode_pagata_art15,template_impcode_pagata_art15,template_ivacode_pagata_art15,,,False,-1,-1
21v INC,21v INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,,
20v INC,20v INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,,
10v INC,10v INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,,
12v INC,12v INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,,
22v INC,22v INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,,
4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,,
-00v INC,00v INC,l10n_it_chart_template_generic,Esente IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
+00v INC,00v INC,l10n_it_chart_template_generic,Fuori Campo IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,,,False,-1,-1
2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,,,False,,
2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,,,False,,
From 9dad413c61dd546624bc8d920f114d87681213f0 Mon Sep 17 00:00:00 2001
From: Sebastien LANGE
Date: Wed, 26 Dec 2012 17:07:40 +0100
Subject: [PATCH 005/164] [FIX] Fix partial picking for no send goods not
available
bzr revid: sebastien.lange@syleam.fr-20121226160740-e1s6lxp41hogzcgk
---
addons/stock/wizard/stock_partial_picking.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index 47599d5f99e..5f9f09e0074 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -144,7 +144,7 @@ class stock_partial_picking(osv.osv_memory):
def _partial_move_for(self, cr, uid, move):
partial_move = {
'product_id' : move.product_id.id,
- 'quantity' : move.product_qty if move.state in ('assigned','draft','confirmed') else 0,
+ 'quantity' : move.product_qty if move.state == 'assigned' else 0,
'product_uom' : move.product_uom.id,
'prodlot_id' : move.prodlot_id.id,
'move_id' : move.id,
From 554bd002e2126dcbb3199c74fd9fc1df609643d8 Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Mon, 7 Jan 2013 16:06:43 +0100
Subject: [PATCH 006/164] [FIX] l10n_it - tax codes not filled by invoices
lp bug: https://launchpad.net/bugs/1095842 fixed
bzr revid: lorenzo.battistini@agilebg.com-20130107150643-q1f0citicb392zoy
---
addons/l10n_it/data/account.tax.template.csv | 130 +++++++++----------
1 file changed, 65 insertions(+), 65 deletions(-)
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index 25d177efc1b..f64b4974fca 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -1,66 +1,66 @@
id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depend,type,account_collected_id:id,account_paid_id:id,type_tax_use,base_code_id:id,tax_code_id:id,ref_base_code_id:id,ref_tax_code_id:id,ref_base_sign,ref_tax_sign,price_include,base_sign,tax_sign
-21v,21v,l10n_it_chart_template_generic,Iva al 21% (debito),1,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,,
-21a,21a,l10n_it_chart_template_generic,Iva al 21% (credito),2,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,,,False,-1,-1
-20v,20v,l10n_it_chart_template_generic,Iva al 20% (debito),3,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,,
-20a,20a,l10n_it_chart_template_generic,Iva al 20% (credito),4,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,,,False,-1,-1
-10v,10v,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,,
-10a,10a,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,,,False,-1,-1
-10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,7,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,,,False,-1,-1
-10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,,,False,,
-10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,,,False,,
-12v,12v,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,,
-12a,12a,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,,,False,-1,-1
-2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,10,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,,,False,-1,-1
-2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,,,False,,
-2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,,,False,,
-2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,11,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,,,False,-1,-1
-2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,,,False,,
-2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,,,False,,
-2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,12,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,,,False,-1,-1
-2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,,,False,,
-2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,,,False,,
-20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,13,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,,,False,-1,-1
-20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,,,False,,
-20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,,,False,,
-20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,,,False,-1,-1
-20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,,,False,,
-20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,,,False,,
-22v,22v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,,
-22a,22a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,,,False,-1,-1
-4v,4v,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,,
-4a,4a,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,,,False,-1,-1
-4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,,,False,-1,-1
-4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,,,False,,
-4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,,,False,,
-10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,20,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,,,False,-1,-1
-10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,,,False,,
-10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,,,False,,
-4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,,,False,-1,-1
-4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,,,False,,
-4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,,,False,,
-00v,00v,l10n_it_chart_template_generic,Fuori Campo IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,,
-00a,00a,l10n_it_chart_template_generic,Fuori Campo IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,,,False,-1,-1
-00art15v,00art15v,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,-1,-1,False,,
-00art15a,00art15a,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_art15,template_ivacode_pagata_art15,template_impcode_pagata_art15,template_ivacode_pagata_art15,,,False,-1,-1
-21v INC,21v INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,,
-20v INC,20v INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,,
-10v INC,10v INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,,
-12v INC,12v INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,,
-22v INC,22v INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,,
-4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,,
-00v INC,00v INC,l10n_it_chart_template_generic,Fuori Campo IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,,
-2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,,,False,-1,-1
-2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,,,False,,
-2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,,,False,,
-2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,32,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,,,False,-1,-1
-2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,,,False,,
-2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,,,False,,
-2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,33,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,,,False,-1,-1
-2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,,,False,,
-2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,,,False,,
-21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,34,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,,,False,-1,-1
-21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,,,False,,
-21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,,,False,,
-21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1
-21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
-21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
+21v,21v,l10n_it_chart_template_generic,Iva al 21% (debito),1,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,1,1
+21a,21a,l10n_it_chart_template_generic,Iva al 21% (credito),2,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,1,1,False,-1,-1
+20v,20v,l10n_it_chart_template_generic,Iva al 20% (debito),3,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,1,1
+20a,20a,l10n_it_chart_template_generic,Iva al 20% (credito),4,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,1,1,False,-1,-1
+10v,10v,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,1,1
+10a,10a,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,1,1,False,-1,-1
+10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,7,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,1,1,False,-1,-1
+10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,1,1,False,1,1
+10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,1,1,False,1,1
+12v,12v,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,1,1
+12a,12a,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,1,1,False,-1,-1
+2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,10,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,1,1,False,-1,-1
+2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,1,1,False,1,1
+2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,1,1,False,1,1
+2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,11,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,1,1,False,-1,-1
+2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,1,1,False,1,1
+2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,1,1,False,1,1
+2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,12,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,1,1,False,-1,-1
+2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,1,1,False,1,1
+2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,1,1,False,1,1
+20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,13,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,1,1,False,-1,-1
+20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,1,1,False,1,1
+20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,1,1,False,1,1
+20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,1,1,False,-1,-1
+20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,1,1,False,1,1
+20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,1,1,False,1,1
+22v,22v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,1,1
+22a,22a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,1,1,False,-1,-1
+4v,4v,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,1,1
+4a,4a,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,1,1,False,-1,-1
+4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,1,1,False,-1,-1
+4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,1,1,False,1,1
+4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,1,1,False,1,1
+10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,20,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,1,1,False,-1,-1
+10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,1,1,False,1,1
+10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,1,1,False,1,1
+4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,1,1,False,-1,-1
+4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,1,1,False,1,1
+4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,1,1,False,1,1
+00v,00v,l10n_it_chart_template_generic,Fuori Campo IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,1,1
+00a,00a,l10n_it_chart_template_generic,Fuori Campo IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,1,1,False,-1,-1
+00art15v,00art15v,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,-1,-1,False,1,1
+00art15a,00art15a,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_art15,template_ivacode_pagata_art15,template_impcode_pagata_art15,template_ivacode_pagata_art15,1,1,False,-1,-1
+21v INC,21v INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,1,1
+20v INC,20v INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,1,1
+10v INC,10v INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,1,1
+12v INC,12v INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,1,1
+22v INC,22v INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,1,1
+4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,1,1
+00v INC,00v INC,l10n_it_chart_template_generic,Fuori Campo IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,1,1
+2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,1,1,False,-1,-1
+2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,1,1,False,1,1
+2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,1,1,False,1,1
+2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,32,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,1,1,False,-1,-1
+2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,1,1,False,1,1
+2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,1,1,False,1,1
+2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,33,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,1,1,False,-1,-1
+2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,1,1,False,1,1
+2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,1,1,False,1,1
+21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,34,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,1,1,False,-1,-1
+21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,1,1,False,1,1
+21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,1,1,False,1,1
+21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,1,1,False,-1,-1
+21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,1,1,False,1,1
+21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,1,1,False,1,1
From 25f1f3a01362710206b8c85f1dfb49bdb65c5849 Mon Sep 17 00:00:00 2001
From: Mohammed Shekha
Date: Wed, 16 Jan 2013 16:25:05 +0530
Subject: [PATCH 007/164] [FIX]Fixed two usability issue, regarding tax label
and order of stock.picking.
bzr revid: msh@openerp.com-20130116105505-lovjzq5z5uisxz2v
---
addons/account/account_view.xml | 2 +-
addons/stock/stock.py | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 5e072c3d258..26ef04f5d8e 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -890,7 +890,7 @@
-
+
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 7198c89e286..8b0388b15be 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -548,6 +548,7 @@ class stock_picking(osv.osv):
_name = "stock.picking"
_inherit = ['mail.thread']
_description = "Picking List"
+ _order = "id desc"
def _set_maximum_date(self, cr, uid, ids, name, value, arg, context=None):
""" Calculates planned date if it is greater than 'value'.
From d53344651fdf9a4e3ab08b8bbcd8674a3e986711 Mon Sep 17 00:00:00 2001
From: "Pinakin Nayi (OpenERP)"
Date: Fri, 25 Jan 2013 11:36:24 +0530
Subject: [PATCH 008/164] [FIX]procurement: in procurement exceptions group by
reason it gives error
bzr revid: pna@tinyerp.com-20130125060624-s80gwrd5b15w12v5
---
addons/procurement/procurement_view.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml
index a59838a3a01..7e9c471ba09 100644
--- a/addons/procurement/procurement_view.xml
+++ b/addons/procurement/procurement_view.xml
@@ -18,6 +18,7 @@
+
From 5675d81f3453fa5e18e5f064ab10c349ca7c1761 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Mon, 4 Feb 2013 15:28:18 +0530
Subject: [PATCH 009/164] [FIX]Encrypted password value on change password
wizard
bzr revid: dhr@tinyerp.com-20130204095818-5vw9mve7rd98rxos
---
openerp/addons/base/res/wizard/change_password_wizard_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/addons/base/res/wizard/change_password_wizard_view.xml b/openerp/addons/base/res/wizard/change_password_wizard_view.xml
index c5bd5c96901..cc190c1525a 100644
--- a/openerp/addons/base/res/wizard/change_password_wizard_view.xml
+++ b/openerp/addons/base/res/wizard/change_password_wizard_view.xml
@@ -35,7 +35,7 @@
-
+
From d21d70753f12cec4ea33357855aa93625d1cc205 Mon Sep 17 00:00:00 2001
From: Xavier Morel
Date: Tue, 12 Feb 2013 12:51:30 +0100
Subject: [PATCH 010/164] [IMP] remove redundancy between execute_cr and
exec_workflow_cr
bzr revid: xmo@openerp.com-20130212115130-j37zc7ipkdvs2dhg
---
openerp/osv/osv.py | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py
index 018976ac663..f85a710a337 100644
--- a/openerp/osv/osv.py
+++ b/openerp/osv/osv.py
@@ -188,11 +188,9 @@ class object_proxy(object):
return res
def exec_workflow_cr(self, cr, uid, obj, signal, *args):
- object = pooler.get_pool(cr.dbname).get(obj)
- if not object:
- raise except_osv('Object Error', 'Object %s doesn\'t exist' % str(obj))
res_id = args[0]
- return object._workflow_signal(cr, uid, [res_id], signal)[res_id]
+ return self.execute_cr(
+ cr, uid, obj, '_workflow_signal', [res_id], signal)[res_id]
@check
def exec_workflow(self, db, uid, obj, signal, *args):
From a030c9f2cf72c2f54d7199e3497bfa9d4ee868de Mon Sep 17 00:00:00 2001
From: Xavier Morel
Date: Tue, 12 Feb 2013 13:06:09 +0100
Subject: [PATCH 011/164] [IMP] no need for an explicit string conversion when
using %s
bzr revid: xmo@openerp.com-20130212120609-mfntrs7vm62fxpim
---
openerp/osv/osv.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py
index f85a710a337..1380da2dd46 100644
--- a/openerp/osv/osv.py
+++ b/openerp/osv/osv.py
@@ -162,7 +162,7 @@ class object_proxy(object):
def execute_cr(self, cr, uid, obj, method, *args, **kw):
object = pooler.get_pool(cr.dbname).get(obj)
if not object:
- raise except_osv('Object Error', 'Object %s doesn\'t exist' % str(obj))
+ raise except_osv('Object Error', "Object %s doesn't exist" % obj)
return getattr(object, method)(cr, uid, *args, **kw)
def execute_kw(self, db, uid, obj, method, args, kw=None):
From 0118a9640e0463ec6fcf95684eb12a8e8ea45631 Mon Sep 17 00:00:00 2001
From: "Somesh Khare (OpenERP)"
Date: Wed, 13 Feb 2013 11:45:37 +0530
Subject: [PATCH 012/164] [FIX] project: Cumulative flow report shows create
button on the tree view which is of no use on analysis report(Case; ref
586007)
bzr revid: skh@tinyerp.com-20130213061537-eygstzahil29uf3a
---
addons/project/report/project_cumulative.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml
index c30c91fe6c0..17e059c8de7 100644
--- a/addons/project/report/project_cumulative.xml
+++ b/addons/project/report/project_cumulative.xml
@@ -6,7 +6,7 @@
project.task.history.cumulative.treeproject.task.history.cumulative
-
+
From dc2f67510c59553b76e66e3780e3d3021978fe09 Mon Sep 17 00:00:00 2001
From: "Somesh Khare (OpenERP)"
Date: Wed, 13 Feb 2013 18:27:19 +0530
Subject: [PATCH 013/164] [FIX] account: Grouping on field 'template_id' is not
possible because that field does not appear in the list view (Case; ref
586077)
bzr revid: skh@tinyerp.com-20130213125719-o5virat3zowaio3p
---
addons/account/project/project_view.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index 8590ee286d4..5daae9c28e1 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -67,6 +67,7 @@
+
From d51df15b1a681cd19ea624c2c2f192a5510669c9 Mon Sep 17 00:00:00 2001
From: Jonatan Cloutier
Date: Thu, 14 Feb 2013 16:12:07 -0500
Subject: [PATCH 014/164] Add common pattern to fiscal_template
bzr revid: jonatan.cloutier@savoirfairelinux.com-20130214211207-599wcf0b9rxii5sg
---
addons/l10n_ca/__openerp__.py | 4 ++--
addons/l10n_ca/fiscal_templates_en.xml | 12 ++++++------
addons/l10n_ca/fiscal_templates_fr.xml | 6 +++---
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/addons/l10n_ca/__openerp__.py b/addons/l10n_ca/__openerp__.py
index 05279b6ef8e..945327a06bc 100644
--- a/addons/l10n_ca/__openerp__.py
+++ b/addons/l10n_ca/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
'name': 'Canada - Accounting',
- 'version': '1.0',
+ 'version': '1.1',
'author': 'Savoir-faire Linux',
'website': 'http://www.savoirfairelinux.com',
'category': 'Localization/Account Charts',
@@ -49,7 +49,7 @@ Canadian accounting charts and localizations.
'account_chart_template_fr.xml',
'account_tax_fr.xml',
'fiscal_templates_fr.xml',
- 'l10n_ca_wizard.xml',
+ 'l10n_ca_wizard.xml'
],
'demo': [],
'installable': True,
diff --git a/addons/l10n_ca/fiscal_templates_en.xml b/addons/l10n_ca/fiscal_templates_en.xml
index 68e881c3541..a3bab5b89dd 100644
--- a/addons/l10n_ca/fiscal_templates_en.xml
+++ b/addons/l10n_ca/fiscal_templates_en.xml
@@ -5,17 +5,17 @@
- Provincial Regime
+ Provincial Regime (PROV)
- Harmonized Provinces Regime (12%)
+ Harmonized Provinces Regime (12%) (BC)
- Harmonized Provinces Regime (13%)
+ Harmonized Provinces Regime (13%) (ON, NB, NL)
@@ -25,17 +25,17 @@
- Harmonized Provinces Regime (15%)
+ Harmonized Provinces Regime (15%) (NS)
- Non-Harmonized Provinces Regime
+ Non-Harmonized Provinces Regime (AB, MB, SK, PE, NT, NU, YT)
- International Regime
+ International Regime (INTL)
diff --git a/addons/l10n_ca/fiscal_templates_fr.xml b/addons/l10n_ca/fiscal_templates_fr.xml
index 3ba13d6642e..b01ab0985ea 100644
--- a/addons/l10n_ca/fiscal_templates_fr.xml
+++ b/addons/l10n_ca/fiscal_templates_fr.xml
@@ -5,7 +5,7 @@
- Régime Provincial
+ Régime Provincial (PROV)
@@ -30,12 +30,12 @@
- Régime Provinces Non-Harmonisées
+ Régime Provinces Non-Harmonisées (AB, MB, SK, PE, NT, NU, YT)
- Régime International
+ Régime International (INTL)
From 06a42734269b2c42743f9a398f0375d5eff24f9d Mon Sep 17 00:00:00 2001
From: Jonatan Cloutier
Date: Thu, 14 Feb 2013 16:16:10 -0500
Subject: [PATCH 015/164] fix SK and MB tax calculation
bzr revid: jonatan.cloutier@savoirfairelinux.com-20130214211610-w0b6hyanps00qkqj
---
addons/l10n_ca/account_tax_en.xml | 8 ++------
addons/l10n_ca/account_tax_fr.xml | 8 ++------
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/addons/l10n_ca/account_tax_en.xml b/addons/l10n_ca/account_tax_en.xml
index 1ff884ac361..4b15ebaa316 100644
--- a/addons/l10n_ca/account_tax_en.xml
+++ b/addons/l10n_ca/account_tax_en.xml
@@ -12,7 +12,6 @@
GSTPST_MB_SALEsale1
- 1percent
@@ -39,7 +38,7 @@
PST for sales - 7%PSTsale
- 0.700000
+ 0.070000percent2
@@ -152,7 +151,6 @@
GSTPST_SK_SALEsale1
- 1percent
@@ -281,7 +279,6 @@
GSTPST_MB_PURCpurchase1
- 1percent
@@ -308,7 +305,7 @@
PST for purchases - 7%PSTpurchase
- 0.700000
+ 0.070000percent2
@@ -421,7 +418,6 @@
GSTPST_SK_PURCpurchase1
- 1percent
diff --git a/addons/l10n_ca/account_tax_fr.xml b/addons/l10n_ca/account_tax_fr.xml
index b344feeec83..8c4f87b25b3 100644
--- a/addons/l10n_ca/account_tax_fr.xml
+++ b/addons/l10n_ca/account_tax_fr.xml
@@ -12,7 +12,6 @@
TPSTVP_MB_SALEsale1
- 1percent
@@ -39,7 +38,7 @@
TVP sur les ventes - 7%TVPsale
- 0.700000
+ 0.070000percent2
@@ -152,7 +151,6 @@
TPSTVP_SK_SALEsale1
- 1percent
@@ -281,7 +279,6 @@
TPSTVP_MB_PURCpurchase1
- 1percent
@@ -308,7 +305,7 @@
TVP sur les achats - 7%TVPpurchase
- 0.700000
+ 0.070000percent2
@@ -421,7 +418,6 @@
TPSTVP_SK_PURCpurchase1
- 1percent
From 314ffef1be8c0bf6711cb2515dab3a36e1941e25 Mon Sep 17 00:00:00 2001
From: "Pinakin Nayi (OpenERP)"
Date: Fri, 15 Feb 2013 10:43:34 +0530
Subject: [PATCH 016/164] [FIX]account:in cash register if we put or take money
its generate traceback
bzr revid: pna@tinyerp.com-20130215051334-rv7jppnn4q3fzkal
---
addons/account/wizard/pos_box.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account/wizard/pos_box.py b/addons/account/wizard/pos_box.py
index 49178dfd3ea..65766c888d6 100644
--- a/addons/account/wizard/pos_box.py
+++ b/addons/account/wizard/pos_box.py
@@ -23,7 +23,7 @@ class CashBox(osv.osv_memory):
records = self.pool.get(active_model).browse(cr, uid, active_ids, context=context)
- return self._run(cr, uid, ids, records, context=None)
+ return self._run(cr, uid, ids, records, context=context)
def _run(self, cr, uid, ids, records, context=None):
for box in self.browse(cr, uid, ids, context=context):
From e1962d4c67f87dfbdd57c1e3775b64605fd2b444 Mon Sep 17 00:00:00 2001
From: "kirti savalia (OpenERP)"
Date: Fri, 15 Feb 2013 16:24:46 +0530
Subject: [PATCH 017/164] [FIX]:pages should be filtered using group by author
in the knowledge menu
bzr revid: ksa@tinyerp.com-20130215105446-6j2o2wumsno5x31g
---
addons/document_page/document_page_view.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/addons/document_page/document_page_view.xml b/addons/document_page/document_page_view.xml
index 08c77647d17..4d0b5596e75 100644
--- a/addons/document_page/document_page_view.xml
+++ b/addons/document_page/document_page_view.xml
@@ -26,6 +26,7 @@
+
From 9c9d9cd8e1ed0f21f3c3b32c4eb5d28f12c3ae0b Mon Sep 17 00:00:00 2001
From: Nehal Panchal
Date: Mon, 18 Feb 2013 15:44:48 +0530
Subject: [PATCH 018/164] [FIX] account_followup: Fixed the issue of Group by
of Country of Do Manual Follow-ups
bzr revid: nep@tinyerp.com-20130218101448-e5ldingettflipt6
---
addons/account_followup/account_followup_customers.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml
index 691d1555e8d..b2154b9b3c8 100644
--- a/addons/account_followup/account_followup_customers.xml
+++ b/addons/account_followup/account_followup_customers.xml
@@ -14,6 +14,7 @@
+
From 4d1af4ab5bcf1da6fc6109b2e16702a8e22c5e0e Mon Sep 17 00:00:00 2001
From: Davide Corio
Date: Mon, 18 Feb 2013 15:56:24 +0100
Subject: [PATCH 019/164] [FIX] property_ids not used while creating a proc.
order
bzr revid: davide.corio@agilebg.com-20130218145624-b2pxbups37pz3t1h
---
addons/sale_stock/sale_stock.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index 1b5ddefbe74..a44ae35a378 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -281,6 +281,7 @@ class sale_order(osv.osv):
'move_id': move_id,
'company_id': order.company_id.id,
'note': line.name,
+ 'property_ids': [(6, 0, [x.id for x in line.property_ids])],
}
def _prepare_order_line_move(self, cr, uid, order, line, picking_id, date_planned, context=None):
From ef8b1bbde70bc32c3fb2367b271a6a2297b6c36f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Bidoul?=
Date: Wed, 20 Feb 2013 12:41:07 +0100
Subject: [PATCH 020/164] [FIX] improve l10n_lu financial report labels
bzr revid: stephane.bidoul@acsone.eu-20130220114107-uxxubknx3v6wg7qq
---
addons/l10n_lu/account_financial_report.xml | 30 ++++++++++-----------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/addons/l10n_lu/account_financial_report.xml b/addons/l10n_lu/account_financial_report.xml
index b39b0ceb15f..62a7a8c8d7e 100644
--- a/addons/l10n_lu/account_financial_report.xml
+++ b/addons/l10n_lu/account_financial_report.xml
@@ -84,7 +84,7 @@
- 2. Concessions, brevets, licences, marques, ainsi que droits et valeurs similaires s’ils ont été
+ 2. Concessions, brevets, licences, marques, ainsi que droits et valeurs similaires s’ils ont été115detail_flat
@@ -256,7 +256,7 @@
- I. Stocks
+ I. Stocks153detail_flat
@@ -292,7 +292,7 @@
- 4. Acomptes versés
+ 4. Acomptes versés161no_detail
@@ -301,7 +301,7 @@
- II. Créances
+ II. Créances163detail_flat
@@ -364,7 +364,7 @@
- 3. Créances sur des entreprises avec lesquelles la société a un
+ 3. Créances sur des entreprises avec lesquelles la société a un lien de participation177detail_flat
@@ -436,7 +436,7 @@
- 2. Actions propres ou parts propres
+ 2. Actions propres ou parts propres193no_detail
@@ -445,7 +445,7 @@
- 3. Autres valeurs mobilières
+ 3. Autres valeurs mobilières195no_detail
@@ -963,7 +963,7 @@
- CHARGES
+ A. CHARGES641detail_flat
@@ -972,7 +972,7 @@
- 1. Consommation de marchandises et de matières premières et consommables
+ 1. Consommation de marchandises et de matières premières et consommables601no_detail
@@ -1044,7 +1044,7 @@
- a) sur frais d'établissement et sur immobilisations corporelles
+ a) sur frais d'établissement et sur immobilisations corporelles et incorporelles617no_detail
@@ -1071,7 +1071,7 @@
- 6. Corrections de valeur sur immobilisations financières et aj
+ 6. Corrections de valeur sur immobilisations financières et ajustement de juste valeur sur immobilisations financières623no_detail
@@ -1080,7 +1080,7 @@
- 7. Corrections de valeur et ajustement de juste valeur sur élém
+ 7. Corrections de valeur et ajustement de juste valeur sur éléments financiers de l'actif circulant. Moins-values de cessions des valeurs mobilières625no_detail
@@ -1143,7 +1143,7 @@
- PRODUITS
+ B. PRODUITS737detail_flat
@@ -1161,7 +1161,7 @@
- 2. Variation des stocks de produits finis, et de produits et de commandes en cours
+ 2. Variation des stocks de produits finis, et de produits et de commandes en cours703no_detail
@@ -1188,7 +1188,7 @@
- a) sur frais d'établissement et sur immobilisations corporelles
+ a) sur frais d'établissement et sur immobilisations corporelles et incorporelles709no_detail
From a4de106b7932ec21bc5621c4b9251842962957cb Mon Sep 17 00:00:00 2001
From: "sergiocorato@gmail.com" <>
Date: Tue, 26 Feb 2013 00:28:26 +0100
Subject: [PATCH 021/164] [IMP] Implementation of all non-deductible tax codes
bzr revid: sergiocorato@gmail.com-20130225232826-uy3juozcpm0b98ew
---
.../data/account.tax.code.template.csv | 19 +++++--
addons/l10n_it/data/account.tax.template.csv | 56 +++++++++----------
2 files changed, 43 insertions(+), 32 deletions(-)
diff --git a/addons/l10n_it/data/account.tax.code.template.csv b/addons/l10n_it/data/account.tax.code.template.csv
index 18286632700..e5435945556 100644
--- a/addons/l10n_it/data/account.tax.code.template.csv
+++ b/addons/l10n_it/data/account.tax.code.template.csv
@@ -1,6 +1,7 @@
code,id,name,parent_id:id
,vat_code_chart_root,Tassazione,
IVC,template_ivacode_pagata,IVA a credito,vat_code_chart_root
+IVCN,template_ivacode_pagata_ind,IVA a credito indetraibile,vat_code_chart_root
IVC0,template_ivacode_pagata_0,Fuori Campo IVA (credito),template_ivacode_pagata
IVCI,template_impcode_pagata,IVA a credito (imponibile),vat_code_chart_root
IVC0I,template_impcode_pagata_0,Fuori Campo IVA (credito) (imponibile),template_impcode_pagata
@@ -8,23 +9,29 @@ IVCart15,template_ivacode_pagata_art15,Escluso Art.15 (credito),template_ivacode
IVCart15I,template_impcode_pagata_art15,Escluso Art.15. (credito) (imponibile),template_impcode_pagata
IVC10,template_ivacode_pagata_10,IVA a credito 10%,template_ivacode_pagata
IVC10I,template_impcode_pagata_10,IVA a credito 10% (imponibile),template_impcode_pagata
-IVC10ind,template_ivacode_pagata_10ind,IVA a credito 10% indetraibile,template_ivacode_pagata
+IVC10ind,template_ivacode_pagata_10ind,IVA a credito 10% indetraibile,template_ivacode_pagata_ind
IVC10Iind,template_impcode_pagata_10ind,IVA a credito 10% indetraibile (imponibile),template_impcode_pagata
-IVC20ind,template_ivacode_pagata_20ind,IVA a credito 20% indetraibile,template_ivacode_pagata
+IVC20ind,template_ivacode_pagata_20ind,IVA a credito 20% indetraibile,template_ivacode_pagata_ind
IVC20Iind,template_impcode_pagata_20ind,IVA a credito 20% indetraibile (imponibile),template_impcode_pagata
-IVC4ind,template_ivacode_pagata_4ind,IVA a credito 4% indetraibile,template_ivacode_pagata
+IVC4ind,template_ivacode_pagata_4ind,IVA a credito 4% indetraibile,template_ivacode_pagata_ind
IVC4Iind,template_impcode_pagata_4ind,IVA a credito 4% indetraibile (imponibile),template_impcode_pagata
IVC20det10,template_ivacode_pagata_20det10,IVA a credito 20% detraibile 10%,template_ivacode_pagata
+IVC20Ndet10,template_ivacode_pagata_20det10ind,IVA a credito 20% detraibile 10% (indetraibile),template_ivacode_pagata_ind
IVC20Idet10,template_impcode_pagata_20det10,IVA a credito 20% detraibile 10% (imponibile),template_impcode_pagata
IVC20det15,template_ivacode_pagata_20det15,IVA a credito 20% detraibile 15%,template_ivacode_pagata
+IVC20Ndet15,template_ivacode_pagata_20det15ind,IVA a credito 20% detraibile 15% (indetraibile),template_ivacode_pagata_ind
IVC20Idet15,template_impcode_pagata_20det15,IVA a credito 20% detraibile 15% (imponibile),template_impcode_pagata
IVC20det40,template_ivacode_pagata_20det40,IVA a credito 20% detraibile 40%,template_ivacode_pagata
+IVC20Ndet40,template_ivacode_pagata_20det40ind,IVA a credito 20% detraibile 40% (indetraibile),template_ivacode_pagata_ind
IVC20Idet40,template_impcode_pagata_20det40,IVA a credito 20% detraibile 40% (imponibile),template_impcode_pagata
IVC20det50,template_ivacode_pagata_20det50,IVA a credito 20% detraibile 50%,template_ivacode_pagata
+IVC20Ndet50,template_ivacode_pagata_20det50ind,IVA a credito 20% detraibile 50% (indetraibile),template_ivacode_pagata_ind
IVC20Idet50,template_impcode_pagata_20det50,IVA a credito 20% detraibile 50% (imponibile),template_impcode_pagata
IVC10det50,template_ivacode_pagata_10det50,IVA a credito 10% detraibile 50%,template_ivacode_pagata
+IVC10Ndet50,template_ivacode_pagata_10det50ind,IVA a credito 10% detraibile 50% (indetraibile),template_ivacode_pagata_ind
IVC10Idet50,template_impcode_pagata_10det50,IVA a credito 10% detraibile 50% (imponibile),template_impcode_pagata
IVC4det50,template_ivacode_pagata_4det50,IVA a credito 4% detraibile 50%,template_ivacode_pagata
+IVC4Ndet50,template_ivacode_pagata_4det50ind,IVA a credito 4% detraibile 50% (indetraibile),template_ivacode_pagata_ind
IVC4Idet50,template_impcode_pagata_4det50,IVA a credito 4% detraibile 50% (imponibile),template_impcode_pagata
IVC20,template_ivacode_pagata_20,IVA a credito 20%,template_ivacode_pagata
IVC20I,template_impcode_pagata_20,IVA a credito 20% (imponibile),template_impcode_pagata
@@ -54,13 +61,17 @@ IVD12,template_ivacode_riscossa_12,IVA a debito 12%,template_ivacode_riscossa
IVD12I,template_impcode_riscossa_12,IVA a debito 12% (imponibile),template_impcode_riscossa
IVD2,template_ivacode_riscossa_2,IVA a debito 2%,template_ivacode_riscossa
IVD2I,template_impcode_riscossa_2,IVA a debito 2% (imponibile),template_impcode_riscossa
-IVC21ind,template_ivacode_pagata_21ind,IVA a credito 21% indetraibile,template_ivacode_pagata
+IVC21ind,template_ivacode_pagata_21ind,IVA a credito 21% indetraibile,template_ivacode_pagata_ind
IVC21Iind,template_impcode_pagata_21ind,IVA a credito 21% indetraibile (imponibile),template_impcode_pagata
IVC21det10,template_ivacode_pagata_21det10,IVA a credito 21% detraibile 10%,template_ivacode_pagata
+IVC21Ndet10,template_ivacode_pagata_21det10ind,IVA a credito 21% detraibile 10% (indetraibile),template_ivacode_pagata_ind
IVC21Idet10,template_impcode_pagata_21det10,IVA a credito 21% detraibile 10% (imponibile),template_impcode_pagata
IVC21det15,template_ivacode_pagata_21det15,IVA a credito 21% detraibile 15%,template_ivacode_pagata
+IVC21Ndet15,template_ivacode_pagata_21det15ind,IVA a credito 21% detraibile 15% (indetraibile),template_ivacode_pagata_ind
IVC21Idet15,template_impcode_pagata_21det15,IVA a credito 21% detraibile 15% (imponibile),template_impcode_pagata
IVC21det40,template_ivacode_pagata_21det40,IVA a credito 21% detraibile 40%,template_ivacode_pagata
+IVC21Ndet40,template_ivacode_pagata_21det40ind,IVA a credito 21% detraibile 40% (indetraibile),template_ivacode_pagata_ind
IVC21Idet40,template_impcode_pagata_21det40,IVA a credito 21% detraibile 40% (imponibile),template_impcode_pagata
IVC21det50,template_ivacode_pagata_21det50,IVA a credito 21% detraibile 50%,template_ivacode_pagata
+IVC21Ndet50,template_ivacode_pagata_21det50ind,IVA a credito 21% detraibile 50% (indetraibile),template_ivacode_pagata_ind
IVC21Idet50,template_impcode_pagata_21det50,IVA a credito 21% detraibile 50% (imponibile),template_impcode_pagata
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index f64b4974fca..5654b32e5e9 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -6,38 +6,38 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
10v,10v,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,1,1
10a,10a,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,1,1,False,-1,-1
10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,7,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,1,1,False,-1,-1
-10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,1,1,False,1,1
-10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,1,1,False,1,1
+10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10,,template_ivacode_pagata_10,1,1,False,-1,-1
+10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,1,1,False,-1,-1
12v,12v,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,1,1
12a,12a,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,1,1,False,-1,-1
2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,10,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,1,1,False,-1,-1
-2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,1,1,False,1,1
-2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,1,1,False,1,1
+2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,1,1,False,-1,-1
+2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,template_ivacode_pagata_20det10ind,,template_ivacode_pagata_20det10ind,1,1,False,-1,-1
2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,11,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,1,1,False,-1,-1
-2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,1,1,False,1,1
-2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,1,1,False,1,1
+2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,1,1,False,-1,-1
+2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,template_ivacode_pagata_20det15ind,,template_ivacode_pagata_20det15ind,1,1,False,-1,-1
2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,12,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,1,1,False,-1,-1
-2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,1,1,False,1,1
-2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,1,1,False,1,1
+2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,1,1,False,-1,-1
+2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,template_ivacode_pagata_20det40ind,,template_ivacode_pagata_20det40ind,1,1,False,-1,-1
20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,13,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,1,1,False,-1,-1
-20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,1,1,False,1,1
-20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,1,1,False,1,1
+20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,1,1,False,-1,-1
+20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,1,1,False,-1,-1
20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,1,1,False,-1,-1
-20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,1,1,False,1,1
-20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,1,1,False,1,1
+20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,1,1,False,-1,-1
+20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,template_ivacode_pagata_20det50ind,,template_ivacode_pagata_20det50ind,1,1,False,-1,-1
22v,22v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,1,1
22a,22a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,1,1,False,-1,-1
4v,4v,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,1,1
4a,4a,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,1,1,False,-1,-1
4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,1,1,False,-1,-1
-4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,1,1,False,1,1
-4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,1,1,False,1,1
+4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,1,1,False,-1,-1
+4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,1,1,False,-1,-1
10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,20,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,1,1,False,-1,-1
-10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,1,1,False,1,1
-10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,1,1,False,1,1
+10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,1,1,False,-1,-1
+10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,template_ivacode_pagata_10det50ind,,template_ivacode_pagata_10det50ind,1,1,False,-1,-1
4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,1,1,False,-1,-1
-4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,1,1,False,1,1
-4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,1,1,False,1,1
+4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,1,1,False,-1,-1
+4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,template_ivacode_pagata_4det50ind,,template_ivacode_pagata_4det50ind,1,1,False,-1,-1
00v,00v,l10n_it_chart_template_generic,Fuori Campo IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,1,1
00a,00a,l10n_it_chart_template_generic,Fuori Campo IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,1,1,False,-1,-1
00art15v,00art15v,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,-1,-1,False,1,1
@@ -50,17 +50,17 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,1,1
00v INC,00v INC,l10n_it_chart_template_generic,Fuori Campo IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,1,1
2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,1,1,False,-1,-1
-2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,1,1,False,1,1
-2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,1,1,False,1,1
+2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,1,1,False,-1,-1
+2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,template_ivacode_pagata_21det10ind,,template_ivacode_pagata_21det10ind,1,1,False,-1,-1
2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,32,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,1,1,False,-1,-1
-2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,1,1,False,1,1
-2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,1,1,False,1,1
+2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,1,1,False,-1,-1
+2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,template_ivacode_pagata_21det15ind,,template_ivacode_pagata_21det15ind,1,1,False,-1,-1
2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,33,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,1,1,False,-1,-1
-2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,1,1,False,1,1
-2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,1,1,False,1,1
+2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,1,1,False,-1,-1
+2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,template_ivacode_pagata_21det40ind,,template_ivacode_pagata_21det40ind,1,1,False,-1,-1
21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,34,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,1,1,False,-1,-1
-21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,1,1,False,1,1
-21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,1,1,False,1,1
+21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,1,1,False,-1,-1
+21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,1,1,False,-1,-1
21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,1,1,False,-1,-1
-21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,1,1,False,1,1
-21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,1,1,False,1,1
+21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,1,1,False,-1,-1
+21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,template_ivacode_pagata_21det50ind,,template_ivacode_pagata_21det50ind,1,1,False,-1,-1
From b507ac6a9e79f78ab7435eb39e208ee81dea9850 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Wed, 27 Feb 2013 16:27:11 +0530
Subject: [PATCH 022/164] [FIX]account_followup: no need create button in
report, added create false in tree view
bzr revid: mma@tinyerp.com-20130227105711-m1veqahapgyg3767
---
addons/account_followup/report/account_followup_report.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account_followup/report/account_followup_report.xml b/addons/account_followup/report/account_followup_report.xml
index 6fee6a77ac1..b7c38e89f5e 100644
--- a/addons/account_followup/report/account_followup_report.xml
+++ b/addons/account_followup/report/account_followup_report.xml
@@ -6,7 +6,7 @@
account_followup.stat.treeaccount_followup.stat
-
+
From e147f5779cdd2193f4d2bf43d43e79fce0d5ec73 Mon Sep 17 00:00:00 2001
From: Jonatan Cloutier
Date: Wed, 27 Feb 2013 11:36:41 -0500
Subject: [PATCH 023/164] fix quebec taxes calculations
bzr revid: jonatan.cloutier@savoirfairelinux.com-20130227163641-jp61202fihnuxt9u
---
addons/l10n_ca/account_tax_en.xml | 2 --
addons/l10n_ca/account_tax_fr.xml | 2 --
2 files changed, 4 deletions(-)
diff --git a/addons/l10n_ca/account_tax_en.xml b/addons/l10n_ca/account_tax_en.xml
index 4b15ebaa316..afe505f27f5 100644
--- a/addons/l10n_ca/account_tax_en.xml
+++ b/addons/l10n_ca/account_tax_en.xml
@@ -105,7 +105,6 @@
GSTTVQ_SALEsale1
- 1percent
@@ -372,7 +371,6 @@
GSTTVQ_PURCpurchase1
- 1percent
diff --git a/addons/l10n_ca/account_tax_fr.xml b/addons/l10n_ca/account_tax_fr.xml
index 8c4f87b25b3..c34f329be3a 100644
--- a/addons/l10n_ca/account_tax_fr.xml
+++ b/addons/l10n_ca/account_tax_fr.xml
@@ -105,7 +105,6 @@
TPSTVQ_SALEsale1
- 1percent
@@ -372,7 +371,6 @@
TPSTVQ_PURCpurchase1
- 1percent
From 7ecc660d2c13335d4083b30492303b38d188a234 Mon Sep 17 00:00:00 2001
From: "Mayur Maheshwari (OpenERP)"
Date: Thu, 7 Mar 2013 16:08:52 +0530
Subject: [PATCH 024/164] [FIX]project_long_ter: added domin in serch for fix
project_id is not defined
bzr revid: mma@tinyerp.com-20130307103852-p027t5tv7u5todkv
---
addons/project_long_term/project_long_term_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml
index 4066b6133c1..671d8fb2b4d 100644
--- a/addons/project_long_term/project_long_term_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -322,7 +322,7 @@
-
+
From 46638bb9ec95a4a151760d4dff8036f291eeef2b Mon Sep 17 00:00:00 2001
From: Csaba TOTH
Date: Tue, 19 Mar 2013 03:06:32 +0100
Subject: [PATCH 025/164] Hides the Create, Delete, Edit possibilities from 'Do
Manual Follow-Ups' and 'My Follow-Ups' forms
lp bug: https://launchpad.net/bugs/1156938 fixed
bzr revid: csaba.toth@i3rendszerhaz.hu-20130319020632-0doqkscx7wd3ervm
---
addons/account_followup/account_followup_customers.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml
index f15d4da9524..b8cfa03ef5d 100644
--- a/addons/account_followup/account_followup_customers.xml
+++ b/addons/account_followup/account_followup_customers.xml
@@ -9,7 +9,7 @@
res.partner
-
+
From d088a998b04be8d1f97fdcb9f6e1ab98889a7d8c Mon Sep 17 00:00:00 2001
From: Csaba TOTH
Date: Wed, 20 Mar 2013 09:55:55 +0100
Subject: [PATCH 026/164] enable edit, create and delete remains disabled
bzr revid: csaba.toth@i3rendszerhaz.hu-20130320085555-v96z7zlh7k103ojm
---
addons/account_followup/account_followup_customers.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml
index b8cfa03ef5d..260b569e172 100644
--- a/addons/account_followup/account_followup_customers.xml
+++ b/addons/account_followup/account_followup_customers.xml
@@ -9,7 +9,7 @@
res.partner
-
+
From f594c6f54203311bc7573c55a5fafa1ac2aa31e9 Mon Sep 17 00:00:00 2001
From: "Ravish (Open ERP)"
Date: Mon, 25 Mar 2013 19:09:49 +0530
Subject: [PATCH 027/164] [FIX] res partner copy method returns None
bzr revid: rmu@tinyerp.com-20130325133949-frwik2wrylxu6s7s
---
addons/sale/res_partner.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/sale/res_partner.py b/addons/sale/res_partner.py
index 1b37b609179..8201e147e34 100644
--- a/addons/sale/res_partner.py
+++ b/addons/sale/res_partner.py
@@ -41,7 +41,7 @@ class res_partner(osv.osv):
default.update({'sale_order_ids': []})
- super(res_partner, self).copy(cr, uid, record_id, default, context)
+ return super(res_partner, self).copy(cr, uid, record_id, default, context)
_columns = {
'sale_order_count': fields.function(_sale_order_count, string='# of Sales Order', type='integer'),
From 8f6e543d708ee22707ad34bfe78fa99ae68b7efd Mon Sep 17 00:00:00 2001
From: Olivier LAURENT
Date: Mon, 25 Mar 2013 17:43:13 +0100
Subject: [PATCH 028/164] [FIX] report_webkit: Wrong Report template file path
throws 'Coercing to Unicode' error : (Maintenance Case : 583490) cf.
http://bazaar.launchpad.net/~openerp-dev/openobject-addons/7.0-opw-583490-rgo/revision/8519
bzr revid: olivier.laurent@acsone.eu-20130325164313-ccnkn06x16ar32qz
---
addons/report_webkit/webkit_report.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py
index b6c273f8852..99e1aa31058 100644
--- a/addons/report_webkit/webkit_report.py
+++ b/addons/report_webkit/webkit_report.py
@@ -220,7 +220,7 @@ class WebKitParser(report_sxw):
if report_xml.report_file :
path = addons.get_module_resource(*report_xml.report_file.split(os.path.sep))
- if os.path.exists(path) :
+ if path and os.path.exists(path) :
template = file(path).read()
if not template and report_xml.report_webkit_data :
template = report_xml.report_webkit_data
From 396eec00aa9dab575b74c94b51673ff3a7f7fa44 Mon Sep 17 00:00:00 2001
From: Olivier LAURENT
Date: Mon, 25 Mar 2013 17:49:07 +0100
Subject: [PATCH 029/164] [FIX] path declaration must be OS independant => use
'/' as neutral path separator
lp bug: https://launchpad.net/bugs/1159702 fixed
bzr revid: olivier.laurent@acsone.eu-20130325164907-4j1ki08mxp0a6y4o
---
addons/report_webkit/webkit_report.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py
index 99e1aa31058..32dd1a50995 100644
--- a/addons/report_webkit/webkit_report.py
+++ b/addons/report_webkit/webkit_report.py
@@ -219,7 +219,7 @@ class WebKitParser(report_sxw):
template = False
if report_xml.report_file :
- path = addons.get_module_resource(*report_xml.report_file.split(os.path.sep))
+ path = addons.get_module_resource(*report_xml.report_file.split('/'))
if path and os.path.exists(path) :
template = file(path).read()
if not template and report_xml.report_webkit_data :
From 3bd2d837767f01f821f45e99d23bc056303cae33 Mon Sep 17 00:00:00 2001
From: "Dharti Ratani (Open ERP)"
Date: Fri, 29 Mar 2013 11:59:50 +0530
Subject: [PATCH 030/164] [FIX]Resolved traceback on moving to the previous
record from serial numbers in Tracebility
bzr revid: dhr@tinyerp.com-20130329062950-02e37dwbtidy5mi7
---
addons/stock/stock.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index f2258372907..19328fa16c0 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1426,7 +1426,7 @@ class stock_production_lot(osv.osv):
ids = [ids]
res = {}.fromkeys(ids, 0.0)
- if locations:
+ if locations and ids:
cr.execute('''select
prodlot_id,
sum(qty)
From 2d07136d6fa2ccec0d5efa72788eb13df646bef8 Mon Sep 17 00:00:00 2001
From: Vidhin Mehta
Date: Tue, 23 Apr 2013 16:16:47 +0530
Subject: [PATCH 031/164] [FIX]Remove extra duplicate method,show valid error
msg when invalid db to drop, do_render method call after resolving
fetch_langs and call always after fetch_db.
lp bug: https://launchpad.net/bugs/1166856 fixed
bzr revid: vme@tinyerp.com-20130423104647-8xvrthahdzk42r08
---
addons/web/controllers/main.py | 21 ++++++++-------------
addons/web/static/src/js/chrome.js | 2 +-
2 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 47498752c24..0c94e9fe55a 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -765,14 +765,6 @@ class Database(openerpweb.Controller):
params['db_lang'],
params['create_admin_pwd'])
- @openerpweb.jsonrequest
- def duplicate(self, req, fields):
- params = dict(map(operator.itemgetter('name', 'value'), fields))
- return req.session.proxy("db").duplicate_database(
- params['super_admin_pwd'],
- params['db_original_name'],
- params['db_name'])
-
@openerpweb.jsonrequest
def duplicate(self, req, fields):
params = dict(map(operator.itemgetter('name', 'value'), fields))
@@ -781,7 +773,6 @@ class Database(openerpweb.Controller):
params['db_original_name'],
params['db_name'],
)
-
return req.session.proxy("db").duplicate_database(*duplicate_attrs)
@openerpweb.jsonrequest
@@ -789,13 +780,17 @@ class Database(openerpweb.Controller):
password, db = operator.itemgetter(
'drop_pwd', 'drop_db')(
dict(map(operator.itemgetter('name', 'value'), fields)))
-
+ error = {'error':_('Could not drop database !'), 'title': _('Drop Database') }
try:
- return req.session.proxy("db").drop(password, db)
+ proxy = req.session.proxy("db")
+ if db in proxy.list(True):
+ return proxy.drop(password, db)
+ else:
+ error.update({'error': "Database '%s' does not exist !" % db})
except xmlrpclib.Fault, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
- return {'error': e.faultCode, 'title': 'Drop Database'}
- return {'error': _('Could not drop database !'), 'title': _('Drop Database')}
+ error.update({'error': e.faultCode})
+ return error
@openerpweb.httprequest
def backup(self, req, backup_db, backup_pwd, token):
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 02228a96b06..ee8e741e6da 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -380,7 +380,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
var fetch_langs = this.rpc("/web/session/get_lang_list", {}).done(function(result) {
self.lang_list = result;
});
- return $.when(fetch_db, fetch_langs).done(self.do_render);
+ return $.when(fetch_langs).done(fetch_db.always(self.do_render));
},
do_render: function() {
var self = this;
From 03b7f7e2590b10af7d2b53438a1dc501550b7823 Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Wed, 24 Apr 2013 14:20:35 +0200
Subject: [PATCH 032/164] [FIX] correct tax sign for invoices and refunds for
partially deductible VAT
bzr revid: lorenzo.battistini@agilebg.com-20130424122035-zhicfrgbslipyb6y
---
addons/l10n_it/data/account.tax.template.csv | 28 ++++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index f64b4974fca..2d2299d4ee2 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -6,37 +6,37 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
10v,10v,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,1,1
10a,10a,l10n_it_chart_template_generic,Iva al 10% (credito),6,0.1,,False,percent,1601,1601,purchase,template_impcode_pagata_10,template_ivacode_pagata_10,template_impcode_pagata_10,template_ivacode_pagata_10,1,1,False,-1,-1
10AO,10AO,l10n_it_chart_template_generic,Iva al 10% indetraibile,7,0.1,,True,percent,,,purchase,template_impcode_pagata_10ind,,template_impcode_pagata_10ind,,1,1,False,-1,-1
-10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,1,1,False,1,1
+10AOb,10AOb,l10n_it_chart_template_generic,Iva al 10% indetraibile (D),200,0,10AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_10ind,,template_ivacode_pagata_10ind,1,1,False,-1,-1
10AOa,10AOa,l10n_it_chart_template_generic,Iva al 10% indetraibile (I),100,1,10AO,False,percent,,,purchase,,,,,1,1,False,1,1
12v,12v,l10n_it_chart_template_generic,Iva 12% (debito),8,0.12,,False,percent,2601,2601,sale,template_impcode_riscossa_12,template_ivacode_riscossa_12,template_impcode_riscossa_12,template_ivacode_riscossa_12,-1,-1,False,1,1
12a,12a,l10n_it_chart_template_generic,Iva 12% (credito),9,0.12,,False,percent,1601,1601,purchase,template_impcode_pagata_12,template_ivacode_pagata_12,template_impcode_pagata_12,template_ivacode_pagata_12,1,1,False,-1,-1
2010,2010,l10n_it_chart_template_generic,Iva al 20% detraibile 10%,10,0.2,,True,percent,,,purchase,template_impcode_pagata_20det10,,template_impcode_pagata_20det10,,1,1,False,-1,-1
-2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,1,1,False,1,1
+2010b,2010b,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (D),200,0,2010,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det10,,template_ivacode_pagata_20det10,1,1,False,-1,-1
2010a,2010a,l10n_it_chart_template_generic,Iva al 20% detraibile 10% (I),100,0.9,2010,False,percent,,,purchase,,,,,1,1,False,1,1
2015,2015,l10n_it_chart_template_generic,Iva al 20% detraibile 15%,11,0.2,,True,percent,,,purchase,template_impcode_pagata_20det15,,template_impcode_pagata_20det15,,1,1,False,-1,-1
-2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,1,1,False,1,1
+2015b,2015b,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (D),200,0,2015,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det15,,template_ivacode_pagata_20det15,1,1,False,-1,-1
2015a,2015a,l10n_it_chart_template_generic,Iva al 20% detraibile 15% (I),100,0.85,2015,False,percent,,,purchase,,,,,1,1,False,1,1
2040,2040,l10n_it_chart_template_generic,Iva al 20% detraibile 40%,12,0.2,,True,percent,,,purchase,template_impcode_pagata_20det40,,template_impcode_pagata_20det40,,1,1,False,-1,-1
-2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,1,1,False,1,1
+2040b,2040b,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (D),200,0,2040,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det40,,template_ivacode_pagata_20det40,1,1,False,-1,-1
2040a,2040a,l10n_it_chart_template_generic,Iva al 20% detraibile 40% (I),100,0.6,2040,False,percent,,,purchase,,,,,1,1,False,1,1
20AO,20AO,l10n_it_chart_template_generic,Iva al 20% indetraibile,13,0.2,,True,percent,,,purchase,template_impcode_pagata_20ind,,template_impcode_pagata_20ind,,1,1,False,-1,-1
-20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,1,1,False,1,1
+20AOb,20AOb,l10n_it_chart_template_generic,Iva al 20% indetraibile (D),200,0,20AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_20ind,,template_ivacode_pagata_20ind,1,1,False,-1,-1
20AOa,20AOa,l10n_it_chart_template_generic,Iva al 20% indetraibile (I),100,1,20AO,False,percent,,,purchase,,,,,1,1,False,1,1
20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,1,1,False,-1,-1
20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,,,,1,1,False,1,1
-20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,1,1,False,1,1
+20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,1,1,False,-1,-1
22v,22v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,1,1
22a,22a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,1,1,False,-1,-1
4v,4v,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,1,1
4a,4a,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,1,1,False,-1,-1
4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,1,1,False,-1,-1
-4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,1,1,False,1,1
+4AOb,4AOb,l10n_it_chart_template_generic,Iva al 4% indetraibile (D),200,0,4AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_4ind,,template_ivacode_pagata_4ind,1,1,False,-1,-1
4AOa,4AOa,l10n_it_chart_template_generic,Iva al 4% indetraibile (I),100,1,4AO,False,percent,,,purchase,,,,,1,1,False,1,1
10I5,10I5,l10n_it_chart_template_generic,IVA al 10% detraibile al 50%,20,0.1,,True,percent,,,purchase,template_impcode_pagata_10det50,,template_impcode_pagata_10det50,,1,1,False,-1,-1
-10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,1,1,False,1,1
+10I5b,10I5b,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (D),200,0,10I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_10det50,,template_ivacode_pagata_10det50,1,1,False,-1,-1
10I5a,10I5a,l10n_it_chart_template_generic,IVA al 10% detraibile al 50% (I),100,0.5,10I5,False,percent,,,purchase,,,,,1,1,False,1,1
4I5,4I5,l10n_it_chart_template_generic,IVA al 4% detraibile al 50%,21,0.04,,True,percent,,,purchase,template_impcode_pagata_4det50,,template_impcode_pagata_4det50,,1,1,False,-1,-1
-4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,1,1,False,1,1
+4I5b,4I5b,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (D),200,0,4I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_4det50,,template_ivacode_pagata_4det50,1,1,False,-1,-1
4I5a,4I5a,l10n_it_chart_template_generic,IVA al 4% detraibile al 50% (I),100,0.5,4I5,False,percent,,,purchase,,,,,1,1,False,1,1
00v,00v,l10n_it_chart_template_generic,Fuori Campo IVA (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_0,template_ivacode_riscossa_0,template_impcode_riscossa_0,template_ivacode_riscossa_0,-1,-1,False,1,1
00a,00a,l10n_it_chart_template_generic,Fuori Campo IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,1,1,False,-1,-1
@@ -50,17 +50,17 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,1,1
00v INC,00v INC,l10n_it_chart_template_generic,Fuori Campo IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,1,1
2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,1,1,False,-1,-1
-2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,1,1,False,1,1
+2110b,2110b,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (D),200,0,2110,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det10,,template_ivacode_pagata_21det10,1,1,False,-1,-1
2110a,2110a,l10n_it_chart_template_generic,Iva al 21% detraibile 10% (I),100,0.9,2110,False,percent,,,purchase,,,,,1,1,False,1,1
2115,2115,l10n_it_chart_template_generic,Iva al 21% detraibile 15%,32,0.21,,True,percent,,,purchase,template_impcode_pagata_21det15,,template_impcode_pagata_21det15,,1,1,False,-1,-1
-2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,1,1,False,1,1
+2115b,2115b,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (D),200,0,2115,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det15,,template_ivacode_pagata_21det15,1,1,False,-1,-1
2115a,2115a,l10n_it_chart_template_generic,Iva al 21% detraibile 15% (I),100,0.85,2115,False,percent,,,purchase,,,,,1,1,False,1,1
2140,2140,l10n_it_chart_template_generic,Iva al 21% detraibile 40%,33,0.21,,True,percent,,,purchase,template_impcode_pagata_21det40,,template_impcode_pagata_21det40,,1,1,False,-1,-1
-2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,1,1,False,1,1
+2140b,2140b,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (D),200,0,2140,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det40,,template_ivacode_pagata_21det40,1,1,False,-1,-1
2140a,2140a,l10n_it_chart_template_generic,Iva al 21% detraibile 40% (I),100,0.6,2140,False,percent,,,purchase,,,,,1,1,False,1,1
21AO,21AO,l10n_it_chart_template_generic,Iva al 21% indetraibile,34,0.21,,True,percent,,,purchase,template_impcode_pagata_21ind,,template_impcode_pagata_21ind,,1,1,False,-1,-1
-21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,1,1,False,1,1
+21AOb,21AOb,l10n_it_chart_template_generic,Iva al 21% indetraibile (D),200,0,21AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_21ind,,template_ivacode_pagata_21ind,1,1,False,-1,-1
21AOa,21AOa,l10n_it_chart_template_generic,Iva al 21% indetraibile (I),100,1,21AO,False,percent,,,purchase,,,,,1,1,False,1,1
21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,1,1,False,-1,-1
21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,,,,1,1,False,1,1
-21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,1,1,False,1,1
+21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,1,1,False,-1,-1
From 7841bac687c98d29efa3b2529e44d0631f3d101a Mon Sep 17 00:00:00 2001
From: ggh-openerp
Date: Mon, 29 Apr 2013 11:08:51 +0530
Subject: [PATCH 033/164] [IMP] Improved typo in Warning
bzr revid: ggh@tinyerp.com-20130429053851-ipatcoxtjwrwfijk
---
addons/account/account_invoice.py | 2 +-
addons/account/wizard/account_validate_account_move.py | 2 +-
addons/analytic/analytic.py | 2 +-
addons/l10n_be/wizard/l10n_be_partner_vat_listing.py | 2 +-
addons/l10n_be/wizard/l10n_be_vat_intra.py | 2 +-
addons/point_of_sale/point_of_sale.py | 2 +-
addons/stock/wizard/stock_partial_picking.py | 4 ++--
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index c47cf70b673..dd016dd8ef0 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -600,7 +600,7 @@ class account_invoice(osv.osv):
obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id'])
if obj_l.company_id.id != company_id:
raise osv.except_osv(_('Configuration Error!'),
- _('Invoice line account\'s company and invoice\'s compnay does not match.'))
+ _('Invoice line account\'s company and invoice\'s company does not match.'))
else:
continue
if company_id and type:
diff --git a/addons/account/wizard/account_validate_account_move.py b/addons/account/wizard/account_validate_account_move.py
index 324248284f1..050191db187 100644
--- a/addons/account/wizard/account_validate_account_move.py
+++ b/addons/account/wizard/account_validate_account_move.py
@@ -57,7 +57,7 @@ class validate_account_move_lines(osv.osv_memory):
move_ids.append(line.move_id.id)
move_ids = list(set(move_ids))
if not move_ids:
- raise osv.except_osv(_('Warning!'), _('Selected Entry Lines does not have any account move enties in draft state.'))
+ raise osv.except_osv(_('Warning!'), _('Selected Entry Lines does not have any account move entries in draft state.'))
obj_move.button_validate(cr, uid, move_ids, context)
return {'type': 'ir.actions.act_window_close'}
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index ac298713b04..ce79c4d5ffb 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -157,7 +157,7 @@ class account_analytic_account(osv.osv):
for account in self.browse(cr, uid, ids, context=context):
if account.company_id:
if account.company_id.currency_id.id != value:
- raise osv.except_osv(_('Error!'), _("If you set a company, the currency selected has to be the same as it's currency. \nYou can remove the company belonging, and thus change the currency, only on analytic account of type 'view'. This can be really usefull for consolidation purposes of several companies charts with different currencies, for example."))
+ raise osv.except_osv(_('Error!'), _("If you set a company, the currency selected has to be the same as it's currency. \nYou can remove the company belonging, and thus change the currency, only on analytic account of type 'view'. This can be really useful for consolidation purposes of several companies charts with different currencies, for example."))
if value:
return cr.execute("""update account_analytic_account set currency_id=%s where id=%s""", (value, account.id, ))
diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
index 29a1a1508a4..a6c642ea789 100644
--- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
+++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
@@ -65,7 +65,7 @@ class partner_vat(osv.osv_memory):
partners = []
partner_ids = obj_partner.search(cr, uid, [('vat_subjected', '!=', False), ('vat','ilike','BE%')], context=context)
if not partner_ids:
- raise osv.except_osv(_('Error'),_('No belgian contact with a VAT number in your database.'))
+ raise osv.except_osv(_('Error'),_('No belgium contact with a VAT number in your database.'))
cr.execute("""SELECT sub1.partner_id, sub1.name, sub1.vat, sub1.turnover, sub2.vat_amount
FROM (SELECT l.partner_id, p.name, p.vat, SUM(CASE WHEN c.code ='49' THEN -l.tax_amount ELSE l.tax_amount END) as turnover
FROM account_move_line l
diff --git a/addons/l10n_be/wizard/l10n_be_vat_intra.py b/addons/l10n_be/wizard/l10n_be_vat_intra.py
index 703ab9db59b..fa298ca5124 100644
--- a/addons/l10n_be/wizard/l10n_be_vat_intra.py
+++ b/addons/l10n_be/wizard/l10n_be_vat_intra.py
@@ -120,7 +120,7 @@ class partner_vat_intra(osv.osv_memory):
p_id_list = obj_partner.search(cr, uid, [('vat','!=',False)], context=context)
if not p_id_list:
- raise osv.except_osv(_('Insufficient Data!'),_('No partner has a VAT number asociated with him.'))
+ raise osv.except_osv(_('Insufficient Data!'),_('No partner has a VAT number associated with him.'))
seq_declarantnum = obj_sequence.get(cr, uid, 'declarantnum')
dnum = company_vat[2:] + seq_declarantnum[-4:]
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 349ad8b4f81..a4f2a30387a 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -407,7 +407,7 @@ class pos_session(osv.osv):
# The pos manager can close statements with maximums.
if not self.pool.get('ir.model.access').check_groups(cr, uid, "point_of_sale.group_pos_manager"):
raise osv.except_osv( _('Error!'),
- _("Your ending balance is too different from the theorical cash closing (%.2f), the maximum allowed is: %.2f. You can contact your manager to force it.") % (st.difference, st.journal_id.amount_authorized_diff))
+ _("Your ending balance is too different from the theoretical cash closing (%.2f), the maximum allowed is: %.2f. You can contact your manager to force it.") % (st.difference, st.journal_id.amount_authorized_diff))
if (st.journal_id.type not in ['bank', 'cash']):
raise osv.except_osv(_('Error!'),
_("The type of the journal for your payment method should be bank or cash "))
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index 47599d5f99e..46e5223e43a 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -178,7 +178,7 @@ class stock_partial_picking(osv.osv_memory):
if line_uom.factor and line_uom.factor <> 0:
if float_compare(qty_in_line_uom, wizard_line.quantity, precision_rounding=line_uom.rounding) != 0:
- raise osv.except_osv(_('Warning!'), _('The unit of measure rounding does not allow you to ship "%s %s", only roundings of "%s %s" is accepted by the Unit of Measure.') % (wizard_line.quantity, line_uom.name, line_uom.rounding, line_uom.name))
+ raise osv.except_osv(_('Warning!'), _('The unit of measure rounding does not allow you to ship "%s %s", only rounding of "%s %s" is accepted by the Unit of Measure.') % (wizard_line.quantity, line_uom.name, line_uom.rounding, line_uom.name))
if move_id:
#Check rounding Quantity.ex.
#picking: 1kg, uom kg rounding = 0.01 (rounding to 10g),
@@ -189,7 +189,7 @@ class stock_partial_picking(osv.osv_memory):
qty_in_initial_uom = uom_obj._compute_qty(cr, uid, line_uom.id, wizard_line.quantity, initial_uom.id)
without_rounding_qty = (wizard_line.quantity / line_uom.factor) * initial_uom.factor
if float_compare(qty_in_initial_uom, without_rounding_qty, precision_rounding=initial_uom.rounding) != 0:
- raise osv.except_osv(_('Warning!'), _('The rounding of the initial uom does not allow you to ship "%s %s", as it would let a quantity of "%s %s" to ship and only roundings of "%s %s" is accepted by the uom.') % (wizard_line.quantity, line_uom.name, wizard_line.move_id.product_qty - without_rounding_qty, initial_uom.name, initial_uom.rounding, initial_uom.name))
+ raise osv.except_osv(_('Warning!'), _('The rounding of the initial uom does not allow you to ship "%s %s", as it would let a quantity of "%s %s" to ship and only rounding of "%s %s" is accepted by the uom.') % (wizard_line.quantity, line_uom.name, wizard_line.move_id.product_qty - without_rounding_qty, initial_uom.name, initial_uom.rounding, initial_uom.name))
else:
seq_obj_name = 'stock.picking.' + picking_type
move_id = stock_move.create(cr,uid,{'name' : self.pool.get('ir.sequence').get(cr, uid, seq_obj_name),
From 1cdda962840b48d4e63a68c5ee8ec8313e7eca59 Mon Sep 17 00:00:00 2001
From: ggh-openerp
Date: Mon, 29 Apr 2013 11:22:49 +0530
Subject: [PATCH 034/164] [IMP] Improved Capitalize title
bzr revid: ggh@tinyerp.com-20130429055249-7wwd6zwek1pddlhl
---
addons/l10n_be/wizard/l10n_be_account_vat_declaration.py | 2 +-
addons/l10n_be/wizard/l10n_be_partner_vat_listing.py | 4 ++--
addons/l10n_be/wizard/l10n_be_vat_intra.py | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
index b74cfa21b8a..0576e1d5f8f 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
@@ -84,7 +84,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
obj_company = obj_user.browse(cr, uid, uid, context=context).company_id
vat_no = obj_company.partner_id.vat
if not vat_no:
- raise osv.except_osv(_('insufficient data!'), _('No VAT number associated with your company.'))
+ raise osv.except_osv(_('Insufficient Data!'), _('No VAT number associated with your company.'))
vat_no = vat_no.replace(' ','').upper()
vat = vat_no[2:]
diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
index a6c642ea789..0ffa0c16a24 100644
--- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
+++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
@@ -60,7 +60,7 @@ class partner_vat(osv.osv_memory):
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
period_ids = obj_period.search(cr, uid, [('date_start' ,'>=', date_start), ('date_stop','<=',date_stop), ('company_id','=',company_id)])
if not period_ids:
- raise osv.except_osv(_('insufficient data!'), _('No data for the selected year.'))
+ raise osv.except_osv(_('Insufficient Data!'), _('No data for the selected year.'))
partners = []
partner_ids = obj_partner.search(cr, uid, [('vat_subjected', '!=', False), ('vat','ilike','BE%')], context=context)
@@ -90,7 +90,7 @@ class partner_vat(osv.osv_memory):
partners.append(id_client)
if not partners:
- raise osv.except_osv(_('insufficient data!'), _('No data found for the selected year.'))
+ raise osv.except_osv(_('Insufficient Data!'), _('No data found for the selected year.'))
context.update({'partner_ids': partners, 'year': data['year'], 'limit_amount': data['limit_amount']})
model_data_ids = obj_model_data.search(cr, uid, [('model','=','ir.ui.view'), ('name','=','view_vat_listing')])
resource_id = obj_model_data.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id']
diff --git a/addons/l10n_be/wizard/l10n_be_vat_intra.py b/addons/l10n_be/wizard/l10n_be_vat_intra.py
index fa298ca5124..a572c3b83b4 100644
--- a/addons/l10n_be/wizard/l10n_be_vat_intra.py
+++ b/addons/l10n_be/wizard/l10n_be_vat_intra.py
@@ -108,7 +108,7 @@ class partner_vat_intra(osv.osv_memory):
# Get Company vat
company_vat = data_company.partner_id.vat
if not company_vat:
- raise osv.except_osv(_('insufficient data!'),_('No VAT number associated with your company.'))
+ raise osv.except_osv(_('Insufficient Data!'),_('No VAT number associated with your company.'))
company_vat = company_vat.replace(' ','').upper()
issued_by = company_vat[:2]
From 3b73e2b2a48f0e9b48256f97fa361156f58756c4 Mon Sep 17 00:00:00 2001
From: ggh-openerp
Date: Mon, 29 Apr 2013 12:45:57 +0530
Subject: [PATCH 035/164] [IMP]Removed space before Exclamation marks [!]
bzr revid: ggh@tinyerp.com-20130429071557-vnxo5nni03vc886j
---
addons/account/account.py | 12 ++++++------
addons/account/account_bank_statement.py | 2 +-
addons/account/account_cash_statement.py | 2 +-
addons/account/account_invoice.py | 10 +++++-----
addons/account/account_move_line.py | 6 +++---
addons/account/installer.py | 2 +-
.../account_analytic_analysis.py | 2 +-
.../account_analytic_plans.py | 4 ++--
addons/account_voucher/account_voucher.py | 2 +-
.../analytic_user_function.py | 4 ++--
addons/anonymization/anonymization.py | 10 +++++-----
addons/base_status/base_state.py | 2 +-
addons/crm/wizard/crm_lead_to_opportunity.py | 2 +-
addons/delivery/sale.py | 4 ++--
.../hr_attendance/wizard/hr_attendance_error.py | 2 +-
.../wizard/hr_payroll_payslips_by_employees.py | 2 +-
.../hr_timesheet_invoice/hr_timesheet_invoice.py | 2 +-
addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py | 8 ++++----
addons/l10n_lu/wizard/print_vat.py | 2 +-
addons/mrp_operations/mrp_operations.py | 4 ++--
addons/mrp_repair/mrp_repair.py | 4 ++--
addons/point_of_sale/point_of_sale.py | 4 ++--
.../point_of_sale/wizard/pos_open_statement.py | 2 +-
addons/procurement/procurement.py | 2 +-
addons/project/project.py | 4 ++--
addons/project_gtd/wizard/project_gtd_empty.py | 2 +-
addons/project_timesheet/project_timesheet.py | 10 +++++-----
addons/sale/sale.py | 4 ++--
addons/sale_crm/wizard/crm_make_sale.py | 2 +-
addons/stock/stock.py | 4 ++--
addons/subscription/subscription.py | 4 ++--
addons/warning/warning.py | 16 ++++++++--------
32 files changed, 71 insertions(+), 71 deletions(-)
diff --git a/addons/account/account.py b/addons/account/account.py
index 3959799f1bb..cca3db63d29 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -648,10 +648,10 @@ class account_account(osv.osv):
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
#Check for 'Closed' type
if old_type == 'closed' and new_type !='closed':
- raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from 'Closed' to any other type as it contains journal items!"))
+ raise osv.except_osv(_('Warning!'), _("You cannot change the type of account from 'Closed' to any other type as it contains journal items!"))
# Forbid to change an account type for restricted_groups as it contains journal items (or if one of its children does)
if (new_type in restricted_groups):
- raise osv.except_osv(_('Warning !'), _("You cannot change the type of account to '%s' type as it contains journal items!") % (new_type,))
+ raise osv.except_osv(_('Warning!'), _("You cannot change the type of account to '%s' type as it contains journal items!") % (new_type,))
return True
@@ -1015,14 +1015,14 @@ class account_period(osv.osv):
if not result:
result = self.search(cr, uid, args, context=context)
if not result:
- raise osv.except_osv(_('Error !'), _('There is no period defined for this date: %s.\nPlease create one.')%dt)
+ raise osv.except_osv(_('Error!'), _('There is no period defined for this date: %s.\nPlease create one.')%dt)
return result
def action_draft(self, cr, uid, ids, *args):
mode = 'draft'
for period in self.browse(cr, uid, ids):
if period.fiscalyear_id.state == 'done':
- raise osv.except_osv(_('Warning !'), _('You can not re-open a period which belongs to closed fiscal year'))
+ raise osv.except_osv(_('Warning!'), _('You can not re-open a period which belongs to closed fiscal year'))
cr.execute('update account_journal_period set state=%s where period_id in %s', (mode, tuple(ids),))
cr.execute('update account_period set state=%s where id in %s', (mode, tuple(ids),))
return True
@@ -2307,7 +2307,7 @@ class account_model(osv.osv):
try:
entry['name'] = model.name%{'year': move_date.strftime('%Y'), 'month': move_date.strftime('%m'), 'date': move_date.strftime('%Y-%m')}
except:
- raise osv.except_osv(_('Wrong model !'), _('You have a wrong expression "%(...)s" in your model !'))
+ raise osv.except_osv(_('Wrong model!'), _('You have a wrong expression "%(...)s" in your model !'))
move_id = account_move_obj.create(cr, uid, {
'ref': entry['name'],
'period_id': period_id,
@@ -2319,7 +2319,7 @@ class account_model(osv.osv):
analytic_account_id = False
if line.analytic_account_id:
if not model.journal_id.analytic_journal_id:
- raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (model.journal_id.name,))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (model.journal_id.name,))
analytic_account_id = line.analytic_account_id.id
val = {
'move_id': move_id,
diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py
index 023765d73f0..8a15321b9c6 100644
--- a/addons/account/account_bank_statement.py
+++ b/addons/account/account_bank_statement.py
@@ -420,7 +420,7 @@ class account_bank_statement(osv.osv):
for st_line in st.line_ids:
if st_line.analytic_account_id:
if not st.journal_id.analytic_journal_id:
- raise osv.except_osv(_('No Analytic Journal !'),_("You have to assign an analytic journal on the '%s' journal!") % (st.journal_id.name,))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You have to assign an analytic journal on the '%s' journal!") % (st.journal_id.name,))
if not st_line.amount:
continue
st_line_number = self.get_next_st_line_number(cr, uid, st_number, st_line, context)
diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py
index 40f0ca80738..8e3e250d41c 100644
--- a/addons/account/account_cash_statement.py
+++ b/addons/account/account_cash_statement.py
@@ -252,7 +252,7 @@ class account_cash_statement(osv.osv):
for statement in statement_pool.browse(cr, uid, ids, context=context):
vals = {}
if not self._user_allow(cr, uid, statement.id, context=context):
- raise osv.except_osv(_('Error!'), (_('You do not have rights to open this %s journal !') % (statement.journal_id.name, )))
+ raise osv.except_osv(_('Error!'), (_('You do not have rights to open this %s journal!') % (statement.journal_id.name, )))
if statement.name and statement.name == '/':
c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id}
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index dd016dd8ef0..2a530da30d9 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -69,7 +69,7 @@ class account_invoice(osv.osv):
tt = type2journal.get(type_inv, 'sale')
result = self.pool.get('account.analytic.journal').search(cr, uid, [('type','=',tt)], context=context)
if not result:
- raise osv.except_osv(_('No Analytic Journal !'),_("You must define an analytic journal of type '%s'!") % (tt,))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You must define an analytic journal of type '%s'!") % (tt,))
return result[0]
def _get_type(self, cr, uid, context=None):
@@ -736,7 +736,7 @@ class account_invoice(osv.osv):
else:
ref = self._convert_ref(cr, uid, inv.number)
if not inv.journal_id.analytic_journal_id:
- raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (inv.journal_id.name,))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (inv.journal_id.name,))
il['analytic_lines'] = [(0,0, {
'name': il['name'],
'date': inv['date_invoice'],
@@ -861,7 +861,7 @@ class account_invoice(osv.osv):
if not inv.journal_id.sequence_id:
raise osv.except_osv(_('Error!'), _('Please define sequence on the journal related to this invoice.'))
if not inv.invoice_line:
- raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
+ raise osv.except_osv(_('No Invoice Lines!'), _('Please create some invoice lines.'))
if inv.move_id:
continue
@@ -882,7 +882,7 @@ class account_invoice(osv.osv):
group_check_total = self.pool.get('res.groups').browse(cr, uid, group_check_total_id, context=context)
if group_check_total and uid in [x.id for x in group_check_total.users]:
if (inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0)):
- raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe encoded total does not match the computed total.'))
+ raise osv.except_osv(_('Bad total!'), _('Please verify the price of the invoice!\nThe encoded total does not match the computed total.'))
if inv.payment_term:
total_fixed = total_percent = 0
@@ -1423,7 +1423,7 @@ class account_invoice_line(osv.osv):
context = dict(context)
context.update({'company_id': company_id, 'force_company': company_id})
if not partner_id:
- raise osv.except_osv(_('No Partner Defined !'),_("You must first select a partner !") )
+ raise osv.except_osv(_('No Partner Defined!'),_("You must first select a partner!") )
if not product:
if type in ('in_invoice', 'in_refund'):
return {'value': {}, 'domain':{'product_uom':[]}}
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 006e2c55f5f..a7d32cc53f9 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -192,7 +192,7 @@ class account_move_line(osv.osv):
for obj_line in self.browse(cr, uid, ids, context=context):
if obj_line.analytic_account_id:
if not obj_line.journal_id.analytic_journal_id:
- raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
acc_ana_line_obj.create(cr, uid, vals_line)
return True
@@ -1101,7 +1101,7 @@ class account_move_line(osv.osv):
period = period_obj.browse(cr, uid, period_id, context=context)
for (state,) in result:
if state == 'done':
- raise osv.except_osv(_('Error !'), _('You can not add/modify entries in a closed period %s of journal %s.' % (period.name,journal.name)))
+ raise osv.except_osv(_('Error!'), _('You can not add/modify entries in a closed period %s of journal %s.' % (period.name,journal.name)))
if not result:
jour_period_obj.create(cr, uid, {
'name': (journal.code or journal.name)+':'+(period.name or ''),
@@ -1181,7 +1181,7 @@ class account_move_line(osv.osv):
move_id = move_obj.create(cr, uid, v, context)
vals['move_id'] = move_id
else:
- raise osv.except_osv(_('No piece number !'), _('Cannot create an automatic sequence for this piece.\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
+ raise osv.except_osv(_('No piece number!'), _('Cannot create an automatic sequence for this piece.\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
ok = not (journal.type_control_ids or journal.account_control_ids)
if ('account_id' in vals):
account = account_obj.browse(cr, uid, vals['account_id'], context=context)
diff --git a/addons/account/installer.py b/addons/account/installer.py
index 537371d0f64..fc1161db29b 100644
--- a/addons/account/installer.py
+++ b/addons/account/installer.py
@@ -111,7 +111,7 @@ class account_installer(osv.osv_memory):
def check_unconfigured_cmp(self, cr, uid, context=None):
""" check if there are still unconfigured companies """
if not self.get_unconfigured_cmp(cr, uid, context=context):
- raise osv.except_osv(_('No unconfigured company !'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
+ raise osv.except_osv(_('No unconfigured company!'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
if context is None: context = {}
diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index 33ab3be209c..c318bbc3363 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -641,7 +641,7 @@ class account_analytic_account(osv.osv):
fpos_obj = self.pool.get('account.fiscal.position')
if not contract.partner_id:
- raise osv.except_osv(_('No Customer Defined !'),_("You must first select a Customer for Contract %s!") % contract.name )
+ raise osv.except_osv(_('No Customer Defined!'),_("You must first select a Customer for Contract %s!") % contract.name )
fpos = contract.partner_id.property_account_position.id or False
journal_ids = journal_obj.search(cr, uid, [('type', '=','sale'),('company_id', '=', contract.company_id.id or False)], limit=1)
diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py
index 54b15ad565b..4cf12098fff 100644
--- a/addons/account_analytic_plans/account_analytic_plans.py
+++ b/addons/account_analytic_plans/account_analytic_plans.py
@@ -332,7 +332,7 @@ class account_move_line(osv.osv):
for line in self.browse(cr, uid, ids, context=context):
if line.analytics_id:
if not line.journal_id.analytic_journal_id:
- raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal.") % (line.journal_id.name,))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal.") % (line.journal_id.name,))
toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context)
if toremove:
@@ -471,7 +471,7 @@ class account_bank_statement(osv.osv):
for st_line in st.line_ids:
if st_line.analytics_id:
if not st.journal_id.analytic_journal_id:
- raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal.") % (st.journal_id.name,))
+ raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal.") % (st.journal_id.name,))
if not st_line.amount:
continue
return True
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index b176c3b8fd9..52d44e84d48 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -965,7 +965,7 @@ class account_voucher(osv.osv):
name = voucher_brw.number
elif voucher_brw.journal_id.sequence_id:
if not voucher_brw.journal_id.sequence_id.active:
- raise osv.except_osv(_('Configuration Error !'),
+ raise osv.except_osv(_('Configuration Error!'),
_('Please activate the sequence of selected journal !'))
c = dict(context)
c.update({'fiscalyear_id': voucher_brw.period_id.fiscalyear_id.id})
diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py
index 0573292c1f6..1adefb2d59d 100644
--- a/addons/analytic_user_function/analytic_user_function.py
+++ b/addons/analytic_user_function/analytic_user_function.py
@@ -104,7 +104,7 @@ class hr_analytic_timesheet(osv.osv):
a = r.product_id.categ_id.property_account_expense_categ.id
if not a:
raise osv.except_osv(_('Error!'),
- _('There is no expense account define ' \
+ _('There is no expense account defined ' \
'for this product: "%s" (id:%d)') % \
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
@@ -133,7 +133,7 @@ class hr_analytic_timesheet(osv.osv):
a = r.product_id.categ_id.property_account_expense_categ.id
if not a:
raise osv.except_osv(_('Error!'),
- _('There is no expense account define ' \
+ _('There is no expense account defined ' \
'for this product: "%s" (id:%d)') % \
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py
index 025f1f79f70..a79305ea5b7 100644
--- a/addons/anonymization/anonymization.py
+++ b/addons/anonymization/anonymization.py
@@ -86,11 +86,11 @@ class ir_model_fields_anonymization(osv.osv):
if context.get('manual'):
global_state = self._get_global_state(cr, uid, context=context)
if global_state == 'anonymized':
- raise osv.except_osv('Error !', "The database is currently anonymized, you cannot create, modify or delete fields.")
+ raise osv.except_osv('Error!', "The database is currently anonymized, you cannot create, modify or delete fields.")
elif global_state == 'unstable':
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
" while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields.")
- raise osv.except_osv('Error !', msg)
+ raise osv.except_osv('Error!', msg)
return True
@@ -357,7 +357,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
else:
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
" while some fields are not anonymized. You should try to solve this problem before trying to do anything else.")
- raise osv.except_osv('Error !', msg)
+ raise osv.except_osv('Error!', msg)
res['arch'] = etree.tostring(eview)
@@ -521,11 +521,11 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
# check that all the defined fields are in the 'anonymized' state
state = ir_model_fields_anonymization_model._get_global_state(cr, uid, context=context)
if state == 'clear':
- raise osv.except_osv_('Error !', "The database is not currently anonymized, you cannot reverse the anonymization.")
+ raise osv.except_osv_('Error!', "The database is not currently anonymized, you cannot reverse the anonymization.")
elif state == 'unstable':
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
" while some fields are not anonymized. You should try to solve this problem before trying to do anything.")
- raise osv.except_osv('Error !', msg)
+ raise osv.except_osv('Error!', msg)
wizards = self.browse(cr, uid, ids, context=context)
for wizard in wizards:
diff --git a/addons/base_status/base_state.py b/addons/base_status/base_state.py
index b856bbd74ad..3fe59ecbd21 100644
--- a/addons/base_status/base_state.py
+++ b/addons/base_status/base_state.py
@@ -104,7 +104,7 @@ class base_state(object):
if parent_id.change_responsible and parent_id.user_id:
data['user_id'] = parent_id.user_id.id
else:
- raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.'))
+ raise osv.except_osv(_('Error!'), _('You can not escalate, you are already at the top level regarding your sales-team category.'))
self.write(cr, uid, [case.id], data, context=context)
case.case_escalate_send_note(parent_id, context=context)
return True
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index e67b7c0c7be..3c847ade42a 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -86,7 +86,7 @@ class crm_lead2opportunity_partner(osv.osv_memory):
lead_obj = self.pool.get('crm.lead')
for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context):
if lead.state in ['done', 'cancel']:
- raise osv.except_osv(_("Warning !"), _("Closed/Cancelled leads cannot be converted into opportunities."))
+ raise osv.except_osv(_("Warning!"), _("Closed/Cancelled leads cannot be converted into opportunities."))
return False
def _convert_opportunity(self, cr, uid, ids, vals, context=None):
diff --git a/addons/delivery/sale.py b/addons/delivery/sale.py
index 86a518ebca9..de7411bec67 100644
--- a/addons/delivery/sale.py
+++ b/addons/delivery/sale.py
@@ -51,10 +51,10 @@ class sale_order(osv.osv):
for order in self.browse(cr, uid, ids, context=context):
grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id)
if not grid_id:
- raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !'))
+ raise osv.except_osv(_('No Grid Available!'), _('No grid matching for this carrier!'))
if not order.state in ('draft'):
- raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
+ raise osv.except_osv(_('Order Not In Draft State!'), _('The order state have to be draft to add delivery lines.'))
grid = grid_obj.browse(cr, uid, grid_id, context=context)
diff --git a/addons/hr_attendance/wizard/hr_attendance_error.py b/addons/hr_attendance/wizard/hr_attendance_error.py
index 137bac30215..82d75149428 100644
--- a/addons/hr_attendance/wizard/hr_attendance_error.py
+++ b/addons/hr_attendance/wizard/hr_attendance_error.py
@@ -46,7 +46,7 @@ class hr_attendance_error(osv.osv_memory):
cr.execute("SELECT id FROM hr_attendance WHERE employee_id IN %s AND to_char(name,'YYYY-mm-dd')<=%s AND to_char(name,'YYYY-mm-dd')>=%s AND action IN %s ORDER BY name" ,(tuple(context['active_ids']), date_to, date_from, tuple(['sign_in','sign_out'])))
attendance_ids = [x[0] for x in cr.fetchall()]
if not attendance_ids:
- raise osv.except_osv(_('No Data Available !'), _('No records are found for your selection!'))
+ raise osv.except_osv(_('No Data Available!'), _('No records are found for your selection!'))
attendance_records = self.pool.get('hr.attendance').browse(cr, uid, attendance_ids, context=context)
for rec in attendance_records:
diff --git a/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py b/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py
index 5837472be5f..3bf8b339300 100644
--- a/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py
+++ b/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py
@@ -49,7 +49,7 @@ class hr_payslip_employees(osv.osv_memory):
to_date = run_data.get('date_end', False)
credit_note = run_data.get('credit_note', False)
if not data['employee_ids']:
- raise osv.except_osv(_("Warning !"), _("You must select employee(s) to generate payslip(s)."))
+ raise osv.except_osv(_("Warning!"), _("You must select employee(s) to generate payslip(s)."))
for emp in emp_pool.browse(cr, uid, data['employee_ids'], context=context):
slip_data = slip_pool.onchange_employee_id(cr, uid, [], from_date, to_date, emp.id, contract_id=False, context=context)
res = {
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index f8c27bded5e..4e2e7911094 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -181,7 +181,7 @@ class account_analytic_line(osv.osv):
for account in analytic_account_obj.browse(cr, uid, list(account_ids), context=context):
partner = account.partner_id
if (not partner) or not (account.pricelist_id):
- raise osv.except_osv(_('Analytic Account incomplete !'),
+ raise osv.except_osv(_('Analytic Account incomplete!'),
_('Contract incomplete. Please fill in the Customer and Pricelist fields.'))
date_due = False
diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
index 348bb71c95e..fc715ece5b8 100644
--- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
+++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py
@@ -103,7 +103,7 @@ class payroll_advice(osv.osv):
slip_ids = payslip_pool.search(cr, uid, [('date_from', '<=', advice.date), ('date_to', '>=', advice.date), ('state', '=', 'done')], context=context)
for slip in payslip_pool.browse(cr, uid, slip_ids, context=context):
if not slip.employee_id.bank_account_id and not slip.employee_id.bank_account_id.acc_number:
- raise osv.except_osv(_('Error !'), _('Please define bank account for the %s employee') % (slip.employee_id.name))
+ raise osv.except_osv(_('Error!'), _('Please define bank account for the %s employee') % (slip.employee_id.name))
line_ids = payslip_line_pool.search(cr, uid, [ ('slip_id', '=', slip.id), ('code', '=', 'NET')], context=context)
if line_ids:
line = payslip_line_pool.browse(cr, uid, line_ids, context=context)[0]
@@ -129,7 +129,7 @@ class payroll_advice(osv.osv):
seq_obj = self.pool.get('ir.sequence')
for advice in self.browse(cr, uid, ids, context=context):
if not advice.line_ids:
- raise osv.except_osv(_('Error !'), _('You can not confirm Payment advice without advice lines.'))
+ raise osv.except_osv(_('Error!'), _('You can not confirm Payment advice without advice lines.'))
advice_date = datetime.strptime(advice.date, DATETIME_FORMAT)
advice_year = advice_date.strftime('%m') + '-' + advice_date.strftime('%Y')
number = seq_obj.get(cr, uid, 'payment.advice')
@@ -183,7 +183,7 @@ class hr_payslip_run(osv.osv):
users = self.pool.get('res.users').browse(cr, uid, [uid], context=context)
for run in self.browse(cr, uid, ids, context=context):
if run.available_advice:
- raise osv.except_osv(_('Error !'), _("Payment advice already exists for %s, 'Set to Draft' to create a new advice.") %(run.name))
+ raise osv.except_osv(_('Error!'), _("Payment advice already exists for %s, 'Set to Draft' to create a new advice.") %(run.name))
advice_data = {
'batch_id': run.id,
'company_id': users[0].company_id.id,
@@ -201,7 +201,7 @@ class hr_payslip_run(osv.osv):
for slip in payslip_pool.browse(cr, uid, slip_ids, context=context):
if not slip.employee_id.bank_account_id or not slip.employee_id.bank_account_id.acc_number:
- raise osv.except_osv(_('Error !'), _('Please define bank account for the %s employee') % (slip.employee_id.name))
+ raise osv.except_osv(_('Error!'), _('Please define bank account for the %s employee') % (slip.employee_id.name))
line_ids = payslip_line_pool.search(cr, uid, [('slip_id', '=', slip.id), ('code', '=', 'NET')], context=context)
if line_ids:
line = payslip_line_pool.browse(cr, uid, line_ids, context=context)[0]
diff --git a/addons/l10n_lu/wizard/print_vat.py b/addons/l10n_lu/wizard/print_vat.py
index bfa058720d3..74b8a80b1c8 100644
--- a/addons/l10n_lu/wizard/print_vat.py
+++ b/addons/l10n_lu/wizard/print_vat.py
@@ -64,7 +64,7 @@ class report_custom(report_int):
self.obj.render()
return (self.obj.pdf, 'pdf')
except Exception:
- raise osv.except_osv(_('pdf not created !'), _('Please check if package pdftk is installed!'))
+ raise osv.except_osv(_('pdf not created!'), _('Please check if package pdftk is installed!'))
report_custom('report.l10n_lu.tax.report.print')
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index d6f026530dc..87861ba8fc6 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -128,7 +128,7 @@ class mrp_production_workcenter_line(osv.osv):
elif prod_obj.state =='in_production':
return
else:
- raise osv.except_osv(_('Error!'),_('Manufacturing order cannot start in state "%s"!') % (prod_obj.state,))
+ raise osv.except_osv(_('Error!'),_('Manufacturing order cannot be started in state "%s"!') % (prod_obj.state,))
else:
oper_ids = self.search(cr,uid,[('production_id','=',prod_obj.id)])
obj = self.browse(cr,uid,oper_ids)
@@ -443,7 +443,7 @@ class mrp_operations_operation(osv.osv):
if not oper_objs:
if code.start_stop!='start':
- raise osv.except_osv(_('Sorry!'),_('Operation is not started yet !'))
+ raise osv.except_osv(_('Sorry!'),_('Operation is not started yet!'))
return False
else:
for oper in oper_objs:
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index 43ee34b0c05..f7b082db74b 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -365,7 +365,7 @@ class mrp_repair(osv.osv):
if repair.state in ('draft','cancel') or repair.invoice_id:
continue
if not (repair.partner_id.id and repair.partner_invoice_id.id):
- raise osv.except_osv(_('No partner !'),_('You have to select a Partner Invoice Address in the repair form !'))
+ raise osv.except_osv(_('No partner!'),_('You have to select a Partner Invoice Address in the repair form!'))
comment = repair.quotation_notes
if (repair.invoice_method != 'none'):
if group and repair.partner_invoice_id.id in invoices_group:
@@ -582,7 +582,7 @@ class ProductChangeMixin(object):
result['product_uom'] = product_obj.uom_id and product_obj.uom_id.id or False
if not pricelist:
warning = {
- 'title':'No Pricelist !',
+ 'title':'No Pricelist!',
'message':
'You have to select a pricelist in the Repair form !\n'
'Please set one before choosing a product.'
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index a4f2a30387a..089c577e940 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -545,7 +545,7 @@ class pos_order(osv.osv):
def unlink(self, cr, uid, ids, context=None):
for rec in self.browse(cr, uid, ids, context=context):
if rec.state not in ('draft','cancel'):
- raise osv.except_osv(_('Unable to Delete !'), _('In order to delete a sale, it must be new or cancelled.'))
+ raise osv.except_osv(_('Unable to Delete!'), _('In order to delete a sale, it must be new or cancelled.'))
return super(pos_order, self).unlink(cr, uid, ids, context=context)
def onchange_partner_id(self, cr, uid, ids, part=False, context=None):
@@ -1163,7 +1163,7 @@ class pos_order_line(osv.osv):
if not product_id:
return {}
if not pricelist:
- raise osv.except_osv(_('No Pricelist !'),
+ raise osv.except_osv(_('No Pricelist!'),
_('You have to select a pricelist in the sale form !\n' \
'Please set one before choosing a product.'))
diff --git a/addons/point_of_sale/wizard/pos_open_statement.py b/addons/point_of_sale/wizard/pos_open_statement.py
index 97ffad805b7..30e407d2ad0 100644
--- a/addons/point_of_sale/wizard/pos_open_statement.py
+++ b/addons/point_of_sale/wizard/pos_open_statement.py
@@ -46,7 +46,7 @@ class pos_open_statement(osv.osv_memory):
st_ids = []
j_ids = journal_obj.search(cr, uid, [('journal_user','=',1)], context=context)
if not j_ids:
- raise osv.except_osv(_('No Cash Register Defined !'), _('You have to define which payment method must be available in the point of sale by reusing existing bank and cash through "Accounting / Configuration / Journals / Journals". Select a journal and check the field "PoS Payment Method" from the "Point of Sale" tab. You can also create new payment methods directly from menu "PoS Backend / Configuration / Payment Methods".'))
+ raise osv.except_osv(_('No Cash Register Defined!'), _('You have to define which payment method must be available in the point of sale by reusing existing bank and cash through "Accounting / Configuration / Journals / Journals". Select a journal and check the field "PoS Payment Method" from the "Point of Sale" tab. You can also create new payment methods directly from menu "PoS Backend / Configuration / Payment Methods".'))
for journal in journal_obj.browse(cr, uid, j_ids, context=context):
ids = statement_obj.search(cr, uid, [('state', '!=', 'confirm'), ('user_id', '=', uid), ('journal_id', '=', journal.id)], context=context)
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index 672859db909..93b9417bded 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -307,7 +307,7 @@ class procurement_order(osv.osv):
move_obj = self.pool.get('stock.move')
for procurement in self.browse(cr, uid, ids, context=context):
if procurement.product_qty <= 0.00:
- raise osv.except_osv(_('Data Insufficient !'),
+ raise osv.except_osv(_('Data Insufficient!'),
_('Please check the quantity in procurement order(s) for the product "%s", it should not be 0 or less!' % procurement.product_id.name))
if procurement.product_id.type in ('product', 'consu'):
if not procurement.move_id:
diff --git a/addons/project/project.py b/addons/project/project.py
index 0b99356a9de..6435fef0be9 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -436,7 +436,7 @@ class project(osv.osv):
for project in projects:
if (not project.members) and force_members:
- raise osv.except_osv(_('Warning!'),_("You must assign members on the project '%s' !") % (project.name,))
+ raise osv.except_osv(_('Warning!'),_("You must assign members on the project '%s'!") % (project.name,))
resource_pool = self.pool.get('resource.resource')
@@ -941,7 +941,7 @@ class task(base_stage, osv.osv):
if task.child_ids:
for child in task.child_ids:
if child.state in ['draft', 'open', 'pending']:
- raise osv.except_osv(_("Warning !"), _("Child task still open.\nPlease cancel or complete child task first."))
+ raise osv.except_osv(_("Warning!"), _("Child task still open.\nPlease cancel or complete child task first."))
return True
def action_close(self, cr, uid, ids, context=None):
diff --git a/addons/project_gtd/wizard/project_gtd_empty.py b/addons/project_gtd/wizard/project_gtd_empty.py
index 36c64cbc224..3233e2534af 100644
--- a/addons/project_gtd/wizard/project_gtd_empty.py
+++ b/addons/project_gtd/wizard/project_gtd_empty.py
@@ -49,7 +49,7 @@ class project_timebox_empty(osv.osv_memory):
ids = obj_tb.search(cr, uid, [], context=context)
if not len(ids):
- raise osv.except_osv(_('Error!'), _('No timebox child of this one !'))
+ raise osv.except_osv(_('Error!'), _('No timebox child of this one!'))
tids = obj_task.search(cr, uid, [('timebox_id', '=', context['active_id'])])
for task in obj_task.browse(cr, uid, tids, context):
if (task.state in ('cancel','done')) or (task.user_id.id <> uid):
diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py
index ffee600f5a7..767cb4893b5 100644
--- a/addons/project_timesheet/project_timesheet.py
+++ b/addons/project_timesheet/project_timesheet.py
@@ -79,22 +79,22 @@ class project_work(osv.osv):
emp_id = emp_obj.search(cr, uid, [('user_id', '=', user_id)])
if not emp_id:
user_name = self.pool.get('res.users').read(cr, uid, [user_id], ['name'])[0]['name']
- raise osv.except_osv(_('Bad Configuration !'),
+ raise osv.except_osv(_('Bad Configuration!'),
_('Please define employee for user "%s". You must create one.')% (user_name,))
emp = emp_obj.browse(cr, uid, emp_id[0])
if not emp.product_id:
- raise osv.except_osv(_('Bad Configuration !'),
+ raise osv.except_osv(_('Bad Configuration!'),
_('Please define product and product category property account on the related employee.\nFill in the HR Settings tab of the employee form.'))
if not emp.journal_id:
- raise osv.except_osv(_('Bad Configuration !'),
+ raise osv.except_osv(_('Bad Configuration!'),
_('Please define journal on the related employee.\nFill in the timesheet tab of the employee form.'))
acc_id = emp.product_id.property_account_expense.id
if not acc_id:
acc_id = emp.product_id.categ_id.property_account_expense_categ.id
if not acc_id:
- raise osv.except_osv(_('Bad Configuration !'),
+ raise osv.except_osv(_('Bad Configuration!'),
_('Please define product and product category property account on the related employee.\nFill in the timesheet tab of the employee form.'))
res['product_id'] = emp.product_id.id
@@ -286,7 +286,7 @@ class account_analytic_line(osv.osv):
st = acc.to_invoice.id
res['value']['to_invoice'] = st or False
if acc.state == 'close' or acc.state == 'cancelled':
- raise osv.except_osv(_('Invalid Analytic Account !'), _('You cannot select a Analytic Account which is in Close or Cancelled state.'))
+ raise osv.except_osv(_('Invalid Analytic Account!'), _('You cannot select a Analytic Account which is in Close or Cancelled state.'))
return res
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 210e4dd3be6..0f54f3fc133 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -273,7 +273,7 @@ class sale_order(osv.osv):
if s['state'] in ['draft', 'cancel']:
unlink_ids.append(s['id'])
else:
- raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sales order, you must cancel it before !'))
+ raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sales order, you must cancel it before!'))
return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
@@ -870,7 +870,7 @@ class sale_order_line(osv.osv):
context = context or {}
lang = lang or context.get('lang',False)
if not partner_id:
- raise osv.except_osv(_('No Customer Defined !'), _('Before choosing a product,\n select a customer in the sales form.'))
+ raise osv.except_osv(_('No Customer Defined!'), _('Before choosing a product,\n select a customer in the sales form.'))
warning = {}
product_uom_obj = self.pool.get('product.uom')
partner_obj = self.pool.get('res.partner')
diff --git a/addons/sale_crm/wizard/crm_make_sale.py b/addons/sale_crm/wizard/crm_make_sale.py
index 6bea6286456..0470bab4f8b 100644
--- a/addons/sale_crm/wizard/crm_make_sale.py
+++ b/addons/sale_crm/wizard/crm_make_sale.py
@@ -87,7 +87,7 @@ class crm_make_sale(osv.osv_memory):
['default', 'invoice', 'delivery', 'contact'])
pricelist = partner.property_product_pricelist.id
if False in partner_addr.values():
- raise osv.except_osv(_('Insufficient Data!'), _('No addresse(s) defined for this customer.'))
+ raise osv.except_osv(_('Insufficient Data!'), _('No addresse(es) defined for this customer.'))
vals = {
'origin': _('Opportunity: %s') % str(case.id),
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 764d9de453e..2c293ab896c 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1109,7 +1109,7 @@ class stock_picking(osv.osv):
if isinstance(partner, int):
partner = partner_obj.browse(cr, uid, [partner], context=context)[0]
if not partner:
- raise osv.except_osv(_('Error, no partner !'),
+ raise osv.except_osv(_('Error, no partner!'),
_('Please put a partner on the picking list if you want to generate invoice.'))
if not inv_type:
@@ -1763,7 +1763,7 @@ class stock_move(osv.osv):
for move in self.browse(cr, uid, ids, context=context):
if move.state == 'done':
if frozen_fields.intersection(vals):
- raise osv.except_osv(_('Operation forbidden !'),
+ raise osv.except_osv(_('Operation Forbidden!'),
_('Quantities, Units of Measure, Products and Locations cannot be modified on stock moves that have already been processed (except by the Administrator).'))
return super(stock_move, self).write(cr, uid, ids, vals, context=context)
diff --git a/addons/subscription/subscription.py b/addons/subscription/subscription.py
index b7ae720c187..98e1d78b3be 100644
--- a/addons/subscription/subscription.py
+++ b/addons/subscription/subscription.py
@@ -115,7 +115,7 @@ class subscription_subscription(osv.osv):
id = int(id)
model = self.pool[model_name]
except:
- raise osv.except_osv(_('Wrong Source Document !'), _('Please provide another source document.\nThis one does not exist !'))
+ raise osv.except_osv(_('Wrong Source Document!'), _('Please provide another source document.\nThis one does not exist!'))
default = {'state':'draft'}
doc_obj = self.pool.get('subscription.document')
@@ -142,7 +142,7 @@ class subscription_subscription(osv.osv):
def unlink(self, cr, uid, ids, context=None):
for record in self.browse(cr, uid, ids, context or {}):
if record.state=="running":
- raise osv.except_osv(_('Error!'),_('You cannot delete an active subscription !'))
+ raise osv.except_osv(_('Error!'),_('You cannot delete an active subscription!'))
return super(subscription_subscription, self).unlink(cr, uid, ids, context)
def set_done(self, cr, uid, ids, context=None):
diff --git a/addons/warning/warning.py b/addons/warning/warning.py
index e9e9161bacb..8e1168e5d35 100644
--- a/addons/warning/warning.py
+++ b/addons/warning/warning.py
@@ -63,7 +63,7 @@ class sale_order(osv.osv):
partner = self.pool.get('res.partner').browse(cr, uid, part, context=context)
if partner.sale_warn != 'no-message':
if partner.sale_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.sale_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.sale_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.sale_warn_msg
warning = {
@@ -91,7 +91,7 @@ class purchase_order(osv.osv):
partner = self.pool.get('res.partner').browse(cr, uid, part)
if partner.purchase_warn != 'no-message':
if partner.purchase_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.purchase_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.purchase_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.purchase_warn_msg
warning = {
@@ -124,7 +124,7 @@ class account_invoice(osv.osv):
partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
if partner.invoice_warn != 'no-message':
if partner.invoice_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.invoice_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.invoice_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.invoice_warn_msg
@@ -155,7 +155,7 @@ class stock_picking(osv.osv):
message = False
if partner.picking_warn != 'no-message':
if partner.picking_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.picking_warn_msg
warning = {
@@ -184,7 +184,7 @@ class stock_picking_in(osv.osv):
message = False
if partner.picking_warn != 'no-message':
if partner.picking_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.picking_warn_msg
warning = {
@@ -210,7 +210,7 @@ class stock_picking_out(osv.osv):
message = False
if partner.picking_warn != 'no-message':
if partner.picking_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
title = _("Warning for %s") % partner.name
message = partner.picking_warn_msg
warning = {
@@ -257,7 +257,7 @@ class sale_order_line(osv.osv):
if product_info.sale_line_warn != 'no-message':
if product_info.sale_line_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (product_info.name), product_info.sale_line_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (product_info.name), product_info.sale_line_warn_msg)
title = _("Warning for %s") % product_info.name
message = product_info.sale_line_warn_msg
warning['title'] = title
@@ -289,7 +289,7 @@ class purchase_order_line(osv.osv):
if product_info.purchase_line_warn != 'no-message':
if product_info.purchase_line_warn == 'block':
- raise osv.except_osv(_('Alert for %s !') % (product_info.name), product_info.purchase_line_warn_msg)
+ raise osv.except_osv(_('Alert for %s!') % (product_info.name), product_info.purchase_line_warn_msg)
title = _("Warning for %s") % product_info.name
message = product_info.purchase_line_warn_msg
warning['title'] = title
From e8ef63e0c0120cc8381551def5852c7e64311406 Mon Sep 17 00:00:00 2001
From: ggh-openerp
Date: Mon, 29 Apr 2013 14:59:24 +0530
Subject: [PATCH 036/164] [IMP] Improve warning title
bzr revid: ggh@tinyerp.com-20130429092924-2qgaxvkfb801q4dl
---
addons/account_voucher/account_voucher.py | 2 +-
addons/edi/models/edi.py | 2 +-
addons/hr_timesheet_invoice/hr_timesheet_invoice.py | 2 +-
addons/l10n_lu/wizard/print_vat.py | 2 +-
addons/portal/wizard/portal_wizard.py | 2 +-
addons/share/wizard/share_wizard.py | 4 ++--
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index 52d44e84d48..2163c735735 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -1535,7 +1535,7 @@ class account_bank_statement(osv.osv):
for bk_st in self.browse(cr, uid, ids, context=context):
if vals.get('journal_id') and bk_st.line_ids:
if any([x.voucher_id and True or False for x in bk_st.line_ids]):
- raise osv.except_osv(_('Unable to change journal !'), _('You can not change the journal as you already reconciled some statement lines!'))
+ raise osv.except_osv(_('Unable To Change Journal!'), _('You can not change the journal as you already reconciled some statement lines!'))
return super(account_bank_statement, self).write(cr, uid, ids, vals, context=context)
diff --git a/addons/edi/models/edi.py b/addons/edi/models/edi.py
index bfd59dae15a..1b9e0c4df08 100644
--- a/addons/edi/models/edi.py
+++ b/addons/edi/models/edi.py
@@ -126,7 +126,7 @@ class edi(osv.AbstractModel):
module = edi_document.get('__import_module') or edi_document.get('__module')
assert module, 'a `__module` or `__import_module` attribute is required in each EDI document.'
if module != 'base' and not ir_module.search(cr, uid, [('name','=',module),('state','=','installed')]):
- raise osv.except_osv(_('Missing application.'),
+ raise osv.except_osv(_('Missing Application.'),
_("The document you are trying to import requires the OpenERP `%s` application. "
"You can install it by connecting as the administrator and opening the configuration assistant.")%(module,))
model = edi_document.get('__import_model') or edi_document.get('__model')
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 4e2e7911094..6c4f6022c39 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -181,7 +181,7 @@ class account_analytic_line(osv.osv):
for account in analytic_account_obj.browse(cr, uid, list(account_ids), context=context):
partner = account.partner_id
if (not partner) or not (account.pricelist_id):
- raise osv.except_osv(_('Analytic Account incomplete!'),
+ raise osv.except_osv(_('Analytic Account Incomplete!'),
_('Contract incomplete. Please fill in the Customer and Pricelist fields.'))
date_due = False
diff --git a/addons/l10n_lu/wizard/print_vat.py b/addons/l10n_lu/wizard/print_vat.py
index 74b8a80b1c8..04d4fe9a3b7 100644
--- a/addons/l10n_lu/wizard/print_vat.py
+++ b/addons/l10n_lu/wizard/print_vat.py
@@ -64,7 +64,7 @@ class report_custom(report_int):
self.obj.render()
return (self.obj.pdf, 'pdf')
except Exception:
- raise osv.except_osv(_('pdf not created!'), _('Please check if package pdftk is installed!'))
+ raise osv.except_osv(_('PDF Not Created!'), _('Please check if package pdftk is installed!'))
report_custom('report.l10n_lu.tax.report.print')
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index e3047cd5edb..61b23f4f07b 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -190,7 +190,7 @@ class wizard_user(osv.osv_memory):
this_context = context
this_user = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context)
if not this_user.email:
- raise osv.except_osv(_('Email required'),
+ raise osv.except_osv(_('Email Required'),
_('You must have an email address in your User Preferences to send emails.'))
# determine subject and body in the portal user's language
diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py
index 3a26dcb9e6b..c70164749fd 100644
--- a/addons/share/wizard/share_wizard.py
+++ b/addons/share/wizard/share_wizard.py
@@ -831,7 +831,7 @@ class share_wizard(osv.TransientModel):
notification_obj = self.pool.get('mail.notification')
user = self.pool.get('res.users').browse(cr, UID_ROOT, uid)
if not user.email:
- raise osv.except_osv(_('Email required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.'))
+ raise osv.except_osv(_('Email Required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.'))
# TODO: also send an HTML version of this mail
for result_line in wizard_data.result_line_ids:
@@ -862,7 +862,7 @@ class share_wizard(osv.TransientModel):
mail_mail = self.pool.get('mail.mail')
user = self.pool.get('res.users').browse(cr, UID_ROOT, uid)
if not user.email:
- raise osv.except_osv(_('Email required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.'))
+ raise osv.except_osv(_('Email Required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.'))
# TODO: also send an HTML version of this mail
mail_ids = []
From b15a01ff1e9131b363c0a695912ee39aa1d1a590 Mon Sep 17 00:00:00 2001
From: ggh-openerp
Date: Mon, 29 Apr 2013 15:58:55 +0530
Subject: [PATCH 037/164] [IMP] Improved typos in warning
bzr revid: ggh@tinyerp.com-20130429102855-jrixaqvo4xqc2fix
---
addons/web/static/src/js/chrome.js | 21 +++---
addons/web/static/src/js/view_form.js | 97 ++++++++++++++++++++-------
2 files changed, 80 insertions(+), 38 deletions(-)
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 3870a7999b4..f357f6ac2e6 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -251,9 +251,9 @@ instance.web.CrashManager = instance.web.Class.extend({
if (handler) {
new (handler)(this, error).display();
return;
- };
+ }
if (error.data.name === "openerp.addons.web.session SessionExpiredException") {
- this.show_warning({type: "Session Expired", data: { message: "Your OpenERP session expired. Please refresh the current web page." }});
+ this.show_warning({type: "Session Expired", data: { message: _t("Your OpenERP session expired. Please refresh the current web page.") }});
return;
}
if (error.data.exception_type === "except_osv" || error.data.exception_type === "warning"
@@ -530,16 +530,11 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
'login': 'admin',
'password': form_obj['create_admin_pwd'],
'login_successful': function() {
- var action = {
- type: "ir.actions.client",
- tag: 'reload',
- params: {
- url_search : {
- db: form_obj['db_name'],
- },
- }
- };
- self.do_action(action);
+ var url = '/?db=' + form_obj['db_name'];
+ if (self.session.debug) {
+ url += '&debug';
+ }
+ instance.web.redirect(url);
},
},
_push_me: false,
@@ -1374,7 +1369,7 @@ instance.web.WebClient = instance.web.Client.extend({
if (browser_offset !== user_offset) {
var $icon = $(QWeb.render('WebClient.timezone_systray'));
$icon.on('click', function() {
- var notification = self.do_warn(_t("Timezone mismatch"), QWeb.render('WebClient.timezone_notification', {
+ var notification = self.do_warn(_t("Timezone Mismatch"), QWeb.render('WebClient.timezone_notification', {
user_timezone: instance.session.user_context.tz || 'UTC',
user_offset: user_offset,
browser_offset: browser_offset,
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 53a7425c036..3269e07c186 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -765,7 +765,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
this.has_been_loaded.done(function() {
if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) {
self.dataset.unlink([self.datarecord.id]).done(function() {
- self.execute_pager_action('next');
+ if (self.dataset.size()) {
+ self.execute_pager_action('next');
+ } else {
+ self.do_action('history_back');
+ }
def.resolve();
});
} else {
@@ -802,6 +806,8 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
if (save_obj.error)
return $.Deferred().reject();
return $.when.apply($, save_obj.ret);
+ }).done(function() {
+ self.$el.removeClass('oe_form_dirty');
});
},
_process_save: function(save_obj) {
@@ -1021,7 +1027,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
return value;
}
var fields = _.chain(this.fields)
- .map(function (field, name) {
+ .map(function (field) {
var value = field.get_value();
// ignore fields which are empty, invisible, readonly, o2m
// or m2m
@@ -1036,7 +1042,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
}
return {
- name: name,
+ name: field.name,
string: field.string,
value: value,
displayed: display(field, value),
@@ -1047,10 +1053,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
.value();
var conditions = _.chain(self.fields)
.filter(function (field) { return field.field.change_default; })
- .map(function (field, name) {
+ .map(function (field) {
var value = field.get_value();
return {
- name: name,
+ name: field.name,
string: field.string,
value: value,
displayed: display(field, value),
@@ -1444,6 +1450,9 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
$(this).children().each(function() {
var $td = $(this),
$child = $td.children(':first');
+ if ($child.attr('cell-class')) {
+ $td.addClass($child.attr('cell-class'));
+ }
switch ($child[0].tagName.toLowerCase()) {
case 'separator':
break;
@@ -1520,7 +1529,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
if (! page.__ic)
return;
page.__ic.on("change:effective_invisible", null, function() {
- if (!page.__ic.get('effective_invisible')) {
+ if (!page.__ic.get('effective_invisible') && page.autofocus) {
$new_notebook.tabs('select', i);
return;
}
@@ -2126,7 +2135,7 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w
value without triggering a re-rendering.
*/
internal_set_value: function(value_) {
- var tmp = this.no_render;
+ var tmp = this.no_rerender;
this.no_rerender = true;
this.set({'value': value_});
this.no_rerender = tmp;
@@ -2296,7 +2305,8 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(instance.we
return this.get('value') === '' || this._super();
},
focus: function() {
- this.$('input:first')[0].focus();
+ var input = this.$('input:first')[0];
+ return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -2333,7 +2343,7 @@ instance.web.form.FieldEmail = instance.web.form.FieldChar.extend({
},
on_button_clicked: function() {
if (!this.get('value') || !this.is_syntax_valid()) {
- this.do_warn(_t("E-mail error"), _t("Can't send email to invalid e-mail address"));
+ this.do_warn(_t("E-mail Error"), _t("Can't send email to invalid e-mail address"));
} else {
location.href = 'mailto:' + this.get('value');
}
@@ -2363,7 +2373,7 @@ instance.web.form.FieldUrl = instance.web.form.FieldChar.extend({
},
on_button_clicked: function() {
if (!this.get('value')) {
- this.do_warn(_t("Resource error"), _t("This resource is empty"));
+ this.do_warn(_t("Resource Error"), _t("This resource is empty"));
} else {
var url = $.trim(this.get('value'));
if(/^www\./i.test(url))
@@ -2393,7 +2403,8 @@ instance.web.form.FieldFloat = instance.web.form.FieldChar.extend({
this._super.apply(this, [value_]);
},
focus: function () {
- this.$('input:first').select();
+ var $input = this.$('input:first');
+ return $input.length ? $input.select() : false;
}
});
@@ -2413,6 +2424,42 @@ instance.web.DateTimeWidget = instance.web.Widget.extend({
this.$input = this.$el.find('input.oe_datepicker_master');
this.$input_picker = this.$el.find('input.oe_datepicker_container');
+ $.datepicker.setDefaults({
+ clearText: _t('Clear'),
+ clearStatus: _t('Erase the current date'),
+ closeText: _t('Done'),
+ closeStatus: _t('Close without change'),
+ prevText: _t(''),
+ nextStatus: _t('Show the next month'),
+ currentText: _t('Today'),
+ currentStatus: _t('Show the current month'),
+ monthNames: Date.CultureInfo.monthNames,
+ monthNamesShort: Date.CultureInfo.abbreviatedMonthNames,
+ monthStatus: _t('Show a different month'),
+ yearStatus: _t('Show a different year'),
+ weekHeader: _t('Wk'),
+ weekStatus: _t('Week of the year'),
+ dayNames: Date.CultureInfo.dayNames,
+ dayNamesShort: Date.CultureInfo.abbreviatedDayNames,
+ dayNamesMin: Date.CultureInfo.shortestDayNames,
+ dayStatus: _t('Set DD as first week day'),
+ dateStatus: _t('Select D, M d'),
+ firstDay: Date.CultureInfo.firstDayOfWeek,
+ initStatus: _t('Select a date'),
+ isRTL: false
+ });
+ $.timepicker.setDefaults({
+ timeOnlyTitle: _t('Choose Time'),
+ timeText: _t('Time'),
+ hourText: _t('Hour'),
+ minuteText: _t('Minute'),
+ secondText: _t('Second'),
+ currentText: _t('Now'),
+ closeText: _t('Done')
+ });
+
this.picker({
onClose: this.on_picker_select,
onSelect: this.on_picker_select,
@@ -2539,9 +2586,8 @@ instance.web.form.FieldDatetime = instance.web.form.AbstractField.extend(instanc
return this.get('value') === '' || this._super();
},
focus: function() {
- if (this.datewidget && this.datewidget.$input) {
- this.datewidget.$input[0].focus();
- }
+ var input = this.datewidget && this.datewidget.$input[0];
+ return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -2622,9 +2668,8 @@ instance.web.form.FieldText = instance.web.form.AbstractField.extend(instance.we
return this.get('value') === '' || this._super();
},
focus: function($el) {
- if (!this.get("effective_readonly") && this.$textarea) {
- this.$textarea[0].focus();
- }
+ var input = !this.get("effective_readonly") && this.$textarea && this.$textarea[0];
+ return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -2707,7 +2752,8 @@ instance.web.form.FieldBoolean = instance.web.form.AbstractField.extend({
this.$checkbox[0].checked = this.get('value');
},
focus: function() {
- this.$checkbox[0].focus();
+ var input = this.$checkbox && this.$checkbox[0];
+ return input ? input.focus() : false;
}
});
@@ -2793,7 +2839,8 @@ instance.web.form.FieldSelection = instance.web.form.AbstractField.extend(instan
}
},
focus: function() {
- this.$('select:first')[0].focus();
+ var input = this.$('select:first')[0];
+ return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -3336,7 +3383,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
}
if (! no_recurse) {
var dataset = new instance.web.DataSetStatic(this, this.field.relation, self.build_context());
- dataset.name_get([self.get("value")]).done(function(data) {
+ this.alive(dataset.name_get([self.get("value")])).done(function(data) {
self.display_value["" + self.get("value")] = data[0][1];
self.render_value(true);
});
@@ -3401,9 +3448,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
return ! this.get("value");
},
focus: function () {
- if (!this.get('effective_readonly')) {
- this.$input && this.$input[0].focus();
- }
+ var input = !this.get('effective_readonly') && this.$input && this.$input[0];
+ return input ? input.focus() : false;
},
_quick_create: function() {
this.no_ed = true;
@@ -4263,7 +4309,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
this.set({'value': _.uniq(this.get('value').concat([id]))});
},
focus: function () {
- this.$text[0].focus();
+ var input = this.$text && this.$text[0];
+ return input ? input.focus() : false;
},
set_dimensions: function (height, width) {
this._super(height, width);
@@ -5311,7 +5358,7 @@ instance.web.form.FieldMany2ManyBinaryMultiFiles = instance.web.form.AbstractFie
}
if (result.error || !result.id ) {
- this.do_warn( _t('Uploading error'), result.error);
+ this.do_warn( _t('Uploading Error'), result.error);
delete this.data[0];
} else {
if (this.data[0] && this.data[0].filename == result.filename && this.data[0].upload) {
From 1b08798b52df8f0a3a72d116577cd7451b45b30c Mon Sep 17 00:00:00 2001
From: "Vishmita Jadeja (openerp)"
Date: Tue, 30 Apr 2013 12:55:47 +0530
Subject: [PATCH 038/164] [TYPO]changes in typo
bzr revid: vja@tinyerp.com-20130430072547-7gyl7nivdc8717ua
---
addons/account/account.py | 2 +-
addons/account/account_invoice.py | 2 +-
addons/account/account_move_line.py | 2 +-
addons/account/installer.py | 2 +-
addons/account_voucher/account_voucher.py | 2 +-
addons/delivery/sale.py | 2 +-
addons/sale_crm/wizard/crm_make_sale.py | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/addons/account/account.py b/addons/account/account.py
index cca3db63d29..322207b515b 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -2307,7 +2307,7 @@ class account_model(osv.osv):
try:
entry['name'] = model.name%{'year': move_date.strftime('%Y'), 'month': move_date.strftime('%m'), 'date': move_date.strftime('%Y-%m')}
except:
- raise osv.except_osv(_('Wrong model!'), _('You have a wrong expression "%(...)s" in your model !'))
+ raise osv.except_osv(_('Wrong Model!'), _('You have a wrong expression "%(...)s" in your model!'))
move_id = account_move_obj.create(cr, uid, {
'ref': entry['name'],
'period_id': period_id,
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 2a530da30d9..6fd045fc1e8 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -882,7 +882,7 @@ class account_invoice(osv.osv):
group_check_total = self.pool.get('res.groups').browse(cr, uid, group_check_total_id, context=context)
if group_check_total and uid in [x.id for x in group_check_total.users]:
if (inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0)):
- raise osv.except_osv(_('Bad total!'), _('Please verify the price of the invoice!\nThe encoded total does not match the computed total.'))
+ raise osv.except_osv(_('Bad Total!'), _('Please verify the price of the invoice!\nThe encoded total does not match the computed total.'))
if inv.payment_term:
total_fixed = total_percent = 0
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index a7d32cc53f9..13fc4e502ae 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -1181,7 +1181,7 @@ class account_move_line(osv.osv):
move_id = move_obj.create(cr, uid, v, context)
vals['move_id'] = move_id
else:
- raise osv.except_osv(_('No piece number!'), _('Cannot create an automatic sequence for this piece.\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
+ raise osv.except_osv(_('No Piece Number!'), _('Cannot create an automatic sequence for this piece.\nPut a sequence in the journal definition for automatic numbering or create a sequence manually for this piece.'))
ok = not (journal.type_control_ids or journal.account_control_ids)
if ('account_id' in vals):
account = account_obj.browse(cr, uid, vals['account_id'], context=context)
diff --git a/addons/account/installer.py b/addons/account/installer.py
index fc1161db29b..961b8f9e763 100644
--- a/addons/account/installer.py
+++ b/addons/account/installer.py
@@ -111,7 +111,7 @@ class account_installer(osv.osv_memory):
def check_unconfigured_cmp(self, cr, uid, context=None):
""" check if there are still unconfigured companies """
if not self.get_unconfigured_cmp(cr, uid, context=context):
- raise osv.except_osv(_('No unconfigured company!'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
+ raise osv.except_osv(_('No Unconfigured Company!'), _("There is currently no company without chart of account. The wizard will therefore not be executed."))
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
if context is None: context = {}
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index 2163c735735..a9a70291f6a 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -1535,7 +1535,7 @@ class account_bank_statement(osv.osv):
for bk_st in self.browse(cr, uid, ids, context=context):
if vals.get('journal_id') and bk_st.line_ids:
if any([x.voucher_id and True or False for x in bk_st.line_ids]):
- raise osv.except_osv(_('Unable To Change Journal!'), _('You can not change the journal as you already reconciled some statement lines!'))
+ raise osv.except_osv(_('Unable to Change Journal!'), _('You can not change the journal as you already reconciled some statement lines!'))
return super(account_bank_statement, self).write(cr, uid, ids, vals, context=context)
diff --git a/addons/delivery/sale.py b/addons/delivery/sale.py
index de7411bec67..1b797290632 100644
--- a/addons/delivery/sale.py
+++ b/addons/delivery/sale.py
@@ -54,7 +54,7 @@ class sale_order(osv.osv):
raise osv.except_osv(_('No Grid Available!'), _('No grid matching for this carrier!'))
if not order.state in ('draft'):
- raise osv.except_osv(_('Order Not In Draft State!'), _('The order state have to be draft to add delivery lines.'))
+ raise osv.except_osv(_('Order not in Draft State!'), _('The order state have to be draft to add delivery lines.'))
grid = grid_obj.browse(cr, uid, grid_id, context=context)
diff --git a/addons/sale_crm/wizard/crm_make_sale.py b/addons/sale_crm/wizard/crm_make_sale.py
index 0470bab4f8b..da770af6d82 100644
--- a/addons/sale_crm/wizard/crm_make_sale.py
+++ b/addons/sale_crm/wizard/crm_make_sale.py
@@ -87,7 +87,7 @@ class crm_make_sale(osv.osv_memory):
['default', 'invoice', 'delivery', 'contact'])
pricelist = partner.property_product_pricelist.id
if False in partner_addr.values():
- raise osv.except_osv(_('Insufficient Data!'), _('No addresse(es) defined for this customer.'))
+ raise osv.except_osv(_('Insufficient Data!'), _('No address(es) defined for this customer.'))
vals = {
'origin': _('Opportunity: %s') % str(case.id),
From 1c4bdf3061e7e4474ab50a0a5d197f2f39403854 Mon Sep 17 00:00:00 2001
From: Guewen Baconnier
Date: Tue, 7 May 2013 13:53:06 +0200
Subject: [PATCH 039/164] [FIX] context is not propagated through
account_period.name_search to account_period.search
lp bug: https://launchpad.net/bugs/1177348 fixed
bzr revid: guewen.baconnier@camptocamp.com-20130507115306-lrnb0t3139lfxtie
---
addons/account/account.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/addons/account/account.py b/addons/account/account.py
index 58c4cf447ef..ea3303dc10c 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1040,9 +1040,15 @@ class account_period(osv.osv):
context = {}
ids = []
if name:
- ids = self.search(cr, user, [('code','ilike',name)]+ args, limit=limit)
+ ids = self.search(cr, user,
+ [('code', 'ilike', name)] + args,
+ limit=limit,
+ context=context)
if not ids:
- ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
+ ids = self.search(cr, user,
+ [('name', operator, name)] + args,
+ limit=limit,
+ context=context)
return self.name_get(cr, user, ids, context=context)
def write(self, cr, uid, ids, vals, context=None):
From 22c6b69b505b6d3427f63743c8c574a58d3a5029 Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Thu, 16 May 2013 11:16:00 +0200
Subject: [PATCH 040/164] [FIX] portal: "Portal Access Managment" can't create
or edit portal access for a contact when they are already an user with the
same login. The wizard don't display all the list of contacts related to the
selection. The wrong contact must be replace by the contact who have the
login equal to the contact email. Get all child contacts and do not filtered
by active user.
bzr revid: chm@openerp.com-20130516091600-20ukr9vbe5qa3lv8
---
addons/portal/wizard/portal_wizard.py | 33 +++++++++++++++++++++------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index e3047cd5edb..5ea4edd8308 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -83,13 +83,33 @@ class wizard(osv.osv_memory):
def onchange_portal_id(self, cr, uid, ids, portal_id, context=None):
# for each partner, determine corresponding portal.wizard.user records
+ context = dict(context or {}, active_test=False)
res_partner = self.pool.get('res.partner')
+ res_users = self.pool.get('res.users')
partner_ids = context and context.get('active_ids') or []
contact_ids = set()
user_changes = []
+ emails_used = []
+ partners_used = []
for partner in res_partner.browse(cr, SUPERUSER_ID, partner_ids, context):
- for contact in (partner.child_ids or [partner]):
+ stack = [partner]
+ while stack:
+ contact = stack.pop(0)
+ if contact.id in partners_used:
+ continue
+ partners_used.append(contact.id)
+ stack.extend(contact.child_ids)
+ if contact.email in emails_used:
+ continue
# make sure that each contact appears at most once in the list
+ if not contact.user_id:
+ # search user with the same login/email
+ domain = [('partner_id', '!=', contact.id), ('login', '=', contact.email)]
+ user_ids = res_users.search(cr, uid, domain, context=context)
+ user = user_ids and res_users.browse(cr, uid, user_ids[0], context=context) or False
+ if user:
+ contact = user.partner_id
+ stack.extend(contact.child_ids)
if contact.id not in contact_ids:
contact_ids.add(contact.id)
in_portal = False
@@ -100,6 +120,7 @@ class wizard(osv.osv_memory):
'email': contact.email,
'in_portal': in_portal,
}))
+ emails_used.append(contact.email)
return {'value': {'user_ids': user_changes}}
def action_apply(self, cr, uid, ids, context=None):
@@ -158,13 +179,11 @@ class wizard_user(osv.osv_memory):
@param wizard_user: browse record of model portal.wizard.user
@return: browse record of model res.users
"""
- if wizard_user.partner_id.user_ids:
- return wizard_user.partner_id.user_ids[0]
- # the user may be inactive, search for it
+ context = dict(context or {}, active_test=False)
res_users = self.pool.get('res.users')
- domain = [('partner_id', '=', wizard_user.partner_id.id), ('active', '=', False)]
- user_ids = res_users.search(cr, uid, domain)
- return user_ids and res_users.browse(cr, uid, user_ids[0], context) or False
+ domain = [('partner_id', '=', wizard_user.partner_id.id)]
+ user_ids = res_users.search(cr, uid, domain, context=context)
+ return user_ids and res_users.browse(cr, uid, user_ids[0], context=context) or False
def _create_user(self, cr, uid, wizard_user, context=None):
""" create a new user for wizard_user.partner_id
From 1b53e9114f0f44a9883221a76579c6bb21596948 Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Thu, 16 May 2013 14:12:51 +0200
Subject: [PATCH 041/164] [IMP] Portal Access Managment: don't search by user
bzr revid: chm@openerp.com-20130516121251-lbddg5wot6el7emx
---
addons/portal/wizard/portal_wizard.py | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 5ea4edd8308..8425c752e50 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -83,33 +83,16 @@ class wizard(osv.osv_memory):
def onchange_portal_id(self, cr, uid, ids, portal_id, context=None):
# for each partner, determine corresponding portal.wizard.user records
- context = dict(context or {}, active_test=False)
res_partner = self.pool.get('res.partner')
res_users = self.pool.get('res.users')
partner_ids = context and context.get('active_ids') or []
contact_ids = set()
user_changes = []
- emails_used = []
- partners_used = []
for partner in res_partner.browse(cr, SUPERUSER_ID, partner_ids, context):
stack = [partner]
while stack:
contact = stack.pop(0)
- if contact.id in partners_used:
- continue
- partners_used.append(contact.id)
stack.extend(contact.child_ids)
- if contact.email in emails_used:
- continue
- # make sure that each contact appears at most once in the list
- if not contact.user_id:
- # search user with the same login/email
- domain = [('partner_id', '!=', contact.id), ('login', '=', contact.email)]
- user_ids = res_users.search(cr, uid, domain, context=context)
- user = user_ids and res_users.browse(cr, uid, user_ids[0], context=context) or False
- if user:
- contact = user.partner_id
- stack.extend(contact.child_ids)
if contact.id not in contact_ids:
contact_ids.add(contact.id)
in_portal = False
@@ -120,7 +103,6 @@ class wizard(osv.osv_memory):
'email': contact.email,
'in_portal': in_portal,
}))
- emails_used.append(contact.email)
return {'value': {'user_ids': user_changes}}
def action_apply(self, cr, uid, ids, context=None):
From f18b1d73749ed4eb5a75cb1d157cad3d464924ed Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Thu, 16 May 2013 14:39:44 +0200
Subject: [PATCH 042/164] [IMP] portal: remove code not used
bzr revid: chm@openerp.com-20130516123944-y1nwv5582mxmsvt7
---
addons/portal/wizard/portal_wizard.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 8425c752e50..8e0c952c398 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -84,7 +84,6 @@ class wizard(osv.osv_memory):
def onchange_portal_id(self, cr, uid, ids, portal_id, context=None):
# for each partner, determine corresponding portal.wizard.user records
res_partner = self.pool.get('res.partner')
- res_users = self.pool.get('res.users')
partner_ids = context and context.get('active_ids') or []
contact_ids = set()
user_changes = []
From d6024fa36b1406f3f0da27001e66007963bfa2e5 Mon Sep 17 00:00:00 2001
From: Vidhin Mehta
Date: Thu, 16 May 2013 22:34:03 +0530
Subject: [PATCH 043/164] [FIX]add callback function to fetch_lang and in *drop
db* which is not created,after drop it shows 'db succesfully droped'.
bzr revid: vme@tinyerp.com-20130516170403-7oil1k6em99a1hmp
---
addons/web/controllers/main.py | 12 ++++--------
addons/web/static/src/js/chrome.js | 2 +-
2 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 0c94e9fe55a..6919def601a 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -780,17 +780,13 @@ class Database(openerpweb.Controller):
password, db = operator.itemgetter(
'drop_pwd', 'drop_db')(
dict(map(operator.itemgetter('name', 'value'), fields)))
- error = {'error':_('Could not drop database !'), 'title': _('Drop Database') }
+
try:
- proxy = req.session.proxy("db")
- if db in proxy.list(True):
- return proxy.drop(password, db)
- else:
- error.update({'error': "Database '%s' does not exist !" % db})
+ if req.session.proxy("db").drop(password, db):return True
except xmlrpclib.Fault, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
- error.update({'error': e.faultCode})
- return error
+ return {'error': e.faultCode, 'title': 'Drop Database'}
+ return {'error': _('Could not drop database !'), 'title': _('Drop Database')}
@openerpweb.httprequest
def backup(self, req, backup_db, backup_pwd, token):
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index ee8e741e6da..2ecf5328fd4 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -380,7 +380,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
var fetch_langs = this.rpc("/web/session/get_lang_list", {}).done(function(result) {
self.lang_list = result;
});
- return $.when(fetch_langs).done(fetch_db.always(self.do_render));
+ return $.when(fetch_langs).done(function(){fetch_db.always(self.do_render)});
},
do_render: function() {
var self = this;
From 47998aee0d02db613f2c79b359c5d7c56255374e Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Fri, 17 May 2013 12:25:08 +0200
Subject: [PATCH 044/164] [IMP] portal managment: check and raise complete
errors (empty email, double, existing user)
bzr revid: chm@openerp.com-20130517102508-7qrboloxd2wow2rs
---
addons/portal/wizard/portal_wizard.py | 44 +++++++++++++++++++++++----
1 file changed, 38 insertions(+), 6 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 8e0c952c398..9abb6664adf 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -88,10 +88,8 @@ class wizard(osv.osv_memory):
contact_ids = set()
user_changes = []
for partner in res_partner.browse(cr, SUPERUSER_ID, partner_ids, context):
- stack = [partner]
- while stack:
- contact = stack.pop(0)
- stack.extend(contact.child_ids)
+ for contact in (partner.child_ids or [partner]):
+ # make sure that each contact appears at most once in the list
if contact.id not in contact_ids:
contact_ids.add(contact.id)
in_portal = False
@@ -133,7 +131,41 @@ class wizard_user(osv.osv_memory):
return id
def action_apply(self, cr, uid, ids, context=None):
- for wizard_user in self.browse(cr, SUPERUSER_ID, ids, context):
+ res_users = self.pool.get('res.users')
+ wizards = self.browse(cr, SUPERUSER_ID, ids, context)
+ emails = []
+ error_empty = []
+ error_emails = []
+ error_user = []
+ ctx = dict(context or {}, active_test=False)
+ for wizard_user in wizards:
+ email = wizard_user.partner_id.email
+ if not email:
+ error_empty.append(wizard_user.partner_id)
+ elif email in emails:
+ error_emails.append(email)
+ user = res_users.search(cr, SUPERUSER_ID, [('partner_id', '!=', wizard_user.partner_id.id), ('login', '=', email)], context=ctx)
+ if user:
+ error_user.append((wizard_user.partner_id, res_users.browse(cr, SUPERUSER_ID, user[0], context=ctx).partner_id,))
+ emails.append(email)
+
+ error_msg = ""
+ if error_empty:
+ error_msg = _("%sSome contacts don't have email address: \n%r") % (error_msg, map(lambda p: p.name_get()[0], error_empty))
+ if error_emails:
+ if error_msg:
+ error_msg += '\n\n'
+ error_msg = _("%sYou have more than one email address equal to: \n%r") % (error_msg, error_emails)
+ if error_user:
+ if error_msg:
+ error_msg += '\n\n'
+ error_msg = _("%sSome contact have the same email address than an other contact who have already an user's access: \n%s") % \
+ (error_msg, [(p_u[0].id, p_u[0].name, '=>', p_u[1].id, p_u[1].name) for p_u in error_user])
+ if error_msg:
+ raise osv.except_osv(_('Contacts Error'), error_msg)
+
+ for wizard_user in wizards:
+ print wizard_user
portal = wizard_user.wizard_id.portal_id
user = self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context)
if wizard_user.in_portal:
@@ -145,7 +177,7 @@ class wizard_user(osv.osv_memory):
# prepare for the signup process
user.partner_id.signup_prepare()
wizard_user = self.browse(cr, SUPERUSER_ID, wizard_user.id, context)
- self._send_email(cr, uid, wizard_user, context)
+ self._send_email(cr, uid, wizard_user, context)
else:
# remove the user (if it exists) from the portal group
if user and (portal in user.groups_id):
From 14308b8c92d3a9625eb303aa705f7d9ff59b1e73 Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Fri, 17 May 2013 12:47:54 +0200
Subject: [PATCH 045/164] [IMP] portal_crm: overwrite error message to portal
managment
bzr revid: chm@openerp.com-20130517104754-n13kq2cg3e1msta7
---
addons/portal_crm/__init__.py | 1 +
addons/portal_crm/wizard/__init__.py | 25 ++++++++++++++
addons/portal_crm/wizard/portal_wizard.py | 41 +++++++++++++++++++++++
3 files changed, 67 insertions(+)
create mode 100644 addons/portal_crm/wizard/__init__.py
create mode 100644 addons/portal_crm/wizard/portal_wizard.py
diff --git a/addons/portal_crm/__init__.py b/addons/portal_crm/__init__.py
index 92b3ac62321..cfd48eddc52 100644
--- a/addons/portal_crm/__init__.py
+++ b/addons/portal_crm/__init__.py
@@ -20,3 +20,4 @@
##############################################################################
import contact
+import wizard
diff --git a/addons/portal_crm/wizard/__init__.py b/addons/portal_crm/wizard/__init__.py
new file mode 100644
index 00000000000..2fd59f43322
--- /dev/null
+++ b/addons/portal_crm/wizard/__init__.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import portal_wizard
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal_crm/wizard/portal_wizard.py b/addons/portal_crm/wizard/portal_wizard.py
new file mode 100644
index 00000000000..ff3b1562fb0
--- /dev/null
+++ b/addons/portal_crm/wizard/portal_wizard.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import logging
+
+from openerp.osv import osv
+from openerp.tools.translate import _
+
+_logger = logging.getLogger(__name__)
+
+class wizard_user(osv.osv_memory):
+ _inherit = 'portal.wizard.user'
+
+ def action_apply(self, cr, uid, ids, context=None):
+ try:
+ return super(wizard_user, self).action_apply(cr, uid, ids, context)
+ except osv.except_osv, e:
+ raise osv.except_osv(e[0], "%s\n\n%s" % (e[1], _("To resolve this error, you can:\
+ Change and use an other contact's email adresse; \
+ Select other contacts; \
+ Use the partner merge action (more option of the contacts list) to merge the identical partners.")))
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
From 9182621004d7689da999ff1e00442c7358ed9307 Mon Sep 17 00:00:00 2001
From: Vidhin Mehta
Date: Fri, 17 May 2013 16:31:50 +0530
Subject: [PATCH 046/164] [IMP]
bzr revid: vme@tinyerp.com-20130517110150-c7wm67kfnp1p2lkd
---
addons/web/static/src/js/chrome.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 2ecf5328fd4..35b57cb430b 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -380,7 +380,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
var fetch_langs = this.rpc("/web/session/get_lang_list", {}).done(function(result) {
self.lang_list = result;
});
- return $.when(fetch_langs).done(function(){fetch_db.always(self.do_render)});
+ return $.when(fetch_db, fetch_langs).always(self.do_render);
},
do_render: function() {
var self = this;
From f5f14d6a22fa34bbdb1c17eb3de136a9b287e47b Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Fri, 17 May 2013 17:41:16 +0200
Subject: [PATCH 047/164] [FIX] portal managment
bzr revid: chm@openerp.com-20130517154116-wowkjjx40dzjbpvc
---
addons/portal/wizard/portal_wizard.py | 42 ++++++++++++-----------
addons/portal_crm/wizard/__init__.py | 5 +--
addons/portal_crm/wizard/portal_wizard.py | 12 +++----
3 files changed, 31 insertions(+), 28 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 9abb6664adf..eb6aeac8864 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -139,33 +139,32 @@ class wizard_user(osv.osv_memory):
error_user = []
ctx = dict(context or {}, active_test=False)
for wizard_user in wizards:
- email = wizard_user.partner_id.email
- if not email:
- error_empty.append(wizard_user.partner_id)
- elif email in emails:
- error_emails.append(email)
- user = res_users.search(cr, SUPERUSER_ID, [('partner_id', '!=', wizard_user.partner_id.id), ('login', '=', email)], context=ctx)
- if user:
- error_user.append((wizard_user.partner_id, res_users.browse(cr, SUPERUSER_ID, user[0], context=ctx).partner_id,))
- emails.append(email)
+ if wizard_user.in_portal:
+ email = extract_email(wizard_user.partner_id.email)
+ if not email:
+ error_empty.append(wizard_user.partner_id)
+ elif email in emails:
+ error_emails.append(email)
+ user = res_users.search(cr, SUPERUSER_ID, [('partner_id', '!=', wizard_user.partner_id.id), ('login', '=', email)], context=ctx)
+ if user:
+ error_user.append((wizard_user.partner_id, res_users.browse(cr, SUPERUSER_ID, user[0], context=ctx).partner_id,))
+ emails.append(email)
- error_msg = ""
+ error_msg = []
if error_empty:
- error_msg = _("%sSome contacts don't have email address: \n%r") % (error_msg, map(lambda p: p.name_get()[0], error_empty))
+ error_msg.append("%s\n%r" % (_("Some contacts don't have valid email address: "), [p.display_name for p in error_empty]))
if error_emails:
- if error_msg:
- error_msg += '\n\n'
- error_msg = _("%sYou have more than one email address equal to: \n%r") % (error_msg, error_emails)
+ error_msg.append("%s\n%r" % (_("You have more than one email address equal to:"), error_emails))
if error_user:
- if error_msg:
- error_msg += '\n\n'
- error_msg = _("%sSome contact have the same email address than an other contact who have already an user's access: \n%s") % \
- (error_msg, [(p_u[0].id, p_u[0].name, '=>', p_u[1].id, p_u[1].name) for p_u in error_user])
+ error_msg.append("%s\n%s" % (_("Some contact have the same email address than an other contact who have already an user's access:"),
+ (error_msg, [(p_u[0].id, p_u[0].name, '=>', p_u[1].id, p_u[1].name) for p_u in error_user])))
if error_msg:
- raise osv.except_osv(_('Contacts Error'), error_msg)
+ error_msg.append(_("To resolve this error, you can:\
+ Change and use an other contact's email adresse; \
+ Select other contacts; "))
+ raise osv.except_osv(_('Contacts Error'), "\n\n".join(error_msg))
for wizard_user in wizards:
- print wizard_user
portal = wizard_user.wizard_id.portal_id
user = self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context)
if wizard_user.in_portal:
@@ -205,12 +204,15 @@ class wizard_user(osv.osv_memory):
"""
res_users = self.pool.get('res.users')
create_context = dict(context or {}, noshortcut=True) # to prevent shortcut creation
+ print extract_email(wizard_user.email)
values = {
+ 'email': extract_email(wizard_user.email),
'login': extract_email(wizard_user.email),
'partner_id': wizard_user.partner_id.id,
'groups_id': [(6, 0, [])],
'share': True,
}
+ print values
user_id = res_users.create(cr, uid, values, context=create_context)
return res_users.browse(cr, uid, user_id, context)
diff --git a/addons/portal_crm/wizard/__init__.py b/addons/portal_crm/wizard/__init__.py
index 2fd59f43322..31287ddc938 100644
--- a/addons/portal_crm/wizard/__init__.py
+++ b/addons/portal_crm/wizard/__init__.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2011 OpenERP S.A ().
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2012-TODAY OpenERP S.A.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -19,6 +19,7 @@
#
##############################################################################
+
import portal_wizard
diff --git a/addons/portal_crm/wizard/portal_wizard.py b/addons/portal_crm/wizard/portal_wizard.py
index ff3b1562fb0..7c43310dce7 100644
--- a/addons/portal_crm/wizard/portal_wizard.py
+++ b/addons/portal_crm/wizard/portal_wizard.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2011 OpenERP S.A ().
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2012-TODAY OpenERP S.A.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -33,9 +33,9 @@ class wizard_user(osv.osv_memory):
try:
return super(wizard_user, self).action_apply(cr, uid, ids, context)
except osv.except_osv, e:
- raise osv.except_osv(e[0], "%s\n\n%s" % (e[1], _("To resolve this error, you can:\
- Change and use an other contact's email adresse; \
- Select other contacts; \
- Use the partner merge action (more option of the contacts list) to merge the identical partners.")))
+ if "Contact" in e[0]:
+ raise osv.except_osv(e[0], "%s %s" % (e[1], _("Use the partner merge action (more option of the contacts list) to merge the identical partners.")))
+ else:
+ raise e
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
From 98d829c8eed322db618232da6bccdfe2ebf77454 Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Fri, 17 May 2013 17:53:25 +0200
Subject: [PATCH 048/164] [FIX] portal managment: wizard email check
bzr revid: chm@openerp.com-20130517155325-pmmlm29weerw0x0k
---
addons/portal/wizard/portal_wizard.py | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index eb6aeac8864..7665db34bc4 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -122,14 +122,6 @@ class wizard_user(osv.osv_memory):
'in_portal': fields.boolean('In Portal'),
}
- def create(self, cr, uid, values, context=None):
- """ overridden to update the partner's email (if necessary) """
- id = super(wizard_user, self).create(cr, uid, values, context)
- wuser = self.browse(cr, uid, id, context)
- if wuser.partner_id.email != wuser.email:
- wuser.partner_id.write({'email': wuser.email})
- return id
-
def action_apply(self, cr, uid, ids, context=None):
res_users = self.pool.get('res.users')
wizards = self.browse(cr, SUPERUSER_ID, ids, context)
@@ -140,7 +132,7 @@ class wizard_user(osv.osv_memory):
ctx = dict(context or {}, active_test=False)
for wizard_user in wizards:
if wizard_user.in_portal:
- email = extract_email(wizard_user.partner_id.email)
+ email = extract_email(wizard_user.email)
if not email:
error_empty.append(wizard_user.partner_id)
elif email in emails:
@@ -204,7 +196,8 @@ class wizard_user(osv.osv_memory):
"""
res_users = self.pool.get('res.users')
create_context = dict(context or {}, noshortcut=True) # to prevent shortcut creation
- print extract_email(wizard_user.email)
+ if wizard_user.partner_id.email != wizard_user.email:
+ wizard_user.partner_id.write({'email': wizard_user.email})
values = {
'email': extract_email(wizard_user.email),
'login': extract_email(wizard_user.email),
@@ -212,7 +205,6 @@ class wizard_user(osv.osv_memory):
'groups_id': [(6, 0, [])],
'share': True,
}
- print values
user_id = res_users.create(cr, uid, values, context=create_context)
return res_users.browse(cr, uid, user_id, context)
@@ -242,7 +234,7 @@ class wizard_user(osv.osv_memory):
mail_mail = self.pool.get('mail.mail')
mail_values = {
'email_from': this_user.email,
- 'email_to': user.email,
+ 'email_to': wizard_user.email,
'subject': _(WELCOME_EMAIL_SUBJECT) % data,
'body_html': '
' % (_(WELCOME_EMAIL_BODY) % data),
'state': 'outgoing',
From 854671b9300e0010ed05ed87a1f147f6ebb2e93e Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Fri, 17 May 2013 17:59:33 +0200
Subject: [PATCH 050/164] [FIX] portal managment: wizard refresh and write
email
bzr revid: chm@openerp.com-20130517155933-e2tc2u9ns9m9jdh7
---
addons/portal/wizard/portal_wizard.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 9cb5e6a4f85..b88d0edcec0 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -167,7 +167,9 @@ class wizard_user(osv.osv_memory):
user.write({'active': True, 'groups_id': [(4, portal.id)]})
# prepare for the signup process
user.partner_id.signup_prepare()
- wizard_user = self.browse(cr, SUPERUSER_ID, wizard_user.id, context)
+ if wizard_user.partner_id.email != wizard_user.email:
+ wizard_user.partner_id.write({'email': wizard_user.email})
+ wizard_user.refresh()
self._send_email(cr, uid, wizard_user, context)
else:
# remove the user (if it exists) from the portal group
@@ -196,8 +198,6 @@ class wizard_user(osv.osv_memory):
"""
res_users = self.pool.get('res.users')
create_context = dict(context or {}, noshortcut=True) # to prevent shortcut creation
- if wizard_user.partner_id.email != wizard_user.email:
- wizard_user.partner_id.write({'email': wizard_user.email})
values = {
'email': extract_email(wizard_user.email),
'login': extract_email(wizard_user.email),
From 41c10c5de71ec1fc5e7952ababf26ce62fab68d9 Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Fri, 17 May 2013 18:01:00 +0200
Subject: [PATCH 051/164] [IMP] portal managment: write email all time
bzr revid: chm@openerp.com-20130517160100-oos81x3x3994po6b
---
addons/portal/wizard/portal_wizard.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index b88d0edcec0..4c513d0ec2f 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -159,6 +159,8 @@ class wizard_user(osv.osv_memory):
for wizard_user in wizards:
portal = wizard_user.wizard_id.portal_id
user = self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context)
+ if wizard_user.partner_id.email != wizard_user.email:
+ wizard_user.partner_id.write({'email': wizard_user.email})
if wizard_user.in_portal:
# create a user if necessary, and make sure it is in the portal group
if not user:
@@ -167,8 +169,6 @@ class wizard_user(osv.osv_memory):
user.write({'active': True, 'groups_id': [(4, portal.id)]})
# prepare for the signup process
user.partner_id.signup_prepare()
- if wizard_user.partner_id.email != wizard_user.email:
- wizard_user.partner_id.write({'email': wizard_user.email})
wizard_user.refresh()
self._send_email(cr, uid, wizard_user, context)
else:
From f0ae319dec9db6256c41e70e4be4c800c5d470e4 Mon Sep 17 00:00:00 2001
From: Nhomar Hernandez
Date: Fri, 17 May 2013 16:26:08 -0430
Subject: [PATCH 052/164] [IMP] When we go step by step, change the Case for a
variable in a diff Is a little confufing, in our case 100% of time our team
had problems confusing Action with action Obtaining an error with prototype
because incorrect declaration.
IMHO this is a No-Brain merge, but i explain well to be sure you understand my point.
bzr revid: nhomar@gmail.com-20130517205608-wykuz0oxjccf6021
---
addons/web/doc/module/static/src/js/first_module.js.2.diff | 4 ++--
addons/web/doc/module/static/src/js/first_module.js.3.diff | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/addons/web/doc/module/static/src/js/first_module.js.2.diff b/addons/web/doc/module/static/src/js/first_module.js.2.diff
index 88a80f50fff..f3bceecdc78 100644
--- a/addons/web/doc/module/static/src/js/first_module.js.2.diff
+++ b/addons/web/doc/module/static/src/js/first_module.js.2.diff
@@ -4,8 +4,8 @@
// static/src/js/first_module.js
openerp.web_example = function (instance) {
- console.log("Module loaded");
-+ instance.web.client_actions.add('example.action', 'instance.web_example.action');
-+ instance.web_example.action = function (parent, action) {
++ instance.web.client_actions.add('example.action', 'instance.web_example.Action');
++ instance.web_example.Action = function (parent, action) {
+ console.log("Executed the action", action);
+ };
};
diff --git a/addons/web/doc/module/static/src/js/first_module.js.3.diff b/addons/web/doc/module/static/src/js/first_module.js.3.diff
index 295e90b6840..ecab3ee1832 100644
--- a/addons/web/doc/module/static/src/js/first_module.js.3.diff
+++ b/addons/web/doc/module/static/src/js/first_module.js.3.diff
@@ -3,8 +3,8 @@
@@ -1,7 +1,11 @@
// static/src/js/first_module.js
openerp.web_example = function (instance) {
-- instance.web.client_actions.add('example.action', 'instance.web_example.action');
-- instance.web_example.action = function (parent, action) {
+- instance.web.client_actions.add('example.action', 'instance.web_example.Action');
+- instance.web_example.Action = function (parent, action) {
- console.log("Executed the action", action);
- };
+ instance.web.client_actions.add('example.action', 'instance.web_example.Action');
From c9b8a674b1f57d51de9b3be9ec3ddee20de8b214 Mon Sep 17 00:00:00 2001
From: Cedric Snauwaert
Date: Tue, 21 May 2013 09:55:53 +0200
Subject: [PATCH 053/164] [FIX]share_wizard: fix problem due to related o2m
fields that doesn't have the field: _fields_id
bzr revid: csn@openerp.com-20130521075553-lgbp3neaqeq8dzfo
---
addons/share/wizard/share_wizard.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py
index 429a1dc2f08..ef461603120 100644
--- a/addons/share/wizard/share_wizard.py
+++ b/addons/share/wizard/share_wizard.py
@@ -413,7 +413,8 @@ class share_wizard(osv.TransientModel):
relation_model_id = model_obj.search(cr, UID_ROOT, [('model','=',coldef._obj)])[0]
relation_model_browse = model_obj.browse(cr, UID_ROOT, relation_model_id, context=context)
relation_osv = self.pool.get(coldef._obj)
- if coltype == 'one2many':
+ #skip virtual one2many fields (related, ...) as there is no reverse relationship
+ if coltype == 'one2many' and hasattr(coldef, '_fields_id'):
# don't record reverse path if it's not a real m2o (that happens, but rarely)
dest_model_ci = relation_osv._all_columns
reverse_rel = coldef._fields_id
From b8aed2249a5fb072c8a591e6fed250005fed6d06 Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Tue, 21 May 2013 15:30:25 +0200
Subject: [PATCH 054/164] [IMP] remove read access to outgoing mail server
configuration forward port of rev 4349 in 6.1
bzr revid: mat@openerp.com-20130521133025-198z6n1nqltcisx2
---
openerp/addons/base/ir/ir_mail_server.py | 7 ++++---
openerp/addons/base/security/ir.model.access.csv | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py
index 5a3c40552f0..ac2dfe6cc8c 100644
--- a/openerp/addons/base/ir/ir_mail_server.py
+++ b/openerp/addons/base/ir/ir_mail_server.py
@@ -31,6 +31,7 @@ import re
import smtplib
import threading
+from openerp import SUPERUSER_ID
from openerp.osv import osv, fields
from openerp.tools.translate import _
from openerp.tools import html2text
@@ -417,11 +418,11 @@ class ir_mail_server(osv.osv):
# Get SMTP Server Details from Mail Server
mail_server = None
if mail_server_id:
- mail_server = self.browse(cr, uid, mail_server_id)
+ mail_server = self.browse(cr, SUPERUSER_ID, mail_server_id)
elif not smtp_server:
- mail_server_ids = self.search(cr, uid, [], order='sequence', limit=1)
+ mail_server_ids = self.search(cr, SUPERUSER_ID, [], order='sequence', limit=1)
if mail_server_ids:
- mail_server = self.browse(cr, uid, mail_server_ids[0])
+ mail_server = self.browse(cr, SUPERUSER_ID, mail_server_ids[0])
if mail_server:
smtp_server = mail_server.smtp_host
diff --git a/openerp/addons/base/security/ir.model.access.csv b/openerp/addons/base/security/ir.model.access.csv
index 35d5b82bc41..e3198abb8fa 100644
--- a/openerp/addons/base/security/ir.model.access.csv
+++ b/openerp/addons/base/security/ir.model.access.csv
@@ -114,7 +114,7 @@
"access_ir_filter employee","ir_filters employee","model_ir_filters","group_user",1,1,1,1
"access_ir_filters","ir_filters_all","model_ir_filters",,1,1,1,1
"access_ir_config_parameter","ir_config_parameter","model_ir_config_parameter",,1,0,0,0
-"access_ir_mail_server_all","ir_mail_server","model_ir_mail_server",,1,0,0,0
+"access_ir_mail_server","ir_mail_server","model_ir_mail_server","group_system",1,1,1,1
"access_ir_actions_client","ir_actions_client all","model_ir_actions_client",,1,0,0,0
"access_ir_needaction_mixin","ir_needaction_mixin","model_ir_needaction_mixin",,1,1,1,1
From 187a3781103e185214a5edf1e4cdf43e0d5b724b Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Tue, 21 May 2013 15:31:28 +0200
Subject: [PATCH 055/164] [IMP] remove read access to incoming mail server
configuration forward port of rev 7214 in 6.1
bzr revid: mat@openerp.com-20130521133128-ogxflb2rohwecbxa
---
addons/fetchmail/security/ir.model.access.csv | 1 -
1 file changed, 1 deletion(-)
diff --git a/addons/fetchmail/security/ir.model.access.csv b/addons/fetchmail/security/ir.model.access.csv
index 7deea6eb9f4..c006546659f 100644
--- a/addons/fetchmail/security/ir.model.access.csv
+++ b/addons/fetchmail/security/ir.model.access.csv
@@ -1,3 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_fetchmail_server,fetchmail.server,model_fetchmail_server,,1,0,0,0
access_fetchmail_server,fetchmail.server,model_fetchmail_server,base.group_system,1,1,1,1
From 0faa40aefb015a3629fc032a921c438895e0e41f Mon Sep 17 00:00:00 2001
From: "dle@openerp.com" <>
Date: Tue, 21 May 2013 15:42:31 +0200
Subject: [PATCH 056/164] [FIX]base_vat: ensure country_code is alphabetic
bzr revid: dle@openerp.com-20130521134231-fpsny6w54g3isg82
---
addons/base_vat/base_vat.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py
index 3366101c7c7..ab3e6b71e40 100644
--- a/addons/base_vat/base_vat.py
+++ b/addons/base_vat/base_vat.py
@@ -83,6 +83,8 @@ class res_partner(osv.osv):
Check the VAT number depending of the country.
http://sima-pc.com/nif.php
'''
+ if not ustr(country_code).encode('utf-8').isalpha():
+ return False
check_func_name = 'check_vat_' + country_code
check_func = getattr(self, check_func_name, None) or \
getattr(vatnumber, check_func_name, None)
From 48f5b7b4801ca2df2ac52fb5641a527ecf7d1f07 Mon Sep 17 00:00:00 2001
From: Christophe Matthieu
Date: Tue, 21 May 2013 16:49:41 +0200
Subject: [PATCH 057/164] [IMP] portal managment: add get_error_messages method
bzr revid: chm@openerp.com-20130521144941-a0pfm3ulx7wr5cs1
---
addons/portal/wizard/portal_wizard.py | 20 ++++++++++++--------
addons/portal_crm/wizard/portal_wizard.py | 14 ++++++--------
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 4c513d0ec2f..dd07f85d3a5 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -116,21 +116,20 @@ class wizard_user(osv.osv_memory):
_description = 'Portal User Config'
_columns = {
- 'wizard_id': fields.many2one('portal.wizard', string='Wizard', required=True),
+ 'wizard_id': fields.many2one('portal.wizard', string='Wizard', required=True, ondelete='cascade'),
'partner_id': fields.many2one('res.partner', string='Contact', required=True, readonly=True),
'email': fields.char(size=240, string='Email'),
'in_portal': fields.boolean('In Portal'),
}
- def action_apply(self, cr, uid, ids, context=None):
+ def get_error_messages(self, cr, uid, ids, context=None):
res_users = self.pool.get('res.users')
- wizards = self.browse(cr, SUPERUSER_ID, ids, context)
emails = []
error_empty = []
error_emails = []
error_user = []
ctx = dict(context or {}, active_test=False)
- for wizard_user in wizards:
+ for wizard_user in self.browse(cr, SUPERUSER_ID, ids, context):
if wizard_user.in_portal:
email = extract_email(wizard_user.email)
if not email:
@@ -144,19 +143,24 @@ class wizard_user(osv.osv_memory):
error_msg = []
if error_empty:
- error_msg.append("%s\n%r" % (_("Some contacts don't have valid email address: "), [p.display_name for p in error_empty]))
+ error_msg.append("%s\n%s" % (_("Some contacts don't have valid email address: "), '\n'.join([p.display_name for p in error_empty])))
if error_emails:
- error_msg.append("%s\n%r" % (_("You have more than one email address equal to:"), error_emails))
+ error_msg.append("%s\n%s" % (_("You have more than one email address equal to:"), '\n'.join(error_emails)))
if error_user:
error_msg.append("%s\n%s" % (_("Some contact have the same email address than an other contact who have already an user's access:"),
- (error_msg, [(p_u[0].id, p_u[0].name, '=>', p_u[1].id, p_u[1].name) for p_u in error_user])))
+ '\n'.join([(p_u[0].id, p_u[0].name, '=>', p_u[1].id, p_u[1].name) for p_u in error_user])))
if error_msg:
error_msg.append(_("To resolve this error, you can:\
Change and use an other contact's email adresse; \
Select other contacts; "))
+ return error_msg
+
+ def action_apply(self, cr, uid, ids, context=None):
+ error_msg = self.get_error_messages(cr, uid, ids, context=context)
+ if error_msg:
raise osv.except_osv(_('Contacts Error'), "\n\n".join(error_msg))
- for wizard_user in wizards:
+ for wizard_user in self.browse(cr, SUPERUSER_ID, ids, context):
portal = wizard_user.wizard_id.portal_id
user = self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context)
if wizard_user.partner_id.email != wizard_user.email:
diff --git a/addons/portal_crm/wizard/portal_wizard.py b/addons/portal_crm/wizard/portal_wizard.py
index 7c43310dce7..e74a975ee58 100644
--- a/addons/portal_crm/wizard/portal_wizard.py
+++ b/addons/portal_crm/wizard/portal_wizard.py
@@ -26,16 +26,14 @@ from openerp.tools.translate import _
_logger = logging.getLogger(__name__)
+
class wizard_user(osv.osv_memory):
_inherit = 'portal.wizard.user'
- def action_apply(self, cr, uid, ids, context=None):
- try:
- return super(wizard_user, self).action_apply(cr, uid, ids, context)
- except osv.except_osv, e:
- if "Contact" in e[0]:
- raise osv.except_osv(e[0], "%s %s" % (e[1], _("Use the partner merge action (more option of the contacts list) to merge the identical partners.")))
- else:
- raise e
+ def get_error_messages(self, cr, uid, ids, context=None):
+ error_msg = super(wizard_user, self).get_error_messages(cr, uid, ids, context)
+ if error_msg:
+ error_msg[-1] = '%s %s' % (error_msg[-1], _("Use the partner merge action (more option of the contacts list) to merge the identical partners."))
+ return error_msg
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
From 983b17ea0a9400933e81edadaff094c9501e70a4 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Wed, 22 May 2013 05:27:36 +0000
Subject: [PATCH 058/164] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20130522052736-t0x1wh4cm1tqvfy2
---
addons/account_asset/i18n/fr.po | 15 +--
addons/delivery/i18n/fr.po | 22 ++++-
addons/hr_contract/i18n/fr.po | 11 ++-
addons/product/i18n/fr.po | 30 +++++-
addons/product_margin/i18n/fr.po | 16 +--
addons/project_long_term/i18n/fr.po | 24 +++--
addons/project_mrp/i18n/fr.po | 10 +-
addons/project_timesheet/i18n/fr.po | 47 +++++++--
addons/purchase/i18n/fr.po | 145 ++++++++++++++++++++++++----
addons/resource/i18n/fr.po | 23 +++--
addons/sale_journal/i18n/fr.po | 10 +-
addons/sale_margin/i18n/fr.po | 10 +-
addons/sale_order_dates/i18n/fr.po | 10 +-
addons/sale_stock/i18n/fr.po | 34 ++++++-
addons/stock_location/i18n/fr.po | 12 ++-
15 files changed, 319 insertions(+), 100 deletions(-)
diff --git a/addons/account_asset/i18n/fr.po b/addons/account_asset/i18n/fr.po
index 2b60a465850..93da5108f01 100644
--- a/addons/account_asset/i18n/fr.po
+++ b/addons/account_asset/i18n/fr.po
@@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-02-12 09:04+0000\n"
-"Last-Translator: WANTELLET Sylvain \n"
+"PO-Revision-Date: 2013-05-21 16:06+0000\n"
+"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
+"\n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:29+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: account_asset
#: view:account.asset.asset:0
@@ -200,7 +201,7 @@ msgstr "Ecriture de dépreciation"
#: code:addons/account_asset/account_asset.py:82
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Erreur!"
#. module: account_asset
#: view:asset.asset.report:0
@@ -614,6 +615,8 @@ msgstr "En cours"
#, python-format
msgid "You cannot delete an asset that contains posted depreciation lines."
msgstr ""
+"Vous ne pouvez pas supprimer une immobilisation qui contient des lignes de "
+"dépréciations comptabilisées."
#. module: account_asset
#: view:account.asset.category:0
@@ -750,7 +753,7 @@ msgstr "Écritures d'amortissement créées"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Add an internal note here..."
-msgstr ""
+msgstr "Ajouter une note interne ici…"
#. module: account_asset
#: field:account.asset.depreciation.line,sequence:0
diff --git a/addons/delivery/i18n/fr.po b/addons/delivery/i18n/fr.po
index 3226002b88e..02c6fd8f352 100644
--- a/addons/delivery/i18n/fr.po
+++ b/addons/delivery/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-03-21 01:53+0000\n"
-"Last-Translator: WANTELLET Sylvain \n"
+"PO-Revision-Date: 2013-05-21 16:09+0000\n"
+"Last-Translator: Florian Hatat \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:37+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: delivery
#: report:sale.shipping:0
@@ -458,6 +458,20 @@ msgid ""
"
\n"
" "
msgstr ""
+"
\n"
+"Cliquez pour ajouter un nouveau mode de livraison.\n"
+"
\n"
+"Chaque transporteur (ex. UPS) peut avoir plusieurs modes de livraison (ex.\n"
+"UPS Express, UPS Standard), chacun avec un jeu de règles de facturation "
+"propre.\n"
+"
\n"
+"Ajouter un mode de livraison permet de calculer automatiquement\n"
+"les frais de livraison selon les critères que vous entrez, et ce en "
+"fonction\n"
+"du bon de commande (obtenu à partir du devis) ou de la facture (obtenue à\n"
+"partir des bons de livraison).\n"
+"
\n"
+" "
#. module: delivery
#: field:delivery.grid.line,max_value:0
diff --git a/addons/hr_contract/i18n/fr.po b/addons/hr_contract/i18n/fr.po
index 11cd783d423..3c70d835527 100644
--- a/addons/hr_contract/i18n/fr.po
+++ b/addons/hr_contract/i18n/fr.po
@@ -8,14 +8,15 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-04-10 03:03+0000\n"
-"Last-Translator: Kevin Deldycke \n"
+"PO-Revision-Date: 2013-05-21 16:10+0000\n"
+"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
+"\n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-11 14:43+0000\n"
-"X-Generator: Launchpad (build 16550)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: hr_contract
#: field:hr.contract,wage:0
@@ -179,7 +180,7 @@ msgstr "Titre du poste"
#. module: hr_contract
#: constraint:hr.contract:0
msgid "Error! Contract start-date must be less than contract end-date."
-msgstr ""
+msgstr "Erreur! La date de début du contrat doit être avant la date de fin."
#. module: hr_contract
#: field:hr.employee,manager:0
diff --git a/addons/product/i18n/fr.po b/addons/product/i18n/fr.po
index 3549a544814..80e1d9b7285 100644
--- a/addons/product/i18n/fr.po
+++ b/addons/product/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-05-09 10:14+0000\n"
-"Last-Translator: Florian Hatat \n"
+"PO-Revision-Date: 2013-05-21 16:11+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-10 06:51+0000\n"
-"X-Generator: Launchpad (build 16598)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: product
#: field:product.packaging,rows:0
@@ -368,6 +368,17 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Cliquez pour ajouter un nouveau type d'emballage.\n"
+"
\n"
+" Le type d'emballage définit les dimensions ainsi que le "
+"nombre\n"
+" de produits par emballage. Ceci permettra au vendeur de "
+"vendre\n"
+" le bon nombre de produits en fonction de l'emballage "
+"sélectionné.\n"
+"
\n"
+" "
#. module: product
#: field:product.template,product_manager:0
@@ -449,6 +460,17 @@ msgid ""
"Otherwise, this includes goods stored in any Stock Location with 'internal' "
"type."
msgstr ""
+"Quantité prévue (calculée ainsi : quantité possédée - livraisons sortantes + "
+"livraisons entrantes)\n"
+"Dans le contexte d'un seul emplacement de stock, ceci inclut les produits "
+"stockés dans cet emplacement, ou de l'un de ses sous-emplacements.\n"
+"Dans le contexte d'un seul entrepôt, ceci inclut les produits stockés dans "
+"l'emplacement de stock de l'entrepôt, ou de l'un de ses sous-emplacements.\n"
+"Dans le contexte d'un seul espace de vente, ceci inclut les produits stockés "
+"dans l'emplacement de stock de l'entrepôt de l'espace de vente, ou de l'un "
+"de ses sous-emplacements.\n"
+"Sinon, ceci inclut tous les produits stockés dans n'importe quel emplacement "
+"de stock de type 'Interne'."
#. module: product
#: field:product.packaging,height:0
diff --git a/addons/product_margin/i18n/fr.po b/addons/product_margin/i18n/fr.po
index 6d7e79e0368..249e5b04bcc 100644
--- a/addons/product_margin/i18n/fr.po
+++ b/addons/product_margin/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-03-21 02:09+0000\n"
-"Last-Translator: Florian Hatat \n"
+"PO-Revision-Date: 2013-05-21 16:12+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:55+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: product_margin
#: view:product.product:0
@@ -80,7 +80,7 @@ msgstr "Prix unitaire moyen"
#. module: product_margin
#: field:product.product,sale_num_invoiced:0
msgid "# Invoiced in Sale"
-msgstr ""
+msgstr "# facturé à la vente"
#. module: product_margin
#: view:product.product:0
@@ -122,7 +122,7 @@ msgstr "Somme de la quantité dans les factures fournisseurs"
#. module: product_margin
#: field:product.product,date_to:0
msgid "Margin Date To"
-msgstr ""
+msgstr "Marge jusqu'à"
#. module: product_margin
#: view:product.product:0
@@ -194,7 +194,7 @@ msgstr "Marge Totale"
#. module: product_margin
#: field:product.product,date_from:0
msgid "Margin Date From"
-msgstr ""
+msgstr "Marge depuis"
#. module: product_margin
#: help:product.product,turnover:0
@@ -217,7 +217,7 @@ msgstr "Achats"
#. module: product_margin
#: field:product.product,purchase_num_invoiced:0
msgid "# Invoiced in Purchase"
-msgstr ""
+msgstr "# facturé à l'achat"
#. module: product_margin
#: help:product.product,expected_margin:0
diff --git a/addons/project_long_term/i18n/fr.po b/addons/project_long_term/i18n/fr.po
index 74f77c463c0..316f4535dfd 100644
--- a/addons/project_long_term/i18n/fr.po
+++ b/addons/project_long_term/i18n/fr.po
@@ -7,14 +7,15 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-05-09 10:12+0000\n"
-"Last-Translator: Kevin Deldycke \n"
+"PO-Revision-Date: 2013-05-21 16:14+0000\n"
+"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
+"\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-10 06:51+0000\n"
-"X-Generator: Launchpad (build 16598)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: project_long_term
#: help:project.phase,constraint_date_end:0
@@ -94,7 +95,7 @@ msgstr "Séquence"
#. module: project_long_term
#: field:project.compute.phases,target_project:0
msgid "Action"
-msgstr ""
+msgstr "Action"
#. module: project_long_term
#: view:project.phase:0
@@ -182,17 +183,20 @@ msgstr "Date de début au plus tard"
msgid ""
"Unit of Measure (Unit of Measure) is the unit of measurement for Duration"
msgstr ""
+"Unité de mesure (Unité de mesure) est une unité pour la mesure d'une durée"
#. module: project_long_term
#: help:project.phase,user_ids:0
msgid ""
"The resources on the project can be computed automatically by the scheduler."
msgstr ""
+"Les ressources sur le projet peuvent être calculées automatiquement par le "
+"planificateur."
#. module: project_long_term
#: view:project.phase:0
msgid "Cancel Phase"
-msgstr ""
+msgstr "Annuler la phase"
#. module: project_long_term
#: help:account.analytic.account,use_phases:0
@@ -209,6 +213,10 @@ msgid ""
" \n"
" If the phase is over, the status is set to 'Done'."
msgstr ""
+"Si la phase est créée, l'état est 'Brouillon'.\n"
+" Si la phase est démarrée, l'état devient 'En cours'.\n"
+" Si une revue est nécessaire, la phase est dans l'état 'En attente'.\n"
+" Si la phase est terminée, l'état est mis à 'Terminée'."
#. module: project_long_term
#: field:project.phase,progress:0
@@ -316,7 +324,7 @@ msgstr "Détails des tâches"
#. module: project_long_term
#: field:project.project,phase_count:0
msgid "Open Phases"
-msgstr ""
+msgstr "Ouvrir les phases"
#. module: project_long_term
#: help:project.phase,date_end:0
@@ -465,7 +473,7 @@ msgstr "Mois"
#. module: project_long_term
#: model:ir.model,name:project_long_term.model_account_analytic_account
msgid "Analytic Account"
-msgstr ""
+msgstr "Compte analytique"
#. module: project_long_term
#: field:project.phase,constraint_date_end:0
diff --git a/addons/project_mrp/i18n/fr.po b/addons/project_mrp/i18n/fr.po
index 7a7bc57362e..cda1bab1573 100644
--- a/addons/project_mrp/i18n/fr.po
+++ b/addons/project_mrp/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-21 14:56+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:57+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: project_mrp
#: model:process.node,note:project_mrp.process_node_procuretasktask0
@@ -71,7 +71,7 @@ msgstr "Tâche d'approvisionnement"
#. module: project_mrp
#: field:procurement.order,sale_line_id:0
msgid "Sales order line"
-msgstr ""
+msgstr "Ligne de commande de vente"
#. module: project_mrp
#: model:ir.model,name:project_mrp.model_project_task
diff --git a/addons/project_timesheet/i18n/fr.po b/addons/project_timesheet/i18n/fr.po
index 294d1f5291d..d94d6cf91d4 100644
--- a/addons/project_timesheet/i18n/fr.po
+++ b/addons/project_timesheet/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-01-08 09:16+0000\n"
-"Last-Translator: Numérigraphe \n"
+"PO-Revision-Date: 2013-05-21 15:42+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:57+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: project_timesheet
#: view:report.timesheet.task.user:0
@@ -44,6 +44,8 @@ msgid ""
"You cannot delete a partner which is assigned to project, but you can "
"uncheck the active box."
msgstr ""
+"Vous ne pouvez pas supprimer un partenaire qui est assigné à un projet, mais "
+"vous pouvez décochez la case actif."
#. module: project_timesheet
#: model:ir.model,name:project_timesheet.model_project_task_work
@@ -56,6 +58,8 @@ msgstr "Avancement sur une tâche de projet"
msgid ""
"You cannot select a Analytic Account which is in Close or Cancelled state."
msgstr ""
+"Vous ne pouvez pas sélectionner un compte analytique qui est dans un état "
+"fermé ou annulé."
#. module: project_timesheet
#: view:report.timesheet.task.user:0
@@ -72,7 +76,7 @@ msgstr "Octobre"
#: view:project.project:0
#, python-format
msgid "Timesheets"
-msgstr ""
+msgstr "Feuilles de temps"
#. module: project_timesheet
#: view:project.project:0
@@ -90,11 +94,18 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Cliquez pour ajouter un contrat client.\n"
+"
\n"
+" Vous trouverez ici les contrats liés à vos projets clients\n"
+" dans le but de suivre la facturation.\n"
+"
\n"
+" "
#. module: project_timesheet
#: view:account.analytic.line:0
msgid "Analytic Account/Project"
-msgstr ""
+msgstr "Compte analytique/Projet"
#. module: project_timesheet
#: view:account.analytic.line:0
@@ -150,6 +161,8 @@ msgid ""
"Please define journal on the related employee.\n"
"Fill in the timesheet tab of the employee form."
msgstr ""
+"Veuillez définir un journal sur l'employé lié.\n"
+"Remplissez-le dans l'onglet 'Feuille de temps' de la fiche de l'employé."
#. module: project_timesheet
#: model:ir.ui.menu,name:project_timesheet.menu_hr_timesheet_sign_in
@@ -169,7 +182,7 @@ msgstr "Contrats à renouveler"
#. module: project_timesheet
#: view:project.project:0
msgid "Hours"
-msgstr ""
+msgstr "Heures"
#. module: project_timesheet
#: view:report.timesheet.task.user:0
@@ -224,6 +237,14 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Vous trouverez ici les feuilles de temps et les achats que "
+"vous avez fait pour vos contrats et qui peuvent être refacturés à votre "
+"client.\n"
+" Si vous souhaitez enregistrer un nouveau travail à facturer, "
+"vous devez utiliser le menu des feuilles de temps.\n"
+"
\n"
+" "
#. module: project_timesheet
#: model:process.node,name:project_timesheet.process_node_timesheettask0
@@ -286,6 +307,8 @@ msgstr "Inscrire combien de temps vous avez travaillé sur votre tâche"
#, python-format
msgid "Please define employee for user \"%s\". You must create one."
msgstr ""
+"Veuillez définir un employé pour l'utilisateur \"%s\". Vous devez en créer "
+"un."
#. module: project_timesheet
#: model:ir.model,name:project_timesheet.model_res_partner
@@ -320,7 +343,7 @@ msgstr "Facturation"
#. module: project_timesheet
#: model:process.node,note:project_timesheet.process_node_triggerinvoice0
msgid "Trigger invoices from sales order lines"
-msgstr ""
+msgstr "Déclencher les factures depuis les lignes des commandes de vente"
#. module: project_timesheet
#: code:addons/project_timesheet/project_timesheet.py:100
@@ -341,6 +364,8 @@ msgid ""
"
Timesheets on this project may be invoiced to %s, according to the terms "
"defined in the contract.
"
msgstr ""
+"
Les feuilles de temps de ce projet peuvent être facturées à %s, en accord "
+"avec les conditions définies dans le contrat.
\n"
+" Ici, vous pouvez suivre toutes les réceptions de bons de "
+"commande\n"
+" pour lesquelles la facturation est \"basée sur les "
+"livraisons entrantes\",\n"
+" et pour lesquelles vous n'avez pas encore reçu de facture "
+"fournisseur.\n"
+" Vous pouvez générer une facture fournisseur basée sur ces "
+"livraisons.\n"
+"
\n"
+" Cliquez pour créer une facture 'Brouillon'.\n"
+"
\n"
+" Utilisez ce menu pour contrôler les factures à recevoir de vos\n"
+" fournisseurs. OpenERP génère des factures 'Brouillon' depuis "
+"vos\n"
+" bons de commande ou vos réceptions, en fonction du paramétrage.\n"
+"
\n"
+" Une fois que vous avez reçu la facture de votre fournisseur, "
+"vous\n"
+" pouvez la comparer avec votre facture 'Brouillon' et la "
+"valider.\n"
+"
\n"
+" Cliquez ici pour enregistrer une facture fournisseur.\n"
+"
\n"
+" Les factures fournisseur peuvent être pré-générées en se "
+"basant\n"
+" sur les bons de commande ou les réceptions. Ceci vous "
+"permet de\n"
+" contrôler les factures que vous recevez de la part de "
+"votre\n"
+" fournisseur avec les documents 'Brouillon' dans "
+"OpenERP.\n"
+"
\n"
+" Ici vous pouvez suivre toutes les lignes de bons de "
+"commandes où\n"
+" la facturation est \"basée sur les lignes de commandes\", et "
+"pour\n"
+" lesquelles vous n'avez pas encore reçu la facture. Vous "
+"pouvez\n"
+" générer une facture 'Brouillon' basée sur les lignes de "
+"cette liste.\n"
+"
\n"
+" "
#. module: purchase
#: field:purchase.order.line,date_planned:0
@@ -481,7 +531,7 @@ msgstr "Réservation"
#. module: purchase
#: view:purchase.order:0
msgid "Purchase orders that include lines not invoiced."
-msgstr "Commmande d'achat qui possèdent des lignes non facturées"
+msgstr "Bons de commande qui possèdent des lignes non facturées"
#. module: purchase
#: view:product.product:0
@@ -647,6 +697,18 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Cliquez pour créer un devis qui sera converti en bon de "
+"commande. \n"
+"
\n"
+" Utiliser ce menu pour chercher vos bons de commande par\n"
+" références, fournisseurs, produits, etc. Pour chaque bon de "
+"commande,\n"
+" vous pouvez suivre la discussion avec le fournisseur, \n"
+" contrôler les produits reçus et contrôler les factures "
+"fournisseur.\n"
+"
\n"
+" "
#. module: purchase
#: view:purchase.order.line:0
@@ -695,7 +757,7 @@ msgstr "Indique qu'une réception de marchandise a été effectuée."
#: code:addons/purchase/purchase.py:586
#, python-format
msgid "Unable to cancel this purchase order."
-msgstr "Impossible d'annuler ce bon de commande d'achat"
+msgstr "Impossible d'annuler ce bon de commande"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_procurement_management_invoice
@@ -728,8 +790,8 @@ msgid ""
"Unique number of the purchase order, computed automatically when the "
"purchase order is created."
msgstr ""
-"Identifiant unique du bon de commande d'achat, calculé automatiquement lors "
-"de sa création."
+"Identifiant unique du bon de commande, calculé automatiquement lors de sa "
+"création."
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action2_purchase
@@ -938,7 +1000,7 @@ msgstr "Délai de validation"
#. module: purchase
#: view:purchase.config.settings:0
msgid "Supplier Features"
-msgstr ""
+msgstr "Fonctionnalités fournisseur"
#. module: purchase
#: report:purchase.order:0
@@ -1223,7 +1285,7 @@ msgstr ""
#. module: purchase
#: view:purchase.order.line_invoice:0
msgid "Select an Open Sales Order"
-msgstr ""
+msgstr "Sélectionnez un bon de commande ouvert."
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_unit_measure_purchase
@@ -1280,12 +1342,12 @@ msgstr "Statistiques sur les bons de commandes"
#: view:purchase.order:0
#: field:purchase.order,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Messages non lus"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_uom_categ_form_action
msgid "Unit of Measure Categories"
-msgstr ""
+msgstr "Catégories d'unités de mesure"
#. module: purchase
#: view:purchase.order:0
@@ -1298,6 +1360,8 @@ msgid ""
"Reference of the document that generated this purchase order request; a "
"sales order or an internal procurement request."
msgstr ""
+"Référence du document qui a généré cette commande d'achat; une commande de "
+"vente ou une demande d'approvisionnement interne."
#. module: purchase
#: view:purchase.order.line:0
@@ -1517,6 +1581,17 @@ msgid ""
" \n"
" "
msgstr ""
+"
\n"
+" Cliquez pour ajouter une version de la liste de prix.\n"
+"
\n"
+" Une liste de prix peut avoir plusieurs versions, chacune "
+"étant\n"
+" valable pour une certaine durée. Il peut y avoir par exemple "
+"des\n"
+" versions : \"Prix de base\", \"Prix 2010\", \"Prix 2011\", "
+"\"Ventes d'été\", etc.\n"
+"
\n"
+" Cliquez pour créer une demande de prix.\n"
+"
\n"
+" Le devis contient l'historique de la discussion/négociation "
+"\n"
+" que vous avez eu avec votre fournisseur. Une fois confirmé,\n"
+" un devis est converti en bon de commande.\n"
+"
\n"
+" Plusieurs propositions de bons de commande sont créées\n"
+" automatiquement par OpenERP basé sur les besoins.\n"
+"
\n"
+" "
#. module: purchase
#: model:process.transition,note:purchase.process_transition_approvingpurchaseorder0
@@ -1737,7 +1824,7 @@ msgstr "Confirmation"
#. module: purchase
#: report:purchase.order:0
msgid "TIN :"
-msgstr ""
+msgstr "TIN :"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_product_by_category_purchase_form
@@ -1756,6 +1843,14 @@ msgid ""
"* The 'Cancelled' status is set automatically when user cancel purchase "
"order."
msgstr ""
+" * L'état 'Brouillon' est défini automatiquement quand un bon de commande "
+"est en brouillon.\n"
+"* L'état 'Confirmée' est défini automatiquement quand un bon de commande est "
+"confirmé.\n"
+"* L'état 'Terminée' est défini automatiquement quand le bon de commande est "
+"terminé.\n"
+"* L'état 'Annulée' est défini automatiquement quand un utilisateur annule le "
+"bon de commande."
#. module: purchase
#: field:purchase.order,invoiced:0
@@ -1805,6 +1900,10 @@ msgid ""
"lines on a purchase order between several accounts and analytic plans.\n"
" This installs the module purchase_analytic_plans."
msgstr ""
+"Permet à l'utilisateur de gérer plusieurs plans analytiques. Ceci vous "
+"permet de diviser les lignes d'un bon de commande entre plusieurs comptes et "
+"plans analytiques.\n"
+" Ceci installe le module 'purchase_analytic_plans'."
#. module: purchase
#: field:purchase.order,location_id:0
@@ -1923,6 +2022,13 @@ msgid ""
"paid and received, the status becomes 'Done'. If a cancel action occurs in "
"the invoice or in the reception of goods, the status becomes in exception."
msgstr ""
+"L'état d'un bon de commande ou d'une demande de prix. Un devis est un bon de "
+"commande à l'état 'Brouillon'. Ensuite, la commande est confirmée par un "
+"utilisateur, le statut passe à 'Confirmé'. Ensuite, le supplier doit "
+"confirmer la commande pour que l'état passe à 'Approuvé'. Dès que le bon de "
+"commande est payé et reçu, l'état devient 'Terminé'. Si une action "
+"d'annulation est faite dans la facture ou lors de la réception, le statut "
+"devient 'En erreur'."
#. module: purchase
#: selection:purchase.order,state:0
@@ -2032,7 +2138,7 @@ msgstr ""
#. module: purchase
#: model:email.template,report_name:purchase.email_template_edi_purchase
msgid "RFQ_${(object.name or '').replace('/','_')}"
-msgstr ""
+msgstr "RFQ_${(object.name or '').replace('/','_')}"
#. module: purchase
#: code:addons/purchase/purchase.py:956
@@ -2062,6 +2168,9 @@ msgid ""
"amount.\n"
" This installs the module purchase_double_validation."
msgstr ""
+"Fournit un mécanisme de double validation des bons de commande qui dépassent "
+"un montant minimum.\n"
+" Ceci installe le module 'purchase_double_validation'."
#. module: purchase
#: code:addons/purchase/edi/purchase_order.py:132
@@ -2121,7 +2230,7 @@ msgstr "Liste des produits commandés"
#. module: purchase
#: view:purchase.order:0
msgid "Incoming Shipments & Invoices"
-msgstr "Factures & Bons de Réception"
+msgstr "Factures & bons de réception"
#. module: purchase
#: selection:purchase.order,state:0
@@ -2335,7 +2444,7 @@ msgstr ""
#. module: purchase
#: field:purchase.order,message_summary:0
msgid "Summary"
-msgstr ""
+msgstr "Résumé"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.purchase_pricelist_version_action
diff --git a/addons/resource/i18n/fr.po b/addons/resource/i18n/fr.po
index 4dd8512a8c9..b64bb3af967 100644
--- a/addons/resource/i18n/fr.po
+++ b/addons/resource/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-01-07 09:00+0000\n"
-"Last-Translator: Numérigraphe \n"
+"PO-Revision-Date: 2013-05-21 15:58+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:59+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: resource
#: help:resource.calendar.leaves,resource_id:0
@@ -102,7 +102,7 @@ msgstr ""
#: code:addons/resource/resource.py:307
#, python-format
msgid "%s (copy)"
-msgstr ""
+msgstr "%s (copie)"
#. module: resource
#: view:resource.calendar:0
@@ -137,7 +137,7 @@ msgstr "Vendredi"
#. module: resource
#: view:resource.calendar.attendance:0
msgid "Hours"
-msgstr ""
+msgstr "Heures"
#. module: resource
#: view:resource.calendar.leaves:0
@@ -163,7 +163,7 @@ msgstr "Chercher des congés des périodes de travail"
#. module: resource
#: field:resource.calendar.attendance,date_from:0
msgid "Starting Date"
-msgstr ""
+msgstr "Date de début"
#. module: resource
#: field:resource.calendar,manager:0
@@ -209,7 +209,7 @@ msgstr "Temps de travail"
#. module: resource
#: help:resource.calendar.attendance,hour_from:0
msgid "Start and End time of working."
-msgstr ""
+msgstr "Heures de début et de fin de travail"
#. module: resource
#: view:resource.calendar.leaves:0
@@ -308,6 +308,11 @@ msgid ""
"show a load of 100% for this phase by default, but if we put a efficiency of "
"200%, then his load will only be 50%."
msgstr ""
+"Ce champ représente l'efficacité d'une ressource pour terminer des tâches, "
+"par ex. la ressource affectée seule a une phase de 5 jours avec 5 tâches qui "
+"lui sont attribuées, montrera par défaut une charge de 100% pour cette "
+"phase, mais si nous définissons une efficacité de 200%, alors sa charge sera "
+"seulement de 50%."
#. module: resource
#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
@@ -352,7 +357,7 @@ msgstr "Humain"
#. module: resource
#: view:resource.calendar.leaves:0
msgid "Duration"
-msgstr ""
+msgstr "Durée"
#. module: resource
#: field:resource.calendar.leaves,date_from:0
diff --git a/addons/sale_journal/i18n/fr.po b/addons/sale_journal/i18n/fr.po
index 56977eee699..65229decfdf 100644
--- a/addons/sale_journal/i18n/fr.po
+++ b/addons/sale_journal/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-01-08 09:25+0000\n"
-"Last-Translator: Florian Hatat \n"
+"PO-Revision-Date: 2013-05-21 15:58+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 06:01+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: sale_journal
#: field:sale_journal.invoice.type,note:0
@@ -106,7 +106,7 @@ msgstr ""
#. module: sale_journal
#: help:sale.order,invoice_type_id:0
msgid "Generate invoice based on the selected option."
-msgstr ""
+msgstr "Génère les factures basées sur l'option sélectionnée."
#. module: sale_journal
#: view:sale.order:0
diff --git a/addons/sale_margin/i18n/fr.po b/addons/sale_margin/i18n/fr.po
index 99cff8d0c2c..90d6feae3fa 100644
--- a/addons/sale_margin/i18n/fr.po
+++ b/addons/sale_margin/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-21 15:59+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 06:01+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: sale_margin
#: field:sale.order.line,purchase_price:0
@@ -44,3 +44,5 @@ msgid ""
"It gives profitability by calculating the difference between the Unit Price "
"and the cost price."
msgstr ""
+"Il donne la rentabilité en calculant la différence entre le prix unitaire et "
+"le coût."
diff --git a/addons/sale_order_dates/i18n/fr.po b/addons/sale_order_dates/i18n/fr.po
index a0cb1df3ca1..d6976fb29a1 100644
--- a/addons/sale_order_dates/i18n/fr.po
+++ b/addons/sale_order_dates/i18n/fr.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-01-08 09:25+0000\n"
-"Last-Translator: Florian Hatat \n"
+"PO-Revision-Date: 2013-05-21 15:59+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 06:01+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: sale_order_dates
#: view:sale.order:0
@@ -54,4 +54,4 @@ msgstr "Commande de ventes"
#. module: sale_order_dates
#: help:sale.order,commitment_date:0
msgid "Committed date for delivery."
-msgstr ""
+msgstr "Date d'engagement de la livraison."
diff --git a/addons/sale_stock/i18n/fr.po b/addons/sale_stock/i18n/fr.po
index e5769694e18..38fe6af9afe 100644
--- a/addons/sale_stock/i18n/fr.po
+++ b/addons/sale_stock/i18n/fr.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-05-18 15:46+0000\n"
+"PO-Revision-Date: 2013-05-21 16:03+0000\n"
"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-19 06:12+0000\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
"X-Generator: Launchpad (build 16626)\n"
#. module: sale_stock
@@ -57,6 +57,10 @@ msgid ""
"Here is a proposition of quantities according to the packaging:\n"
"EAN: %s Quantity: %s Type of ul: %s"
msgstr ""
+"Vous avez sélectionné une quantité de %d unités.\n"
+"Mais elle n'est pas compatible avec l'emballage sélectionné.\n"
+"Ceci est une proposition de quantité en fonction de l'emballage :\n"
+"EAN : %s - Quantité : %s - Type de l'unité : %s"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_packinglist0
@@ -124,6 +128,8 @@ msgid ""
"You cannot make an advance on a sales order that is "
"defined as 'Automatic Invoice after delivery'."
msgstr ""
+"Vous ne pouvez pas faire une avance sur une commande de vente qui est "
+"définie comme 'Facture automatique après la livraison'."
#. module: sale_stock
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
@@ -265,7 +271,7 @@ msgstr "Options par défaut"
#. module: sale_stock
#: field:sale.config.settings,module_project_mrp:0
msgid "Project MRP"
-msgstr ""
+msgstr "Projets GPAO"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_invoiceafterdelivery0
@@ -311,6 +317,7 @@ msgstr ""
#: help:sale.config.settings,group_mrp_properties:0
msgid "Allows you to tag sales order lines with properties."
msgstr ""
+"Vous permet d'étiqueter les lignes de commande de vente avec des propriétés"
#. module: sale_stock
#: field:sale.config.settings,group_invoice_deli_orders:0
@@ -338,6 +345,8 @@ msgid ""
"International Commercial Terms are a series of predefined commercial terms "
"used in international transactions."
msgstr ""
+"Les Incoterms sont une série de termes commerciaux prédéfinie utilisés dans "
+"les transactions internationales."
#. module: sale_stock
#: help:sale.config.settings,module_delivery:0
@@ -347,6 +356,12 @@ msgid ""
"prices.\n"
" This installs the module delivery."
msgstr ""
+"Vous permet d'ajouter des méthodes de livraisons dans vos commandes\n"
+"de ventes et vos ordres de livraison.\n"
+" Vous pouvez définir vos propres transporteurs et les "
+"grilles\n"
+" de prix de livraison.\n"
+" Ceci installe le module 'delivery'."
#. module: sale_stock
#: field:sale.config.settings,default_picking_policy:0
@@ -436,6 +451,15 @@ msgid ""
"lines.\n"
" This installs the modules project_timesheet and project_mrp."
msgstr ""
+"Vous donne la possibilité de transférer les entrées en dessous des tâches "
+"définies pour la gestion de projet\n"
+" aux lignes de feuille de temps pour une date et un "
+"utilisateur particulier avec pour effet de créer, éditer et supprimer dans "
+"les deux sens\n"
+" et pour créer automatiquement des tâches depuis les lignes "
+"d'approvisionnement.\n"
+" Ceci installe les modules 'project_timesheet' et "
+"'project_mrp'."
#. module: sale_stock
#: help:sale.config.settings,group_sale_delivery_address:0
@@ -443,6 +467,8 @@ msgid ""
"Allows you to specify different delivery and invoice addresses on a sales "
"order."
msgstr ""
+"Vous permet de définir des adresses de livraison et de facturation dans les "
+"commandes de vente."
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleprocurement0
@@ -585,7 +611,7 @@ msgstr "Bon de livraison lié"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_config_settings
msgid "sale.config.settings"
-msgstr ""
+msgstr "sale.config.settings"
#. module: sale_stock
#: help:sale.order,picking_ids:0
diff --git a/addons/stock_location/i18n/fr.po b/addons/stock_location/i18n/fr.po
index b002008763a..5e2fae2d4fd 100644
--- a/addons/stock_location/i18n/fr.po
+++ b/addons/stock_location/i18n/fr.po
@@ -7,14 +7,15 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-01-05 16:10+0000\n"
-"Last-Translator: WANTELLET Sylvain \n"
+"PO-Revision-Date: 2013-05-21 16:04+0000\n"
+"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
+"\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 06:03+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-22 05:27+0000\n"
+"X-Generator: Launchpad (build 16626)\n"
#. module: stock_location
#: help:product.pulled.flow,company_id:0
@@ -77,6 +78,7 @@ msgstr ""
#: view:product.product:0
msgid "When receiving at location X, move to location Y"
msgstr ""
+"Quand vous recevez dans l'emplacement X, déplacez vers l'emplacement Y"
#. module: stock_location
#: selection:product.pulled.flow,picking_type:0
@@ -360,7 +362,7 @@ msgstr "Bon de réception"
#. module: stock_location
#: view:product.product:0
msgid "Fulfill needs on location X from location Y "
-msgstr ""
+msgstr "Remplit les besoins de l'emplacement X depuis l'emplacement Y "
#. module: stock_location
#: view:product.product:0
From d08295abf6a4d034356e29f7194909c916e9fbc0 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Wed, 22 May 2013 10:09:28 +0200
Subject: [PATCH 059/164] [FIX] account_followup, usability: modified the group
on the button 'Mark as Done'
bzr revid: qdp-launchpad@openerp.com-20130522080928-u5f78ir49s2i1gev
---
addons/account_followup/account_followup_customers.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml
index f15d4da9524..6a619b8aa76 100644
--- a/addons/account_followup/account_followup_customers.xml
+++ b/addons/account_followup/account_followup_customers.xml
@@ -95,7 +95,7 @@
+ groups="account.group_account_user"/>
From 2d6bb28f4c7435dcf7ae7e04ed388569b039ce07 Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Wed, 22 May 2013 11:25:20 +0200
Subject: [PATCH 060/164] [IMP] version number
bzr revid: lorenzo.battistini@agilebg.com-20130522092520-g1p02w7ii1n4jldx
---
addons/l10n_it/__openerp__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/l10n_it/__openerp__.py b/addons/l10n_it/__openerp__.py
index 00ba19e9c42..686fb5ff0d4 100644
--- a/addons/l10n_it/__openerp__.py
+++ b/addons/l10n_it/__openerp__.py
@@ -29,7 +29,7 @@
{
'name': 'Italy - Accounting',
- 'version': '0.1',
+ 'version': '0.2',
'depends': ['base_vat','account_chart','base_iban'],
'author': 'OpenERP Italian Community',
'description': """
From 9fc3014e11444eb82c1f43904a2e7d47e330d4df Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Wed, 22 May 2013 11:40:17 +0200
Subject: [PATCH 061/164] [FIX] hr_expense: fix in accounting entries
generation for tax included in price
bzr revid: qdp-launchpad@openerp.com-20130522094017-b6xibz6b90s4w091
---
addons/hr_expense/hr_expense.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 75f6c7c207e..7299f495cb4 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -279,7 +279,6 @@ class hr_expense_expense(osv.osv):
tax_code_found= False
#Calculate tax according to default tax on product
-
taxes = []
#Taken from product_id_onchange in account.invoice
if line.product_id:
@@ -316,8 +315,12 @@ class hr_expense_expense(osv.osv):
tax_code_found = True
res[-1]['tax_code_id'] = tax_code_id
res[-1]['tax_amount'] = cur_obj.compute(cr, uid, exp.currency_id.id, company_currency, tax_amount, context={'date': exp.date_confirm})
-
- #Will create the tax here as we don't have the access
+ ##
+ is_price_include = tax_obj.read(cr,uid,tax['id'],['price_include'],context)['price_include']
+ if is_price_include:
+ ## We need to deduce the price for the tax
+ res[-1]['price'] = res[-1]['price'] - (tax['amount'] * tax['base_sign'] or 0.0)
+ #Will create the tax here as we don't have the access
assoc_tax = {
'type':'tax',
'name':tax['name'],
From e6a8f9aac010109cde4e8f6fa3696745fc472b54 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 22 May 2013 14:25:56 +0200
Subject: [PATCH 062/164] [FIX] portal: typos/wording in error messages
bzr revid: odo@openerp.com-20130522122556-mq3402op1n1315ae
---
addons/portal/wizard/portal_wizard.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 52da89bf3b1..2c72c6847dd 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -153,8 +153,8 @@ class wizard_user(osv.osv_memory):
'\n- '.join(['%s <%s>' % (p.display_name, p.email) for p in error_user])))
if error_msg:
error_msg.append(_("To resolve this error, you can: \n"
- "- Correct the email addresses of the relevant contacts\n"
- "- Choose other contacts to merge"))
+ "- Correct the emails of the relevant contacts\n"
+ "- Grant access only to contacts with unique emails"))
return error_msg
def action_apply(self, cr, uid, ids, context=None):
From 361cd5fc40720a71f18e93758af8504487c4e6ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Najla=C3=A2?=
Date: Wed, 22 May 2013 15:08:42 +0200
Subject: [PATCH 063/164] [FIX] remove index on SO line text field
bzr revid: nel@tinyerp.com-20130522130842-whn5n8fbc0gv34jx
---
addons/sale/sale.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 2518a801eb2..aa0648d15b2 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -687,7 +687,7 @@ class sale_order_line(osv.osv):
_description = 'Sales Order Line'
_columns = {
'order_id': fields.many2one('sale.order', 'Order Reference', required=True, ondelete='cascade', select=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'name': fields.text('Description', required=True, select=True, readonly=True, states={'draft': [('readonly', False)]}),
+ 'name': fields.text('Description', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of sales order lines."),
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok', '=', True)], change_default=True),
'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
From bf67507fdd2d17d363dcb4cbe0ca4c2c2994f19b Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 22 May 2013 16:30:17 +0200
Subject: [PATCH 064/164] [FIX] portal: avoid errors during portal access
management if users already exists (and thus will not cause problems)
This allows more complex cases like having a login
that is different from the email of the related
partners, but the same as the email of another
user
bzr revid: odo@openerp.com-20130522143017-pr30b3g6j8ht0ma6
---
addons/portal/wizard/portal_wizard.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 2c72c6847dd..e379adc1c9f 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -130,13 +130,13 @@ class wizard_user(osv.osv_memory):
error_user = []
ctx = dict(context or {}, active_test=False)
for wizard_user in self.browse(cr, SUPERUSER_ID, ids, context):
- if wizard_user.in_portal:
+ if wizard_user.in_portal and not self._retrieve_user(cr, uid, wizard_user, context):
email = extract_email(wizard_user.email)
if not email:
error_empty.append(wizard_user.partner_id)
elif email in emails and email not in error_emails:
error_emails.append(wizard_user.partner_id)
- user = res_users.search(cr, SUPERUSER_ID, [('partner_id', '!=', wizard_user.partner_id.id), ('login', '=', email)], context=ctx)
+ user = res_users.search(cr, SUPERUSER_ID, [('login', '=', email)], context=ctx)
if user:
error_user.append(wizard_user.partner_id)
emails.append(email)
From d086a7113165598fc7a4b1285febe9b956d62cde Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Tue, 28 May 2013 12:43:52 +0200
Subject: [PATCH 065/164] [IMP] web: allow manifest files to contain remote
js/css/qweb files
bzr revid: chs@openerp.com-20130528104352-b1qf79d6bdm8x2ec
---
addons/web/controllers/main.py | 16 +++++++++++-----
addons/web/static/src/js/corelib.js | 3 ++-
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 78aa85669be..117c14a2866 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -308,7 +308,7 @@ def fs2web(path):
"""convert FS path into web path"""
return '/'.join(path.split(os.path.sep))
-def manifest_glob(req, extension, addons=None, db=None):
+def manifest_glob(req, extension, addons=None, db=None, include_remotes=False):
if addons is None:
addons = module_boot(req, db=db)
else:
@@ -322,8 +322,12 @@ def manifest_glob(req, extension, addons=None, db=None):
addons_path = os.path.join(manifest['addons_path'], '')[:-1]
globlist = manifest.get(extension, [])
for pattern in globlist:
- for path in glob.glob(os.path.normpath(os.path.join(addons_path, addon, pattern))):
- r.append((path, fs2web(path[len(addons_path):])))
+ if pattern.startswith(('http://', 'https://', '//')):
+ if include_remotes:
+ r.append((None, pattern))
+ else:
+ for path in glob.glob(os.path.normpath(os.path.join(addons_path, addon, pattern))):
+ r.append((path, fs2web(path[len(addons_path):])))
return r
def manifest_list(req, extension, mods=None, db=None):
@@ -331,14 +335,16 @@ def manifest_list(req, extension, mods=None, db=None):
mods: a comma separated string listing modules
db: a database name (return all installed modules in that database)
"""
+ files = manifest_glob(req, extension, addons=mods, db=db, include_remotes=True)
if not req.debug:
path = '/web/webclient/' + extension
if mods is not None:
path += '?' + urllib.urlencode({'mods': mods})
elif db:
path += '?' + urllib.urlencode({'db': db})
- return [path]
- files = manifest_glob(req, extension, addons=mods, db=db)
+
+ remotes = [wp for fp, wp in files if fp is None]
+ return [path] + remotes
return [wp for _fp, wp in files]
def get_last_modified(files):
diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js
index c4bb81117f8..1a32a4b4b6e 100644
--- a/addons/web/static/src/js/corelib.js
+++ b/addons/web/static/src/js/corelib.js
@@ -1144,7 +1144,8 @@ instance.web.JsonRPC = instance.web.Class.extend(instance.web.PropertiesMixin, {
}
qs = '?' + $.param(params);
}
- return this.prefix + path + qs;
+ var prefix = _.any(['http://', 'https://', '//'], _.bind(_.str.startsWith, null, path)) ? '' : self.prefix;
+ return prefix + path + qs;
},
});
From 9bd1be36ee473c2413f512c7032298fe7f6b50aa Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Tue, 28 May 2013 13:02:10 +0200
Subject: [PATCH 066/164] [FIX] portal: access management wizard needs to
search for existing users as super-user
bzr revid: odo@openerp.com-20130528110210-70u81w5u21xxzg54
---
addons/portal/wizard/portal_wizard.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index e379adc1c9f..411dd33c31a 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -130,7 +130,7 @@ class wizard_user(osv.osv_memory):
error_user = []
ctx = dict(context or {}, active_test=False)
for wizard_user in self.browse(cr, SUPERUSER_ID, ids, context):
- if wizard_user.in_portal and not self._retrieve_user(cr, uid, wizard_user, context):
+ if wizard_user.in_portal and not self._retrieve_user(cr, SUPERUSER_ID, wizard_user, context):
email = extract_email(wizard_user.email)
if not email:
error_empty.append(wizard_user.partner_id)
From c05abdc22d85f960f07822dfac89f57fb2807516 Mon Sep 17 00:00:00 2001
From: Christophe Simonis
Date: Tue, 28 May 2013 13:44:00 +0200
Subject: [PATCH 067/164] [FIX] corelib.js: use this instead of self
bzr revid: chs@openerp.com-20130528114400-jhjmk7hhg60o5871
---
addons/web/static/src/js/corelib.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js
index 1a32a4b4b6e..116ddf2e8c2 100644
--- a/addons/web/static/src/js/corelib.js
+++ b/addons/web/static/src/js/corelib.js
@@ -1144,7 +1144,7 @@ instance.web.JsonRPC = instance.web.Class.extend(instance.web.PropertiesMixin, {
}
qs = '?' + $.param(params);
}
- var prefix = _.any(['http://', 'https://', '//'], _.bind(_.str.startsWith, null, path)) ? '' : self.prefix;
+ var prefix = _.any(['http://', 'https://', '//'], _.bind(_.str.startsWith, null, path)) ? '' : this.prefix;
return prefix + path + qs;
},
});
From 13caa128a61754e232e92feee37a1b78f38f3689 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Mon, 27 May 2013 16:49:27 +0200
Subject: [PATCH 068/164] [FIX] FieldMany2One: avoid displaying a crash when
name_getting an invisible many2one due to an always_reload.
bzr revid: tde@openerp.com-20130527144927-9c9ivhskyiv66fnh
---
addons/web/static/src/js/view_form.js | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 1d5c97532cc..711f34fd279 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -3389,6 +3389,11 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
this.alive(dataset.name_get([self.get("value")])).done(function(data) {
self.display_value["" + self.get("value")] = data[0][1];
self.render_value(true);
+ }).fail( function (data, event) {
+ // avoid displaying crash errors when having an invisible field
+ if (self.get('effective_invisible')) {
+ event.preventDefault();
+ }
});
}
},
From 823439f7e1553f7087de4ec5647b15df21dfecb3 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Wed, 22 May 2013 18:32:01 +0200
Subject: [PATCH 069/164] [FIX] res.groups: ensure predictable sort order
Unfortunately the group names are translatable,
and the display name is based on the hierarchy
of groups, so this will not give a satisfactory
result. What we would need ideally is to be able
to sort on the translated "full name" value,
but this is not supported by the ORM yet.
But a stable order is still better than no
order at all
bzr revid: odo@openerp.com-20130522163201-f9zo7xnjvbs2mi97
---
openerp/addons/base/res/res_users.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py
index b0040d7c879..e5d55e56bdd 100644
--- a/openerp/addons/base/res/res_users.py
+++ b/openerp/addons/base/res/res_users.py
@@ -38,6 +38,7 @@ class groups(osv.osv):
_name = "res.groups"
_description = "Access Groups"
_rec_name = 'full_name'
+ _order = 'name'
def _get_full_name(self, cr, uid, ids, field, arg, context=None):
res = {}
From 5bf349766bdb97e2e7a7527cbd7e12f9172080f3 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Wed, 22 May 2013 19:49:45 +0200
Subject: [PATCH 070/164] [FIX] hr_expense: 1) added a 'paid' status on
hr.expense. 2) don't copy the account_move on duplication of an hr.expense
bzr revid: qdp-launchpad@openerp.com-20130522174945-02smgv1jpheo3zcc
---
addons/hr_expense/hr_expense.py | 40 ++++++++++++++++++++++-----
addons/hr_expense/hr_expense_view.xml | 2 +-
2 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 7299f495cb4..f8293e6e36e 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -55,10 +55,7 @@ class hr_expense_expense(osv.osv):
def _get_currency(self, cr, uid, context=None):
user = self.pool.get('res.users').browse(cr, uid, [uid], context=context)[0]
- if user.company_id:
- return user.company_id.currency_id.id
- else:
- return self.pool.get('res.currency').search(cr, uid, [('rate','=',1.0)], context=context)[0]
+ return user.company_id.currency_id.id
_name = "hr.expense.expense"
_inherit = ['mail.thread']
@@ -95,11 +92,13 @@ class hr_expense_expense(osv.osv):
('cancelled', 'Refused'),
('confirm', 'Waiting Approval'),
('accepted', 'Approved'),
- ('done', 'Done'),
+ ('done', 'Waiting Payment'),
+ ('paid', 'Paid'),
],
'Status', readonly=True, track_visibility='onchange',
help='When the expense request is created the status is \'Draft\'.\n It is confirmed by the user and request is sent to admin, the status is \'Waiting Confirmation\'.\
- \nIf the admin accepts it, the status is \'Accepted\'.\n If a receipt is made for the expense request, the status is \'Done\'.'),
+ \nIf the admin accepts it, the status is \'Accepted\'.\n If the accounting entries are made for the expense request, the status is \'Waiting Payment\'.'),
+
}
_defaults = {
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'hr.employee', context=c),
@@ -110,6 +109,12 @@ class hr_expense_expense(osv.osv):
'currency_id': _get_currency,
}
+ def copy(self, cr, uid, id, default=None, context=None):
+ if default is None:
+ default = {}
+ default.update(account_move_id=False)
+ return super(hr_expense_expense, self).copy(cr, uid, id, default=default, context=context)
+
def unlink(self, cr, uid, ids, context=None):
for rec in self.browse(cr, uid, ids, context=context):
if rec.state != 'draft':
@@ -320,7 +325,6 @@ class hr_expense_expense(osv.osv):
if is_price_include:
## We need to deduce the price for the tax
res[-1]['price'] = res[-1]['price'] - (tax['amount'] * tax['base_sign'] or 0.0)
- #Will create the tax here as we don't have the access
assoc_tax = {
'type':'tax',
'name':tax['name'],
@@ -452,4 +456,26 @@ class hr_expense_line(osv.osv):
hr_expense_line()
+class account_move_line(osv.osv):
+ _inherit = "account.move.line"
+
+ def reconcile(self, cr, uid, ids, type='auto', writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False, context=None):
+ res = super(account_move_line, self).reconcile(cr, uid, ids, type=type, writeoff_acc_id=writeoff_acc_id, writeoff_period_id=writeoff_period_id, writeoff_journal_id=writeoff_journal_id, context=context)
+ #when making a full reconciliation of account move lines 'ids', we may need to recompute the state of some hr.expense
+ account_move_ids = [aml.move_id.id for aml in self.browse(cr, uid, ids, context=context)]
+ expense_obj = self.pool.get('hr.expense.expense')
+ currency_obj = self.pool.get('res.currency')
+ if account_move_ids:
+ expense_ids = expense_obj.search(cr, uid, [('account_move_id', 'in', account_move_ids)], context=context)
+ for expense in expense_obj.browse(cr, uid, expense_ids, context=context):
+ if expense.state == 'done':
+ #making the postulate it has to be set paid, then trying to invalidate it
+ new_status_is_paid = True
+ for aml in expense.account_move_id.line_id:
+ if aml.account_id.type == 'payable' and not currency_obj.is_zero(cr, uid, expense.company_id.currency_id, aml.amount_residual):
+ new_status_is_paid = False
+ if new_status_is_paid:
+ expense_obj.write(cr, uid, [expense.id], {'state': 'paid'}, context=context)
+ return res
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 3dc40ed749d..07931686ecb 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -68,7 +68,7 @@
-
+
From 55c122c632ea1b0d9840064d8046e633bea72dfe Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Thu, 23 May 2013 06:20:12 +0000
Subject: [PATCH 071/164] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20130523062012-lih2yomt8w8vsswa
---
addons/account_asset/i18n/es.po | 14 +-
addons/hr_recruitment/i18n/nl.po | 8 +-
addons/portal_crm/i18n/fr.po | 571 +++++++++++++++++++++++++
addons/portal_event/i18n/fr.po | 59 +++
addons/portal_hr_employees/i18n/fr.po | 100 +++++
addons/portal_project_issue/i18n/fr.po | 40 ++
addons/project/i18n/fr.po | 25 +-
addons/project_issue/i18n/fr.po | 18 +-
addons/report_webkit/i18n/fr.po | 36 +-
addons/share/i18n/fr.po | 50 ++-
addons/survey/i18n/fr.po | 24 +-
addons/web_linkedin/i18n/nl.po | 14 +-
12 files changed, 880 insertions(+), 79 deletions(-)
create mode 100644 addons/portal_crm/i18n/fr.po
create mode 100644 addons/portal_event/i18n/fr.po
create mode 100644 addons/portal_hr_employees/i18n/fr.po
create mode 100644 addons/portal_project_issue/i18n/fr.po
diff --git a/addons/account_asset/i18n/es.po b/addons/account_asset/i18n/es.po
index 4d174434e55..9c7f63514ef 100644
--- a/addons/account_asset/i18n/es.po
+++ b/addons/account_asset/i18n/es.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-22 09:56+0000\n"
+"Last-Translator: Pedro Manuel Baeza \n"
"Language-Team: Spanish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:29+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: account_asset
#: view:account.asset.asset:0
@@ -295,8 +295,8 @@ msgid ""
"Prorata temporis can be applied only for time method \"number of "
"depreciations\"."
msgstr ""
-"Prorata temporis puede ser aplicado solo para método de tiempo \"numero de "
-"amortizaciones\""
+"El prorrateo de tiempo sólo se puede utilizar para el método de tiempo "
+"\"numero de amortizaciones\""
#. module: account_asset
#: field:account.asset.depreciation.line,remaining_value:0
@@ -546,7 +546,7 @@ msgstr "General"
#: field:account.asset.asset,prorata:0
#: field:account.asset.category,prorata:0
msgid "Prorata Temporis"
-msgstr "Tiempo prorateado"
+msgstr "Tiempo prorrateado"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_invoice
diff --git a/addons/hr_recruitment/i18n/nl.po b/addons/hr_recruitment/i18n/nl.po
index 2084e5ed4ea..9af53866287 100644
--- a/addons/hr_recruitment/i18n/nl.po
+++ b/addons/hr_recruitment/i18n/nl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-03-19 19:16+0000\n"
+"PO-Revision-Date: 2013-05-22 08:48+0000\n"
"Last-Translator: Erwin van der Ploeg (Endian Solutions) \n"
"Language-Team: Dutch \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:42+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: hr_recruitment
#: help:hr.applicant,active:0
@@ -618,7 +618,7 @@ msgstr "In behandeling"
#. module: hr_recruitment
#: view:hr.applicant:0
msgid "Hire & Create Employee"
-msgstr "Huur & maak werknemer"
+msgstr "Werknemer aannemen en aanmaken"
#. module: hr_recruitment
#: model:mail.message.subtype,description:hr_recruitment.mt_applicant_hired
diff --git a/addons/portal_crm/i18n/fr.po b/addons/portal_crm/i18n/fr.po
new file mode 100644
index 00000000000..77089898352
--- /dev/null
+++ b/addons/portal_crm/i18n/fr.po
@@ -0,0 +1,571 @@
+# French translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2013-03-07 08:38+0000\n"
+"PO-Revision-Date: 2013-05-22 16:37+0000\n"
+"Last-Translator: Quentin THEURET \n"
+"Language-Team: French \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Lead"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,title:0
+msgid "Title"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,probability:0
+msgid "Success Rate (%)"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact us"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,fax:0
+msgid "Fax"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,zip:0
+msgid "Zip"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you for your interest, we'll respond to your request shortly."
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,description:0
+msgid "Notes"
+msgstr "Notes"
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_name:0
+msgid "Customer Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,channel_id:0
+msgid "Communication channel (mail, direct, phone, ...)"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_next:0
+#: field:portal_crm.crm_contact_us,title_action:0
+msgid "Next Action"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_summary:0
+msgid ""
+"Holds the Chatter summary (number of messages, ...). This summary is "
+"directly in html format in order to be inserted in kanban views."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.actions.act_window,name:portal_crm.action_contact_us
+msgid "Contact Us"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,opt_out:0
+msgid "Opt-Out"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state_id:0
+msgid "State"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_id:0
+msgid "Linked partner (optional). Usually created when converting the lead."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,payment_mode:0
+msgid "Payment Mode"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "New"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type:0
+msgid "Type"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,channel_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Content..."
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Close"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,categ_ids:0
+msgid "Categories"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_login:0
+msgid "User Login"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,opt_out:0
+msgid ""
+"If opt-out is checked, this contact has refused to receive emails or "
+"unsubscribed to a campaign."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,contact_name:0
+msgid "Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.ui.menu,name:portal_crm.portal_company_contact
+msgid "Contact"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Your name..."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_email:0
+msgid "Partner Contact Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_revenue:0
+msgid "Expected Revenue"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,task_ids:0
+msgid "Tasks"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact form"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_currency:0
+msgid "Currency"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Your email..."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_deadline:0
+msgid "Expected Closing"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_name:0
+msgid ""
+"The name of the future partner company that will be created while converting "
+"the lead into opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_deadline:0
+msgid "Estimate of the date on which the opportunity will be won."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_closed:0
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_assign:0
+msgid "Assignation Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state:0
+msgid "Status"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_cc:0
+msgid "Global CC"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street2:0
+msgid "Street2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,id:0
+msgid "ID"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,active:0
+msgid "Active"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_id:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_ids:0
+msgid "Companies"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Subject..."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,section_id:0
+msgid ""
+"When sending mails, the default email address is taken from the sales team."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_name:0
+msgid "Partner Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Your phone number..."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_from:0
+msgid "Email address of the contact"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,city:0
+msgid "City"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Submit"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,function:0
+msgid "Function"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,referred:0
+msgid "Referred By"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,state:0
+msgid ""
+"The Status is set to 'Draft', when a case is created. If the case is in "
+"progress the Status is set to 'Open'. When the case is over, the Status is "
+"set to 'Done'. If the case needs to be reviewed then the Status is set to "
+"'Pending'."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type_id:0
+msgid ""
+"From which campaign (seminar, marketing campaign, mass mailing, ...) did "
+"this contact come from?"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "High"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street:0
+msgid "Street"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr ""
diff --git a/addons/portal_event/i18n/fr.po b/addons/portal_event/i18n/fr.po
new file mode 100644
index 00000000000..41538b31021
--- /dev/null
+++ b/addons/portal_event/i18n/fr.po
@@ -0,0 +1,59 @@
+# French translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2013-03-07 08:38+0000\n"
+"PO-Revision-Date: 2013-05-22 16:32+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: French \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
+
+#. module: portal_event
+#: view:event.event:0
+msgid "Portal Settings"
+msgstr ""
+
+#. module: portal_event
+#: model:ir.actions.act_window,help:portal_event.action_event_view
+msgid "There are no public events."
+msgstr ""
+
+#. module: portal_event
+#: selection:event.event,visibility:0
+msgid "Private"
+msgstr ""
+
+#. module: portal_event
+#: model:ir.model,name:portal_event.model_event_event
+msgid "Event"
+msgstr ""
+
+#. module: portal_event
+#: model:ir.actions.act_window,name:portal_event.action_event_view
+#: model:ir.ui.menu,name:portal_event.portal_company_events
+msgid "Events"
+msgstr ""
+
+#. module: portal_event
+#: field:event.event,visibility:0
+msgid "Visibility"
+msgstr ""
+
+#. module: portal_event
+#: help:event.event,visibility:0
+msgid "Event's visibility in the portal's contact page"
+msgstr ""
+
+#. module: portal_event
+#: selection:event.event,visibility:0
+msgid "Public"
+msgstr ""
diff --git a/addons/portal_hr_employees/i18n/fr.po b/addons/portal_hr_employees/i18n/fr.po
new file mode 100644
index 00000000000..e5060b63e1d
--- /dev/null
+++ b/addons/portal_hr_employees/i18n/fr.po
@@ -0,0 +1,100 @@
+# French translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2013-03-07 08:38+0000\n"
+"PO-Revision-Date: 2013-05-22 16:29+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: French \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Here you can write information about you to be shown in the portal..."
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Coach"
+msgstr ""
+
+#. module: portal_hr_employees
+#: model:ir.actions.act_window,name:portal_hr_employees.action_team
+#: view:portal_crm.crm_contact_us:0
+msgid "Our Team"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Group By..."
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Company"
+msgstr ""
+
+#. module: portal_hr_employees
+#: selection:hr.employee,visibility:0
+msgid "Public"
+msgstr ""
+
+#. module: portal_hr_employees
+#: help:hr.employee,visibility:0
+msgid "Employee's visibility in the portal's contact page"
+msgstr ""
+
+#. module: portal_hr_employees
+#: selection:hr.employee,visibility:0
+msgid "Private"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Manager"
+msgstr ""
+
+#. module: portal_hr_employees
+#: model:ir.model,name:portal_hr_employees.model_hr_employee
+msgid "Employee"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Job"
+msgstr ""
+
+#. module: portal_hr_employees
+#: field:hr.employee,visibility:0
+msgid "Visibility"
+msgstr ""
+
+#. module: portal_hr_employees
+#: field:hr.employee,public_info:0
+msgid "Public Info"
+msgstr ""
+
+#. module: portal_hr_employees
+#: model:ir.model,name:portal_hr_employees.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Department"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+#: field:portal_crm.crm_contact_us,employee_ids:0
+msgid "Employees"
+msgstr ""
diff --git a/addons/portal_project_issue/i18n/fr.po b/addons/portal_project_issue/i18n/fr.po
new file mode 100644
index 00000000000..09fd1689add
--- /dev/null
+++ b/addons/portal_project_issue/i18n/fr.po
@@ -0,0 +1,40 @@
+# French translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2013-03-07 08:38+0000\n"
+"PO-Revision-Date: 2013-05-22 08:03+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: French \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
+
+#. module: portal_project_issue
+#: view:project.issue:0
+msgid "Creation:"
+msgstr ""
+
+#. module: portal_project_issue
+#: model:ir.actions.act_window,help:portal_project_issue.project_issue_categ_act0
+msgid ""
+"
\n"
+" Click to create an issue.\n"
+"
\n"
+" You can track your issues from this menu and the action we\n"
+" will take.\n"
+"
\n"
+" "
+msgstr ""
+
+#. module: portal_project_issue
+#: model:ir.actions.act_window,name:portal_project_issue.project_issue_categ_act0
+msgid "Issues"
+msgstr ""
diff --git a/addons/project/i18n/fr.po b/addons/project/i18n/fr.po
index 4ae800f07ff..244334af78d 100644
--- a/addons/project/i18n/fr.po
+++ b/addons/project/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-05-09 10:11+0000\n"
+"PO-Revision-Date: 2013-05-22 16:25+0000\n"
"Last-Translator: David Halgand \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-10 06:51+0000\n"
-"X-Generator: Launchpad (build 16598)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:20+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: project
#: view:project.project:0
@@ -1328,7 +1328,7 @@ msgstr "Retard en heures"
#. module: project
#: view:project.task.type:0
msgid "Add a description..."
-msgstr ""
+msgstr "Ajouter une description…"
#. module: project
#: view:project.project:0
@@ -1521,6 +1521,9 @@ msgid ""
"You cannot delete a project containing tasks. You can either delete all the "
"project's tasks and then delete the project or simply deactivate the project."
msgstr ""
+"Vous ne pouvez pas supprimer un projet contenant des tâches. Vous pouvez "
+"soit supprimer toutes les tâches projet, puis supprimer le projet ou tout "
+"simplement désactiver le projet."
#. module: project
#: model:process.transition.action,name:project.process_transition_action_draftopentask0
@@ -1644,12 +1647,12 @@ msgstr "Attribué à"
#. module: project
#: model:res.groups,name:project.group_time_work_estimation_tasks
msgid "Time Estimation on Tasks"
-msgstr ""
+msgstr "Estimation du temps sur les tâches"
#. module: project
#: field:project.task,total_hours:0
msgid "Total"
-msgstr ""
+msgstr "Total"
#. module: project
#: model:process.node,note:project.process_node_taskbydelegate0
@@ -1659,7 +1662,7 @@ msgstr "Délégué votre tâche à un autre utilisateur"
#. module: project
#: model:mail.message.subtype,description:project.mt_task_started
msgid "Task started"
-msgstr ""
+msgstr "Tâche commencée"
#. module: project
#: help:project.task.reevaluate,remaining_hours:0
@@ -1701,7 +1704,7 @@ msgstr "Projets en attente"
#. module: project
#: view:project.task:0
msgid "Remaining"
-msgstr ""
+msgstr "Reste à faire"
#. module: project
#: field:project.task,progress:0
@@ -1820,7 +1823,7 @@ msgstr ""
#. module: project
#: model:mail.message.subtype,description:project.mt_task_new
msgid "Task created"
-msgstr ""
+msgstr "Tâche créée"
#. module: project
#: view:report.project.task.user:0
@@ -2112,12 +2115,12 @@ msgstr "Projets dans lesquels je suis membre"
#: selection:project.task.history,kanban_state:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Ready for next stage"
-msgstr ""
+msgstr "Prêt pour la prochaine étape"
#. module: project
#: field:project.task.type,case_default:0
msgid "Default for New Projects"
-msgstr ""
+msgstr "Par défaut pour les nouveaux projets"
#. module: project
#: view:project.task:0
diff --git a/addons/project_issue/i18n/fr.po b/addons/project_issue/i18n/fr.po
index 6ed59cd862e..a0b9bb64b14 100644
--- a/addons/project_issue/i18n/fr.po
+++ b/addons/project_issue/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-22 11:31+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:57+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:20+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: project_issue
#: model:project.category,name:project_issue.project_issue_category_03
@@ -28,6 +28,8 @@ msgid ""
"Allows you to configure your incoming mail server, and create issues from "
"incoming emails."
msgstr ""
+"Vous permet de configurer vos serveurs de courriels entrants, et de créer "
+"des incidents depuis les courriels entrants."
#. module: project_issue
#: field:project.issue.report,delay_open:0
@@ -48,7 +50,7 @@ msgstr "Heures de travail pour ouvrir l'incident"
#. module: project_issue
#: model:mail.message.subtype,description:project_issue.mt_issue_started
msgid "Issue started"
-msgstr ""
+msgstr "Incident démarré"
#. module: project_issue
#: field:project.issue,date_open:0
@@ -323,7 +325,7 @@ msgstr "Nouveau"
#. module: project_issue
#: view:project.project:0
msgid "{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}"
-msgstr ""
+msgstr "{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}"
#. module: project_issue
#: field:project.issue,email_from:0
@@ -646,7 +648,7 @@ msgstr "Novembre"
#: code:addons/project_issue/project_issue.py:492
#, python-format
msgid "Customer Email"
-msgstr ""
+msgstr "Courriel client"
#. module: project_issue
#: view:project.issue.report:0
@@ -851,7 +853,7 @@ msgstr "Nb. de courriels"
#: model:mail.message.subtype,name:project_issue.mt_issue_new
#: model:mail.message.subtype,name:project_issue.mt_project_issue_new
msgid "Issue Created"
-msgstr ""
+msgstr "Incident créé"
#. module: project_issue
#: code:addons/project_issue/project_issue.py:490
diff --git a/addons/report_webkit/i18n/fr.po b/addons/report_webkit/i18n/fr.po
index e71181bcd29..3677ca1d73f 100644
--- a/addons/report_webkit/i18n/fr.po
+++ b/addons/report_webkit/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-22 06:44+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:59+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:20+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: report_webkit
#: view:ir.actions.report.xml:0
@@ -70,7 +70,7 @@ msgstr "Société"
#: code:addons/report_webkit/webkit_report.py:234
#, python-format
msgid "Please set a header in company settings."
-msgstr ""
+msgstr "Veuillez définir une en-tête dans la configuration de la société."
#. module: report_webkit
#: selection:ir.header_webkit,format:0
@@ -117,7 +117,7 @@ msgstr "A4 0 210 x 297 mm, 8.26 x 11.69 pouces"
#: code:addons/report_webkit/webkit_report.py:176
#, python-format
msgid "Webkit error"
-msgstr ""
+msgstr "Erreur Webkit"
#. module: report_webkit
#: selection:ir.header_webkit,format:0
@@ -132,7 +132,7 @@ msgstr "B2 17 500 x 707 mm"
#: code:addons/report_webkit/webkit_report.py:304
#, python-format
msgid "Webkit render!"
-msgstr ""
+msgstr "Rendu webkit !"
#. module: report_webkit
#: model:ir.model,name:report_webkit.model_ir_header_img
@@ -153,6 +153,11 @@ msgid ""
"http://code.google.com/p/wkhtmltopdf/downloads/list and set the path in the "
"ir.config_parameter with the webkit_path key.Minimal version is 0.9.9"
msgstr ""
+"Veuillez installer l'exécutable sur votre système (sudo apt-get install "
+"wkhtmltopdf) ou le télécharger sur : "
+"http://code.google.com/p/wkhtmltopdf/downloads/list et définir le chemin "
+"dans ir.config_parameter avec la version webkit_path key.Minimal égale à "
+"0.9.9"
#. module: report_webkit
#: selection:ir.header_webkit,format:0
@@ -204,7 +209,7 @@ msgstr "L'en-tête liée au rapport"
#: code:addons/report_webkit/webkit_report.py:95
#, python-format
msgid "Wkhtmltopdf library path is not set"
-msgstr ""
+msgstr "Le chemin vers la bibliothèque Wkhtmltopdf n'est pas défini"
#. module: report_webkit
#: view:ir.actions.report.xml:0
@@ -284,7 +289,7 @@ msgstr "Image"
#. module: report_webkit
#: view:ir.header_img:0
msgid "Header Image"
-msgstr ""
+msgstr "Image d'en-tête"
#. module: report_webkit
#: field:res.company,header_webkit:0
@@ -313,7 +318,7 @@ msgstr "Portrait"
#. module: report_webkit
#: view:report.webkit.actions:0
msgid "or"
-msgstr ""
+msgstr "ou"
#. module: report_webkit
#: selection:ir.header_webkit,orientation:0
@@ -330,6 +335,7 @@ msgstr "B8 22 62 x 88 mm"
#, python-format
msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s"
msgstr ""
+"La commande 'wkhtmltopdf' a échouée avec le code d'erreur = %s. Message : %s"
#. module: report_webkit
#: selection:ir.header_webkit,format:0
@@ -375,7 +381,7 @@ msgstr "Marge de droite (mm)"
#: code:addons/report_webkit/webkit_report.py:228
#, python-format
msgid "Webkit report template not found!"
-msgstr ""
+msgstr "Le modèle de rapport Webkit n'a pas été trouvé !"
#. module: report_webkit
#: field:ir.header_webkit,orientation:0
@@ -405,7 +411,7 @@ msgstr ":B10 16 31 x 44 mm"
#. module: report_webkit
#: view:report.webkit.actions:0
msgid "Cancel"
-msgstr ""
+msgstr "Annuler"
#. module: report_webkit
#: field:ir.header_webkit,css:0
@@ -427,7 +433,7 @@ msgstr "Logos pour Webkit"
#: code:addons/report_webkit/webkit_report.py:172
#, python-format
msgid "No diagnosis message was provided"
-msgstr ""
+msgstr "Aucun message de diagnostic n'était fourni"
#. module: report_webkit
#: selection:ir.header_webkit,format:0
@@ -516,9 +522,9 @@ msgstr "ir.actions.report.xml"
#: code:addons/report_webkit/webkit_report.py:174
#, python-format
msgid "The following diagnosis message was provided:\n"
-msgstr ""
+msgstr "Le message de diagnostic suivant a été fourni :\n"
#. module: report_webkit
#: view:ir.header_webkit:0
msgid "HTML Header"
-msgstr ""
+msgstr "En-tête HTML"
diff --git a/addons/share/i18n/fr.po b/addons/share/i18n/fr.po
index 42fde3f64de..68c60eabfa3 100644
--- a/addons/share/i18n/fr.po
+++ b/addons/share/i18n/fr.po
@@ -8,20 +8,20 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-22 06:47+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 06:01+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:20+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: share
#: code:addons/share/wizard/share_wizard.py:841
#, python-format
msgid "Invitation to collaborate about %s"
-msgstr ""
+msgstr "Invitation à collaborer sur %s"
#. module: share
#: code:addons/share/wizard/share_wizard.py:779
@@ -29,11 +29,13 @@ msgstr ""
msgid ""
"The share engine has not been able to fetch a record_id for your invitation."
msgstr ""
+"Le moteur de partage n'est pas capable d'aller chercher un record_id pour "
+"votre invitation."
#. module: share
#: view:share.wizard:0
msgid "Include an Optional Personal Message"
-msgstr ""
+msgstr "Inclure un message personnel (optionnel)"
#. module: share
#: field:share.wizard,embed_option_title:0
@@ -43,18 +45,20 @@ msgstr "Afficher le titre"
#. module: share
#: view:share.wizard:0
msgid "Access granted!"
-msgstr ""
+msgstr "Accès autorisé !"
#. module: share
#: field:share.wizard,record_name:0
msgid "Record name"
-msgstr ""
+msgstr "Nom de l'enregistement"
#. module: share
#: help:share.wizard,message:0
msgid ""
"An optional personal message, to be included in the email notification."
msgstr ""
+"Un message personnel (optionnel), qui sera inclut dans le courriel de "
+"notification."
#. module: share
#: field:share.wizard,user_type:0
@@ -76,6 +80,10 @@ msgid ""
" %s\n"
"\n"
msgstr ""
+"Les documents ne sont pas attachés, vous pouvez les voir directement en "
+"ligne sur mon serveur OpenERP à :\n"
+" %s\n"
+"\n"
#. module: share
#: model:ir.module.category,name:share.module_category_share
@@ -90,6 +98,8 @@ msgid ""
"Hello,\n"
"\n"
msgstr ""
+"Bonjour,\n"
+"\n"
#. module: share
#: field:share.wizard,share_root_url:0
@@ -101,7 +111,7 @@ msgstr "Adresse URL de partage"
#: field:share.wizard,email_2:0
#: field:share.wizard,email_3:0
msgid "New user email"
-msgstr ""
+msgstr "Adresse courriel du nouvel utilisateur"
#. module: share
#: code:addons/share/wizard/share_wizard.py:886
@@ -115,20 +125,22 @@ msgstr ""
#: code:addons/share/wizard/share_wizard.py:620
#, python-format
msgid "(Modified)"
-msgstr ""
+msgstr "(Modifié)"
#. module: share
#: code:addons/share/wizard/share_wizard.py:664
#, python-format
msgid "You must be a member of the Share/User group to use the share wizard."
msgstr ""
+"Vous devez être un membre du groupe Partage/Utilisateur pour utiliser "
+"l'assistant de partage."
#. module: share
#. openerp-web
#: code:addons/share/static/src/js/share.js:63
#, python-format
msgid "Embed"
-msgstr ""
+msgstr "Embarqué"
#. module: share
#: code:addons/share/wizard/share_wizard.py:598
@@ -176,6 +188,8 @@ msgstr "(Dupliqué pour les autorisations de partage modifiées)"
msgid ""
"Please indicate the emails of the persons to share with, one per line."
msgstr ""
+"Veuillez indiquer les adresses de courriel des personnes avec qui partager, "
+"une par ligne."
#. module: share
#: help:share.wizard,domain:0
@@ -191,7 +205,7 @@ msgstr "Suivant"
#: code:addons/share/wizard/share_wizard.py:661
#, python-format
msgid "Action and Access Mode are required to create a shared access."
-msgstr ""
+msgstr "L'action et le mode d'accès sont requis pour créer un accès partagé."
#. module: share
#: code:addons/share/wizard/share_wizard.py:849
@@ -203,24 +217,24 @@ msgstr "Nom d’utilisateur"
#. module: share
#: view:share.wizard:0
msgid "Sharing Options"
-msgstr ""
+msgstr "Options de partage"
#. module: share
#. openerp-web
#: code:addons/share/static/src/xml/share.xml:9
#, python-format
msgid "Invite"
-msgstr ""
+msgstr "Inviter"
#. module: share
#: view:share.wizard:0
msgid "Embedded code options"
-msgstr ""
+msgstr "Options du code embarqué"
#. module: share
#: view:share.wizard:0
msgid "Configuration"
-msgstr ""
+msgstr "Paramètres"
#. module: share
#: view:share.wizard:0
@@ -255,7 +269,7 @@ msgstr ""
#. module: share
#: view:res.groups:0
msgid "Non-Share Groups"
-msgstr ""
+msgstr "Groupes Pas de Partage"
#. module: share
#: view:share.wizard:0
@@ -263,6 +277,8 @@ msgid ""
"An email notification with instructions has been sent to the following "
"people:"
msgstr ""
+"Une notification par courriel avec les instructions a été envoyée aux "
+"personnes suivantes :"
#. module: share
#: code:addons/share/wizard/share_wizard.py:77
diff --git a/addons/survey/i18n/fr.po b/addons/survey/i18n/fr.po
index f6a1310c1c7..b3c384f2bd1 100644
--- a/addons/survey/i18n/fr.po
+++ b/addons/survey/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-05-18 15:34+0000\n"
+"PO-Revision-Date: 2013-05-22 07:05+0000\n"
"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-19 06:12+0000\n"
-"X-Generator: Launchpad (build 16626)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:20+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: survey
#: view:survey.response.line:0
@@ -75,7 +75,7 @@ msgstr "Sondages"
#. module: survey
#: view:survey.request:0
msgid "Cancel Request"
-msgstr ""
+msgstr "Annuler la requête"
#. module: survey
#: view:survey:0
@@ -296,7 +296,7 @@ msgstr " En-tête de colonne"
#: code:addons/survey/wizard/survey_send_invitation.py:71
#, python-format
msgid "The following surveys are not in open state: %s"
-msgstr ""
+msgstr "Le questionnaire suivant n'est pas dans un état ouvert : %s"
#. module: survey
#: field:survey,tot_comp_survey:0
@@ -333,6 +333,8 @@ msgid ""
"This survey has no question defined. Please define the questions and answers "
"first."
msgstr ""
+"Aucune question n'est attachée à ce questionnaire. Veuillez d'abord définir "
+"des questions et des réponses."
#. module: survey
#: field:survey.question,comment_field_type:0
@@ -487,7 +489,7 @@ msgstr "À partir de"
#. module: survey
#: view:survey:0
msgid "Cancel Survey"
-msgstr ""
+msgstr "Annuler le sondage"
#. module: survey
#: selection:survey.question,comment_valid_type:0
@@ -640,7 +642,7 @@ msgstr "Numéro de page"
#. module: survey
#: model:ir.ui.menu,name:survey.menu_print_survey_form
msgid "Print Surveys"
-msgstr ""
+msgstr "Imprimer les questionnaires"
#. module: survey
#: field:survey.question.column.heading,in_visible_menu_choice:0
@@ -661,7 +663,7 @@ msgstr "Message d'erreur"
#: code:addons/survey/wizard/survey_answer.py:124
#, python-format
msgid "You cannot answer this survey more than %s times."
-msgstr ""
+msgstr "Vous ne pouvez pas répondre à ce questionnaire plus de %s fois."
#. module: survey
#: field:survey.request,date_deadline:0
@@ -728,7 +730,7 @@ msgstr ""
#. module: survey
#: view:survey:0
msgid "Survey description..."
-msgstr ""
+msgstr "Description du sondage…"
#. module: survey
#: view:survey:0
@@ -750,11 +752,13 @@ msgstr "Options"
#, python-format
msgid "You must enter one or more Answers for question \"%s\" of page %s."
msgstr ""
+"Vous devez donner une ou plusieurs réponses pour la question \"%s\" de la "
+"page %s."
#. module: survey
#: view:survey:0
msgid "Delete"
-msgstr ""
+msgstr "Supprimer"
#. module: survey
#: field:survey.response.answer,comment_field:0
diff --git a/addons/web_linkedin/i18n/nl.po b/addons/web_linkedin/i18n/nl.po
index e7c4a306d0a..4f3f5ff5e22 100644
--- a/addons/web_linkedin/i18n/nl.po
+++ b/addons/web_linkedin/i18n/nl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-01-31 11:17+0000\n"
+"PO-Revision-Date: 2013-05-22 05:28+0000\n"
"Last-Translator: Erwin van der Ploeg (Endian Solutions) \n"
"Language-Team: Dutch \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 06:04+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-23 06:20+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: web_linkedin
#: view:sale.config.settings:0
@@ -25,7 +25,7 @@ msgstr "hier:"
#. module: web_linkedin
#: field:sale.config.settings,api_key:0
msgid "API Key"
-msgstr "API Sleutel"
+msgstr "API-code"
#. module: web_linkedin
#. openerp-web
@@ -78,7 +78,7 @@ msgstr "Bedrijven"
#. module: web_linkedin
#: view:sale.config.settings:0
msgid "API key"
-msgstr "API sleutel"
+msgstr "API-code"
#. module: web_linkedin
#: view:sale.config.settings:0
@@ -111,7 +111,7 @@ msgid ""
"To use the LinkedIn module with this database, an API Key is required. "
"Please follow this procedure:"
msgstr ""
-"Om de LinkedIn module te gebruiken met deze database is een API key nodig. "
+"Om de LinkedIn module te gebruiken met deze database is een API code nodig. "
"Volg de navolgende procedure:"
#. module: web_linkedin
@@ -139,4 +139,4 @@ msgstr "De programmeertaal is Javascript"
#. module: web_linkedin
#: view:sale.config.settings:0
msgid "JavaScript API Domain:"
-msgstr "JavaScript API Domeinen:"
+msgstr "JavaScript API-domeinen:"
From 841accd1793c1e092ebbd02f13a4885e988a4158 Mon Sep 17 00:00:00 2001
From: Vidhin Mehta
Date: Thu, 23 May 2013 17:35:17 +0530
Subject: [PATCH 072/164] [IMP]Introduce float_time concept in Timesheet
Widget.
bzr revid: vme@tinyerp.com-20130523120517-y281pkgqj66atthr
---
.../static/src/js/timesheet.js | 43 +++++++++++++++----
1 file changed, 34 insertions(+), 9 deletions(-)
diff --git a/addons/hr_timesheet_sheet/static/src/js/timesheet.js b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
index fe7d0c82767..9a272051655 100644
--- a/addons/hr_timesheet_sheet/static/src/js/timesheet.js
+++ b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
@@ -163,24 +163,41 @@ openerp.hr_timesheet_sheet = function(instance) {
this.dfm = undefined;
}
},
+ is_valid_value:function(value){
+ var split_value = value.split(":");
+ var wrong_value = true;
+ if (split_value.length > 2)return false;
+ _.detect(split_value,function(num){
+ if(isNaN(num)){
+ wrong_value = false;
+ }
+ })
+ return wrong_value;
+ },
display_data: function() {
var self = this;
self.$el.html(QWeb.render("hr_timesheet_sheet.WeeklyTimesheet", {widget: self}));
_.each(self.accounts, function(account) {
_.each(_.range(account.days.length), function(day_count) {
if (!self.get('effective_readonly')) {
- self.get_box(account, day_count).val(self.sum_box(account, day_count)).change(function() {
- var num = Number($(this).val());
+ self.get_box(account, day_count).val(self.sum_box(account, day_count, true)).change(function() {
+ var num = $(this).val();
+ if (self.is_valid_value(num)){
+ num = Number(self.parse_client(num));
+ }
if (isNaN(num)) {
- $(this).val(self.sum_box(account, day_count));
+ $(this).val(self.sum_box(account, day_count, true));
} else {
account.days[day_count].lines[0].unit_amount += num - self.sum_box(account, day_count);
self.display_totals();
self.sync();
+ if(!isNaN($(this).val())){
+ $(this).val(self.sum_box(account, day_count, true));
+ }
}
});
} else {
- self.get_box(account, day_count).html(self.sum_box(account, day_count));
+ self.get_box(account, day_count).html(self.sum_box(account, day_count, true));
}
});
});
@@ -247,12 +264,12 @@ openerp.hr_timesheet_sheet = function(instance) {
get_super_total: function() {
return this.$('.oe_timesheet_weekly_supertotal');
},
- sum_box: function(account, day_count) {
+ sum_box: function(account, day_count, setter) {
var line_total = 0;
_.each(account.days[day_count].lines, function(line) {
line_total += line.unit_amount;
});
- return line_total;
+ return (setter)?this.format_client(line_total):line_total;
},
display_totals: function() {
var self = this;
@@ -266,12 +283,12 @@ openerp.hr_timesheet_sheet = function(instance) {
day_tots[day_count] += sum;
super_tot += sum;
});
- self.get_total(account).html(acc_tot);
+ self.get_total(account).html(self.format_client(acc_tot));
});
_.each(_.range(self.dates.length), function(day_count) {
- self.get_day_total(day_count).html(day_tots[day_count]);
+ self.get_day_total(day_count).html(self.format_client(day_tots[day_count]));
});
- self.get_super_total().html(super_tot);
+ self.get_super_total().html(self.format_client(super_tot));
},
sync: function() {
var self = this;
@@ -279,6 +296,14 @@ openerp.hr_timesheet_sheet = function(instance) {
self.set({sheets: this.generate_o2m_value()});
self.setting = false;
},
+ //converts hour value to float
+ parse_client: function(value) {
+ return instance.web.parse_value(value, { type:"float_time" });
+ },
+ //converts float value to hour
+ format_client:function(value){
+ return instance.web.format_value(value, { type:"float_time" });
+ },
generate_o2m_value: function() {
var self = this;
var ops = [];
From 7ca85ffbba1e42d37cdf1e855e0fe2761e24b477 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Thu, 23 May 2013 14:27:56 +0200
Subject: [PATCH 073/164] [FIX] account: exclude company_id from
build_ctx_periods()'s criteria to allow printing consolidated reports
bzr revid: qdp-launchpad@openerp.com-20130523122756-tpkc268q107hiqvy
---
addons/account/account.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/addons/account/account.py b/addons/account/account.py
index 58c4cf447ef..cfcb52a03b9 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1065,10 +1065,14 @@ class account_period(osv.osv):
raise osv.except_osv(_('Error!'), _('You should choose the periods that belong to the same company.'))
if period_date_start > period_date_stop:
raise osv.except_osv(_('Error!'), _('Start period should precede then end period.'))
+
+ # /!\ We do not include a criterion on the company_id field below, to allow producing consolidated reports
+ # on multiple companies. It will only work when start/end periods are selected and no fiscal year is chosen.
+
#for period from = january, we want to exclude the opening period (but it has same date_from, so we have to check if period_from is special or not to include that clause or not in the search).
if period_from.special:
- return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id)])
- return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('company_id', '=', company1_id), ('special', '=', False)])
+ return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop)])
+ return self.search(cr, uid, [('date_start', '>=', period_date_start), ('date_stop', '<=', period_date_stop), ('special', '=', False)])
account_period()
From d9c00b129ba7603b47cfab74fe4153d4551dee30 Mon Sep 17 00:00:00 2001
From: "Quentin (OpenERP)"
Date: Thu, 23 May 2013 14:28:55 +0200
Subject: [PATCH 074/164] [FIX] account: divide the residual amount of invoices
proportionally to the number of invoices partially reconciled together if
needed + if necessary, do a conversion at the right currency rate
bzr revid: qdp-launchpad@openerp.com-20130523122855-n0o1rz9ajxkbgsnj
---
addons/account/account_invoice.py | 36 ++++++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 057947205f0..282c1712d19 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -92,13 +92,43 @@ class account_invoice(osv.osv):
return [('none', _('Free Reference'))]
def _amount_residual(self, cr, uid, ids, name, args, context=None):
+ """Function of the field residua. It computes the residual amount (balance) for each invoice"""
+ if context is None:
+ context = {}
+ ctx = context.copy()
result = {}
+ currency_obj = self.pool.get('res.currency')
for invoice in self.browse(cr, uid, ids, context=context):
+ nb_inv_in_partial_rec = max_invoice_id = 0
result[invoice.id] = 0.0
if invoice.move_id:
- for m in invoice.move_id.line_id:
- if m.account_id.type in ('receivable','payable'):
- result[invoice.id] += m.amount_residual_currency
+ for aml in invoice.move_id.line_id:
+ if aml.account_id.type in ('receivable','payable'):
+ if aml.currency_id and aml.currency_id.id == invoice.currency_id.id:
+ result[invoice.id] += aml.amount_residual_currency
+ else:
+ ctx['date'] = aml.date
+ result[invoice.id] += currency_obj.compute(cr, uid, aml.company_id.currency_id.id, invoice.currency_id.id, aml.amount_residual, context=ctx)
+
+ if aml.reconcile_partial_id.line_partial_ids:
+ #we check if the invoice is partially reconciled and if there are other invoices
+ #involved in this partial reconciliation (and we sum these invoices)
+ for line in aml.reconcile_partial_id.line_partial_ids:
+ if line.invoice:
+ nb_inv_in_partial_rec += 1
+ #store the max invoice id as for this invoice we will make a balance instead of a simple division
+ max_invoice_id = max(max_invoice_id, line.invoice.id)
+ if nb_inv_in_partial_rec:
+ #if there are several invoices in a partial reconciliation, we split the residual by the number
+ #of invoice to have a sum of residual amounts that matches the partner balance
+ new_value = currency_obj.round(cr, uid, invoice.currency_id, result[invoice.id] / nb_inv_in_partial_rec)
+ if invoice.id == max_invoice_id:
+ #if it's the last the invoice of the bunch of invoices partially reconciled together, we make a
+ #balance to avoid rounding errors
+ result[invoice.id] = result[invoice.id] - ((nb_inv_in_partial_rec - 1) * new_value)
+ else:
+ result[invoice.id] = new_value
+
#prevent the residual amount on the invoice to be less than 0
result[invoice.id] = max(result[invoice.id], 0.0)
return result
From 41fd5d657da5d3d0a6d7e9dda851ec08d1a42d2c Mon Sep 17 00:00:00 2001
From: Vidhin Mehta
Date: Thu, 23 May 2013 18:11:17 +0530
Subject: [PATCH 075/164] [IMP]Change Variable name.
bzr revid: vme@tinyerp.com-20130523124117-g6hnj394fndmookq
---
addons/hr_timesheet_sheet/static/src/js/timesheet.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/addons/hr_timesheet_sheet/static/src/js/timesheet.js b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
index 9a272051655..90ce8eff39b 100644
--- a/addons/hr_timesheet_sheet/static/src/js/timesheet.js
+++ b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
@@ -165,14 +165,14 @@ openerp.hr_timesheet_sheet = function(instance) {
},
is_valid_value:function(value){
var split_value = value.split(":");
- var wrong_value = true;
+ var valid_value = true;
if (split_value.length > 2)return false;
_.detect(split_value,function(num){
if(isNaN(num)){
- wrong_value = false;
+ valid_value = false;
}
})
- return wrong_value;
+ return valid_value;
},
display_data: function() {
var self = this;
@@ -264,12 +264,12 @@ openerp.hr_timesheet_sheet = function(instance) {
get_super_total: function() {
return this.$('.oe_timesheet_weekly_supertotal');
},
- sum_box: function(account, day_count, setter) {
+ sum_box: function(account, day_count, show_value_in_hour) {
var line_total = 0;
_.each(account.days[day_count].lines, function(line) {
line_total += line.unit_amount;
});
- return (setter)?this.format_client(line_total):line_total;
+ return (show_value_in_hour)?this.format_client(line_total):line_total;
},
display_totals: function() {
var self = this;
From a4a522bc317e156c6a43e77b8a3d5594d48e3550 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Thu, 23 May 2013 18:44:49 +0200
Subject: [PATCH 076/164] [IMP] account: simplify button name - analytic
accounts related to a partners are Contracts in a broad sense
bzr revid: odo@openerp.com-20130523164449-y1fzwc2j2u150okh
---
addons/account/partner_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml
index f6c89a92560..3dcc68e315e 100644
--- a/addons/account/partner_view.xml
+++ b/addons/account/partner_view.xml
@@ -68,7 +68,7 @@
name="%(account.action_invoice_tree)d"
context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"/>
-
From 423052ac68a626f2f4164c6e01c5f09fd15b8816 Mon Sep 17 00:00:00 2001
From: Launchpad Translations on behalf of openerp <>
Date: Fri, 24 May 2013 06:45:26 +0000
Subject: [PATCH 077/164] Launchpad automatic translations update.
bzr revid: launchpad_translations_on_behalf_of_openerp-20130524064526-ezy0cy6343teva17
---
addons/edi/i18n/fi.po | 23 +++++++++++++----------
addons/portal_crm/i18n/fr.po | 14 +++++++-------
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/addons/edi/i18n/fi.po b/addons/edi/i18n/fi.po
index 3b5705968e0..3604b67fe42 100644
--- a/addons/edi/i18n/fi.po
+++ b/addons/edi/i18n/fi.po
@@ -8,35 +8,35 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-24 05:55+0000\n"
+"Last-Translator: Samuli Kivistö \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:38+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-24 06:45+0000\n"
+"X-Generator: Launchpad (build 16640)\n"
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:67
#, python-format
msgid "Reason:"
-msgstr ""
+msgstr "Syy:"
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:60
#, python-format
msgid "The document has been successfully imported!"
-msgstr ""
+msgstr "Dokumentin tuonti onnistui!"
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:65
#, python-format
msgid "Sorry, the document could not be imported."
-msgstr ""
+msgstr "Dokumenttia ei voida tuoda."
#. module: edi
#: model:ir.model,name:edi.model_res_company
@@ -53,13 +53,13 @@ msgstr "Valuutta"
#: code:addons/edi/static/src/js/edi.js:71
#, python-format
msgid "Document Import Notification"
-msgstr ""
+msgstr "Dokumentin tuonti-ilmoitus"
#. module: edi
#: code:addons/edi/models/edi.py:130
#, python-format
msgid "Missing application."
-msgstr ""
+msgstr "Sovellus puuttuu."
#. module: edi
#: code:addons/edi/models/edi.py:131
@@ -69,6 +69,9 @@ msgid ""
"You can install it by connecting as the administrator and opening the "
"configuration assistant."
msgstr ""
+"Dokumentti, jota yrität tuoda, vaatii OpenERP `%s` sovelluksen. Voit asentaa "
+"puuttuvan sovelluksen, jos olet kirjautunut administraattorina, käyttämällä "
+"konfigurointi assistenttia."
#. module: edi
#: code:addons/edi/models/edi.py:47
@@ -84,4 +87,4 @@ msgstr "Kumppani"
#. module: edi
#: model:ir.model,name:edi.model_edi_edi
msgid "EDI Subsystem"
-msgstr ""
+msgstr "EDI Alijärjestelmä"
diff --git a/addons/portal_crm/i18n/fr.po b/addons/portal_crm/i18n/fr.po
index 77089898352..3c2aafeb82d 100644
--- a/addons/portal_crm/i18n/fr.po
+++ b/addons/portal_crm/i18n/fr.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-05-22 16:37+0000\n"
+"PO-Revision-Date: 2013-05-23 21:31+0000\n"
"Last-Translator: Quentin THEURET \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-23 06:19+0000\n"
+"X-Launchpad-Export-Date: 2013-05-24 06:45+0000\n"
"X-Generator: Launchpad (build 16640)\n"
#. module: portal_crm
@@ -40,27 +40,27 @@ msgstr ""
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_action:0
msgid "Next Action Date"
-msgstr ""
+msgstr "Date de la prochaine action"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,fax:0
msgid "Fax"
-msgstr ""
+msgstr "Fax"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,zip:0
msgid "Zip"
-msgstr ""
+msgstr "Code postal"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,message_unread:0
msgid "Unread Messages"
-msgstr ""
+msgstr "Messages non-lus"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,company_id:0
msgid "Company"
-msgstr ""
+msgstr "Société"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,day_open:0
From fcff0fcbea15f1db6eebae81660ec0ca8d2850c0 Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Fri, 24 May 2013 10:55:34 +0200
Subject: [PATCH 078/164] [IMP] don't format 0 values
bzr revid: mat@openerp.com-20130524085534-coh7tjadajiu4bv3
---
.../hr_timesheet_sheet/static/src/js/timesheet.js | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/addons/hr_timesheet_sheet/static/src/js/timesheet.js b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
index 90ce8eff39b..e7d13c425b6 100644
--- a/addons/hr_timesheet_sheet/static/src/js/timesheet.js
+++ b/addons/hr_timesheet_sheet/static/src/js/timesheet.js
@@ -166,12 +166,13 @@ openerp.hr_timesheet_sheet = function(instance) {
is_valid_value:function(value){
var split_value = value.split(":");
var valid_value = true;
- if (split_value.length > 2)return false;
+ if (split_value.length > 2)
+ return false;
_.detect(split_value,function(num){
if(isNaN(num)){
valid_value = false;
}
- })
+ });
return valid_value;
},
display_data: function() {
@@ -183,15 +184,15 @@ openerp.hr_timesheet_sheet = function(instance) {
self.get_box(account, day_count).val(self.sum_box(account, day_count, true)).change(function() {
var num = $(this).val();
if (self.is_valid_value(num)){
- num = Number(self.parse_client(num));
- }
+ num = (num == 0)?0:Number(self.parse_client(num));
+ }
if (isNaN(num)) {
$(this).val(self.sum_box(account, day_count, true));
} else {
account.days[day_count].lines[0].unit_amount += num - self.sum_box(account, day_count);
self.display_totals();
self.sync();
- if(!isNaN($(this).val())){
+ if(!isNaN($(this).val())){
$(this).val(self.sum_box(account, day_count, true));
}
}
@@ -269,7 +270,7 @@ openerp.hr_timesheet_sheet = function(instance) {
_.each(account.days[day_count].lines, function(line) {
line_total += line.unit_amount;
});
- return (show_value_in_hour)?this.format_client(line_total):line_total;
+ return (show_value_in_hour && line_total != 0)?this.format_client(line_total):line_total;
},
display_totals: function() {
var self = this;
From 9dec66ed6319157b3ebca1fda28eea9a34b5dc46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 24 May 2013 15:33:41 +0200
Subject: [PATCH 079/164] [FIX] im_livechat: fixed missing access rules for
portal users.
bzr revid: tde@openerp.com-20130524133341-5k17letufzurpuek
---
addons/im_livechat/security/ir.model.access.csv | 2 ++
1 file changed, 2 insertions(+)
diff --git a/addons/im_livechat/security/ir.model.access.csv b/addons/im_livechat/security/ir.model.access.csv
index 6e17c1a127f..0dcf0bdee6f 100644
--- a/addons/im_livechat/security/ir.model.access.csv
+++ b/addons/im_livechat/security/ir.model.access.csv
@@ -2,5 +2,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_ls_chann1,im_livechat.channel,model_im_livechat_channel,,1,0,0,0
access_ls_chann2,im_livechat.channel,model_im_livechat_channel,group_im_livechat,1,1,1,0
access_ls_chann3,im_livechat.channel,model_im_livechat_channel,group_im_livechat_manager,1,1,1,1
+access_ls_message_portal,im_livechat.im.message.portal,im.model_im_message,portal.group_portal,0,0,0,0
+access_im_user_portal,im_livechat.im.user.portal,im.model_im_user,portal.group_portal,1,0,0,0
access_ls_message,im_livechat.im.message,im.model_im_message,portal.group_anonymous,0,0,0,0
access_im_user,im_livechat.im.user,im.model_im_user,portal.group_anonymous,1,0,0,0
\ No newline at end of file
From b8f8723736d049a729d9e12223bb3b7d27c5321c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 24 May 2013 15:37:48 +0200
Subject: [PATCH 080/164] [FIX] project_issue_sheet: timesheet_ids visible only
for employees, because currently portal members have no access rights on
hr.analytic.timesheet.
bzr revid: tde@openerp.com-20130524133748-mon01rez59wex8v7
---
addons/project_issue_sheet/project_issue_sheet_view.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml
index fb245a0510a..4911cac8f25 100644
--- a/addons/project_issue_sheet/project_issue_sheet_view.xml
+++ b/addons/project_issue_sheet/project_issue_sheet_view.xml
@@ -19,7 +19,8 @@
-
+
From 0ee745224aa3eb075bea5bb4e3c80607f9d58ed8 Mon Sep 17 00:00:00 2001
From: Olivier Dony
Date: Fri, 24 May 2013 13:52:34 +0200
Subject: [PATCH 081/164] [FIX] portal: allow reading any partner belonging to
the same entity
bzr revid: odo@openerp.com-20130524115234-fcn9nfl8a23odqvg
---
addons/portal/security/portal_security.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/portal/security/portal_security.xml b/addons/portal/security/portal_security.xml
index b2a76800023..02080bdc0ab 100644
--- a/addons/portal/security/portal_security.xml
+++ b/addons/portal/security/portal_security.xml
@@ -5,7 +5,7 @@
res_partner: read access on my partner
- [('user_ids', 'in', user.id)]
+ [('id', 'child_of', user.commercial_partner_id.id)]
From 0e8d719cd1f783aedbf12dd1e2e348022fd00462 Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Fri, 24 May 2013 15:55:20 +0200
Subject: [PATCH 082/164] [FIX] web_calendar: today button should return the
date_part only
bzr revid: mat@openerp.com-20130524135520-8853j3kfxlmp2lpm
---
addons/web_calendar/static/src/js/calendar.js | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js
index a9287c0021c..40539f7f0f6 100644
--- a/addons/web_calendar/static/src/js/calendar.js
+++ b/addons/web_calendar/static/src/js/calendar.js
@@ -15,6 +15,12 @@
old_scheduler_dblclick.apply(this, arguments);
}
};
+
+ scheduler._click.dhx_cal_today_button = function() {
+ if (scheduler.callEvent("onBeforeTodayDisplayed", [])) {
+ scheduler.setCurrentView( scheduler.date.date_part(new Date()) );
+ }
+ };
}
}());
From cc1227f619a936c942bfd1a3cf84e3b307a30ad4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 24 May 2013 16:18:40 +0200
Subject: [PATCH 083/164] [FIX] project_issue: improved form view for portal
users; now have basic info in addition to ID.
bzr revid: tde@openerp.com-20130524141840-r7mjtqjsz97vlvpm
---
addons/project_issue/project_issue_view.xml | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index f15355e9cc8..d6a41424daa 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -68,15 +68,16 @@
-
+
-
-
+
+
-
+
From e528e410c2eebefe9ee1fde4f7e280e55417d46b Mon Sep 17 00:00:00 2001
From: Martin Trigaux
Date: Fri, 24 May 2013 16:28:56 +0200
Subject: [PATCH 084/164] [IMP] explain monkey patch
bzr revid: mat@openerp.com-20130524142856-gra4nuvl7upuldp5
---
addons/web_calendar/static/src/js/calendar.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js
index 40539f7f0f6..8da2ad43819 100644
--- a/addons/web_calendar/static/src/js/calendar.js
+++ b/addons/web_calendar/static/src/js/calendar.js
@@ -4,9 +4,9 @@
(function() {
// Monkey patch dhtml scheduler in order to fix a bug.
- // It manually implements some kind of dbl click event
- // bubbling but fails to do it properly.
if (this.scheduler) {
+ // It manually implements some kind of dbl click event
+ // bubbling but fails to do it properly.
var old_scheduler_dblclick = scheduler._on_dbl_click;
scheduler._on_dbl_click = function(e, src) {
if (src && !src.className) {
@@ -16,6 +16,8 @@
}
};
+ // It uses the date+time format, leading to month range being between
+ // 1/5 08:53 - 1/6 08:52 instead of 1/5 00:00 - 31/5 23:59
scheduler._click.dhx_cal_today_button = function() {
if (scheduler.callEvent("onBeforeTodayDisplayed", [])) {
scheduler.setCurrentView( scheduler.date.date_part(new Date()) );
From d0f4f8d0177edc126a72abbb8229042dd6f9cc2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 24 May 2013 16:29:32 +0200
Subject: [PATCH 085/164] [FIX] project_issue: fixed access rights issues when
truing to find suggested partners.
bzr revid: tde@openerp.com-20130524142932-0g47w650hqpirft1
---
addons/project_issue/project_issue.py | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index f8f6510cd49..13ccfcee8d0 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -23,7 +23,7 @@ from openerp.addons.base_status.base_stage import base_stage
from openerp.addons.project.project import _TASK_STATE
from openerp.addons.crm import crm
from datetime import datetime
-from openerp.osv import fields,osv
+from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
import binascii
import time
@@ -489,11 +489,14 @@ class project_issue(base_stage, osv.osv):
def message_get_suggested_recipients(self, cr, uid, ids, context=None):
recipients = super(project_issue, self).message_get_suggested_recipients(cr, uid, ids, context=context)
- for issue in self.browse(cr, uid, ids, context=context):
- if issue.partner_id:
- self._message_add_suggested_recipient(cr, uid, recipients, issue, partner=issue.partner_id, reason=_('Customer'))
- elif issue.email_from:
- self._message_add_suggested_recipient(cr, uid, recipients, issue, email=issue.email_from, reason=_('Customer Email'))
+ try:
+ for issue in self.browse(cr, uid, ids, context=context):
+ if issue.partner_id:
+ self._message_add_suggested_recipient(cr, uid, recipients, issue, partner=issue.partner_id, reason=_('Customer'))
+ elif issue.email_from:
+ self._message_add_suggested_recipient(cr, uid, recipients, issue, email=issue.email_from, reason=_('Customer Email'))
+ except (osv.except_osv, orm.except_orm): # no read access rights -> just ignore suggested recipients because this imply modifying followers
+ pass
return recipients
def message_new(self, cr, uid, msg, custom_values=None, context=None):
From 08167175268a669b80b672aa0c2bb0f50b60cab7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Fri, 24 May 2013 16:42:24 +0200
Subject: [PATCH 086/164] [FIX] Chatter: fixed suggested recipients, when
having no email, unchecking the box was not taken into account.
bzr revid: tde@openerp.com-20130524144224-wbi1o27regxed7mn
---
addons/mail/static/src/js/mail.js | 4 ++--
addons/mail/static/src/xml/mail.xml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index f3e762d1f31..1e58dc47e22 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -850,9 +850,9 @@ openerp.mail = function (session) {
on_checked_recipient: function (event) {
var $input = $(event.target);
- var email = $input.attr("data");
+ var full_name = $input.attr("data");
_.each(this.recipients, function (recipient) {
- if (recipient.email_address == email) {
+ if (recipient.full_name == full_name) {
recipient.checked = $input.is(":checked");
}
});
diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml
index ab82d650f30..f5004941a8d 100644
--- a/addons/mail/static/src/xml/mail.xml
+++ b/addons/mail/static/src/xml/mail.xml
@@ -143,7 +143,7 @@