diff --git a/controllers/members.go b/controllers/members.go index 64316d2..d744dfb 100644 --- a/controllers/members.go +++ b/controllers/members.go @@ -76,9 +76,23 @@ func MemberShow(c *fiber.Ctx) error { person.FirstName, ) + var fields []models.Field + db.Order("name collate nocase asc").Find( + &fields, "person_type = ?", "member", + ) + + var fieldValues []models.FieldValue + db.Preload("ListItem").Find( + &fieldValues, + "person_id = ?", + person.ID, + ) + return c.Render("person", fiber.Map{ - "PageTitle": title, - "Person": person, + "PageTitle": title, + "Person": person, + "Fields": fields, + "FieldValues": fieldValues, }) } @@ -215,7 +229,7 @@ func MemberEdit(c *fiber.Ctx) error { title := fmt.Sprintf( "%s %s | Modifier membre", person.LastName, - person.LastName, + person.FirstName, ) var sections []models.Section @@ -313,11 +327,27 @@ func MemberEdit(c *fiber.Ctx) error { } } + var fields []models.Field + db.Preload("List").Preload("List.ListItems").Order( + "name collate nocase asc", + ).Find( + &fields, "person_type = ?", "member", + ) + + var fieldValues []models.FieldValue + db.Preload("ListItem").Find( + &fieldValues, + "person_id = ?", + person.ID, + ) + return c.Render("person_form", fiber.Map{ - "PageTitle": title, - "Person": person, - "Sections": sections, - "Errors": errors, + "PageTitle": title, + "Person": person, + "Sections": sections, + "Fields": fields, + "FieldValues": fieldValues, + "Errors": errors, }) } diff --git a/models/fields.go b/models/fields.go index 6f643ff..aab1f17 100644 --- a/models/fields.go +++ b/models/fields.go @@ -19,6 +19,8 @@ type FieldValue struct { gorm.Model FieldID uint Field Field + PersonID uint + Person Person ValueString sql.NullString ValueInt sql.NullInt64 ValueDate sql.NullTime diff --git a/models/lists.go b/models/lists.go index 4145d02..134210d 100644 --- a/models/lists.go +++ b/models/lists.go @@ -4,8 +4,9 @@ import "gorm.io/gorm" type List struct { gorm.Model - Name string - Multi bool + Name string + Multi bool + ListItems []*ListItem } type ListItem struct { diff --git a/views/person.html b/views/person.html index 597acb4..07b39ae 100644 --- a/views/person.html +++ b/views/person.html @@ -159,6 +159,52 @@ + {% if Fields %} +