From a1e5c645d97e4e8f48cec546e858643029b7424a Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Thu, 9 Feb 2012 22:33:17 +0100 Subject: [PATCH 001/194] postgres use postgres instead of template1 and template1 instead of template0 bzr revid: al@openerp.com-20120209213317-3tt4o0sj87764ocn --- openerp/service/web_services.py | 10 +++++----- openerp/tools/config.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 3a9ba89c002..24ec650e432 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -117,7 +117,7 @@ class db(netsvc.ExportService): return fn(*params) def _create_empty_database(self, name): - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() chosen_template = tools.config['db_template'] try: @@ -176,7 +176,7 @@ class db(netsvc.ExportService): openerp.modules.registry.RegistryManager.delete(db_name) sql_db.close_db(db_name) - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() cr.autocommit(True) # avoid transaction block try: @@ -278,7 +278,7 @@ class db(netsvc.ExportService): openerp.modules.registry.RegistryManager.delete(old_name) sql_db.close_db(old_name) - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() cr.autocommit(True) # avoid transaction block try: @@ -306,7 +306,7 @@ class db(netsvc.ExportService): raise openerp.exceptions.AccessDenied() chosen_template = tools.config['db_template'] templates_list = tuple(set(['template0', 'template1', 'postgres', chosen_template])) - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() try: try: @@ -544,7 +544,7 @@ GNU Public Licence. return http_server.list_http_services() def exp_check_connectivity(self): - return bool(sql_db.db_connect('template1')) + return bool(sql_db.db_connect('postgres')) def exp_get_os_time(self): return os.times() diff --git a/openerp/tools/config.py b/openerp/tools/config.py index d628447a7a8..a03937601dc 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -223,7 +223,7 @@ class configmanager(object): help="specify the database port", type="int") group.add_option("--db_maxconn", dest="db_maxconn", type='int', my_default=64, help="specify the the maximum number of physical connections to posgresql") - group.add_option("--db-template", dest="db_template", my_default="template0", + group.add_option("--db-template", dest="db_template", my_default="template1", help="specify a custom database template to create a new database") parser.add_option_group(group) From 2332c23c30c05fb68c025a9a55522a382a394b0d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 23 Feb 2012 11:30:45 +0100 Subject: [PATCH 002/194] [IMP] replaces tools.misc.get_languages by the static dictionary it returns, rename that dict to ALL_LANGUAGES for clarity bzr revid: xmo@openerp.com-20120223103045-a44cl5kdkrnehc66 --- openerp/addons/base/res/res_lang.py | 2 +- openerp/tools/misc.py | 168 ++++++++++++++-------------- 2 files changed, 83 insertions(+), 87 deletions(-) diff --git a/openerp/addons/base/res/res_lang.py b/openerp/addons/base/res/res_lang.py index 13acf109b04..261f401f6be 100644 --- a/openerp/addons/base/res/res_lang.py +++ b/openerp/addons/base/res/res_lang.py @@ -80,7 +80,7 @@ class lang(osv.osv): _logger.warning(msg, lang, lc) if not lang_name: - lang_name = tools.get_languages().get(lang, lang) + lang_name = tools.ALL_LANGUAGES.get(lang, lang) def fix_xa0(s): diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index a5c72900fc7..89cd8695078 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -550,95 +550,91 @@ def get_iso_codes(lang): lang = lang.split('_')[0] return lang -def get_languages(): - # The codes below are those from Launchpad's Rosetta, with the exception - # of some trivial codes where the Launchpad code is xx and we have xx_XX. - languages={ - 'ab_RU': u'Abkhazian / аҧсуа', - 'ar_AR': u'Arabic / الْعَرَبيّة', - 'bg_BG': u'Bulgarian / български език', - 'bs_BS': u'Bosnian / bosanski jezik', - 'ca_ES': u'Catalan / Català', - 'cs_CZ': u'Czech / Čeština', - 'da_DK': u'Danish / Dansk', - 'de_DE': u'German / Deutsch', - 'el_GR': u'Greek / Ελληνικά', - 'en_CA': u'English (CA)', - 'en_GB': u'English (UK)', - 'en_US': u'English (US)', - 'es_AR': u'Spanish (AR) / Español (AR)', - 'es_BO': u'Spanish (BO) / Español (BO)', - 'es_CL': u'Spanish (CL) / Español (CL)', - 'es_CO': u'Spanish (CO) / Español (CO)', - 'es_CR': u'Spanish (CR) / Español (CR)', - 'es_DO': u'Spanish (DO) / Español (DO)', - 'es_EC': u'Spanish (EC) / Español (EC)', - 'es_ES': u'Spanish / Español', - 'es_GT': u'Spanish (GT) / Español (GT)', - 'es_HN': u'Spanish (HN) / Español (HN)', - 'es_MX': u'Spanish (MX) / Español (MX)', - 'es_NI': u'Spanish (NI) / Español (NI)', - 'es_PA': u'Spanish (PA) / Español (PA)', - 'es_PE': u'Spanish (PE) / Español (PE)', - 'es_PR': u'Spanish (PR) / Español (PR)', - 'es_PY': u'Spanish (PY) / Español (PY)', - 'es_SV': u'Spanish (SV) / Español (SV)', - 'es_UY': u'Spanish (UY) / Español (UY)', - 'es_VE': u'Spanish (VE) / Español (VE)', - 'et_EE': u'Estonian / Eesti keel', - 'fa_IR': u'Persian / فارس', - 'fi_FI': u'Finnish / Suomi', - 'fr_BE': u'French (BE) / Français (BE)', - 'fr_CH': u'French (CH) / Français (CH)', - 'fr_FR': u'French / Français', - 'gl_ES': u'Galician / Galego', - 'gu_IN': u'Gujarati / ગુજરાતી', - 'he_IL': u'Hebrew / עִבְרִי', - 'hi_IN': u'Hindi / हिंदी', - 'hr_HR': u'Croatian / hrvatski jezik', - 'hu_HU': u'Hungarian / Magyar', - 'id_ID': u'Indonesian / Bahasa Indonesia', - 'it_IT': u'Italian / Italiano', - 'iu_CA': u'Inuktitut / ᐃᓄᒃᑎᑐᑦ', - 'ja_JP': u'Japanese / 日本語', - 'ko_KP': u'Korean (KP) / 한국어 (KP)', - 'ko_KR': u'Korean (KR) / 한국어 (KR)', - 'lt_LT': u'Lithuanian / Lietuvių kalba', - 'lv_LV': u'Latvian / latviešu valoda', - 'ml_IN': u'Malayalam / മലയാളം', - 'mn_MN': u'Mongolian / монгол', - 'nb_NO': u'Norwegian Bokmål / Norsk bokmål', - 'nl_NL': u'Dutch / Nederlands', - 'nl_BE': u'Flemish (BE) / Vlaams (BE)', - 'oc_FR': u'Occitan (FR, post 1500) / Occitan', - 'pl_PL': u'Polish / Język polski', - 'pt_BR': u'Portugese (BR) / Português (BR)', - 'pt_PT': u'Portugese / Português', - 'ro_RO': u'Romanian / română', - 'ru_RU': u'Russian / русский язык', - 'si_LK': u'Sinhalese / සිංහල', - 'sl_SI': u'Slovenian / slovenščina', - 'sk_SK': u'Slovak / Slovenský jazyk', - 'sq_AL': u'Albanian / Shqip', - 'sr_RS': u'Serbian (Cyrillic) / српски', - 'sr@latin': u'Serbian (Latin) / srpski', - 'sv_SE': u'Swedish / svenska', - 'te_IN': u'Telugu / తెలుగు', - 'tr_TR': u'Turkish / Türkçe', - 'vi_VN': u'Vietnamese / Tiếng Việt', - 'uk_UA': u'Ukrainian / українська', - 'ur_PK': u'Urdu / اردو', - 'zh_CN': u'Chinese (CN) / 简体中文', - 'zh_HK': u'Chinese (HK)', - 'zh_TW': u'Chinese (TW) / 正體字', - 'th_TH': u'Thai / ภาษาไทย', - 'tlh_TLH': u'Klingon', - } - return languages +ALL_LANGUAGES = { + 'ab_RU': u'Abkhazian / аҧсуа', + 'ar_AR': u'Arabic / الْعَرَبيّة', + 'bg_BG': u'Bulgarian / български език', + 'bs_BS': u'Bosnian / bosanski jezik', + 'ca_ES': u'Catalan / Català', + 'cs_CZ': u'Czech / Čeština', + 'da_DK': u'Danish / Dansk', + 'de_DE': u'German / Deutsch', + 'el_GR': u'Greek / Ελληνικά', + 'en_CA': u'English (CA)', + 'en_GB': u'English (UK)', + 'en_US': u'English (US)', + 'es_AR': u'Spanish (AR) / Español (AR)', + 'es_BO': u'Spanish (BO) / Español (BO)', + 'es_CL': u'Spanish (CL) / Español (CL)', + 'es_CO': u'Spanish (CO) / Español (CO)', + 'es_CR': u'Spanish (CR) / Español (CR)', + 'es_DO': u'Spanish (DO) / Español (DO)', + 'es_EC': u'Spanish (EC) / Español (EC)', + 'es_ES': u'Spanish / Español', + 'es_GT': u'Spanish (GT) / Español (GT)', + 'es_HN': u'Spanish (HN) / Español (HN)', + 'es_MX': u'Spanish (MX) / Español (MX)', + 'es_NI': u'Spanish (NI) / Español (NI)', + 'es_PA': u'Spanish (PA) / Español (PA)', + 'es_PE': u'Spanish (PE) / Español (PE)', + 'es_PR': u'Spanish (PR) / Español (PR)', + 'es_PY': u'Spanish (PY) / Español (PY)', + 'es_SV': u'Spanish (SV) / Español (SV)', + 'es_UY': u'Spanish (UY) / Español (UY)', + 'es_VE': u'Spanish (VE) / Español (VE)', + 'et_EE': u'Estonian / Eesti keel', + 'fa_IR': u'Persian / فارس', + 'fi_FI': u'Finnish / Suomi', + 'fr_BE': u'French (BE) / Français (BE)', + 'fr_CH': u'French (CH) / Français (CH)', + 'fr_FR': u'French / Français', + 'gl_ES': u'Galician / Galego', + 'gu_IN': u'Gujarati / ગુજરાતી', + 'he_IL': u'Hebrew / עִבְרִי', + 'hi_IN': u'Hindi / हिंदी', + 'hr_HR': u'Croatian / hrvatski jezik', + 'hu_HU': u'Hungarian / Magyar', + 'id_ID': u'Indonesian / Bahasa Indonesia', + 'it_IT': u'Italian / Italiano', + 'iu_CA': u'Inuktitut / ᐃᓄᒃᑎᑐᑦ', + 'ja_JP': u'Japanese / 日本語', + 'ko_KP': u'Korean (KP) / 한국어 (KP)', + 'ko_KR': u'Korean (KR) / 한국어 (KR)', + 'lt_LT': u'Lithuanian / Lietuvių kalba', + 'lv_LV': u'Latvian / latviešu valoda', + 'ml_IN': u'Malayalam / മലയാളം', + 'mn_MN': u'Mongolian / монгол', + 'nb_NO': u'Norwegian Bokmål / Norsk bokmål', + 'nl_NL': u'Dutch / Nederlands', + 'nl_BE': u'Flemish (BE) / Vlaams (BE)', + 'oc_FR': u'Occitan (FR, post 1500) / Occitan', + 'pl_PL': u'Polish / Język polski', + 'pt_BR': u'Portugese (BR) / Português (BR)', + 'pt_PT': u'Portugese / Português', + 'ro_RO': u'Romanian / română', + 'ru_RU': u'Russian / русский язык', + 'si_LK': u'Sinhalese / සිංහල', + 'sl_SI': u'Slovenian / slovenščina', + 'sk_SK': u'Slovak / Slovenský jazyk', + 'sq_AL': u'Albanian / Shqip', + 'sr_RS': u'Serbian (Cyrillic) / српски', + 'sr@latin': u'Serbian (Latin) / srpski', + 'sv_SE': u'Swedish / svenska', + 'te_IN': u'Telugu / తెలుగు', + 'tr_TR': u'Turkish / Türkçe', + 'vi_VN': u'Vietnamese / Tiếng Việt', + 'uk_UA': u'Ukrainian / українська', + 'ur_PK': u'Urdu / اردو', + 'zh_CN': u'Chinese (CN) / 简体中文', + 'zh_HK': u'Chinese (HK)', + 'zh_TW': u'Chinese (TW) / 正體字', + 'th_TH': u'Thai / ภาษาไทย', + 'tlh_TLH': u'Klingon', +} def scan_languages(): # Now it will take all languages from get languages function without filter it with base module languages - lang_dict = get_languages() + lang_dict = ALL_LANGUAGES ret = [(lang, lang_dict.get(lang, lang)) for lang in list(lang_dict)] ret.sort(key=lambda k:k[1]) return ret From 18d38fb5eebeb52ad88678a7017a4230c7783727 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 23 Feb 2012 11:32:07 +0100 Subject: [PATCH 003/194] [IMP] document tools.misc.scan_languages, make its implementation less retarded bzr revid: xmo@openerp.com-20120223103207-ra1a0dzcyoe745cx --- openerp/tools/misc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 89cd8695078..06105fbdb56 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -633,12 +633,12 @@ ALL_LANGUAGES = { } def scan_languages(): - # Now it will take all languages from get languages function without filter it with base module languages - lang_dict = ALL_LANGUAGES - ret = [(lang, lang_dict.get(lang, lang)) for lang in list(lang_dict)] - ret.sort(key=lambda k:k[1]) - return ret + """ Returns all languages supported by OpenERP for translation + :returns: a list of (lang_code, lang_name) pairs + :rtype: [(str, unicode)] + """ + return sorted(ALL_LANGUAGES.iteritems(), key=lambda k: k[1]) def get_user_companies(cr, user): def _get_company_children(cr, ids): From 25e699d72dc1d3e61af94402ad3e66b23cd24303 Mon Sep 17 00:00:00 2001 From: Samus Aran Date: Fri, 23 Mar 2012 16:08:50 +0100 Subject: [PATCH 004/194] [IMP] Creating new row in db also update write_date and write_uid bzr revid: cto@openerp.com-20120323150850-26j5ht8eexue86sh --- openerp/osv/orm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 32b039f6598..22c1a0bc183 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -4172,9 +4172,9 @@ class BaseModel(object): and vals[field]: self._check_selection_field_value(cr, user, field, vals[field], context=context) if self._log_access: - upd0 += ',create_uid,create_date' - upd1 += ",%s,(now() at time zone 'UTC')" - upd2.append(user) + upd0 += ',create_uid,create_date,write_uid,write_date' + upd1 += ",%s,(now() at time zone 'UTC'),%s,(now() at time zone 'UTC')" + upd2.extend((user, user)) cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2)) self.check_access_rule(cr, user, [id_new], 'create', context=context) upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority) From 0c9c22e539d9621a3e6ac1673a81a0176893bb56 Mon Sep 17 00:00:00 2001 From: Hardik Date: Mon, 9 Jul 2012 17:11:52 +0530 Subject: [PATCH 005/194] [FIX] project :KeyError: 'company_id' when group by 'Company' lp bug: https://launchpad.net/bugs/1022496 fixed bzr revid: hsa@tinyerp.com-20120709114152-s9mv0m67b2r5v63r --- addons/project/report/project_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py index 36e025ab509..1d74e154c37 100644 --- a/addons/project/report/project_report.py +++ b/addons/project/report/project_report.py @@ -52,7 +52,7 @@ class report_project_task_user(osv.osv): ('0','Very urgent')], 'Priority', readonly=True), 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')], 'Month', readonly=True), 'state': fields.selection([('draft', 'Draft'), ('open', 'In Progress'), ('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')],'Status', readonly=True), - 'company_id': fields.many2one('res.company', 'Company', readonly=True, groups="base.group_multi_company"), + 'company_id': fields.many2one('res.company', 'Company', readonly=True), 'partner_id': fields.many2one('res.partner', 'Partner', readonly=True), } _order = 'name desc, project_id' From 1a2d054b8499a78f6f4f8a2024c3b561502a93e5 Mon Sep 17 00:00:00 2001 From: Jose Patricio Villarreal <> Date: Wed, 11 Jul 2012 16:59:15 +0530 Subject: [PATCH 006/194] [FIX] added warning message in bank statement line,raise when invoice is already canceled lp bug: https://launchpad.net/bugs/1022677 fixed bzr revid: rmu@tinyerp.com-20120711112915-ffl9q3nn721hppjt --- addons/account_voucher/account_voucher.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 2cefaf15f0e..dc46ec57722 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -1047,6 +1047,8 @@ class account_voucher(osv.osv): # if the amount encoded in voucher is equal to the amount unreconciled, we need to compute the # currency rate difference if line.amount == line.amount_unreconciled: + if not line.move_line_id.amount_residual: + raise osv.except_osv(_('Wrong bank statement line'),_("You must have delete the bank statement line manualy to which the payment was reconcile. Please check the payment of the partner %s by the amount of %s !")%(line.voucher_id.partner_id.name, line.voucher_id.amount)) currency_rate_difference = line.move_line_id.amount_residual - amount else: currency_rate_difference = 0.0 From 1a60a74aaf9174f2a7f0a82f88f74688587801be Mon Sep 17 00:00:00 2001 From: "Kuldeep Joshi (OpenERP)" Date: Fri, 13 Jul 2012 15:33:33 +0530 Subject: [PATCH 007/194] [FIX]portal: remove button which is no more required bzr revid: kjo@tinyerp.com-20120713100333-dzhz5hjwnflmbjw9 --- addons/portal/portal_view.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml index 21641f45bc7..262b7bda2b9 100644 --- a/addons/portal/portal_view.xml +++ b/addons/portal/portal_view.xml @@ -56,9 +56,6 @@ the portal's users. -