Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py	(revision 12350)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/browser.py	(revision 12351)
@@ -61,5 +61,11 @@
 grok.context(IIkobaObject)
 
-WARNING = _('You can not edit your document after final submission.'
+WARNING_CUST = _('You can not edit some data after final submission.'
+            ' You really want to submit?')
+
+WARNING_DOC = _('You can not edit your document after final submission.'
+            ' You really want to submit?')
+
+WARNING_CON = _('You can not edit your contract after final submission.'
             ' You really want to submit?')
 
@@ -310,4 +316,10 @@
         return _('unset')
 
+    @property
+    def is_requestable(self):
+        if self.context.state in (REQUESTED, APPROVED):
+            return False
+        return True
+
 
 class ContactCustomerForm(ContactAdminForm):
@@ -678,6 +690,11 @@
     grok.name('edit_base')
     grok.require('waeup.handleCustomer')
-    label = _('Edit base data')
-    pnav = 4
+    pnav = 4
+
+    @property
+    def label(self):
+        if self.is_requestable():
+            return _('Edit base data and request registration')
+        return _('Edit base data')
 
     @property
@@ -693,10 +710,11 @@
         return
 
-    def is_editable(self, action):
+    def is_requestable(self, action=None):
         if self.context.state in (REQUESTED, APPROVED):
             return False
         return True
 
-    @action(_('Request registration now'), warning=WARNING, condition=is_editable)
+    @action(_('Request registration now'),
+            warning=WARNING_CUST, condition=is_requestable)
     def finalsubmit(self, **data):
         msave(self, **data)
@@ -773,5 +791,5 @@
     @property
     def title(self):
-        return self.context.document_id
+        return "%s..." % self.context.document_id[:6]
 
 
@@ -941,5 +959,5 @@
         return
 
-    @action(_('Final Submit'), warning=WARNING)
+    @action(_('Final Submit'), warning=WARNING_DOC)
     def finalsubmit(self, **data):
         msave(self, **data)
@@ -1119,5 +1137,5 @@
     @property
     def title(self):
-        return self.context.contract_id
+        return "%s..." % self.context.contract_id[:6]
 
 
@@ -1325,12 +1343,4 @@
         return
 
-    @action(_('Final Submit'), warning=WARNING)
-    def finalsubmit(self, **data):
-        msave(self, **data)
-        IWorkflowInfo(self.context).fireTransition('submit')
-        self.flash(_('Form has been submitted.'))
-        self.redirect(self.url(self.context))
-        return
-
 
 class ContractEditFormPage(ContractManageFormPage):
@@ -1350,5 +1360,5 @@
         return
 
-    @action(_('Apply now (final submit)'), warning=WARNING)
+    @action(_('Apply now (final submit)'), warning=WARNING_CON)
     def finalsubmit(self, **data):
         msave(self, **data)
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 12350)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12351)
@@ -1178,5 +1178,5 @@
 
         # Contract can be edited
-        self.browser.getLink(conid).click()
+        self.browser.getLink(conid[:6]).click()
         self.browser.getLink("Manage").click()
         self.browser.getControl(name="form.product_object").value = ['SAM']
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_interfaces.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_interfaces.py	(revision 12350)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_interfaces.py	(revision 12351)
@@ -107,4 +107,4 @@
         source = CustomerDocumentSource()
         result = source.factory.getTitle(object(), self.document)
-        self.assertEqual(result, u'DOC1 - My Sample Document')
+        self.assertEqual(result, u'DOC1... - My Sample Document')
 
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/utils.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/utils.py	(revision 12350)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/utils.py	(revision 12351)
@@ -290,5 +290,5 @@
     CUSTMANAGE_CUSTOMER_STATES = (STARTED,)
 
-    DOCMANAGE_CUSTOMER_STATES = (APPROVED,)
+    DOCMANAGE_CUSTOMER_STATES = (REQUESTED, APPROVED,)
 
     DOCMANAGE_DOCUMENT_STATES = (CREATED,)
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/viewlets.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/viewlets.py	(revision 12350)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/viewlets.py	(revision 12351)
@@ -275,6 +275,11 @@
     grok.view(CustomerBaseDisplayFormPage)
     grok.require('waeup.handleCustomer')
-    text = _('Edit')
     target = 'edit_base'
+
+    @property
+    def text(self):
+        if self.view.is_requestable:
+            return _('Edit and request registration')
+        return _('Edit')
 
 
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/customers/vocabularies.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/customers/vocabularies.py	(revision 12350)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/customers/vocabularies.py	(revision 12351)
@@ -162,5 +162,5 @@
 
     def getTitle(self, context, value):
-        return "%s - %s" % (value.document_id, value.title)
+        return "%s... - %s" % (value.document_id[:6], value.title)
 
 
