summaryrefslogtreecommitdiff
path: root/app/routes.py
diff options
context:
space:
mode:
authorMarius Peter <marius.peter@tutanota.com>2022-05-15 13:17:35 +0200
committerMarius Peter <marius.peter@tutanota.com>2022-05-15 13:17:35 +0200
commite084f90c19e779592f6e3f14eb8f70a7287f0dad (patch)
tree1215177356105452c39a916fd050f79c9721f523 /app/routes.py
parent1dad22d3e45d6506c8624e3a7111240fcc4ab786 (diff)
Modularization.
Diffstat (limited to 'app/routes.py')
-rw-r--r--app/routes.py135
1 files changed, 0 insertions, 135 deletions
diff --git a/app/routes.py b/app/routes.py
deleted file mode 100644
index 11cd3c2..0000000
--- a/app/routes.py
+++ /dev/null
@@ -1,135 +0,0 @@
-"""
-routes.py module
-----------------
-
-This Python module contains the logic supporting:
-1. Navigating between website pages
-2. Interpreting user requests to the server
-3. Dispatching requested content back to the user
-
-Python dependencies:
-- flask: provides web application features
-- forms: provides secure user form submission
-- sqlalchemy: provides communication with database on server.
-
-Personal imports:
-These are used to avoid cluttering this file with
-placeholder data for posts' content.
-"""
-
-
-from flask import Flask, render_template, request, redirect, flash, url_for, jsonify
-from flask_bootstrap import Bootstrap
-
-from datetime import datetime
-import inspect
-
-from model import *
-from forms import *
-
-app = Flask(__name__)
-
-
-app.config.from_pyfile("../config.py")
-db.init_app(app)
-
-
-@app.route("/")
-@app.route("/fapg/home")
-def project():
- """This is our project welcome page."""
- michel = User(
- name_first="Michel",
- name_last="Peter",
- email="le-boss@fapg.com",
- phone_mobile="00000000",
- phone_alternative="0000000000",
- updated="2022-04-21",
- )
- modules = Module.query.all()
- print(module.name for module in modules)
- return render_template("home.html", user=michel, project="fapg", modules=modules)
-
-
-@app.route("/modules")
-def all_modules():
- return redirect("/")
-
-
-@app.route("/modules/<module>")
-def render_module(module):
- modules = Module.query.all()
- if module not in [mod.name for mod in modules]:
- return render_template("errors/module-not-found.html", module=module)
- customers = Customer.query.order_by(Customer.primary_key.desc())
- products = Product.query.order_by(Product.primary_key.desc())
- logs = Log.query.order_by(Log.primary_key.desc())
- latest_target = (
- Log.query.filter_by(target="True").order_by(Log.primary_key.desc()).first()
- )
- flash(f"Successfully accessed module {module}.", "info")
- flash(f"Still fighting against styling in {module}.", "error")
- return render_template(
- f"modules/{module}.html",
- module=module,
- modules=modules,
- customers=customers,
- products=products,
- logs=logs,
- target=latest_target,
- )
-
-
-@app.route("/delete-<pk>-from-<table>", methods=["POST"])
-def delete_item(pk, table):
- """Delete item with Primary Key = pk from corresponding database
- table.
- """
- model = globals()[table]
- record = model.query.filter_by(primary_key=pk).first()
- db.session.delete(record)
- db.session.commit()
- flash(f"Successfully removed item #{pk} from {table} table.", "info")
- return redirect("/modules")
-
-
-@app.route("/add-<item>", methods=["GET", "POST"])
-def add_item(item):
- """Add a new item to a corresponding database table.
-
- The item must match a database model class name (table). Then, we
- match the model class attributes with request.form values.
-
- """
- if item not in db.metadata.tables.keys():
- return render_template("errors/item-not-found.html", item=item)
- if request.method == "GET":
- form = globals()[f"Add{item.capitalize()}"]()
- return render_template("add-item.html", item=item, form=form)
- if request.method == "POST":
- table = globals()[item.capitalize()]
- table_fields = inspect.signature(table).parameters
- form_values = [request.form[key] for key in table_fields]
- debug = f"Ready to insert {form_values}"
- record = table(*form_values)
- db.session.add(record)
- db.session.commit()
- item_pk = table.query.order_by(table.primary_key.desc()).first().primary_key
- flash(
- f"Successfully added item #{item_pk} to {table.__table__.name.capitalize()} table.",
- "info",
- )
- return redirect(f"/modules")
-
-
-@app.route("/add-invoice", methods=["GET", "POST"])
-def add_invoice():
- form = AddInvoice()
- if request.method == "GET":
- return render_template("add-invoice.html")
-
-
-@app.route("/preview-invoice", methods=["GET", "POST"])
-def preview_invoice():
- if request.method == "GET":
- return render_template("preview-invoice.html")
Copyright 2019--2024 Marius PETER