diff --git a/pyaccuwage/fields.py b/pyaccuwage/fields.py index 4ec42f1..6f8ffec 100644 --- a/pyaccuwage/fields.py +++ b/pyaccuwage/fields.py @@ -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)