+Abkürzungen

This commit is contained in:
Simon Martens
2026-01-12 18:57:34 +01:00
parent 696f7fe087
commit 7d7637fe13
21 changed files with 465 additions and 204 deletions

View File

@@ -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
}

View File

@@ -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)
}

View File

@@ -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)
})
}