Beispiel #1
0
    def select_backup(self):
        filename = list_choice(listdir(self.config['backup_dir']))
        if bool_question('are you sure you want to overwrite all data?',
                         default=False):
            # first of all, backup existing data
            write_backup(self.db, self.config['backup_dir'])

            # now load new data
            load_backup(self.db, filename, self.config['backup_dir'])
Beispiel #2
0
    def track_expense(self):
        price = type_input('price', float)
        price = int(price * 100)

        currency = query_choice(self.db.query(Currency))

        cat = query_choice(self.db.query(Category))

        advanced = bool_question('advanced options?', default=False)
        # initialize with simple setup
        issued = dt.datetime.now()
        note = None
        end = None
        repeat = None
        if advanced:
            if bool_question('Not issued right now?', default=False):
                issued = dt_input('Date if issue')

            if bool_question('Do you want to add a note?', default=False):
                note = str_input('Note')

            if bool_question('long term expense?', default=False):
                end = dt_input('End if expense')

            if bool_question('repeat?', default=False):
                repeat = type_input('Repeat this expense every _ months', int,
                                    default=-1)
                if repeat == -1:
                    repeat = None

        eur = to_eur(price, currency.identifier, issued)
        print('That was an expense of {:.2f}€'.format(eur / 100.0))

        expense = Expense(issued=issued,
                          price=price,
                          in_eur=eur,
                          note=note,
                          end=end,
                          repeat_interval=repeat,
                          currency=currency,
                          category=cat)
        self.db.add(expense)
        self.db.commit()

        if bool_question('another expense?', default=True):
            self.track_expense()
Beispiel #3
0
from expenses.data_connector import db_create, write_config
from command_line.user_input import str_input, bool_question


if __name__ == '__main__':

    db_name = str_input('database name', default='test')
    db_name += '.db'

    db_password = str_input('database password', default='123456')
    while len(db_password) < 6:
        print('Password too short, min. 6 characters')
        db_password = str_input('database password', default='123456')

    db_create(db_name, password=db_password)

    config = {}
    if bool_question('store login in config?', default=True):
        config['db'] = db_name
        config['password'] = db_password

    config['backup_dir'] = str_input('backup directory', default='backup')

    write_config(config)