Added very important data cleaning added

TextField now cleans CR and LF from data, this is very important for not
breaking everything and leaving me completely confused.

Thank you, Lauren!
This commit is contained in:
Binh 2014-02-01 15:10:40 -06:00
parent fc04a66869
commit 961aedc0ae

View file

@ -126,6 +126,19 @@ class TextField(Field):
value = value.upper()
return value.ljust(self.max_length).encode('ascii')[:self.max_length]
def __setvalue(self, value):
# NO NEWLINES
try:
value = value.replace('\n', '').replace('\r', '')
except AttributeError, e:
pass
self._value = value
def __getvalue(self):
return self._value
value = property(__getvalue, __setvalue)
class StateField(TextField):
def __init__(self, name=None, required=True, use_numeric=False, max_length=2):
@ -193,6 +206,24 @@ class BlankField(TextField):
def parse(self, s):
pass
class CRLFField(TextField):
def __init__(self, name=None, required=False):
super(TextField, self).__init__(name=name, max_length=2, required=required, uppercase=False)
def __setvalue(self, value):
self._value = value
def __getvalue(self):
return self._value
value = property(__getvalue, __setvalue)
def get_data(self):
return '\r\n'
def parse(self, s):
self.value = s
class BooleanField(Field):
def __init__(self, name=None, required=True, value=None):
super(BooleanField, self).__init__(name=name, required=required, max_length=1)