feat: validate user availability
This commit is contained in:
@@ -21,7 +21,7 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// 1. Count volunteers assigned to this admin
|
||||
err := models.DB.QueryRow(`
|
||||
SELECT COUNT(av.volunteer_id)
|
||||
SELECT COUNT(av.volunteer_id)
|
||||
FROM admin_volunteers av
|
||||
WHERE av.admin_id = $1 AND av.is_active = TRUE;
|
||||
`, currentAdminID).Scan(&volunteerCount)
|
||||
@@ -32,7 +32,7 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// 2. Total donations from polls
|
||||
err = models.DB.QueryRow(`
|
||||
SELECT COALESCE(SUM(amount_donated), 0)
|
||||
SELECT COALESCE(SUM(amount_donated), 0)
|
||||
FROM poll_response;
|
||||
`).Scan(&totalDonations)
|
||||
if err != nil {
|
||||
@@ -42,7 +42,7 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// 3. Count validated addresses
|
||||
err = models.DB.QueryRow(`
|
||||
SELECT COUNT(*)
|
||||
SELECT COUNT(*)
|
||||
FROM address_database
|
||||
WHERE visited_validated = TRUE;
|
||||
`).Scan(&validatedCount)
|
||||
@@ -53,8 +53,8 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// 4. Calculate percentage of houses left to visit
|
||||
err = models.DB.QueryRow(`
|
||||
SELECT
|
||||
CASE
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) = 0 THEN 0
|
||||
ELSE ROUND(
|
||||
(COUNT(*) FILTER (WHERE visited_validated = FALSE)::numeric / COUNT(*)::numeric) * 100, 2
|
||||
@@ -79,4 +79,4 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
|
||||
"Role": role,
|
||||
"ActiveSection": "dashboard",
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user