etwist/server.py
changeset 9147 01124cfd4b1f
parent 8930 6a02be304486
child 9402 2c48c091b6a2
child 9533 fa4051e29fbe
--- a/etwist/server.py	Tue Jul 09 15:58:26 2013 +0200
+++ b/etwist/server.py	Mon Jun 24 19:00:40 2013 +0200
@@ -244,7 +244,6 @@
             self._do_process_multipart = True
     self.process()
 
-
 @monkeypatch(http.Request)
 def process_multipart(self):
     if not self._do_process_multipart:
@@ -254,16 +253,17 @@
                         keep_blank_values=1,
                         strict_parsing=1)
     for key in form:
-        value = form[key]
-        if isinstance(value, list):
-            self.args[key] = [v.value for v in value]
-        elif value.filename:
-            if value.done != -1: # -1 is transfer has been interrupted
-                self.files[key] = (value.filename, value.file)
+        values = form[key]
+        if not isinstance(values, list):
+            values = [values]
+        for value in values:
+            if value.filename:
+                if value.done != -1: # -1 is transfer has been interrupted
+                    self.files.setdefault(key, []).append((value.filename, value.file))
+                else:
+                    self.files.setdefault(key, []).append((None, None))
             else:
-                self.files[key] = (None, None)
-        else:
-            self.args[key] = value.value
+                self.args.setdefault(key, []).append(value.value)
 
 from logging import getLogger
 from cubicweb import set_log_methods