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 @@