[Checkins] SVN: z3c.iban/trunk/src/z3c/iban/ Added BIC, removed configure.zcml as unneeded

Hermann Himmelbauer dusty at qwer.tk
Wed Nov 5 10:35:29 EST 2008


Log message for revision 92799:
  Added BIC, removed configure.zcml as unneeded

Changed:
  D   z3c.iban/trunk/src/z3c/iban/configure.zcml
  U   z3c.iban/trunk/src/z3c/iban/field.py
  U   z3c.iban/trunk/src/z3c/iban/interfaces.py

-=-
Deleted: z3c.iban/trunk/src/z3c/iban/configure.zcml
===================================================================
--- z3c.iban/trunk/src/z3c/iban/configure.zcml	2008-11-05 15:12:47 UTC (rev 92798)
+++ z3c.iban/trunk/src/z3c/iban/configure.zcml	2008-11-05 15:35:28 UTC (rev 92799)
@@ -1,12 +0,0 @@
-<configure
-    xmlns="http://namespaces.zope.org/zope">
-
-  <adapter
-      factory="z3c.form.browser.text.TextFieldWidget"
-      for="z3c.iban.interfaces.IIBAN
-           z3c.form.interfaces.IFormLayer"
-      />
-
-
-</configure>
-

Modified: z3c.iban/trunk/src/z3c/iban/field.py
===================================================================
--- z3c.iban/trunk/src/z3c/iban/field.py	2008-11-05 15:12:47 UTC (rev 92798)
+++ z3c.iban/trunk/src/z3c/iban/field.py	2008-11-05 15:35:28 UTC (rev 92799)
@@ -26,12 +26,28 @@
 
 from z3c.iban import interfaces
 
-class IBAN(zope.schema.Orderable, zope.schema.Field):
+class IBAN(zope.schema.TextLine):
     zope.interface.implements(interfaces.IIBAN)
 
     def _validate(self, value):
         if not valid(value):
-            raise zope.schema.ValidationError(
-                "Value is no valid IBAN")
+            raise interfaces.NotValidIBAN(value)
         super(IBAN, self)._validate(value)
+        
+class BIC(zope.schema.TextLine):
+    zope.interface.implements(interfaces.IBIC)
+    
+    def _validate(self, value):
+        value = value.strip()
+        if len(value) != 8 and len(value) != 11:
+            # length must be 8 or 11 characters
+            raise interfaces.NotValidBIC(value)
+        if not value[:6].isalpha():
+            # Characters 0-6 must be letters
+            raise interfaces.NotValidBIC(value)
+        if not value[6:8].isalnum():
+            # Characters 7,8 must me alphanumeric
+            raise interfaces.NotValidBIC(value)
+        super(BIC, self)._validate(value)
+        
 

Modified: z3c.iban/trunk/src/z3c/iban/interfaces.py
===================================================================
--- z3c.iban/trunk/src/z3c/iban/interfaces.py	2008-11-05 15:12:47 UTC (rev 92798)
+++ z3c.iban/trunk/src/z3c/iban/interfaces.py	2008-11-05 15:35:28 UTC (rev 92799)
@@ -23,3 +23,14 @@
 
 class IIBAN(interfaces.IField):
    """IBAN Field"""
+
+class NotValidIBAN(zope.schema.ValidationError):
+   __doc__ = _(u"Value is no valid IBAN")
+   
+   
+class IBIC(interfaces.IField):
+   """BIC Field"""
+
+class NotValidBIC(zope.schema.ValidationError):
+   __doc__ = _(u"Value is no valid BIC")
+   
\ No newline at end of file



More information about the Checkins mailing list