✅ Admin Dashboard Expansion: Payment History View
Flask Integration
- Added two new routes in
app.py
:
/admin-payments
: Lists all payment records grouped by member.
/admin-member-payments/<member_id>
: Displays payment history for a single member.
- Imported helper functions from
payment_model.py
:
from models.payment_model import get_all_payments_grouped, get_payments_by_member_id
New Templates
admin_payments.html
: Displays payment list in a simple table layout with links to individual member payments.
admin_member_payments.html
: Displays detailed payment history per member.
Backend Model Enhancements
payment_model.py
now includes:
get_all_payments_grouped()
: Joins members and payments, sorted by payment date.
get_payments_by_member_id(member_id)
: Returns all payments for a given member.
Issues Identified
Payment Amount Displaying as None
- All
amount
fields in the payment table are currently showing None
in the HTML templates.
- This may indicate:
amount
was not properly inserted during manual entry or CSV import.
- The input value is being misparsed or dropped before reaching
add_payment()
.
Duplicate Payment Entries on Submission
- Submitting the “Add Payment” form for existing members sometimes results in two identical entries.
- Probable causes:
- The form POST is being triggered twice (e.g. through browser auto-submit or accidental double click).
add_payment()
may be called more than once.
- Current mitigation:
- Added
print()
debug statements to trace route behavior.
- Ensured proper use of
redirect()
after POST to avoid resubmission on refresh.
Next Steps