Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/batching.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/batching.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/batching.py	(revision 14184)
@@ -24,5 +24,5 @@
 from ikobacustom.uniben.customers.interfaces import (
     IUnibenCustomer,
-    IUnibenCustomerDocument, IUnibenContract)
+    IUnibenCustomerDocument, IRIAAContract)
 from ikobacustom.uniben.interfaces import MessageFactory as _
 
@@ -37,20 +37,20 @@
 
 
-class UnibenCustomerDocumentProcessor(CustomerDocumentProcessorBase):
+class UnibenCustomerPDFDocumentProcessor(CustomerDocumentProcessorBase):
     """A batch processor for IUnibenCustomerDocument objects.
     """
-    util_name = 'unibencustomerdocumentprocessor'
+    util_name = 'unibencustomerpdfdocumentprocessor'
     grok.name(util_name)
-    name = _('Uniben Customer Document Processor')
+    name = _('Uniben Customer PDF Document Processor')
     iface = IUnibenCustomerDocument
-    factory_name = 'waeup.UnibenCustomerDocument'
+    factory_name = 'waeup.UnibenCustomerPDFDocument'
 
 
-class UnibenContractProcessor(ContractProcessorBase):
-    """A batch processor for IUnibenContract objects.
+class RIAAContractProcessor(ContractProcessorBase):
+    """A batch processor for IRIAAContract objects.
     """
-    util_name = 'unibencontractprocessor'
+    util_name = 'riaacontractprocessor'
     grok.name(util_name)
-    name = _('Uniben Customer Contract Processor')
-    iface = IUnibenContract
-    factory_name = 'waeup.UnibenContract'
+    name = _('RIAA Contract Processor')
+    iface = IRIAAContract
+    factory_name = 'waeup.RIAAContract'
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/contracts.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/contracts.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/contracts.py	(revision 14184)
@@ -28,43 +28,47 @@
 from ikobacustom.uniben.interfaces import MessageFactory as _
 from ikobacustom.uniben.customers.interfaces import (
-    IUnibenContract, IUnibenContractEdit, IUnibenContractProcess,
-    IUnibenContractOfficialUse)
+    IRIAAContract, IRIAAContractEdit, IRIAAContractProcess,
+    IRIAAContractOfficialUse)
 
 
 class UnibenContract(ContractBase):
-    """This is a sample contract.
+    """This is a baseclass contract.
+    """
+
+class RIAAContract(UnibenContract):
+    """Research and Innovative Achievement Award
     """
 
     grok.implements(
-        IUnibenContractProcess,
-        IUnibenContract,
-        IUnibenContractEdit,
+        IRIAAContractProcess,
+        IRIAAContract,
+        IRIAAContractEdit,
         ICustomerNavigation)
 
-    contract_category = 'sample'
+    contract_category = 'riaa'
 
-    form_fields_interface = IUnibenContract
+    form_fields_interface = IRIAAContract
 
-    edit_form_fields_interface = IUnibenContractEdit
+    edit_form_fields_interface = IRIAAContractEdit
 
-    ou_form_fields_interface = IUnibenContractOfficialUse
+    ou_form_fields_interface = IRIAAContractOfficialUse
 
-    check_docs_interface = IUnibenContract
+    check_docs_interface = IRIAAContract
 
-UnibenContract = attrs_to_fields(UnibenContract)
+RIAAContract = attrs_to_fields(RIAAContract)
 
 
 # Contracts must be importable. So we might need a factory.
-class UnibenContractFactory(grok.GlobalUtility):
-    """A factory for contracts.
+class RIAAContractFactory(grok.GlobalUtility):
+    """A factory for RIAAContract.
     """
     grok.implements(IFactory)
-    grok.name(u'waeup.UnibenContract')
-    title = u"Create a new contract.",
-    description = u"This factory instantiates new sample contract instances."
+    grok.name(u'waeup.RIAAContract')
+    title = u"Create a new riaa contract.",
+    description = u"This factory instantiates new riaa contract instances."
 
     def __call__(self, *args, **kw):
-        return UnibenContract(*args, **kw)
+        return RIAAContract(*args, **kw)
 
     def getInterfaces(self):
-        return implementedBy(UnibenContract)
+        return implementedBy(RIAAContract)
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/documents.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/documents.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/documents.py	(revision 14184)
@@ -26,5 +26,6 @@
 from waeup.ikoba.customers.documents import CustomerDocumentBase
 from ikobacustom.uniben.interfaces import MessageFactory as _
-from ikobacustom.uniben.customers.interfaces import IUnibenCustomerDocument
+from ikobacustom.uniben.customers.interfaces import (
+    IUnibenCustomerDocument, IUnibenCustomerPDFDocument)
 
 
@@ -40,5 +41,5 @@
     # only one file per Document object. Thus the following
     # tuple should contain only a single filename string.
-    filenames = ('sample',)
+    filenames = ('scan',)
 
     form_fields_interface = IUnibenCustomerDocument
@@ -61,2 +62,30 @@
     def getInterfaces(self):
         return implementedBy(UnibenCustomerDocument)
+
+class UnibenCustomerPDFDocument(CustomerDocumentBase):
+    """This is a sample customer document.
+    """
+
+    grok.implements(IUnibenCustomerPDFDocument, ICustomerNavigation)
+    grok.provides(IUnibenCustomerPDFDocument)
+
+    filenames = ('scan.pdf',)
+
+    form_fields_interface = IUnibenCustomerPDFDocument
+
+UnibenCustomerPDFDocument = attrs_to_fields(UnibenCustomerPDFDocument)
+
+
+class UnibenCustomerPDFDocumentFactory(grok.GlobalUtility):
+    """A factory for customer documents.
+    """
+    grok.implements(IFactory)
+    grok.name(u'waeup.UnibenCustomerPDFDocument')
+    title = u"Create a new document.",
+    description = u"This factory instantiates new document instances."
+
+    def __call__(self, *args, **kw):
+        return UnibenCustomerPDFDocument(*args, **kw)
+
+    def getInterfaces(self):
+        return implementedBy(UnibenCustomerPDFDocument)
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/export.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/export.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/export.py	(revision 14184)
@@ -22,5 +22,6 @@
     CustomerExporter, CustomerDocumentExporterBase, ContractExporterBase)
 from ikobacustom.uniben.customers.interfaces import (
-    IUnibenCustomer, IUnibenCustomerDocument, IUnibenContractProcess)
+    IUnibenCustomer, IUnibenCustomerDocument, IRIAAContractProcess,
+    IUnibenCustomerPDFDocument)
 from ikobacustom.uniben.interfaces import MessageFactory as _
 
@@ -32,18 +33,18 @@
 
 
-class UnibenCustomerDocumentExporter(CustomerDocumentExporterBase):
+class UnibenCustomerPDFDocumentExporter(CustomerDocumentExporterBase):
     """Exporter for documents.
     """
-    grok.name('unibencustomerdocuments')
-    iface = IUnibenCustomerDocument
-    title = _(u'Uniben Customer Documents')
-    class_name = 'UnibenCustomerDocument'
+    grok.name('unibencustomerpdfdocuments')
+    iface = IUnibenCustomerPDFDocument
+    title = _(u'Uniben Customer PDF Documents')
+    class_name = 'UnibenCustomerPDFDocument'
 
 
-class UnibenContractExporter(ContractExporterBase):
+class RIAAContractExporter(ContractExporterBase):
     """Exporter for Contract instances.
     """
-    grok.name('unibencontracts')
-    iface = IUnibenContractProcess
-    title = _(u'Uniben Customer Contracts')
-    class_name = 'UnibenContract'
+    grok.name('riaacontracts')
+    iface = IRIAAContractProcess
+    title = _(u'RIAA Customer Contracts')
+    class_name = 'RIAAContract'
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/fileviewlets.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/fileviewlets.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/fileviewlets.py	(revision 14184)
@@ -23,5 +23,6 @@
     FileDisplay, FileUpload, Image)
 
-from ikobacustom.uniben.customers.documents import UnibenCustomerDocument
+from ikobacustom.uniben.customers.documents import (
+    UnibenCustomerDocument, UnibenCustomerPDFDocument)
 
 from waeup.ikoba.customers.browser import (
@@ -83,2 +84,56 @@
     grok.view(PDFDocumentSlip)
 
+class PDFScanManageUpload(FileUpload):
+    """Scan upload viewlet for officers.
+    """
+    grok.view(DocumentManageFormPage)
+    grok.context(UnibenCustomerPDFDocument)
+    grok.require('waeup.manageCustomer')
+    label = _(u'PDF File')
+    title = _(u'PDF File')
+    mus = 1024 * 1000
+    download_name = u'scan.pdf'
+    tab_redirect = '#tab2'
+
+    @property
+    def download_filename(self):
+        return u"%s.pdf" % self.context.document_id[:9]
+
+
+class PDFScanEditUpload(PDFScanManageUpload):
+    """Scan upload viewlet for customer.
+    """
+    grok.view(DocumentEditFormPage)
+    grok.require('waeup.handleCustomer')
+
+
+class PDFScanDisplay(FileDisplay):
+    """Scan display viewlet.
+    """
+    grok.order(1)
+    grok.context(UnibenCustomerPDFDocument)
+    grok.require('waeup.viewCustomer')
+    grok.view(DocumentDisplayFormPage)
+    label = _(u'PDF Scan')
+    title = _(u'PDF Scan')
+    download_name = u'scan.pdf'
+
+    @property
+    def download_filename(self):
+        return u"%s.pdf" % self.context.document_id[:9]
+
+
+class PDFScanImage(Image):
+    """Scan document.
+    """
+    grok.name('scan.pdf')
+    grok.context(UnibenCustomerPDFDocument)
+    grok.require('waeup.viewCustomer')
+    download_name = u'scan.pdf'
+
+    @property
+    def download_filename(self):
+        return u"%s" % self.context.document_id[:9]
+
+class PDFScanSlip(PDFScanDisplay):
+    grok.view(PDFDocumentSlip)
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/interfaces.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/interfaces.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/interfaces.py	(revision 14184)
@@ -20,5 +20,5 @@
 from waeup.ikoba.interfaces import IIkobaObject
 from waeup.ikoba.customers.interfaces import (
-    ICustomer, ICustomerDocument, IContract)
+    ICustomer, ICustomerDocument, ICustomerPDFDocument, IContract)
 from waeup.ikoba.customers.vocabularies import (
     ConCatProductSource, CustomerDocumentSource)
@@ -40,4 +40,9 @@
     """
 
+class IUnibenCustomerPDFDocument(ICustomerPDFDocument):
+    """A customer pdf document.
+
+    """
+
 # Customer contract interfaces
 
@@ -53,6 +58,17 @@
         )
 
-class IUnibenContractOfficialUse(IIkobaObject):
-    """Interface for editing official use data.
+    document_object2 = schema.Choice(
+        title = _(u'Document 2'),
+        source = CustomerDocumentSource(),
+        required = False,
+        )
+
+class IRIAAContract(IUnibenContract):
+    """A Retention of Name contract.
+
+    """
+
+class IRIAAContractOfficialUse(IIkobaObject):
+    """Interface for editing RIAA official use data.
 
     """
@@ -63,6 +79,7 @@
         )
 
-class IUnibenContractProcess(IUnibenContract, IUnibenContractOfficialUse):
-    """Interface for processing contract data.
+
+class IRIAAContractProcess(IRIAAContract, IRIAAContractOfficialUse):
+    """Interface for processing RIAA data.
     """
 
@@ -72,9 +89,9 @@
         required = False,
         readonly = False,
-        default = [],
+        defaultFactory=list,
         )
 
-class IUnibenContractEdit(IUnibenContract):
-    """Interface for editing sample contract data by customers.
+class IRIAAContractEdit(IRIAAContract):
+    """Interface for editing RIAA data by customers.
 
     """
@@ -85,2 +102,8 @@
         required = True,
         )
+
+    document_object2 = schema.Choice(
+        title = _(u'Document 2'),
+        source = CustomerDocumentSource(),
+        required = True,
+        )
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_browser.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_browser.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_browser.py	(revision 14184)
@@ -33,9 +33,9 @@
     UnibenCustomerExporter,
     UnibenCustomerDocumentExporter,
-    UnibenContractExporter)
+    RIAAContractExporter)
 from ikobacustom.uniben.customers.batching import (
     UnibenCustomerProcessor,
     UnibenCustomerDocumentProcessor,
-    UnibenContractProcessor)
+    RIAAContractProcessor)
 from ikobacustom.uniben.testing import FunctionalLayer, samples_dir
 
@@ -49,5 +49,5 @@
 
     def setup_customizable_params(self):
-        self._contract_category = u'sample'
+        self._contract_category = u'riaa'
         return
 
@@ -64,5 +64,5 @@
         document.title = u'My first document'
         customer['documents'].addDocument(document)
-        contract = createObject(u'waeup.UnibenContract')
+        contract = createObject(u'waeup.RIAAContract')
         contract.tc_dict = {'en':u'Hello World'}
         customer['contracts'].addContract(contract)
@@ -162,5 +162,5 @@
         # set values we can expect in export file
         self.setup_for_export()
-        exporter = UnibenContractExporter()
+        exporter = RIAAContractExporter()
         exporter.export_all(self.app, self.outfile)
         result = open(self.outfile, 'rb').read()
@@ -169,15 +169,15 @@
             'fee_based,history,last_product_id,product_object,product_options,'
             'state,tc_dict,title,user_id,valid_from,valid_to\r\n'
-            'UnibenContract,,sample,%s,,0,'
+            'RIAAContract,,riaa,%s,,0,'
             '[u\'2014-12-21 22:26:00 WAT - Contract created by system\']'
             ',,,[],created,{\'en\': u\'Hello World\'},,K1000000,,\r\n'
             % self.contract.contract_id)
         # We can reimport the file if we change the header (user_id -> customer_id)
-        processor = UnibenContractProcessor()
+        processor = RIAAContractProcessor()
         open(self.outfile, 'wb').write(
             'class_name,contract_category,contract_id,document_object,'
             'history,last_product_id,product_object,product_options,'
             'state,tc_dict,title,user_id\r\n'
-            'UnibenContract,sample,%s,,'
+            'RIAAContract,riaa,%s,,'
             '[u\'2014-12-21 22:26:00 WAT - Contract created by system\']'
             ',,,[],created,{\'en\': u\'Hello World\'},,K1000000\r\n'
@@ -220,7 +220,7 @@
 
     def setup_customizable_params(self):
-        self._contract_category = u'sample'
+        self._contract_category = u'riaa'
         self._document_factory = 'waeup.UnibenCustomerDocument'
-        self._contract_factory = 'waeup.UnibenContract'
+        self._contract_factory = 'waeup.RIAAContract'
         return
 
@@ -303,7 +303,7 @@
 
     def setup_customizable_params(self):
-        self._contract_category = u'sample'
+        self._contract_category = u'riaa'
         self._document_factory = 'waeup.UnibenCustomerDocument'
-        self._contract_factory = 'waeup.UnibenContract'
+        self._contract_factory = 'waeup.RIAAContract'
         return
 
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_contract.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_contract.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/tests/test_contract.py	(revision 14184)
@@ -29,6 +29,6 @@
 
 from ikobacustom.uniben.testing import (FunctionalLayer, FunctionalTestCase)
-from ikobacustom.uniben.customers.contracts import UnibenContract
-from ikobacustom.uniben.customers.interfaces import IUnibenContract
+from ikobacustom.uniben.customers.contracts import RIAAContract
+from ikobacustom.uniben.customers.interfaces import IRIAAContract
 
 
@@ -38,17 +38,17 @@
 
     def test_interfaces(self):
-        verify.verifyClass(IUnibenContract, UnibenContract)
-        verify.verifyClass(ICustomerNavigation, UnibenContract)
-        verify.verifyObject(IUnibenContract, UnibenContract())
-        verify.verifyObject(ICustomerNavigation, UnibenContract())
+        verify.verifyClass(IRIAAContract, RIAAContract)
+        verify.verifyClass(ICustomerNavigation, RIAAContract)
+        verify.verifyObject(IRIAAContract, RIAAContract())
+        verify.verifyObject(ICustomerNavigation, RIAAContract())
         return
 
     def test_addContract(self):
         container = ContractsContainer()
-        contract = createObject(u'waeup.UnibenContract')
+        contract = createObject(u'waeup.RIAAContract')
         id = contract.contract_id
         container.addContract(contract)
         self.assertEqual(container[id], contract)
         self.assertRaises(TypeError, container.addContract, object())
-        self.assertEqual(contract.class_name, 'UnibenContract')
+        self.assertEqual(contract.class_name, 'RIAAContract')
         return
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/utils.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/utils.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/customers/utils.py	(revision 14184)
@@ -33,5 +33,5 @@
     #: A prefix used when generating new customer ids. Each customer id will
     #: start with this string. The default is 'K'.
-    CUSTOMER_ID_PREFIX = u'K'
+    CUSTOMER_ID_PREFIX = u'B'
 
     DOCMANAGE_CUSTOMER_STATES = (REQUESTED, APPROVED, PROVISIONALLY)
@@ -44,14 +44,10 @@
 
     DOCTYPES_DICT = {
-        #'CustomerSampleDocument': _('Sample Document'),
-        #'CustomerPDFDocument': _('PDF Document'),
-
-        'UnibenCustomerDocument': _('Uniben Document'),
+        #'UnibenCustomerDocument': _('Uniben Document'),
+        'UnibenCustomerPDFDocument': _('Uniben PDF Document'),
         }
 
     CONTYPES_DICT = {
-        #'SampleContract': _('Sample Contract'),
-
-        'UnibenContract': _('Uniben Contract'),
+        'RIAAContract': _('RIAA Contract'),
         }
 
@@ -62,4 +58,4 @@
     EXPORTER_NAMES = (
         'customers',
-        'unibencustomerdocuments',
-        'unibencontracts')
+        'unibencustomerpdfdocuments',
+        'riaacontracts')
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/en/LC_MESSAGES/ikobacustom.uniben.po
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/en/LC_MESSAGES/ikobacustom.uniben.po	(revision 14184)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/en/LC_MESSAGES/ikobacustom.uniben.po	(revision 14184)
@@ -0,0 +1,174 @@
+# #############################################################################
+#
+# Copyright (c) 2003-2004 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+# #############################################################################
+msgid ""
+msgstr ""
+"Project-Id-Version: Meaningless\n"
+"POT-Creation-Date: Fri Sep 23 18:33:04 2016\n"
+"PO-Revision-Date: 2016-09-23 18:37+0100\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Zope 3 Developers <zope-dev@zope.org>\n"
+"Language: en\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: zope/app/locales/extract.py\n"
+"X-Generator: Poedit 1.6.5\n"
+
+#: ikobacustom/uniben/customers/batching.py:35
+msgid "Uniben Customer Processor"
+msgstr "Uniben Registrant Processor"
+
+#: ikobacustom/uniben/customers/batching.py:44
+msgid "Uniben Customer PDF Document Processor"
+msgstr "Uniben Registrant PDF Document Processor"
+
+#: ikobacustom/uniben/customers/batching.py:54
+msgid "RIAA Contract Processor"
+msgstr ""
+
+#: ikobacustom/uniben/customers/browser.py:43
+msgid "Passport picture is missing."
+msgstr ""
+
+#: ikobacustom/uniben/customers/export.py:32
+msgid "Uniben Customers"
+msgstr "Uniben Registrants"
+
+#: ikobacustom/uniben/customers/export.py:40
+msgid "Uniben Customer PDF Documents"
+msgstr "Uniben Registrant PDF Documents"
+
+#: ikobacustom/uniben/customers/export.py:49
+msgid "RIAA Customer Contracts"
+msgstr "RIAA Registrant Contracts"
+
+#: ikobacustom/uniben/customers/fileviewlets.py:117
+#: ikobacustom/uniben/customers/fileviewlets.py:118
+msgid "PDF Scan"
+msgstr ""
+
+#: ikobacustom/uniben/customers/fileviewlets.py:45
+#: ikobacustom/uniben/customers/fileviewlets.py:46
+#: ikobacustom/uniben/customers/fileviewlets.py:67
+#: ikobacustom/uniben/customers/fileviewlets.py:68
+msgid "Sample Scan"
+msgstr ""
+
+#: ikobacustom/uniben/customers/fileviewlets.py:92
+#: ikobacustom/uniben/customers/fileviewlets.py:93
+msgid "PDF File"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:55
+#: ikobacustom/uniben/customers/interfaces.py:100
+msgid "Document"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:61
+#: ikobacustom/uniben/customers/interfaces.py:106
+msgid "Document 2"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:77
+msgid "Reason for rejection"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:87
+msgid "Options/Fees"
+msgstr ""
+
+#: ikobacustom/uniben/customers/utils.py:47
+msgid "Uniben PDF Document"
+msgstr ""
+
+#: ikobacustom/uniben/customers/utils.py:51
+msgid "RIAA Contract"
+msgstr ""
+
+#: ikobacustom/uniben/documents/batching.py:32
+msgid "Uniben Document Processor"
+msgstr ""
+
+#: ikobacustom/uniben/documents/export.py:32
+msgid "Uniben Documents"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:29
+msgid "PDF Document"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:30
+msgid "HTML Document"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:31
+msgid "REST Document"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:32
+msgid "Uniben Document"
+msgstr ""
+
+#. Default: ""
+#: ikobacustom/uniben/interfaces.py:40
+msgid "Invalid key: ${a}"
+msgstr ""
+
+#: ikobacustom/uniben/products/batching.py:28
+msgid "Uniben Product Processor"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:25
+msgid "Nigeria"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:26
+msgid "Germany"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:27
+msgid "United States"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:28
+msgid "Niger"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:29
+msgid "Benin"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:30
+msgid "Cameroon"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:31
+msgid "United Kingdom"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:32
+msgid "France"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:42
+msgid "Euro"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:43
+msgid "US Dollar"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:44
+msgid "Naira"
+msgstr ""
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/en/LC_MESSAGES/waeup.ikoba.po
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/en/LC_MESSAGES/waeup.ikoba.po	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/en/LC_MESSAGES/waeup.ikoba.po	(revision 14184)
@@ -9,3 +9,200 @@
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-
+"Language: en\n"
+"X-Generator: Poedit 1.6.5\n"
+
+#. Default: "You don't have an account because you are a new customer? Create your customer account <strong><a href=\"createaccount\"> here</a></strong>."
+#: waeup/ikoba/browser/templates/loginpage.pt:29
+#: waeup/ikoba/browser/templates/loginpage.pt:34
+msgid "login_trouble4"
+msgstr ""
+"If you are a new registrants, you can apply for registration by clicking "
+"<strong><a href=\"createaccount\"> here</a></strong>."
+
+#. Default: "You don't have an account because you are a new customer and your record has been created for you? Inititialize your customer account <strong><a href=\"requestpw\"> here</a></strong>."
+#: waeup/ikoba/browser/templates/loginpage.pt:38
+msgid "login_trouble5"
+msgstr ""
+"You don't have an account because you are a new registrant  and your record "
+"has been created for you? Inititialize your registrant account <strong><a "
+"href=\"requestpw\"> here</a></strong>."
+
+#. Default: "Customers can enter either their customer id, registration number or email address. Officers must enter their user name."
+#: waeup/ikoba/browser/templates/loginpage.pt:7
+msgid "identifier_hint"
+msgstr ""
+"Registrants can enter either their registration id or email address. "
+"Officers must enter their user name."
+
+#. Default: "Or simply forgot your id or password? Then request a new password <strong><a href=\"changepw\"> here</a></strong>."
+#: waeup/ikoba/browser/templates/loginpage.pt:42
+msgid "login_trouble3"
+msgstr ""
+"If you have forgotten your password, click  <strong><a href=\"changepw\"> "
+"here</a></strong> to get a new one. "
+
+#: waeup/ikoba/customers/batching.py:142
+msgid "Customer record created"
+msgstr "Registration record created"
+
+#: waeup/ikoba/customers/batching.py:60
+msgid "Customer Processor"
+msgstr "Registrant Processor"
+
+#: waeup/ikoba/customers/browser.py:1085
+msgid "Customer Documents"
+msgstr "Registrant Documents"
+
+#: waeup/ikoba/customers/browser.py:1520
+msgid "Customer Contracts"
+msgstr "Registrant Licenses"
+
+#: waeup/ikoba/customers/browser.py:162 waeup/ikoba/customers/browser.py:205
+#: waeup/ikoba/customers/browser.py:563 waeup/ikoba/customers/browser.py:575
+msgid "No customer found."
+msgstr "No registrant found."
+
+#: waeup/ikoba/customers/browser.py:174 waeup/ikoba/customers/viewlets.py:180
+msgid "Manage customer section"
+msgstr "Manage registration section"
+
+#: waeup/ikoba/customers/browser.py:233 waeup/ikoba/customers/viewlets.py:188
+msgid "Add customer"
+msgstr "Add registrant"
+
+#: waeup/ikoba/customers/browser.py:236
+msgid "Create customer record"
+msgstr "Create registration record"
+
+#: waeup/ikoba/customers/browser.py:241
+msgid "Customer created."
+msgstr "Registration record created."
+
+#: waeup/ikoba/customers/browser.py:474
+msgid "Customer account has been activated."
+msgstr "Registrant account has been activated."
+
+#: waeup/ikoba/customers/browser.py:494
+msgid "Customer account has been deactivated."
+msgstr "Registrant account has been deactivated."
+
+#: waeup/ikoba/customers/browser.py:610
+msgid "Create customer account"
+msgstr "Create registrant account"
+
+#: waeup/ikoba/customers/browser.py:648
+msgid "You have successfully created a customer account for the"
+msgstr "You have successfully created a registrant account for the"
+
+#: waeup/ikoba/customers/browser_templates/createaccount.pt:19
+msgid ""
+"A customer record will be created and your login credentials will be sent to "
+"the email address given above. To be able to proceed you must provide a "
+"valid email address!"
+msgstr ""
+"A registration record will be created and your login credentials will be "
+"sent to the email address given above. To be able to proceed you must "
+"provide a valid email address!"
+
+#. Default: "Ikoba is creating a temporary customer password which will replace the original password chosen by the customer. The password will be valid for ${minutes} minutes. The customer can't login during this time period. After expiration the customer can login with the original password again."
+#: waeup/ikoba/customers/browser_templates/loginasstep1.pt:6
+msgid "login_as_intro_1"
+msgstr ""
+"Ikoba is creating a temporary registrant password which will replace the "
+"original password chosen by the registrant. The password will be valid for "
+"${minutes} minutes. The registrant can't login during this time period. "
+"After expiration the registrant can login with the original password again."
+
+#: waeup/ikoba/customers/browser_templates/requestpw.pt:19
+msgid ""
+"Your customer record will be looked up and your login credentials will be "
+"sent to the email address given above. To be able to proceed you must "
+"provide a valid email address!"
+msgstr ""
+"Your registration record will be looked up and your login credentials will "
+"be sent to the email address given above. To be able to proceed you must "
+"provide a valid email address!"
+
+#: waeup/ikoba/customers/contracts.py:147
+#: waeup/ikoba/customers/documents.py:162
+msgid "Customer has not yet been approved."
+msgstr "Registration has not yet been approved."
+
+#: waeup/ikoba/customers/interfaces.py:96
+#: waeup/ikoba/customers/browser_templates/containerpage.pt:31
+msgid "Customer Id"
+msgstr "Registrant Id"
+
+#: waeup/ikoba/customers/workflow.py:45
+msgid "Create customer"
+msgstr "Create registrant"
+
+#: waeup/ikoba/customers/workflow.py:82
+msgid "Approve customer"
+msgstr "Approve registration"
+
+#: waeup/ikoba/customers/workflow.py:48
+msgid "Customer created"
+msgstr "Registration record created"
+
+#: waeup/ikoba/customers/workflow.py:56
+msgid "Customer registration started"
+msgstr "Registration started"
+
+#: waeup/ikoba/customers/workflow.py:62
+msgid "Customer registration requested"
+msgstr "Registration requested"
+
+#: waeup/ikoba/customers/workflow.py:68
+msgid "Approve customer provisionally"
+msgstr "Approve registration provisionally"
+
+#: waeup/ikoba/customers/workflow.py:69
+msgid "Customer registration provisionally approved"
+msgstr "Registration provisionally approved"
+
+#: waeup/ikoba/customers/workflow.py:76
+msgid "Customer registration finally approved"
+msgstr "Registration finally approved"
+
+#: waeup/ikoba/customers/workflow.py:83
+msgid "Customer registration approved"
+msgstr "Registration approved"
+
+#: waeup/ikoba/customers/workflow.py:89
+msgid "Reject customer"
+msgstr "Reject registration"
+
+#: waeup/ikoba/customers/workflow.py:90
+msgid "Customer registration rejected"
+msgstr "Registration rejected"
+
+#: waeup/ikoba/customers/workflow.py:96 waeup/ikoba/customers/workflow.py:110
+#: waeup/ikoba/customers/workflow.py:117
+msgid "Reset customer"
+msgstr "Reset registration"
+
+#: waeup/ikoba/customers/workflow.py:97 waeup/ikoba/customers/workflow.py:118
+msgid "Reset to initial customer state"
+msgstr "Reset to initial registration state"
+
+#: waeup/ikoba/customers/browser.py:132
+msgid "Find customers"
+msgstr "Find registrants"
+
+#: waeup/ikoba/customers/browser.py:133 waeup/ikoba/customers/browser.py:175
+msgid "Find customer(s)"
+msgstr "Find registrant(s)"
+
+#: waeup/ikoba/customers/browser.py:289
+msgid "You successfully logged in as customer."
+msgstr "You successfully logged in as registrant."
+
+#: waeup/ikoba/customers/viewlets.py:227
+msgid "Login as customer"
+msgstr "Login as registrant"
+
+#: waeup/ikoba/customers/browser.py:106 waeup/ikoba/customers/export.py:130
+#: waeup/ikoba/customers/viewlets.py:54
+msgid "Customers"
+msgstr "Registrants"
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/ikobacustom.uniben.pot
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/ikobacustom.uniben.pot	(revision 14184)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/locales/ikobacustom.uniben.pot	(revision 14184)
@@ -0,0 +1,173 @@
+##############################################################################
+#
+# Copyright (c) 2003-2004 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+msgid ""
+msgstr ""
+"Project-Id-Version: Meaningless\n"
+"POT-Creation-Date: Fri Sep 23 18:33:04 2016\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Zope 3 Developers <zope-dev@zope.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: zope/app/locales/extract.py\n"
+
+#: ikobacustom/uniben/customers/batching.py:35
+msgid "Uniben Customer Processor"
+msgstr ""
+
+#: ikobacustom/uniben/customers/batching.py:44
+msgid "Uniben Customer PDF Document Processor"
+msgstr ""
+
+#: ikobacustom/uniben/customers/batching.py:54
+msgid "RIAA Contract Processor"
+msgstr ""
+
+#: ikobacustom/uniben/customers/browser.py:43
+msgid "Passport picture is missing."
+msgstr ""
+
+#: ikobacustom/uniben/customers/export.py:32
+msgid "Uniben Customers"
+msgstr ""
+
+#: ikobacustom/uniben/customers/export.py:40
+msgid "Uniben Customer PDF Documents"
+msgstr ""
+
+#: ikobacustom/uniben/customers/export.py:49
+msgid "RIAA Customer Contracts"
+msgstr ""
+
+#: ikobacustom/uniben/customers/fileviewlets.py:117
+#: ikobacustom/uniben/customers/fileviewlets.py:118
+msgid "PDF Scan"
+msgstr ""
+
+#: ikobacustom/uniben/customers/fileviewlets.py:45
+#: ikobacustom/uniben/customers/fileviewlets.py:46
+#: ikobacustom/uniben/customers/fileviewlets.py:67
+#: ikobacustom/uniben/customers/fileviewlets.py:68
+msgid "Sample Scan"
+msgstr ""
+
+#: ikobacustom/uniben/customers/fileviewlets.py:92
+#: ikobacustom/uniben/customers/fileviewlets.py:93
+msgid "PDF File"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:55
+#: ikobacustom/uniben/customers/interfaces.py:100
+msgid "Document"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:61
+#: ikobacustom/uniben/customers/interfaces.py:106
+msgid "Document 2"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:77
+msgid "Reason for rejection"
+msgstr ""
+
+#: ikobacustom/uniben/customers/interfaces.py:87
+msgid "Options/Fees"
+msgstr ""
+
+#: ikobacustom/uniben/customers/utils.py:47
+msgid "Uniben PDF Document"
+msgstr ""
+
+#: ikobacustom/uniben/customers/utils.py:51
+msgid "RIAA Contract"
+msgstr ""
+
+#: ikobacustom/uniben/documents/batching.py:32
+msgid "Uniben Document Processor"
+msgstr ""
+
+#: ikobacustom/uniben/documents/export.py:32
+msgid "Uniben Documents"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:29
+msgid "PDF Document"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:30
+msgid "HTML Document"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:31
+msgid "REST Document"
+msgstr ""
+
+#: ikobacustom/uniben/documents/utils.py:32
+msgid "Uniben Document"
+msgstr ""
+
+#: ikobacustom/uniben/interfaces.py:40
+#. Default: ""
+msgid "Invalid key: ${a}"
+msgstr ""
+
+#: ikobacustom/uniben/products/batching.py:28
+msgid "Uniben Product Processor"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:25
+msgid "Nigeria"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:26
+msgid "Germany"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:27
+msgid "United States"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:28
+msgid "Niger"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:29
+msgid "Benin"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:30
+msgid "Cameroon"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:31
+msgid "United Kingdom"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:32
+msgid "France"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:42
+msgid "Euro"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:43
+msgid "US Dollar"
+msgstr ""
+
+#: ikobacustom/uniben/utils/utils.py:44
+msgid "Naira"
+msgstr ""
+
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/products/tests/test_browser.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/products/tests/test_browser.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/products/tests/test_browser.py	(revision 14184)
@@ -40,5 +40,5 @@
         product = UnibenProduct()
         product.product_id = u'SAM'
-        product.contract_category = u'sample'
+        product.contract_category = u'riaa'
         product.valid_from = datetime.date(2015, 12, 4)
         self.app['products'][product.product_id] = self.product = product
@@ -57,5 +57,5 @@
             'product_id,terms_and_conditions,title,valid_from,valid_to,'
             'users_with_local_roles\r\n'
-            'sample,,,[],SAM,,Unnamed,2015-12-04#,,[]\r\n')
+            'riaa,,,[],SAM,,Unnamed,2015-12-04#,,[]\r\n')
         # We can import the same file.
         processor = UnibenProductProcessor()
Index: main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/utils/utils.py
===================================================================
--- main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/utils/utils.py	(revision 14181)
+++ main/ikobacustom.uniben/trunk/src/ikobacustom/uniben/utils/utils.py	(revision 14184)
@@ -46,5 +46,5 @@
 
     CON_CATS_DICT = {
-        'sample': 'Sample Category',
+        'riaa': 'Research and Innovative Achievement Award',
         'no': 'no contract',
         }
@@ -66,11 +66,11 @@
         'products',
         'customers',
-        'unibencustomerdocuments',
-        'unibencontracts')
+        'unibencustomerpdfdocuments',
+        'riaacontracts')
 
     BATCH_PROCESSOR_NAMES = (
         'unibencustomerprocessor',
-        'unibencustomerdocumentprocessor',
-        'unibencontractprocessor',
+        'unibencustomerpdfdocumentprocessor',
+        'riaacontractprocessor',
         'unibenproductprocessor',
         'pdfdocumentprocessor',
