feat: Organisations admin screen with the avatar and the members manager

- controller golem15.user.organisations behind golem15.users.access_users
- list and form (name, slug preset from the name, description, avatar)
- members relation manager: link sets and unlink clears users.organisation_id
- deleting an organisation releases its members first
- Organisation gains Fillable, Rules, MorphName, AttachRelations, BeforeValidate
  and the Members relation; models.Slugify
- navigation side item organisations
- TestAdminOrganisations, TestAdminOrganisationMembers, TestSlugify
This commit is contained in:
Jakub Zych
2026-10-05 13:58:54 +02:00
parent a3992879db
commit 58595fef27
16 changed files with 828 additions and 5 deletions

View File

@@ -13,6 +13,7 @@ func AdminControllers(app func() *backpack.App) []pact.AdminController {
return []pact.AdminController{
usersAdminController{app: app},
usergroupsAdminController{app: appAccess(app)},
organisationsAdminController{app: appAccess(app)},
}
}
@@ -47,4 +48,13 @@ func init() {
var _ pact.FormBeforeDelete = usergroupsAdminController{}
var _ pact.FormAfterDelete = usergroupsAdminController{}
var _ cabana.PermissionEditorProvider = usergroupsAdminController{}
var _ pact.AdminController = organisationsAdminController{}
var _ pact.AdminPermissioned = organisationsAdminController{}
var _ pact.AdminRecordSource = organisationsAdminController{}
var _ pact.FormBeforeCreate = organisationsAdminController{}
var _ pact.FormBeforeUpdate = organisationsAdminController{}
var _ pact.FormBeforeDelete = organisationsAdminController{}
var _ pact.RelationExtendManageQuery = organisationsAdminController{}
var _ cabana.AdminRelationContractProvider = organisationsAdminController{}
}