Index: main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 9321)
+++ main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 9322)
@@ -67,4 +67,5 @@
 from waeup.kofa.utils.helpers import get_user_account
 from waeup.kofa.mandates.mandate import PasswordMandate
+from waeup.kofa.datacenter import DataCenterFile
 
 grok.context(IKofaObject)
@@ -154,4 +155,28 @@
         view.redirect(view.url(view.context, redirect))
     return
+
+def getPreviewTable(view, n):
+    """Get transposed table with n sample record.
+
+    The first column contains the headers.
+    """
+    if not view.reader:
+        return
+    header = view.getPreviewHeader()
+    num = 0
+    data = []
+    for line in view.reader:
+        if num > n-1:
+            break
+        num += 1
+        data.append(line)
+    result = []
+    for name in header:
+        result_line = []
+        result_line.append(name)
+        for d in data:
+            result_line.append(d[name])
+        result.append(result_line)
+    return result
 
 # Save function used for save methods in pages
@@ -838,7 +863,30 @@
     cancel_button =_(u'Cancel')
 
-    def _notifyImportManagers(self, normalized_filename):
+    def getPreviewHeader(self):
+        """Get the header fields of uploaded CSV file.
+        """
+        reader = csv.reader(open(self.fullpath, 'rb'))
+        return reader.next()
+
+    def getImporters(self):
+        importers = getAllUtilitiesRegisteredFor(IBatchProcessor)
+        importers = sorted(
+            [dict(title=x.name, name=x.util_name) for x in importers])
+        return importers
+
+    def _notifyImportManagers(self, normalized_filename, importer, import_mode):
         """Send email to Import Managers
         """
+        # Get information about file
+        self.fullpath = os.path.join(self.context.storage, normalized_filename)
+        uploadfile = DataCenterFile(self.fullpath)
+        self.reader = csv.DictReader(open(self.fullpath, 'rb'))
+        table = getPreviewTable(self, 3)
+        mail_table = ''
+        for line in table:
+            header = line[0]
+            data = str(line[1:]).strip('[').strip(']')
+            mail_table += '%s: %s\n' % (line[0], data)
+        # Collect all recipient addresses
         kofa_utils = getUtility(IKofaUtils)
         import_managers = get_users_with_role(
@@ -862,5 +910,16 @@
                       'waeup.kofa',
                       target_language=kofa_utils.PORTAL_LANGUAGE)
-            text = _('File ${a} uploaded.', mapping = {'a':normalized_filename})
+            text = _("""File: ${a}
+Processor: ${b}
+Import Mode: ${c}
+Datasets: ${d}
+
+${e}
+
+""", mapping = {'a':normalized_filename,
+                'b':importer,
+                'c':import_mode,
+                'd':uploadfile.lines - 1,
+                'e':mail_table})
             success = kofa_utils.sendContactForm(
                     fullname,email,
@@ -875,5 +934,6 @@
             return
 
-    def update(self, uploadfile=None, CANCEL=None, SUBMIT=None):
+    def update(self, uploadfile=None, import_mode=None,
+               importer=None, CANCEL=None, SUBMIT=None):
         if CANCEL is not None:
             self.redirect(self.url(self.context))
@@ -903,5 +963,6 @@
             ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
             logger.info('%s - uploaded: %s' % (ob_class, target))
-            self._notifyImportManagers(normalized_filename)
+            self._notifyImportManagers(
+                normalized_filename, importer, import_mode)
 
         except IOError:
@@ -1050,26 +1111,5 @@
 
     def getPreviewTable(self):
-        """Get transposed table with 3 sample records.
-
-        The first column contains the headers.
-        """
-        if not self.reader:
-            return
-        header = self.getPreviewHeader()
-        num = 0
-        data = []
-        for line in self.reader:
-            if num > 2:
-                break
-            num += 1
-            data.append(line)
-        result = []
-        for name in header:
-            result_line = []
-            result_line.append(name)
-            for d in data:
-                result_line.append(d[name])
-            result.append(result_line)
-        return result
+        return getPreviewTable(self, 3)
 
     def getImporters(self):
Index: main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenteruploadpage.pt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenteruploadpage.pt	(revision 9321)
+++ main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenteruploadpage.pt	(revision 9322)
@@ -1,16 +1,55 @@
 <form method="post" enctype="multipart/form-data">
-  <input type="file" name="uploadfile:file" />
-  <br /><br />
-  <div>
-    <input class="btn primary" type="submit" name="SUBMIT"
-        tal:attributes="value view/upload_button" />
-    <input class="btn" type="submit" name="CANCEL"
-        tal:attributes="value view/cancel_button"/>
-  </div>
+<br />
+  <table class="form-table">
+    <tr>
+      <td i18n:translate="">
+        File:
+      </td>
+      <td>
+        <input type="file" size=47 name="uploadfile:file" />
+      </td>
+    </tr>
+    <tr>
+      <td i18n:translate="">
+        Processor:
+      </td>
+      <td>
+        <select name="importer">
+          <option tal:repeat="importer view/getImporters"
+              tal:attributes="value importer/title"
+              tal:content="importer/title"> Some Importer
+          </option>
+        </select>
+      </td>
+    </tr>
+    <tr>
+      <td i18n:translate="">
+        Import Mode:
+      </td>
+      <td>
+        <select name="import_mode">
+          <option value='Create'>Create</option>
+          <option value='Update'>Update</option>
+          <option value='Remove'>Remove</option>
+        </select>
+      </td>
+    </tr>
+    <tr>
+      <td i18n:translate="">
+        <input class="btn primary" type="submit" name="SUBMIT"
+            tal:attributes="value view/upload_button" />
+        <input class="btn" type="submit" name="CANCEL"
+            tal:attributes="value view/cancel_button"/>
+      </td>
+      <td>
+      </td>
+    </tr>
+  </table>
 </form>
 
 <p i18n:translate="">
     Import managers will be automatically informed by email after file upload.
-    There is no need for assigning trac tickets anymore.
+    There is no need for assigning trac tickets or sending emails anymore.
+    The data will be imported according to the information given.
 </p>
 
