diff roundup/cgi/client.py @ 4800:3961b2b91568

2nd case where querying form returns a TypeError
author Ralf Schlatterbeck <rsc@runtux.com>
date Mon, 08 Jul 2013 10:38:54 +0200
parents b474adb17fda
children bff9e4145f70
line wrap: on
line diff
--- a/roundup/cgi/client.py	Mon Jul 08 09:57:39 2013 +0200
+++ b/roundup/cgi/client.py	Mon Jul 08 10:38:54 2013 +0200
@@ -603,7 +603,7 @@
         charset_parameter = 0
         # Python 2.6 form may raise a TypeError if list in form is None
         charset = None
-        try :
+        try:
             charset = self.form['@charset'].value
             if charset.lower() == "none":
                 charset = ""
@@ -660,18 +660,23 @@
         # look for language parameter
         # then for language cookie
         # last for the Accept-Language header
-        if "@language" in self.form:
+        # Python 2.6 form may raise a TypeError if list in form is None
+        language = None
+        try:
             language = self.form["@language"].value
             if language.lower() == "none":
                 language = ""
             self.add_cookie("roundup_language", language)
-        elif "roundup_language" in self.cookie:
-            language = self.cookie["roundup_language"].value
-        elif self.instance.config["WEB_USE_BROWSER_LANGUAGE"]:
-            hal = self.env.get('HTTP_ACCEPT_LANGUAGE')
-            language = accept_language.parse(hal)
-        else:
-            language = ""
+        except (KeyError, TypeError):
+            pass
+        if language is None:
+            if "roundup_language" in self.cookie:
+                language = self.cookie["roundup_language"].value
+            elif self.instance.config["WEB_USE_BROWSER_LANGUAGE"]:
+                hal = self.env.get('HTTP_ACCEPT_LANGUAGE')
+                language = accept_language.parse(hal)
+            else:
+                language = ""
 
         self.language = language
         if language:

Roundup Issue Tracker: http://roundup-tracker.org/