From ff2bb2d443e969df8864b5d7cd4bee49aa6e2868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Bouzour=C3=A8ne?= Date: Sat, 12 Jul 2025 11:34:47 +0200 Subject: [PATCH] Improve main and admin menus --- controllers/home.go | 73 ++++++++++++++++++++++++-- views/admin.html | 123 +++++++++++++++++++++++++++++--------------- views/index.html | 39 ++++++++++---- 3 files changed, 182 insertions(+), 53 deletions(-) diff --git a/controllers/home.go b/controllers/home.go index 733e973..22472a5 100644 --- a/controllers/home.go +++ b/controllers/home.go @@ -1,15 +1,82 @@ package controllers -import "github.com/gofiber/fiber/v2" +import ( + "git.readonly.ch/bouzoure/pop-camarades/helpers" + "git.readonly.ch/bouzoure/pop-camarades/models" + "github.com/gofiber/fiber/v2" +) func Homepage(c *fiber.Ctx) error { + userid, err := helpers.GetSessionUserId(c) + if err != nil { + return err + } + + allowedSectionsMembers, err := helpers.PermissionsGetSections( + userid, "show_member", + ) + if err != nil { + return err + } + + allowedSectionsContacts, err := helpers.PermissionsGetSections( + userid, "show_contact", + ) + if err != nil { + return err + } + + db, err := helpers.GetDatabase() + if err != nil { + return err + } + + var membersCount int64 + var contactsCount int64 + + db.Find( + &models.Person{}, + "is_member = ? AND section_id IN ?", + true, allowedSectionsMembers, + ).Count(&membersCount) + + db.Find( + &models.Person{}, + "is_contact = ? AND section_id IN ?", + true, allowedSectionsContacts, + ).Count(&contactsCount) + return c.Render("index", fiber.Map{ - "PageTitle": "Accueil", + "PageTitle": "Accueil", + "MembersCount": membersCount, + "ContactsCount": contactsCount, }) } func Admin(c *fiber.Ctx) error { + db, err := helpers.GetDatabase() + if err != nil { + return err + } + + var sectionsCount int64 + var listsCount int64 + var fieldsCount int64 + var usersCount int64 + var rolesCount int64 + + db.Find(&models.Section{}).Count(§ionsCount) + db.Find(&models.List{}).Count(&listsCount) + db.Find(&models.Field{}).Count(&fieldsCount) + db.Find(&models.User{}).Count(&usersCount) + db.Find(&models.Role{}).Count(&rolesCount) + return c.Render("admin", fiber.Map{ - "PageTitle": "Administration", + "PageTitle": "Administration", + "SectionsCount": sectionsCount, + "ListsCount": listsCount, + "FieldsCount": fieldsCount, + "UsersCount": usersCount, + "RolesCount": rolesCount, }) } diff --git a/views/admin.html b/views/admin.html index a541ba7..4d02f9a 100644 --- a/views/admin.html +++ b/views/admin.html @@ -12,47 +12,88 @@
-
- - - - - +
{% endblock %} diff --git a/views/index.html b/views/index.html index 6d4891b..0e31ff3 100644 --- a/views/index.html +++ b/views/index.html @@ -11,35 +11,56 @@
-
+