Files
sm-quizzes-plugin/controllers/questions.go

47 lines
1.6 KiB
Go

// Code generated by summer make. DO NOT EDIT.
package controllers
import (
"git.golem15.com/golem15/sm-quizzes-plugin/models"
"git.golem15.com/golem15/summercms/modules/cabana"
"git.golem15.com/golem15/summercms/modules/pact"
)
var (
_ pact.AdminController = questionsAdmin{}
_ pact.AdminRecordSource = questionsAdmin{}
_ pact.AdminPermissioned = questionsAdmin{}
_ cabana.FieldRelationProvider = questionsAdmin{}
)
// questionsAdmin lists and edits questions of every quiz; the list filters
// by quiz, category and type.
type questionsAdmin struct{}
func (questionsAdmin) ID() string { return "golem15.quizzes.questions" }
func (questionsAdmin) ModelName() string { return "Question" }
func (questionsAdmin) ConfigDir() string { return "controllers/questions" }
// NewRecord returns the model the generic admin handlers query and fill.
func (questionsAdmin) NewRecord() any { return &models.Question{} }
// RequiredPermissions is checked before any schema or record is served.
func (questionsAdmin) RequiredPermissions() []string {
return []string{"golem15.quizzes.access_quizzes"}
}
// AdminFieldRelations binds the quiz picker to quiz_id.
func (questionsAdmin) AdminFieldRelations() []cabana.FieldRelationContract {
return []cabana.FieldRelationContract{{
Field: "quiz",
Kind: "belongsTo",
NewRelated: func() any { return &models.Quiz{} },
ForeignKey: "quiz_id",
LabelColumn: "title",
}}
}
// QuestionsController returns the golem15.quizzes.questions admin controller.
func QuestionsController() pact.AdminController { return questionsAdmin{} }