Index: WAeUP_SRP/trunk/Widgets.py
===================================================================
--- WAeUP_SRP/trunk/Widgets.py	(revision 806)
+++ WAeUP_SRP/trunk/Widgets.py	(revision 807)
@@ -329,10 +329,10 @@
         v = datamodel[self.fields[0]]
         #import pdb;pdb.set_trace()
-        clear_doc = self.getStudentInfo()['clear_doc']
-        vd = getattr(clear_doc,self.fields[0],None)
-        if not vd:
-            vd = {}
+        #clear_doc = self.getStudentInfo()['clear_doc']
+        #vd = getattr(clear_doc,self.fields[0],None)
+##        if not vd:
+##            vd = []
         widget_id = self.getWidgetId()
-        datastructure[widget_id] = vd
+        datastructure[widget_id] = v
         datastructure[widget_id+'_s'] = ''
         datastructure[widget_id+'_g'] = ''
@@ -341,5 +341,5 @@
     def validate(self, datastructure, **kw): ###(
         """Validate datastructure and update datamodel."""
-        import pdb;pdb.set_trace()
+        #import pdb;pdb.set_trace()
         widget_id = self.getWidgetId()
         v = datastructure[widget_id]
@@ -347,12 +347,24 @@
         s = datastructure[widget_id+'_s'].strip()
         g = datastructure[widget_id+'_g'].strip()
-        if not type(v) is type({}):
-            pass
-        elif not s and g:
-            err = "no subject grad for subject %s " % s
-        elif v.has_key(s):
-            err = "grad for subject %s already given" % s
-        elif s and g:
-            v[s] = g
+        while 1:
+            if not s and g:
+                err = "no subject grad for subject %s " % s
+                break
+            i = 0
+            done = False
+            for sv,gv in v:
+                if sv == s:
+                    done = True
+                    if not g:
+                        v.pop(i)
+                        break
+                    v[i] = (s,g)
+                    break
+                i += 1
+            if done:
+                break
+            if s and g:
+                v.append((s,g))
+            break
         if err:
             datastructure.setError(widget_id, err)
@@ -379,6 +391,5 @@
         widget_id = self.getWidgetId()
         v = datamodel[self.fields[0]]
-        datastructure[widget_id] = [{'subject': f,
-                                     'grade': v[f]} for f in v.keys()]
+        datastructure[widget_id] = v
         datastructure[widget_id+'_s'] = ''
         datastructure[widget_id+'_g'] = ''
Index: WAeUP_SRP/trunk/profiles/default/schemas/student_clearance.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/schemas/student_clearance.xml	(revision 806)
+++ WAeUP_SRP/trunk/profiles/default/schemas/student_clearance.xml	(revision 807)
@@ -21,5 +21,5 @@
  <field name="fst_sit_date" meta_type="CPS DateTime Field"/>
  <field name="fst_sit_type" meta_type="CPS String Field"/>
- <field name="fst_sit_results" meta_type="CPS SubObjects Field"/>
+ <field name="fst_sit_results" meta_type="CPS String List Field"/>
  <field name="fst_sit_scan" meta_type="CPS Image Field"/>
 
@@ -29,5 +29,5 @@
  <field name="scd_sit_date" meta_type="CPS DateTime Field"/>
  <field name="scd_sit_type" meta_type="CPS String Field"/>
- <field name="scd_sit_results" meta_type="CPS SubObjects Field"/>
+ <field name="scd_sit_results" meta_type="CPS String List Field"/>
  <field name="scd_sit_scan" meta_type="CPS Image Field"/>
 
@@ -35,5 +35,5 @@
  <field name="alr_no" meta_type="CPS String Field"/>
  <field name="alr_date" meta_type="CPS DateTime Field"/>
- <field name="alr_results" meta_type="CPS SubObjects Field"/>
+ <field name="alr_results" meta_type="CPS String List Field"/>
  <field name="alr_scan" meta_type="CPS Image Field"/>
 
Index: WAeUP_SRP/trunk/skins/waeup_custom/widget_image_render.pt
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_custom/widget_image_render.pt	(revision 806)
+++ WAeUP_SRP/trunk/skins/waeup_custom/widget_image_render.pt	(revision 807)
@@ -21,9 +21,11 @@
 
     <metal:block define-macro="image_title_edit">
+    <span tal:condition="python:0">
       <metal:block use-macro="here/widget_file_render/macros/file_title_edit">
       </metal:block>
+    </span>
     </metal:block>
 
-    <img tal:condition="python: not empty_file and not session_file"
+    <img tal:condition="python: 0 and not empty_file and not session_file"
       tal:replace="structure image_tag" />
 
Index: WAeUP_SRP/trunk/skins/waeup_student/widget_waeup_result_render.pt
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_student/widget_waeup_result_render.pt	(revision 806)
+++ WAeUP_SRP/trunk/skins/waeup_student/widget_waeup_result_render.pt	(revision 807)
@@ -7,8 +7,9 @@
                    grade options/datastructure/?id_g;
 ">
-<tal:block>
+<tal:block condition="python: mode == 'view'">
   <table>
+    <tr><th>Subject</th><th>Grade</th>
     <tr tal:repeat="res results">
-      <td tal:content="res/subject" /> <td tal:content="res/grade" />
+      <td tal:repeat="col res" tal:content="col" /> 
     </tr>
   </table>
@@ -17,4 +18,8 @@
            condition="python: mode == 'edit'">
   <table>
+    <tr><th>Subject</th><th>Grade</th>
+    <tr tal:repeat="res results">
+      <td tal:repeat="col res" tal:content="col" /> 
+    </tr>
     <tr>
       <td> 
@@ -34,5 +39,5 @@
       <td> 
         <input type="submit" class="standalone" name="cpsdocument_edit_button"
-         value="Save" 
+         value="Add/Modify" 
          id="cpsdocument_edit_button" />
       </td>
