def add_income(request): dbsession = DBSession() if 'amount' and 'name' in request.POST: amount = request.POST['amount'] name = request.POST['name'] income = Income(name, float(amount)) dbsession.add(income) return HTTPFound(location=route_url('settings', request)) return {'error': 'Please enter income name and amount.'}
def add_income(request): dbsession = DBSession() if 'amount' and 'name' in request.POST: amount = request.POST['amount'] name = request.POST['name'] income = Income(name, float(amount)) dbsession.add(income) return HTTPFound(location=route_url('settings', request)) return {'error':'Please enter income name and amount.'}
def add_periodic_expense(request): dbsession = DBSession() if 'amount' and 'name' in request.POST: amount = request.POST['amount'] name = request.POST['name'] expense = PeriodicExpense(name, float(amount)) dbsession.add(expense) return HTTPFound(location=route_url('settings', request)) return {'error':'Please enter periodic expence name and amount.'}
def add_periodic_expense(request): dbsession = DBSession() if 'amount' and 'name' in request.POST: amount = request.POST['amount'] name = request.POST['name'] expense = PeriodicExpense(name, float(amount)) dbsession.add(expense) return HTTPFound(location=route_url('settings', request)) return {'error': 'Please enter periodic expence name and amount.'}
def add_period(request): dbsession = DBSession() if 'period' in request.POST: period_name = request.POST['period'] today = datetime.date.today() month = datetime.timedelta(days=30) period = Period(period_name, today, today + month) dbsession.add(period) return HTTPFound(location=route_url('settings', request)) return {'error': 'Please enter period name.'}
def add_period(request): dbsession = DBSession() if 'period' in request.POST: period_name = request.POST['period'] today = datetime.date.today() month = datetime.timedelta(days=30) period = Period(period_name, today, today+month) dbsession.add(period) return HTTPFound(location=route_url('settings', request)) return {'error':'Please enter period name.'}
def settings_view(request): if not request.session.get('admin'): return HTTPFound(location=route_url('home', request)) dbsession = DBSession() periods = dbsession.query(Period).all() #TODO In future we will implement possibility to choose in which period we are. if periods: period = periods[0] # Current period expenses = dbsession.query(PeriodicExpense).filter( PeriodicExpense.period_id == period.id).all() incomes = dbsession.query(Income).filter( Income.period_id == period.id).all() return {'periods': periods, 'expenses': expenses, 'incomes': incomes} return {'periods': periods}
def add_spending(request): dbsession = DBSession() if 'amount' and 'name' in request.POST: amount = request.POST['amount'] name = request.POST['name'] #TODO Add amount validation. expense = Expense(name, float(amount)) dbsession.add(expense) q = {'period': 1} return HTTPFound(location=route_url('spend', request, _query=q)) return {'error': 'Please enter spending name and spended amount.'}
def settings_view(request): if not request.session.get('admin'): return HTTPFound(location=route_url('home', request)) dbsession = DBSession() periods = dbsession.query(Period).all() #TODO In future we will implement possibility to choose in which period we are. if periods: period = periods[0] # Current period expenses = dbsession.query(PeriodicExpense).filter(PeriodicExpense.period_id == period.id).all() incomes = dbsession.query(Income).filter(Income.period_id == period.id).all() return {'periods': periods, 'expenses': expenses, 'incomes': incomes} return {'periods': periods}
def add_spending(request): dbsession = DBSession() if 'amount' and 'name' in request.POST: amount = request.POST['amount'] name = request.POST['name'] #TODO Add amount validation. expense = Expense(name, float(amount)) dbsession.add(expense) q = {'period': 1} return HTTPFound(location=route_url('spend', request, _query=q)) return {'error':'Please enter spending name and spended amount.'}
def spend_view(request): if not request.session.get('admin'): return HTTPFound(location=route_url('home', request)) today = datetime.date.today() period_id = request.GET.get('period', None) if period_id: dbsession = DBSession() expenses = dbsession.query(Expense).\ filter(Expense.period_id==int(period_id)).\ filter(Expense.date==today).all() period = Period.get_by_id(period_id) expenses_sum = period.get_expenses(today) return {'expenses': expenses, 'expenses_sum': expenses_sum} return HTTPFound(location=route_url('app', request))
def populate(): session = DBSession() day = datetime.timedelta(days=1) month = datetime.timedelta(days=30) today = datetime.date.today() tomorrow = today + day default = Period('Default', today, today + month) session.add(default) #Default expences apartment = PeriodicExpense('Apartment rent', 300.00) session.add(apartment) #Incomes salary = Income('Salary', 1000.00) session.add(salary) session.flush() transaction.commit()
def app_view(request): if not request.session.get('admin'): return HTTPFound(location=route_url('home', request)) today = datetime.date.today() dbsession = DBSession() period = dbsession.query(Period).first() if not period: return HTTPFound(location=route_url('settings', request)) to_spend = period.to_spend(today) spent_today = period.get_expenses(today) left_today = period.to_spend(today) - spent_today money_left = period.money_left() days_left = (period.end-datetime.datetime.utcnow()).days return {'period': period, 'left_today': left_today, 'spent_today': spent_today, 'money_left': money_left, 'to_spend': to_spend, 'days_left': days_left}
def app_view(request): if not request.session.get('admin'): return HTTPFound(location=route_url('home', request)) today = datetime.date.today() dbsession = DBSession() period = dbsession.query(Period).first() if not period: return HTTPFound(location=route_url('settings', request)) to_spend = period.to_spend(today) spent_today = period.get_expenses(today) left_today = period.to_spend(today) - spent_today money_left = period.money_left() days_left = (period.end - datetime.datetime.utcnow()).days return { 'period': period, 'left_today': left_today, 'spent_today': spent_today, 'money_left': money_left, 'to_spend': to_spend, 'days_left': days_left }
def populate(): session = DBSession() day = datetime.timedelta(days=1) month = datetime.timedelta(days=30) today = datetime.date.today() tomorrow = today+day default = Period('Default', today, today+month) session.add(default) #Default expences apartment = PeriodicExpense('Apartment rent', 300.00) session.add(apartment) #Incomes salary = Income('Salary', 1000.00) session.add(salary) session.flush() transaction.commit()
def setup_app(command, conf, vars): engine = engine_from_config(conf, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.bind = engine Base.metadata.create_all(engine) populate()