Index: /waeup_product/trunk/Extensions/install.py
===================================================================
--- /waeup_product/trunk/Extensions/install.py	(revision 19)
+++ /waeup_product/trunk/Extensions/install.py	(revision 20)
@@ -1,4 +1,4 @@
 from Products.CPSInstaller.CPSInstaller import CPSInstaller
-from Products.CMFCore.CMFCorePermissions import View
+from Products.CMFCore.CMFCorePermissions import View, ModifyPortalContent
 try:
   from Products.CPSSubscriptions.CPSSubscriptionsPermissions import \
@@ -58,5 +58,46 @@
         
         ##########################################
-        # SKINS
+        # actions
+        ##########################################
+        actions = ( { 'tool'      : 'portal_actions',
+                        'id'        : 'checkadmission',
+                        'name'      : 'Check Admission',
+                        'action'    : 'string:${portal_url}/check_admission_form',
+                        'permission': (View, ),
+                        'condition' : '',
+                        'category'  : 'ostudent',
+                        'visible'   : 1,
+                      },
+                      { 'tool'      : 'portal_actions',
+                        'id'        : 'new_student',
+                        'name'      : 'Add Student',
+                        'action'    : 'folder_factories',
+                        'permission': (View, ),
+                        'condition' : 'python: here.portal_type == "StudentFolder"',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+                      { 'tool'      : 'portal_actions',
+                        'id'        : 'edit_student',
+                        'name'      : 'Edit Student',
+                        'action'    : 'cpsdocument_edit_form',
+                        'permission': (ModifyPortalContent, ),
+                        'condition' : 'python: here.portal_type == "Student"',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+                      { 'tool'      : 'portal_actions',
+                        'id'        : 'edit_student',
+                        'name'      : 'Add Jamb Data',
+                        'action'    : 'folder_factories',
+                        'permission': (ModifyPortalContent, ),
+                        'condition' : 'python:len(object.contentItems()) == 0',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+                    )
+        self.verifyActions(actions)
+        ##########################################
+        # skins
         ##########################################
         self.log("Verifying %(product_name)s skinss" % vars())
@@ -67,5 +108,5 @@
         self.resetSkinCache()
         ##########################################
-        # PORTAL TYPES
+        # portal types
         ##########################################
         dtypes = portal.getWAeUPTypes()
@@ -87,15 +128,20 @@
         self.verifyContentTypes(ptypes)
         ##########################################
-        # PORTAL Schemas
+        # Schemas
         ##########################################
         self.log("Verifying %(product_name)s schemas" % vars())
         self.verifySchemas(portal.getWAeUPSchemas())
         ##########################################
-        # PORTAL layouts
+        # widgets
+        ##########################################
+        self.log("Verifying %(product_name)s widgets" % vars())
+        self.verifyWidgets(portal.getWAeUPWidgets())
+        ##########################################
+        # layouts
         ##########################################
         self.log("Verifying %(product_name)s layouts" % vars())
         self.verifyLayouts(portal.getWAeUPLayouts())
         ##########################################
-        # PORTAL Vocabularies
+        # Vocabularies
         ##########################################
         self.log("Verifying %(product_name)s vocabularies" % vars())
Index: /waeup_product/trunk/__init__.py
===================================================================
--- /waeup_product/trunk/__init__.py	(revision 19)
+++ /waeup_product/trunk/__init__.py	(revision 20)
@@ -6,5 +6,5 @@
 
 import Student
-#import JambData
+import Widgets
 
 fti = ()
Index: /waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py
===================================================================
--- /waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 19)
+++ /waeup_product/trunk/skins/waeup_default/getWAeUPLayouts.py	(revision 20)
@@ -2,4 +2,5 @@
 # $Id$
 """Return custom layouts types."""
+layouts = {}
 
 student_layout = {
@@ -83,9 +84,10 @@
     },
 }
-
-jamb_layout = {
+layouts['student'] = student_layout
+
+checkadmission = {
     'widgets': {
         'reg_nr': {
-            'type': 'String Widget',
+            'type': 'StudentId Widget',
             'data': {
                 'title': 'Student ID',
@@ -108,4 +110,64 @@
             },
         },
+        'sc_pin': {
+            'type': 'Scratchcard Pin Widget',
+            'data': {
+                'title': 'SC Pin',
+                'fields': (),
+                'is_required': True,
+                'label': 'Scratchcard Pin',
+                'label_edit': 'Scratchcard Pin',
+                'description': '',
+                'help': 'Please enter a valid Scratch card pin',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'css_class': '',
+                'widget_mode_expr': '',
+                'display_width': 10,
+                'size_max': 10,
+            },
+        },
+    },
+   'layout': {
+        'style_prefix': 'layout_admission_',
+        'flexible_widgets': (),
+        'ncols': 1,
+        'rows': [
+            [{'widget_id': 'reg_nr', 'ncols': 1},],
+            [{'widget_id': 'sc_pin', 'ncols': 1},],
+        ]
+    },
+}
+
+layouts['checkadmission'] = checkadmission
+
+jamb_layout = {
+    'widgets': {
+        'reg_nr': {
+            'type': 'StudentId Widget',
+            'data': {
+                'title': 'Student ID',
+                'fields': ('reg_nr',),
+                'is_required': True,
+                'label': 'Student ID',
+                'label_edit': 'Student ID',
+                'description': '',
+                'help': '',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'css_class': '',
+                'widget_mode_expr': '',
+                'display_width': 10,
+                'size_max': 0,
+            },
+        },
         'name': {
             'type': 'String Widget',
@@ -117,14 +179,14 @@
                 'label_edit': 'Name',
                 'description': '',
-                'help': '',
-                'is_i18n': False,
-                'readonly_layout_modes': (),
-                'hidden_layout_modes': (),
-                'hidden_readonly_layout_modes': (),
-                'hidden_empty': False,
-                'hidden_if_expr': '',
-                'css_class': '',
-                'widget_mode_expr': '',
-                'display_width': 20,
+                'help': 'Please enter your full name.',
+                'is_i18n': False,
+                'readonly_layout_modes': (),
+                'hidden_layout_modes': (),
+                'hidden_readonly_layout_modes': (),
+                'hidden_empty': False,
+                'hidden_if_expr': '',
+                'css_class': '',
+                'widget_mode_expr': '',
+                'display_width': 40,
                 'size_max': 0,
             },
@@ -148,10 +210,10 @@
                 'css_class': '',
                 'widget_mode_expr': '',
-                'display_width': 20,
+                'display_width': 10,
                 'size_max': 0,
             },
         },
         'sex': {
-            'type': 'String Widget',
+            'type': 'Boolean Widget',
             'data': {
                 'title': '',
@@ -160,4 +222,6 @@
                 'label': 'sex',
                 'label_edit': 'sex',
+                'label_false': 'male',
+                'label_true': 'female',
                 'description': '',
                 'help': '',
@@ -303,6 +367,4 @@
 }
 
-layouts = {}
-layouts['student'] = student_layout
 layouts['jamb'] = jamb_layout
 
Index: /waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py
===================================================================
--- /waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 19)
+++ /waeup_product/trunk/skins/waeup_default/getWAeUPSchemas.py	(revision 20)
@@ -48,4 +48,22 @@
             'default_expr': 'string:',
             'is_searchabletext': True,
+            'acl_read_permissions': '',
+            'acl_read_roles': '',
+            'acl_read_expr': '',
+            'acl_write_permissions': '',
+            'acl_write_roles': '',
+            'acl_write_expr': '',
+            'read_ignore_storage': False,
+            'read_process_expr': '',
+            'read_process_dependent_fields': (),
+            'write_ignore_storage': False,
+            'write_process_expr': '',
+        },
+    },
+    'jamb_pin_usage': {
+        'type': 'CPS Int Field',
+        'data': {
+            'default_expr': 'python:0',
+            'is_searchabletext': False,
             'acl_read_permissions': '',
             'acl_read_roles': '',
Index: /waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py
===================================================================
--- /waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 19)
+++ /waeup_product/trunk/skins/waeup_default/getWAeUPTypes.py	(revision 20)
@@ -35,8 +35,8 @@
                  'action': 'folder_factories',
                  'permissions': (AddPortalContent,)},
-                {'id': 'contents',
-                 'name': 'action_folder_contents',
-                 'action': 'folder_contents',
-                 'permissions': (ModifyPortalContent,)},
+##                {'id': 'contents',
+##                 'name': 'action_folder_contents',
+##                 'action': 'folder_contents',
+##                 'permissions': (ModifyPortalContent,)},
                 {'id': 'edit',
                  'name': 'action_edit',
Index: /waeup_product/trunk/skins/waeup_default/getWAeUPWidgets.py
===================================================================
--- /waeup_product/trunk/skins/waeup_default/getWAeUPWidgets.py	(revision 19)
+++ /waeup_product/trunk/skins/waeup_default/getWAeUPWidgets.py	(revision 20)
@@ -1,7 +1,11 @@
 widgets = {
-##        'MyProject Week Date Time Widget': {
-##            'type': 'MyProject Week Date Time Widget Type',
-##            'data': {},
-##            },
+        'StudentId Widget': {
+            'type': 'StudentId Widget Type',
+            'data': {},
+            },
+        'Scratchcard Pin Widget': {
+            'type': 'StudentId Widget Type',
+            'data': {},
+            },
         }
 
