mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2026-02-04 02:25:30 +00:00
+Abkürzungen
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
m "github.com/pocketbase/pocketbase/migrations"
|
||||
@@ -21,12 +18,6 @@ func init() {
|
||||
return err
|
||||
}
|
||||
|
||||
abk := abkCollection()
|
||||
if err := app.Save(abk); err != nil {
|
||||
app.Logger().Error("Failed to save collection:", "error", err, "collection", abk)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}, func(app core.App) error {
|
||||
collection, err := app.FindCollectionByNameOrId(
|
||||
@@ -37,14 +28,7 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
collection_abk, err2 := app.FindCollectionByNameOrId(
|
||||
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||
if err == nil && collection_abk != nil {
|
||||
if err := app.Delete(collection_abk); err != nil {
|
||||
app.Logger().Error("Failed to delete collection:", "error", err, "collection", collection_abk)
|
||||
}
|
||||
}
|
||||
return errors.Join(err, err2)
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -53,13 +37,3 @@ func dokCollection() *core.Collection {
|
||||
c.Fields = append(c.Fields, dok_fields...)
|
||||
return c
|
||||
}
|
||||
|
||||
func abkCollection() *core.Collection {
|
||||
c := core.NewBaseCollection(pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||
c.Fields = core.NewFieldsList(
|
||||
pagemodels.RequiredTextField(pagemodels.F_ABK),
|
||||
pagemodels.RequiredTextField(pagemodels.F_BEDEUTUNG),
|
||||
)
|
||||
dbmodels.SetBasicPublicRules(c)
|
||||
return c
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@ package migrations
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
m "github.com/pocketbase/pocketbase/migrations"
|
||||
@@ -505,19 +505,7 @@ func init() {
|
||||
return err
|
||||
}
|
||||
|
||||
abk, err := seed_abkuerzungen(app)
|
||||
if err != nil {
|
||||
app.Logger().Error("Failed to seed abkuerzungen", "error", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for _, a := range abk {
|
||||
if err := app.Save(a); err != nil {
|
||||
app.Logger().Error("Failed to save abk", "error", err, "abk", a)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return seed_abkuerzungen(app)
|
||||
}, func(app core.App) error {
|
||||
coll, err := app.FindCollectionByNameOrId(
|
||||
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME))
|
||||
@@ -526,30 +514,19 @@ func init() {
|
||||
app.DB().NewQuery("DELETE FROM " + coll.TableName()).Execute()
|
||||
}
|
||||
|
||||
coll_abk, err2 := app.FindCollectionByNameOrId(
|
||||
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||
|
||||
if err == nil && coll_abk != nil {
|
||||
app.DB().NewQuery("DELETE FROM " + coll_abk.TableName()).Execute()
|
||||
}
|
||||
|
||||
return errors.Join(err, err2)
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
func seed_abkuerzungen(app core.App) ([]*pagemodels.Abk, error) {
|
||||
collection, err := app.FindCollectionByNameOrId(pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
func seed_abkuerzungen(app core.App) error {
|
||||
|
||||
if _, err := os.Stat(ABK_PATH); err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
|
||||
file, err := os.Open(ABK_PATH)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
@@ -568,13 +545,15 @@ func seed_abkuerzungen(app core.App) ([]*pagemodels.Abk, error) {
|
||||
abk[split[0]] = strings.TrimSpace(besch)
|
||||
}
|
||||
|
||||
ret := make([]*pagemodels.Abk, 0, len(abk))
|
||||
for a, b := range abk {
|
||||
r := pagemodels.NewAbk(core.NewRecord(collection))
|
||||
r.SetAbk(a)
|
||||
r.SetBedeutung(b)
|
||||
ret = append(ret, r)
|
||||
dataColl, err := app.FindCollectionByNameOrId(dbmodels.DATA_TABLE)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
// Create new record in data table
|
||||
record := core.NewRecord(dataColl)
|
||||
record.Set(dbmodels.KEY_FIELD, "abkuerzungen")
|
||||
record.Set(dbmodels.VALUE_FIELD, abk)
|
||||
|
||||
return app.Save(record)
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
m "github.com/pocketbase/pocketbase/migrations"
|
||||
)
|
||||
|
||||
func init() {
|
||||
m.Register(func(app core.App) error {
|
||||
// Find source collection
|
||||
abkColl, err := app.FindCollectionByNameOrId("page_benutzerhinweise_abkuerzungen")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Query all abbreviations
|
||||
var records []*core.Record
|
||||
err = app.RecordQuery(abkColl.Name).All(&records)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Convert to JSON map
|
||||
abkMap := make(map[string]string)
|
||||
for _, r := range records {
|
||||
abkMap[r.GetString("Abkuerzung")] = r.GetString("Bedeutung")
|
||||
}
|
||||
|
||||
// Find data collection
|
||||
dataColl, err := app.FindCollectionByNameOrId(dbmodels.DATA_TABLE)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Create new record in data table
|
||||
record := core.NewRecord(dataColl)
|
||||
record.Set(dbmodels.KEY_FIELD, "abkuerzungen")
|
||||
record.Set(dbmodels.VALUE_FIELD, abkMap)
|
||||
|
||||
return app.Save(record)
|
||||
}, func(app core.App) error {
|
||||
// Rollback: delete from data table
|
||||
dataColl, err := app.FindCollectionByNameOrId(dbmodels.DATA_TABLE)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
record, err := app.FindFirstRecordByFilter(dataColl.Name, dbmodels.KEY_FIELD+" = 'abkuerzungen'")
|
||||
if err != nil {
|
||||
return nil // Already deleted
|
||||
}
|
||||
|
||||
return app.Delete(record)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user