- make:admin-controller edits the singular of its name (--model overrides):
ModelName, modelClass and the YAML under models/<model>/
- NewRecord returns &models.<Model>{} when the model exists; otherwise the
nil body stays and the command says to run make:model
- config_list.yaml offers create and delete with showCheckboxes
- registry.gen.go embeds controllers/*/*.yaml and models/*/*.yaml once they
exist and exposes generatedAdminFS(); scaffolded plugins implement
pact.AdminAssets through it, and a plugin without AdminFS gets a note
- blog example moves its YAML to models/post; docs and help text follow
59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
// Code generated by summer make. DO NOT EDIT.
|
|
|
|
package blog
|
|
|
|
import (
|
|
"embed"
|
|
"io/fs"
|
|
|
|
"git.golem15.com/golem15/summercms/docs/examples/blog/controllers"
|
|
"git.golem15.com/golem15/summercms/docs/examples/blog/models"
|
|
"git.golem15.com/golem15/summercms/docs/examples/blog/updates"
|
|
"git.golem15.com/golem15/summercms/modules/backpack"
|
|
"git.golem15.com/golem15/summercms/modules/bonfire"
|
|
"git.golem15.com/golem15/summercms/modules/pact"
|
|
"github.com/go-gormigrate/gormigrate/v2"
|
|
)
|
|
|
|
func generatedModels() []any {
|
|
return []any{
|
|
&models.Post{},
|
|
}
|
|
}
|
|
|
|
func generatedMigrations() []*gormigrate.Migration {
|
|
return []*gormigrate.Migration{
|
|
updates.CreatePosts(),
|
|
updates.AddPublishedAt(),
|
|
}
|
|
}
|
|
|
|
// generatedCommands returns the plugin's console commands. Commands that
|
|
// take a *backpack.App receive the first app passed in, or nil when none is.
|
|
func generatedCommands(app ...*backpack.App) []bonfire.Command {
|
|
return nil
|
|
}
|
|
|
|
func generatedJobs() []pact.Job {
|
|
return nil
|
|
}
|
|
|
|
func generatedAdminControllers() []pact.AdminController {
|
|
return []pact.AdminController{
|
|
controllers.PostsController(),
|
|
}
|
|
}
|
|
|
|
// generatedAdminTree holds the admin YAML of the plugin: the controller
|
|
// configuration and the model fields and columns. Go evaluates the go:embed
|
|
// globs at compile time, so YAML files added later in these directories are
|
|
// included; the next make: command rewrites the line when a glob starts or
|
|
// stops matching a file.
|
|
//
|
|
//go:embed controllers/*/*.yaml models/*/*.yaml
|
|
var generatedAdminTree embed.FS
|
|
|
|
// generatedAdminFS returns the admin YAML for pact.AdminAssets: an empty tree
|
|
// until the first admin controller is scaffolded.
|
|
func generatedAdminFS() fs.FS { return generatedAdminTree }
|