create project and create model and dashboard
This commit is contained in:
0
app/routes/__init__.py
Normal file
0
app/routes/__init__.py
Normal file
BIN
app/routes/__pycache__/__init__.cpython-313.pyc
Normal file
BIN
app/routes/__pycache__/__init__.cpython-313.pyc
Normal file
Binary file not shown.
BIN
app/routes/__pycache__/auth.cpython-313.pyc
Normal file
BIN
app/routes/__pycache__/auth.cpython-313.pyc
Normal file
Binary file not shown.
BIN
app/routes/__pycache__/dashboard.cpython-313.pyc
Normal file
BIN
app/routes/__pycache__/dashboard.cpython-313.pyc
Normal file
Binary file not shown.
BIN
app/routes/__pycache__/file_import.cpython-313.pyc
Normal file
BIN
app/routes/__pycache__/file_import.cpython-313.pyc
Normal file
Binary file not shown.
BIN
app/routes/__pycache__/subcontractor_routes.cpython-313.pyc
Normal file
BIN
app/routes/__pycache__/subcontractor_routes.cpython-313.pyc
Normal file
Binary file not shown.
BIN
app/routes/__pycache__/user.cpython-313.pyc
Normal file
BIN
app/routes/__pycache__/user.cpython-313.pyc
Normal file
Binary file not shown.
31
app/routes/auth.py
Normal file
31
app/routes/auth.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from flask import Blueprint, request, render_template, redirect, flash, session
|
||||
from app.services.user_service import UserService
|
||||
|
||||
auth_bp = Blueprint("auth", __name__, url_prefix="/auth")
|
||||
|
||||
# LOGIN PAGE
|
||||
@auth_bp.route("/login", methods=["GET", "POST"])
|
||||
def login():
|
||||
if request.method == "POST":
|
||||
user = UserService.validate_login(
|
||||
request.form["email"],
|
||||
request.form["password"]
|
||||
)
|
||||
if user:
|
||||
session["user_id"] = user.id
|
||||
return redirect("/dashboard")
|
||||
flash("Invalid credentials", "danger")
|
||||
return render_template("login.html")
|
||||
|
||||
# REGISTER API ONLY
|
||||
@auth_bp.route("/register", methods=["POST"])
|
||||
def register():
|
||||
data = request.json
|
||||
UserService.register_user(data["name"], data["email"], data["password"])
|
||||
return {"message": "User registered successfully"}, 201
|
||||
|
||||
# LOGOUT
|
||||
@auth_bp.route("/logout")
|
||||
def logout():
|
||||
session.clear()
|
||||
return redirect("/auth/login")
|
||||
8
app/routes/dashboard.py
Normal file
8
app/routes/dashboard.py
Normal file
@@ -0,0 +1,8 @@
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
dashboard_bp = Blueprint("dashboard", __name__)
|
||||
|
||||
@dashboard_bp.route("/")
|
||||
@dashboard_bp.route("/dashboard")
|
||||
def dashboard():
|
||||
return render_template("dashboard.html", title="Dashboard")
|
||||
21
app/routes/file_import.py
Normal file
21
app/routes/file_import.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from flask import Blueprint, render_template, request, flash
|
||||
from app.services.file_service import FileService
|
||||
from app.models.subcontractor_model import Subcontractor
|
||||
|
||||
file_import_bp = Blueprint("file_import", __name__, url_prefix="/file")
|
||||
|
||||
@file_import_bp.route("/import", methods=["GET", "POST"])
|
||||
def import_file():
|
||||
subcontractors = Subcontractor.query.all()
|
||||
|
||||
if request.method == "POST":
|
||||
file = request.files.get("file")
|
||||
subcontractor_id = request.form.get("subcontractor_id")
|
||||
file_type = request.form.get("file_type")
|
||||
|
||||
service = FileService()
|
||||
success, msg = service.handle_file_upload(file, subcontractor_id, file_type)
|
||||
|
||||
flash(msg, "success" if success else "danger")
|
||||
|
||||
return render_template("file_import.html", title="File Import", subcontractors=subcontractors)
|
||||
64
app/routes/subcontractor_routes.py
Normal file
64
app/routes/subcontractor_routes.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from flask import Blueprint, render_template, request, redirect, flash
|
||||
from app import db
|
||||
from app.models.subcontractor_model import Subcontractor
|
||||
|
||||
subcontractor_bp = Blueprint("subcontractor", __name__, url_prefix="/subcontractor")
|
||||
|
||||
# ---------------- ADD -----------------
|
||||
@subcontractor_bp.route("/add")
|
||||
def add_subcontractor():
|
||||
return render_template("subcontractor/add.html")
|
||||
|
||||
@subcontractor_bp.route("/save", methods=["POST"])
|
||||
def save_subcontractor():
|
||||
subcontractor = Subcontractor(
|
||||
subcontractor_name=request.form.get("subcontractor_name"),
|
||||
contact_person=request.form.get("contact_person"),
|
||||
mobile_no=request.form.get("mobile_no"),
|
||||
email_id=request.form.get("email_id"),
|
||||
gst_no=request.form.get("gst_no")
|
||||
)
|
||||
db.session.add(subcontractor)
|
||||
db.session.commit()
|
||||
|
||||
flash("Subcontractor added successfully!", "success")
|
||||
return redirect("/subcontractor/list")
|
||||
|
||||
# ---------------- LIST -----------------
|
||||
@subcontractor_bp.route("/list")
|
||||
def subcontractor_list():
|
||||
subcontractors = Subcontractor.query.all()
|
||||
return render_template("subcontractor/list.html", subcontractors=subcontractors)
|
||||
|
||||
# ---------------- EDIT -----------------
|
||||
@subcontractor_bp.route("/edit/<int:id>")
|
||||
def edit_subcontractor(id):
|
||||
subcontractor = Subcontractor.query.get_or_404(id)
|
||||
return render_template("subcontractor/edit.html", subcontractor=subcontractor)
|
||||
|
||||
# ---------------- UPDATE -----------------
|
||||
@subcontractor_bp.route("/update/<int:id>", methods=["POST"])
|
||||
def update_subcontractor(id):
|
||||
subcontractor = Subcontractor.query.get_or_404(id)
|
||||
|
||||
subcontractor.subcontractor_name = request.form.get("subcontractor_name")
|
||||
subcontractor.contact_person = request.form.get("contact_person")
|
||||
subcontractor.mobile_no = request.form.get("mobile_no")
|
||||
subcontractor.email_id = request.form.get("email_id")
|
||||
subcontractor.gst_no = request.form.get("gst_no")
|
||||
|
||||
db.session.commit()
|
||||
|
||||
flash("Subcontractor updated successfully!", "success")
|
||||
return redirect("/subcontractor/list")
|
||||
|
||||
# ---------------- DELETE -----------------
|
||||
@subcontractor_bp.route("/delete/<int:id>")
|
||||
def delete_subcontractor(id):
|
||||
subcontractor = Subcontractor.query.get_or_404(id)
|
||||
|
||||
db.session.delete(subcontractor)
|
||||
db.session.commit()
|
||||
|
||||
flash("Subcontractor deleted successfully!", "success")
|
||||
return redirect("/subcontractor/list")
|
||||
9
app/routes/user.py
Normal file
9
app/routes/user.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from flask import Blueprint, render_template
|
||||
from app.services.user_service import UserService
|
||||
|
||||
user_bp = Blueprint("user", __name__, url_prefix="/user")
|
||||
|
||||
@user_bp.route("/list")
|
||||
def list_users():
|
||||
users = UserService().get_all_users()
|
||||
return render_template("users.html", users=users, title="Users")
|
||||
Reference in New Issue
Block a user