feat(11.1-05): add the walkthrough's admin controller, publish command and published_at migration
- make:admin-controller, make:command and make:migration output, finished: the Posts controller serves models.Post behind acme.blog.access_posts, WinterCMS-style form and list YAML embedded through pact.AdminAssets, blog:publish sets published_at by slug with a bound parameter - the posts route lists published posts only, newest first - Docker tests migrate an ICU pl-PL database, roll back published_at, serve the route and run blog:publish with a published and an opened database - the page gains the admin controller, console command and added-column sections
This commit is contained in:
34
docs/examples/blog/controllers/posts.go
Normal file
34
docs/examples/blog/controllers/posts.go
Normal file
@@ -0,0 +1,34 @@
|
||||
// Code generated by summer make. DO NOT EDIT.
|
||||
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"git.golem15.com/golem15/summercms/docs/examples/blog/models"
|
||||
"git.golem15.com/golem15/summercms/modules/pact"
|
||||
)
|
||||
|
||||
var (
|
||||
_ pact.AdminController = postsAdmin{}
|
||||
_ pact.AdminRecordSource = postsAdmin{}
|
||||
_ pact.AdminPermissioned = postsAdmin{}
|
||||
)
|
||||
|
||||
// postsAdmin is the Go form of the Posts backend controller with the List
|
||||
// and Form behaviours.
|
||||
type postsAdmin struct{}
|
||||
|
||||
func (postsAdmin) ID() string { return "acme.blog.posts" }
|
||||
func (postsAdmin) ModelName() string { return "Post" }
|
||||
func (postsAdmin) ConfigDir() string { return "controllers/posts" }
|
||||
|
||||
// NewRecord returns the model the generic admin handlers query and fill.
|
||||
func (postsAdmin) NewRecord() any { return &models.Post{} }
|
||||
|
||||
// RequiredPermissions replaces $requiredPermissions: an administrator needs
|
||||
// this permission before any schema or record is served.
|
||||
func (postsAdmin) RequiredPermissions() []string {
|
||||
return []string{"acme.blog.access_posts"}
|
||||
}
|
||||
|
||||
// PostsController returns the acme.blog.posts admin controller.
|
||||
func PostsController() pact.AdminController { return postsAdmin{} }
|
||||
Reference in New Issue
Block a user