def user_prefences(): db_session = create_session() preferences_dao = PreferenceDAO(db_session) preferences = preferences_dao.find_by_user_id(user_id=session["id"]) db_session.close() return render_template("profile/preferences.edit.html", preferences=preferences)
def edit_accounts(account_id): db_session = create_session() accounts_dao = AccountDAO(db_session) account = accounts_dao.find_by_id_and_user_id(account_id, session["id"]) db_session.close() return render_template("accounts/edit.html", account=account)
def list_categories(): db_session = create_session() categories_dao = CategoryDAO(db_session) categories = categories_dao.find_by_user_id(session["id"]) db_session.close() return render_template("categories/index.html", categories=categories)
def list_accounts(): db_session = create_session() accounts_dao = AccountDAO(db_session) accounts = accounts_dao.find_by_user_id(session["id"]) db_session.close() return render_template("accounts/index.html", accounts=accounts)
def edit_category(category_id): db_session = create_session() categories_dao = CategoryDAO(db_session) category = categories_dao.find_by_id_and_user_id(category_id, session["id"]) db_session.close() return render_template("categories/edit.html", category=category)
def save_users(): db_session = create_session() user_dao = UserDAO(db_session) preferences_dao = PreferenceDAO(db_session) maybe_user = user_dao.find_by_email(request.form["email"]) if maybe_user is not None: return redirect(url_for("create_user")) user = user_dao.create( email=request.form["email"], name=request.form["name"], password=request.form["password"], ) db_session.commit() preferences_dao.save( user_id=user.id, preference="en-us", ) db_session.commit() db_session.close() return redirect(url_for("list_transactions"))
def edit_transaction(transaction_id): db_session = create_session() category_dao = CategoryDAO(db_session) categories = category_dao.find_by_user_id(session["id"]) account_dao = AccountDAO(db_session) accounts = account_dao.find_by_user_id(session["id"]) transaction_dao = TransactionDAO(db_session) transaction = transaction_dao.find_by_id_and_user_id( transaction_id=transaction_id, user_id=session["id"] ) destination_accnt_id = None linked_transaction_id = None if transaction.link_id is not None: linked_transaction = transaction_dao.find_linked_transaction( link_id=transaction.link_id, user_id=session["id"], transaction_id=transaction.id ) destination_accnt_id = linked_transaction.source_accnt_id linked_transaction_id = linked_transaction.id db_session.close() return render_template( "transactions/edit.html", categories=categories, accounts=accounts, category_id=transaction.category_id, date=transaction.date, description=transaction.description, destination_accnt_id=destination_accnt_id, id=transaction.id, source_accnt_id=transaction.source_accnt_id, value=transaction.value, link_id=linked_transaction_id )
def list_transactions(): db_session = create_session() transaction_dao = TransactionDAO(db_session) all_transactions = transaction_dao.find_by_user_id(user_id=session["id"]) category_dao = CategoryDAO(db_session) categories = category_dao.find_by_user_id(session["id"]) account_dao = AccountDAO(db_session) accounts = account_dao.find_by_user_id(session["id"]) db_session.close() return render_template("transactions/index.html", transactions=all_transactions, categories=categories, accounts=accounts)
def save_preferences(): db_session = create_session() preferences_dao = PreferenceDAO(db_session) preferences_dao.save( user_id=session["id"], preference=request.form["preference"], ) db_session.commit() db_session.close() session['preference'] = request.form["preference"] return redirect(url_for("profile_page"))
def new_transaction(): db_session = create_session() category_dao = CategoryDAO(db_session) categories = category_dao.find_by_user_id(session["id"]) account_dao = AccountDAO(db_session) accounts = account_dao.find_by_user_id(session["id"]) db_session.close() return render_template( "transactions/edit.html", categories=categories, date=datetime.now(), destination_accnt_id=None, accounts=accounts )
def save_category(): db_session = create_session() categories_dao = CategoryDAO(db_session) category_id = request.form["id"] if category_id == "": category_id = None categories_dao.save( category_id=category_id, name=request.form["name"], user_id=session["id"], ) db_session.commit() db_session.close() return redirect(url_for("list_categories"))
def save_accounts(): db_session = create_session() accounts_dao = AccountDAO(db_session) account_id = request.form["id"] if account_id == "": account_id = None accounts_dao.save( account_id=account_id, name=request.form["name"], user_id=session["id"], account_type=request.form["type"], ) db_session.commit() db_session.close() return redirect(url_for("list_accounts"))
def login(): db_session = create_session() maybe_user = UserDAO(db_session) \ .find_by_email_and_password(request.form["email"], request.form["password"]) if maybe_user is None: db_session.close() return redirect(url_for("get_login")) preferences_dao = PreferenceDAO(db_session) preference = preferences_dao.find_by_user_id(user_id=maybe_user.id) session['preference'] = preference.preference session['email'] = maybe_user.email session['id'] = maybe_user.id session['name'] = maybe_user.name db_session.close() return redirect(url_for("dashboard"))
def post_transactions(): valid, value = parse_currency(request.form["value"]) if not valid: return "Value can not be empty." if value < 0: value = value*-1 if request.form["direction"] == "1": value = value*-1 valid, transaction_date = parse_date(request.form["date"]) if not valid: return f"'{request.form['date']}' Is not according to format." db_session = create_session() if validate_accounts( db_session, request.form["source_accnt_id"], request.form["destination_accnt_id"], user_id=session["id"]) is False: db_session.close() return "Sorry, there was an error. Invalid account ID." if validate_categories( db_session, request.form["category_id"], user_id=session["id"]) is False: db_session.close() return "Sorry, there was an error. Invalid category ID." transaction_dao = TransactionDAO(db_session) reverse_transaction = None link_id = None transaction_id = request.form["id"] or None if transaction_id is not None: transaction = transaction_dao.find_by_id_and_user_id( transaction_id=request.form["id"], user_id=session["id"] ) if transaction is None: db_session.close() return "Sorry, there was an error. Invalid transaction ID." if transaction.link_id is not None: link_id = transaction.link_id reverse_transaction = transaction_dao.find_linked_transaction( link_id=link_id, user_id=session["id"], transaction_id=transaction.id ) if request.form["destination_accnt_id"] != "-1": link_id = str(uuid.uuid4()) reverse_transaction_id = None if reverse_transaction is not None: reverse_transaction_id = reverse_transaction.id transaction_dao.save( transaction_id=reverse_transaction_id, description=request.form["description"], user_id=session["id"], category_id=request.form["category_id"], date=transaction_date, value=value*-1, source_accnt_id=request.form["destination_accnt_id"], link_id=link_id ) if reverse_transaction is not None and request.form["destination_accnt_id"] == "-1": transaction_dao.delete_by_id( transaction_id=reverse_transaction.id, user_id=session["id"] ) link_id = None transaction_dao.save( transaction_id=transaction_id, description=request.form["description"], user_id=session["id"], category_id=request.form["category_id"], date=transaction_date, value=value, source_accnt_id=request.form["source_accnt_id"], link_id=link_id ) db_session.commit() db_session.close() return redirect(url_for("list_transactions"))