diff --git a/loanpy/src/loan/conf.py b/loanpy/src/loan/conf.py index 16d4bc7b8a30c1711f23eb02bf2ef888286c7490..68c36d8d5ace019ef8d8ef4ff47a7b4187b75f18 100644 --- a/loanpy/src/loan/conf.py +++ b/loanpy/src/loan/conf.py @@ -1,28 +1,39 @@ import linkahead as db +import os +import configparser +import importlib.resources as pkg_resources +default_config_path = pkg_resources.path(__package__, 'default_config.ini') +user_config_path = os.path.expanduser('~/.linkahead_loan') +config = configparser.ConfigParser() +config.read([default_config_path, user_config_path]) +rts = config['RecordTypes'] +ps = config['Properties'] # RecordTypes -BOX = db.RecordType(name="Box") -PERSON = db.RecordType(name="Person") -LOAN = db.RecordType(name="Loan") + +BOX = db.RecordType(name=rts['BOX']) +PERSON = db.RecordType(name=rts['PERSON']) +LOAN = db.RecordType(name=rts['LOAN']) + # Properties -FIRST_NAME = db.Property(name="firstName", datatype=db.TEXT) -LAST_NAME = db.Property(name="lastName", datatype=db.TEXT) -EMAIL = db.Property(name="email", datatype=db.TEXT) -LOCATION = db.RecordType(name="Location") -DESTINATION = db.Property(name="LoanLocation", datatype="Location") -RETURNLOCATION = db.Property(name="ReturnLocation", datatype="Location") -COMMENT = db.Property(name="comment", datatype=db.TEXT) -EXHAUST_CONTENTS = db.Property(name="exhaustContents", datatype=db.BOOLEAN) -BORROWER = db.Property(name="Borrower", datatype=PERSON.name) -CONTENT = db.Property(name="Content", datatype=db.TEXT) -LOAN_REQUESTED = db.Property(name="loanRequested", datatype=db.DATETIME) -EXPECTED_RETURN = db.Property(name="expectedReturn", datatype=db.DATETIME) -LOAN_ACCEPTED = db.Property(name="loanAccepted", datatype=db.DATETIME) -LENT = db.Property(name="lent", datatype=db.DATETIME) -RETURN_REQUESTED = db.Property(name="returnRequested", datatype=db.DATETIME) -RETURN_ACCEPTED = db.Property(name="returnAccepted", datatype=db.DATETIME) -RETURNED = db.Property(name="returned", datatype=db.DATETIME) -BOX_NUMBER = db.Property(name="Number", datatype=db.TEXT) +FIRST_NAME = db.Property(name=ps['FIRST_NAME'], datatype=db.TEXT) +LAST_NAME = db.Property(name=ps['LAST_NAME'], datatype=db.TEXT) +EMAIL = db.Property(name=ps['EMAIL'], datatype=db.TEXT) +LOCATION = db.RecordType(name=rts['LOCATION']) +DESTINATION = db.Property(name=ps['DESTINATION'], datatype=rts['LOCATION']) +RETURNLOCATION = db.Property(name=ps['RETURNLOCATION'], datatype=rts['LOCATION']) +COMMENT = db.Property(name=ps['COMMENT'], datatype=db.TEXT) +EXHAUST_CONTENTS = db.Property(name=ps['EXHAUST_CONTENTS'], datatype=db.BOOLEAN) +BORROWER = db.Property(name=ps['BORROWER'], datatype=rts['PERSON']) +CONTENT = db.Property(name=ps['CONTENT'], datatype=db.TEXT) +LOAN_REQUESTED = db.Property(name=ps['LOAN_REQUESTED'], datatype=db.DATETIME) +EXPECTED_RETURN = db.Property(name=ps['EXPECTED_RETURN'], datatype=db.DATETIME) +LOAN_ACCEPTED = db.Property(name=ps['LOAN_ACCEPTED'], datatype=db.DATETIME) +LENT = db.Property(name=ps['LENT'], datatype=db.DATETIME) +RETURN_REQUESTED = db.Property(name=ps['RETURN_REQUESTED'], datatype=db.DATETIME) +RETURN_ACCEPTED = db.Property(name=ps['RETURN_ACCEPTED'], datatype=db.DATETIME) +RETURNED = db.Property(name=ps['RETURNED'], datatype=db.DATETIME) +BOX_NUMBER = db.Property(name=ps['BOX_NUMBER'], datatype=db.TEXT) # Other Strings # TODO: Adapt datamodel and remove name override