Add split_street() method for MemberInfo

This commit is contained in:
Lance Edgar 2020-07-21 15:07:28 -05:00
parent 13b8380527
commit 365d679d76

View file

@ -24,12 +24,16 @@
Data model for CORE POS "office_op" DB Data model for CORE POS "office_op" DB
""" """
import logging
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy import orm from sqlalchemy import orm
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.associationproxy import association_proxy from sqlalchemy.ext.associationproxy import association_proxy
log = logging.getLogger(__name__)
Base = declarative_base() Base = declarative_base()
@ -1056,6 +1060,23 @@ class MemberInfo(Base):
def __str__(self): def __str__(self):
return self.full_name return self.full_name
def split_street(self):
"""
Tries to split the :attr:`street` attribute into 2 separate lines, e.g.
"street1" and "street2" style. Always returns a 2-tuple even if the
second line would be empty.
"""
address = (self.street or '').strip()
lines = address.split('\n')
street1 = lines[0].strip() or None
street2 = None
if len(lines) > 1:
street2 = lines[1].strip() or None
if len(lines) > 2:
log.warning("member #%s has %s address lines: %s",
self.card_number, len(lines), self)
return (street1, street2)
class MemberDate(Base): class MemberDate(Base):
""" """