Index: /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interfaces.py
===================================================================
--- /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interfaces.py	(revision 17926)
+++ /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interfaces.py	(revision 17927)
@@ -65,4 +65,14 @@
         default = 0.0,
         required = False,
+        )
+
+    interswitch_enabled = schema.Bool(
+        title = _(u'Interswitch Collegepay integration enabled'),
+        default = True,
+        )
+
+    interswitch_webcheckout_enabled = schema.Bool(
+        title = _(u'Interswitch WebCheckout integration enabled'),
+        default = False,
         )
 
Index: /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/browser.py
===================================================================
--- /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/browser.py	(revision 17926)
+++ /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/browser.py	(revision 17927)
@@ -25,4 +25,12 @@
     InterswitchPaymentVerifyWebservicePageStudent,
     InterswitchPageStudent, InterswitchPageApplicant,
+    module_activated,
+    )
+from kofacustom.nigeria.interswitch.webcheckoutbrowser import (
+    webcheckout_module_activated,
+    WebCheckoutPageStudent,
+    WebCheckoutPageApplicant,
+    WebCheckoutConfirmTransactionStudent,
+    WebCheckoutConfirmTransactionApplicant,
     )
 from kofacustom.edopoly.students.interfaces import ICustomStudentOnlinePayment
@@ -69,4 +77,9 @@
 
     def update(self):
+        if not module_activated(
+            self.context.student.current_session, self.context):
+            self.flash(_('Forbidden'), type='danger')
+            self.redirect(self.url(self.context, '@@index'))
+            return
         error = self.init_update()
         if error:
@@ -152,4 +165,9 @@
 
     def update(self):
+        if not module_activated(
+            self.context.__parent__.__parent__.year, self.context):
+            self.flash(_('Forbidden'), type='danger')
+            self.redirect(self.url(self.context, '@@index'))
+            return
         error = self.init_update()
         if error:
@@ -251,2 +269,47 @@
     gateway_url = URL
     mac = MAC
+
+# WebCheckout customizations
+
+MERCHANT_CODE = 'MX176634'
+PAY_ITEM_ID = '102'
+
+class CustomWebCheckoutPageStudent(WebCheckoutPageStudent):
+    """ View which sends a POST request to the Interswitch
+    WebCheckout payment gateway.
+    """
+    #action = 'https://newwebpay.interswitchng.com/collections/w/pay'
+    action = 'https://newwebpay.qa.interswitchng.com/collections/w/pay'
+    currency = '566'
+    pay_item_id = PAY_ITEM_ID
+    merchant_code = MERCHANT_CODE
+    gateway_amt = 0.0
+    product_id = PRODUCT_ID
+
+class CustomWebCheckoutPageApplicant(WebCheckoutPageApplicant):
+    """ View which sends a POST request to the Interswitch
+    WebCheckout payment gateway.
+    """
+
+    action = 'https://newwebpay.interswitchng.com/collections/w/pay'
+    currency = '566'
+    pay_item_id = PAY_ITEM_ID
+    merchant_code = MERCHANT_CODE
+
+class CustomWebCheckoutConfirmTransactionStudent(WebCheckoutConfirmTransactionStudent):
+    """ Request webservice view for the WebCheckout gateway
+    """
+    merchant_code = MERCHANT_CODE
+    gateway_host = 'webpay.interswitchng.com'
+    gateway_url = '/collections/api/v1/gettransaction.json'
+    https = True
+
+class CustomWebCheckoutConfirmTransactionApplicant(WebCheckoutConfirmTransactionApplicant):
+    """ Request webservice view for the WebCheckout gateway
+    """
+    merchant_code = MERCHANT_CODE
+    gateway_host = 'webpay.interswitchng.com'
+    gateway_url = '/collections/api/v1/gettransaction.json'
+    https = True
+
+
Index: /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py
===================================================================
--- /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py	(revision 17926)
+++ /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py	(revision 17927)
@@ -50,4 +50,5 @@
     def setUp(self):
         super(InterswitchTestsStudents, self).setUp()
+        self.app['configuration']['2004'].interswitch_enabled = True
 
     def test_interswitch_form(self):
Index: /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/tests/test_export.py
===================================================================
--- /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/tests/test_export.py	(revision 17926)
+++ /main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/tests/test_export.py	(revision 17927)
@@ -51,4 +51,5 @@
             'emp2_position,emp2_reason,emp2_start,emp_end,emp_position,'
             'emp_reason,emp_start,employer,employer2,'
+            'final_clearance_date,finally_cleared_by,'
             'financial_clearance_date,financially_cleared_by,'
             'firstname,flash_notice,former_matric,'
@@ -67,5 +68,5 @@
             'current_level,current_session\r\nmy adm code,,,,'
             '"[(\'printing_craft_practice\', \'A1\')]",my clr code,1981-02-04#,,,'
-            'anna@sample.com,,,,,,,,,,,,,Anna,,,,,,"[(\'printing_craft_practice\', \'A1\')]"'
+            'anna@sample.com,,,,,,,,,,,,,,,Anna,,,,,,"[(\'printing_craft_practice\', \'A1\')]"'
             ',,,,,,,,,,,,,,,,Tester,,,234,M.,NG,,,,,,,,,,'
             '"Studentroad 21\nLagos 123456\n",,+234-123-12345#,,,123,,,,,'
