Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py	(revision 12213)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py	(revision 12214)
@@ -769,4 +769,9 @@
             mapping = {'a':self.context.__parent__.display_fullname})
 
+    @action(_('Add document'), validator=NullValidator, style='primary')
+    def addDocument(self, **data):
+        self.redirect(self.url(self.context, 'adddoc'))
+        return
+
     @jsaction(_('Remove selected documents'))
     def delDocument(self, **data):
@@ -803,5 +808,4 @@
     grok.template('documentaddform')
     grok.require('waeup.editCustomerDocuments')
-    form_fields = grok.AutoFields(ICustomerDocument)
     label = _('Add document')
     pnav = 4
@@ -812,5 +816,5 @@
         return sorted(doctypes.items())
 
-    @action(_('Create document'), style='primary')
+    @action(_('Add document'), style='primary')
     def createDocument(self, **data):
         form = self.request.form
@@ -820,8 +824,8 @@
         # classes depending on the doctype parameter given in form.
         document = createObject('waeup.%s' % doctype)
+        self.applyData(document, **data)
         self.context.addDocument(document)
         doctype = getUtility(ICustomersUtils).SELECTABLE_DOCTYPES_DICT[doctype]
-        self.flash(_('${a} created.',
-            mapping = {'a': doctype}))
+        self.flash(_('${a} added.', mapping = {'a': doctype}))
         self.context.writeLogMessage(
             self,'added: %s %s' % (doctype, document.document_id))
@@ -841,6 +845,9 @@
     grok.require('waeup.viewCustomer')
     grok.template('documentpage')
-    form_fields = grok.AutoFields(ICustomerDocument)
-    pnav = 4
+    pnav = 4
+
+    @property
+    def form_fields(self):
+        return grok.AutoFields(self.context.form_fields_interface)
 
     @property
@@ -856,7 +863,10 @@
     grok.require('waeup.manageCustomer')
     grok.template('documenteditpage')
-    form_fields = grok.AutoFields(ICustomerDocument)
     pnav = 4
     deletion_warning = _('Are you sure?')
+
+    @property
+    def form_fields(self):
+        return grok.AutoFields(self.context.form_fields_interface)
 
     def update(self):
@@ -1102,4 +1112,9 @@
             mapping = {'a':self.context.__parent__.display_fullname})
 
+    @action(_('Add contract'), validator=NullValidator, style='primary')
+    def addContract(self, **data):
+        self.redirect(self.url(self.context, 'addcontract'))
+        return
+
     @jsaction(_('Remove selected contracts'))
     def delContract(self, **data):
@@ -1133,8 +1148,7 @@
     """
     grok.context(IContractsContainer)
-    grok.name('addapp')
+    grok.name('addcontract')
     grok.template('contractaddform')
     grok.require('waeup.editContracts')
-    form_fields = grok.AutoFields(IContract)
     label = _('Add contract')
     pnav = 4
@@ -1145,5 +1159,5 @@
         return sorted(contypes.items())
 
-    @action(_('Create contract'), style='primary')
+    @action(_('Add contract'), style='primary')
     def createContract(self, **data):
         form = self.request.form
@@ -1155,6 +1169,5 @@
         self.context.addContract(contract)
         contype = getUtility(ICustomersUtils).SELECTABLE_CONTYPES_DICT[contype]
-        self.flash(_('${a} created.',
-            mapping = {'a': contype}))
+        self.flash(_('${a} added.', mapping = {'a': contype}))
         self.context.writeLogMessage(
             self,'added: %s %s' % (contype, contract.contract_id))
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/documents.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/documents.py	(revision 12213)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/documents.py	(revision 12214)
@@ -86,5 +86,5 @@
         try:
             TRANSLATED_STATES = getUtility(
-                IDocumentsUtils).TRANSLATED_DOCUMENT_STATES
+                ICustomersUtils).TRANSLATED_DOCUMENT_STATES
             return TRANSLATED_STATES[self.state]
         except KeyError:
@@ -187,4 +187,6 @@
     filenames = ('sample',)
 
+    form_fields_interface = ICustomerDocument
+
 CustomerSampleDocument = attrs_to_fields(CustomerSampleDocument)
 
@@ -201,4 +203,6 @@
     # tuple should contain only a single filename string.
     filenames = ('sample.pdf',)
+
+    form_fields_interface = ICustomerPDFDocument
 
 CustomerPDFDocument = attrs_to_fields(CustomerPDFDocument)
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/interfaces.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/interfaces.py	(revision 12213)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/interfaces.py	(revision 12214)
@@ -242,5 +242,4 @@
     is_editable_by_customer = Attribute('Document editable by customer')
     is_editable_by_manager = Attribute('Document editable by manager')
-    translated_class_name = Attribute('Translatable class name')
 
 
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12213)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12214)
@@ -471,5 +471,4 @@
     def test_login_as_customer(self):
         # CustomerImpersonators can login as customer
-        # Create clearance officer
         self.app['users'].addUser('mrofficer', 'mrofficersecret')
         self.app['users']['mrofficer'].email = 'mrofficer@foo.ng'
@@ -827,8 +826,8 @@
         self.browser.open(self.customer_path)
         self.browser.getLink("Documents", index=1).click()
-        self.browser.getLink("Add document").click()
+        self.browser.getControl("Add document").click()
         self.browser.getControl(name="doctype").value = ['CustomerPDFDocument']
-        self.browser.getControl("Create document").click()
-        self.assertTrue('PDF Document created.' in self.browser.contents)
+        self.browser.getControl("Add document").click()
+        self.assertTrue('PDF Document added.' in self.browser.contents)
         document = self.customer['documents']['d102']
 
@@ -898,8 +897,8 @@
             '...You logged in...', self.browser.contents)
         self.browser.getLink("Documents").click()
-        self.browser.getLink("Add document").click()
+        self.browser.getControl("Add document").click()
         self.browser.getControl(name="doctype").value = ['CustomerSampleDocument']
-        self.browser.getControl("Create document").click()
-        self.assertTrue('Sample Document created.' in self.browser.contents)
+        self.browser.getControl("Add document").click()
+        self.assertTrue('Sample Document added.' in self.browser.contents)
         document = self.customer['documents']['d102']
 
@@ -1036,7 +1035,7 @@
         self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
         self.browser.open(self.customer_path + '/documents')
-        self.browser.getLink("Add document").click()
+        self.browser.getControl("Add document").click()
         self.browser.getControl(name="doctype").value = ['CustomerPDFDocument']
-        self.browser.getControl("Create document").click()
+        self.browser.getControl("Add document").click()
         self.browser.open(self.documents_path + '/d102/manage')
         # Create a pseudo image file and select it to be uploaded
@@ -1137,8 +1136,8 @@
         self.browser.open(self.customer_path)
         self.browser.getLink("Contracts").click()
-        self.browser.getLink("Add contract").click()
+        self.browser.getControl("Add contract").click()
         self.browser.getControl(name="contype").value = ['SampleContract']
-        self.browser.getControl("Create contract").click()
-        self.assertTrue('Sample Contract created.' in self.browser.contents)
+        self.browser.getControl("Add contract").click()
+        self.assertTrue('Sample Contract added.' in self.browser.contents)
         contract = self.customer['contracts']['c102']
 
@@ -1200,8 +1199,8 @@
             '...You logged in...', self.browser.contents)
         self.browser.getLink("Contracts").click()
-        self.browser.getLink("Add contract").click()
+        self.browser.getControl("Add contract").click()
         self.browser.getControl(name="contype").value = ['SampleContract']
-        self.browser.getControl("Create contract").click()
-        self.assertTrue('Sample Contract created.' in self.browser.contents)
+        self.browser.getControl("Add contract").click()
+        self.assertTrue('Sample Contract added.' in self.browser.contents)
         contract = self.customer['contracts']['c102']
         # Contract can be edited ...
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/utils.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/utils.py	(revision 12213)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/utils.py	(revision 12214)
@@ -306,9 +306,16 @@
         }
 
-
     TRANSLATED_CONTRACT_STATES = {
         CREATED: _('created'),
         SUBMITTED: _('submitted for approval'),
         APPROVED: _('approved'),
+        REJECTED: _('rejected'),
+        EXPIRED:_('expired')
+        }
+
+    TRANSLATED_DOCUMENT_STATES = {
+        CREATED: _('created'),
+        SUBMITTED: _('submitted for verification'),
+        VERIFIED: _('verified'),
         REJECTED: _('rejected'),
         EXPIRED:_('expired')
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/viewlets.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/viewlets.py	(revision 12213)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/viewlets.py	(revision 12214)
@@ -300,13 +300,4 @@
 # Viewlets for customer documents
 
-class AddDocumentActionButton(AddActionButton):
-    grok.order(1)
-    grok.context(ICustomerDocumentsContainer)
-    grok.view(DocumentsManageFormPage)
-    grok.require('waeup.editCustomerDocuments')
-    text = _('Add document')
-    target = 'adddoc'
-
-
 class PDFDocumentOverviewActionButton(ManageActionButton):
     grok.order(2)
@@ -378,14 +369,6 @@
     target = 'document_slip.pdf'
 
+
 # Viewlets for customer contracts
-
-class AddContractActionButton(AddActionButton):
-    grok.order(1)
-    grok.context(IContractsContainer)
-    grok.view(ContractsManageFormPage)
-    grok.require('waeup.editContracts')
-    text = _('Add contract')
-    target = 'addapp'
-
 
 class PDFContractOverviewActionButton(ManageActionButton):
