Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt	(revision 7735)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt	(revision 7736)
@@ -10,34 +10,16 @@
   <div class="tab-content">
     <div id="tab-1" tal:attributes="class view/tab1">
-          <table class="form-table">
-          <tbody>
-          <tal:block repeat="widget view/widgets">
-            <tr>
-              <td class="fieldname">
-                <span tal:condition="widget/required">*</span>
-                <span tal:content="widget/label">label</span>:
-              </td>
-              <td>
-                <span tal:content="structure widget">
-                  <input type="text" />
-                </span>
-                <tal:error tal:condition="widget/error">
-                  <span tal:replace="structure widget/error">error</span>
-                </tal:error>
-                <tal:hint tal:condition="widget/hint">
-                  <span tal:content="structure widget/hint">hint</span>
-                </tal:hint>
-              </td>
-            </tr>
-          </tal:block>
-          </tbody>
-          </table>
-          <div tal:condition="view/availableActions">
-            <span tal:repeat="action view/actions"
-                  tal:omit-tag="">
-              <input tal:condition="python:action.label in view.taboneactions"
-                     tal:replace="structure action/render"/>
-            </span>
-          </div>
+    <table class="form-table">
+      <tbody>
+        <tal:widgets tal:content="structure provider:widgets" />
+      </tbody>
+    </table>
+    <div tal:condition="view/availableActions">
+      <span tal:repeat="action view/actions"
+            tal:omit-tag="">
+        <input tal:condition="python:action.label in view.taboneactions"
+               tal:replace="structure action/render"/>
+      </span>
+    </div>
     </div>
     <div id="tab-2" tal:attributes="class view/tab2">
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/facultymanagepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/facultymanagepage.pt	(revision 7735)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/facultymanagepage.pt	(revision 7736)
@@ -22,26 +22,5 @@
       <table class="form-table">
         <tbody>
-          <tal:block repeat="widget view/widgets">
-            <tr>
-              <td class="fieldname">
-                <span tal:condition="widget/required">*
-                </span>
-                <span tal:content="widget/label">LABEL
-                </span>:
-              </td>
-              <td>
-                <span tal:content="structure widget">
-                  <input type="text" />
-                </span>
-                <tal:error tal:condition="widget/error">
-                  <span tal:replace="structure widget/error">ERROR
-                  </span>
-                </tal:error>
-                <tal:hint tal:condition="widget/hint">
-                  <span tal:content="structure widget/hint">HINT
-                  </span>
-                </tal:hint> </td>
-            </tr>
-          </tal:block>
+          <tal:widgets tal:content="structure provider:widgets" />
         </tbody>
       </table>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/usereditformpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/usereditformpage.pt	(revision 7735)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/usereditformpage.pt	(revision 7736)
@@ -4,23 +4,5 @@
   <table class="form-table">
     <tbody>
-      <tal:block repeat="widget view/widgets">
-        <tr>
-          <td class="fieldname">
-            <span tal:condition="widget/required">*</span>
-            <span tal:content="widget/label">LABEL</span>:
-          </td>
-          <td>
-            <span tal:content="structure widget">
-              <input type="text" />
-            </span>
-            <tal:error tal:condition="widget/error">
-              <span tal:replace="structure widget/error">ERROR</span>
-            </tal:error>
-            <tal:hint tal:condition="widget/hint">
-              <span tal:content="structure widget/hint">HINT</span>
-            </tal:hint>
-          </td>
-        </tr>
-      </tal:block>
+      <tal:widgets tal:content="structure provider:widgets" />
       <tr>
         <td i18n:translate="" class="fieldname">Password:</td>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/widgets.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/widgets.pt	(revision 7736)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/widgets.pt	(revision 7736)
@@ -0,0 +1,19 @@
+<tal:block repeat="widget view/widgets">
+  <tr>
+    <td class="fieldname">
+      <span tal:condition="widget/required">*</span>
+      <span tal:content="widget/label">LABEL</span>:
+    </td>
+    <td>
+      <span tal:content="structure widget">
+        <input type="text" />
+      </span>
+      <tal:error tal:condition="widget/error">
+        <span tal:replace="structure widget/error">ERROR</span>
+      </tal:error>
+      <tal:hint tal:condition="widget/hint">
+        <span tal:content="structure widget/hint">HINT</span>
+      </tal:hint>
+    </td>
+  </tr>
+</tal:block>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 7735)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 7736)
@@ -56,4 +56,7 @@
     grok.name('admintasks')
 
+class WidgetsSlot(grok.ViewletManager):
+    grok.name('widgets')
+
 
 #
@@ -298,5 +301,12 @@
         else:
             return ''
-            
+
+class WidgetsTableRows(grok.Viewlet):
+    """A base for action buttons without image
+    """
+    template = grok.PageTemplateFile('templates/widgets.pt')
+    grok.viewletmanager(WidgetsSlot)
+
+
 #
 # waeup.sirp.app.University viewlets...
