diff --git a/app/routes/subcontractor_routes.py b/app/routes/subcontractor_routes.py index 0837659..fa1f0e6 100644 --- a/app/routes/subcontractor_routes.py +++ b/app/routes/subcontractor_routes.py @@ -56,13 +56,31 @@ def save_subcontractor(): return redirect(url_for("subcontractor.subcontractor_list")) -# ---------------- LIST ----------------- +# ---------------- LIST (UPDATED WITH PAGINATION) ----------------- @subcontractor_bp.route("/list") @login_required def subcontractor_list(): - subcontractors = Subcontractor.query.all() - current_app.logger.info("Viewed Subcontractor List") - return render_template("subcontractor/list.html", subcontractors=subcontractors) + + page = request.args.get("page", 1, type=int) + per_page = 10 # Change how many records per page + + pagination = Subcontractor.query.order_by( + Subcontractor.created_at + ).paginate( + page=page, + per_page=per_page, + error_out=False + ) + + subcontractors = pagination.items + + current_app.logger.info(f"Viewed Subcontractor List - Page {page}") + + return render_template( + "subcontractor/list.html", + subcontractors=subcontractors, + pagination=pagination + ) # ---------------- EDIT ----------------- @@ -103,10 +121,7 @@ def update_subcontractor(id): db.session.commit() - current_app.logger.info( - f"Subcontractor Updated: {old_name} → {new_name}" - ) - + current_app.logger.info(f"Subcontractor Updated: {old_name} → {new_name}") flash("Subcontractor updated successfully!", "success") except Exception: @@ -122,9 +137,9 @@ def update_subcontractor(id): @login_required def delete_subcontractor(id): subcontractor = Subcontractor.query.get_or_404(id) + try: name = subcontractor.subcontractor_name - db.session.delete(subcontractor) db.session.commit() diff --git a/app/templates/subcontractor/list.html b/app/templates/subcontractor/list.html index 909785a..d0fd37c 100644 --- a/app/templates/subcontractor/list.html +++ b/app/templates/subcontractor/list.html @@ -1,94 +1,160 @@ {% extends "base.html" %} {% block content %} -
+
- -
-
-

- Subcontractor List -

-
+
+

Subcontractor List

-
- - - ➕ Add Subcontractor - -
+ + + Add Subcontractor +
+
+
-
- - - - - - - - - - - + +
+
IDNameMobileEmailGST NoAction
+ + + + + + + + + + + + + {% for s in subcontractors %} + + + + + + + + + + Delete + + + + {% endfor %} + +
IDNameContactMobileEmailStatusAction
{{ s.id }}{{ s.subcontractor_name }}{{ s.contact_person }}{{ s.mobile_no }}{{ s.email_id }} + {% if s.status == "Active" %} + Active + {% else %} + Inactive + {% endif %} + + + Edit + -
+
+ + +
{% for s in subcontractors %} - - {{ s.id }} +
+
+
{{ s.subcontractor_name }}
- - {{ s.subcontractor_name }} - +

Contact: {{ s.contact_person }}

+

Mobile: {{ s.mobile_no }}

+

Email: {{ s.email_id }}

- - {{ s.mobile_no }} - +

+ Status: + {% if s.status == "Active" %} + Active + {% else %} + Inactive + {% endif %} +

- - {{ s.email_id }} - - - - {{ s.gst_no }} - - - - -
- + - - +
+
{% endfor %} - +
- - - - Total Subcontractors + + + +