activity.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package e00_basics
  2. import (
  3. "context"
  4. "github.com/qor5/admin/activity"
  5. "github.com/qor5/admin/presets"
  6. "gorm.io/driver/sqlite"
  7. "gorm.io/gorm"
  8. )
  9. func NewActivitySample() {
  10. // @snippet_begin(NewActivitySample)
  11. presetsBuilder := presets.New()
  12. db, err := gorm.Open(sqlite.Open("/tmp/activity.db"), &gorm.Config{})
  13. if err != nil {
  14. panic(err)
  15. }
  16. activity.New(presetsBuilder, db)
  17. // @snippet_end
  18. }
  19. func ActivityRegisterModelsSample() {
  20. // @snippet_begin(ActivityRegisterPresetsModelsSample)
  21. presetsBuilder := presets.New()
  22. db, err := gorm.Open(sqlite.Open("/tmp/activity.db"), &gorm.Config{})
  23. if err != nil {
  24. panic(err)
  25. }
  26. type Product struct {
  27. Title string
  28. Code string
  29. Price float64
  30. }
  31. productModel := presetsBuilder.Model(&Product{})
  32. activityBuilder := activity.New(presetsBuilder, db)
  33. activityBuilder.RegisterModel(productModel).UseDefaultTab().AddKeys("Title").AddIgnoredFields("Code").SkipDelete()
  34. // @snippet_end
  35. }
  36. func ActivityRecordLogSample() {
  37. // @snippet_begin(ActivityRecordLogSample)
  38. presetsBuilder := presets.New()
  39. db, err := gorm.Open(sqlite.Open("/tmp/activity.db"), &gorm.Config{})
  40. if err != nil {
  41. panic(err)
  42. }
  43. type Product struct {
  44. Title string
  45. Code string
  46. Price float64
  47. }
  48. activityBuilder := activity.New(presetsBuilder, db)
  49. activityBuilder.RegisterModel(&Product{})
  50. currentCtx := context.WithValue(context.Background(), activity.CreatorContextKey, "user1")
  51. activityBuilder.AddRecords("Publish", currentCtx, &Product{Title: "Product 1", Code: "P1", Price: 100}) // custmize the action name
  52. activityBuilder.AddRecords("Update Price", currentCtx, &Product{Title: "Product 1", Code: "P1", Price: 200})
  53. // @snippet_end
  54. }