Add filter import
This commit is contained in:
parent
7049644bcc
commit
edec1f6aa4
|
@ -242,7 +242,7 @@ func exportTaskAttachments(s *xorm.Session, u *user.User, wr *zip.Writer) (err e
|
||||||
}
|
}
|
||||||
|
|
||||||
func exportSavedFilters(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
|
func exportSavedFilters(s *xorm.Session, u *user.User, wr *zip.Writer) (err error) {
|
||||||
filters, err := getSavedFilters(s, u)
|
filters, err := getSavedFiltersForUser(s, u)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ package vikunja_file
|
||||||
import (
|
import (
|
||||||
"archive/zip"
|
"archive/zip"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"code.vikunja.io/api/pkg/db"
|
||||||
"code.vikunja.io/api/pkg/models"
|
"code.vikunja.io/api/pkg/models"
|
||||||
"code.vikunja.io/api/pkg/modules/migration"
|
"code.vikunja.io/api/pkg/modules/migration"
|
||||||
"code.vikunja.io/api/pkg/user"
|
"code.vikunja.io/api/pkg/user"
|
||||||
|
@ -42,7 +43,7 @@ func (v *VikunjaFileMigrator) Migrate(user *user.User, file io.ReaderAt, size in
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataFile *zip.File
|
var dataFile *zip.File
|
||||||
//var filterFile *zip.File
|
var filterFile *zip.File
|
||||||
storedFiles := make(map[string]*zip.File)
|
storedFiles := make(map[string]*zip.File)
|
||||||
for _, f := range r.File {
|
for _, f := range r.File {
|
||||||
if strings.HasPrefix(f.Name, "files/") {
|
if strings.HasPrefix(f.Name, "files/") {
|
||||||
|
@ -54,28 +55,28 @@ func (v *VikunjaFileMigrator) Migrate(user *user.User, file io.ReaderAt, size in
|
||||||
dataFile = f
|
dataFile = f
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
//if f.Name == "filters.json" {
|
if f.Name == "filters.json" {
|
||||||
// filterFile = f
|
filterFile = f
|
||||||
//}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: check we have all files
|
// TODO: check we have all files
|
||||||
|
|
||||||
//////
|
//////
|
||||||
// Import the bulk of Vikunja data
|
// Import the bulk of Vikunja data
|
||||||
rc, err := dataFile.Open()
|
df, err := dataFile.Open()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("could not open data file: %s", err)
|
return fmt.Errorf("could not open data file: %s", err)
|
||||||
}
|
}
|
||||||
defer rc.Close()
|
defer df.Close()
|
||||||
|
|
||||||
var buf bytes.Buffer
|
var bufData bytes.Buffer
|
||||||
if _, err := buf.ReadFrom(rc); err != nil {
|
if _, err := bufData.ReadFrom(df); err != nil {
|
||||||
return fmt.Errorf("could not read data file: %s", err)
|
return fmt.Errorf("could not read data file: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
namespaces := []*models.NamespaceWithListsAndTasks{}
|
namespaces := []*models.NamespaceWithListsAndTasks{}
|
||||||
if err := json.Unmarshal(buf.Bytes(), &namespaces); err != nil {
|
if err := json.Unmarshal(bufData.Bytes(), &namespaces); err != nil {
|
||||||
return fmt.Errorf("could not read data: %s", err)
|
return fmt.Errorf("could not read data: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +90,32 @@ func (v *VikunjaFileMigrator) Migrate(user *user.User, file io.ReaderAt, size in
|
||||||
|
|
||||||
///////
|
///////
|
||||||
// Import filters
|
// Import filters
|
||||||
//filters
|
ff, err := filterFile.Open()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("could not open filters file: %s", err)
|
||||||
|
}
|
||||||
|
defer ff.Close()
|
||||||
|
|
||||||
return nil
|
var bufFilter bytes.Buffer
|
||||||
|
if _, err := bufData.ReadFrom(ff); err != nil {
|
||||||
|
return fmt.Errorf("could not read filters file: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
filters := []*models.SavedFilter{}
|
||||||
|
if err := json.Unmarshal(bufFilter.Bytes(), &filters); err != nil {
|
||||||
|
return fmt.Errorf("could not read filter data: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
s := db.NewSession()
|
||||||
|
defer s.Close()
|
||||||
|
|
||||||
|
for _, f := range filters {
|
||||||
|
err = f.Create(s, user)
|
||||||
|
if err != nil {
|
||||||
|
_ = s.Rollback()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return s.Commit()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue