mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-28 16:45:32 +00:00
Fonts + Only Pointers in sync.Maps
This commit is contained in:
@@ -8,6 +8,8 @@ import (
|
||||
|
||||
type AgentView struct {
|
||||
Agents []xmlprovider.Agent
|
||||
Works map[string][]xmlprovider.Work
|
||||
Pieces map[string][]xmlprovider.Piece
|
||||
}
|
||||
|
||||
func AgentsView(letterorid string, lib *xmlprovider.Library) *AgentView {
|
||||
@@ -21,5 +23,36 @@ func AgentsView(letterorid string, lib *xmlprovider.Library) *AgentView {
|
||||
return true
|
||||
})
|
||||
|
||||
res.Works = make(map[string][]xmlprovider.Work)
|
||||
res.Pieces = make(map[string][]xmlprovider.Piece)
|
||||
|
||||
lib.Works.Items.Range(func(key, value interface{}) bool {
|
||||
w := value.(xmlprovider.Work)
|
||||
for _, a := range res.Agents {
|
||||
if strings.HasPrefix(a.ID, letterorid) {
|
||||
_, ok := res.Works[a.ID]
|
||||
if !ok {
|
||||
res.Works[a.ID] = []xmlprovider.Work{}
|
||||
}
|
||||
res.Works[a.ID] = append(res.Works[a.ID], w)
|
||||
}
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
lib.Pieces.Items.Range(func(key, value interface{}) bool {
|
||||
p := value.(xmlprovider.Piece)
|
||||
for _, a := range res.Agents {
|
||||
if strings.HasPrefix(a.ID, letterorid) {
|
||||
_, ok := res.Pieces[a.ID]
|
||||
if !ok {
|
||||
res.Pieces[a.ID] = []xmlprovider.Piece{}
|
||||
}
|
||||
res.Pieces[a.ID] = append(res.Pieces[a.ID], p)
|
||||
}
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
return &res
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
const TLAYOUT = "2006-01-02"
|
||||
|
||||
type IssueViewModel struct {
|
||||
xmlprovider.Issue
|
||||
*xmlprovider.Issue
|
||||
Day int
|
||||
Month int
|
||||
Year int
|
||||
@@ -23,11 +23,11 @@ func IssueView(y string, No string, lib *xmlprovider.Library) (*IssueViewModel,
|
||||
return nil, errors.New("Issue not found")
|
||||
}
|
||||
|
||||
return FromIssue(*issue)
|
||||
return FromIssue(issue)
|
||||
|
||||
}
|
||||
|
||||
func FromIssue(i xmlprovider.Issue) (*IssueViewModel, error) {
|
||||
func FromIssue(i *xmlprovider.Issue) (*IssueViewModel, error) {
|
||||
t, err := time.Parse(TLAYOUT, i.Datum.When)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -5,12 +5,12 @@ import (
|
||||
)
|
||||
|
||||
type PieceViewModel struct {
|
||||
xmlprovider.Piece
|
||||
*xmlprovider.Piece
|
||||
// TODO: this is a bit hacky, but it refences the page number of the piece in the issue
|
||||
Von int
|
||||
Bis int
|
||||
}
|
||||
|
||||
func NewPieceView(p xmlprovider.Piece) (PieceViewModel, error) {
|
||||
func NewPieceView(p *xmlprovider.Piece) (PieceViewModel, error) {
|
||||
return PieceViewModel{Piece: p}, nil
|
||||
}
|
||||
|
||||
@@ -28,10 +28,6 @@ func NewSingleIssueView(y string, No string, lib *xmlprovider.Library) (*SingleI
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
no, err := strconv.Atoi(No)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -61,7 +57,7 @@ func (issue *SingleIssueViewModel) PiecesForIsssue(lib *xmlprovider.Library) err
|
||||
lib.Pieces.Items.Range(func(key, value interface{}) bool {
|
||||
k := key.(string)
|
||||
if strings.HasPrefix(k, lookfor) {
|
||||
a := value.(xmlprovider.Piece)
|
||||
a := value.(*xmlprovider.Piece)
|
||||
p, err := NewPieceView(a)
|
||||
if err != nil {
|
||||
logging.ObjErr(&a, err)
|
||||
|
||||
@@ -35,7 +35,7 @@ func YearView(year string, lib *xmlprovider.Library) (*YearViewModel, error) {
|
||||
}
|
||||
|
||||
if date == year {
|
||||
issue := value.(xmlprovider.Issue)
|
||||
issue := value.(*xmlprovider.Issue)
|
||||
res.PushIssue(issue)
|
||||
}
|
||||
return true
|
||||
@@ -55,7 +55,7 @@ func (y *YearViewModel) Sort() {
|
||||
y.Issues.Sort()
|
||||
}
|
||||
|
||||
func (y *YearViewModel) PushIssue(i xmlprovider.Issue) {
|
||||
func (y *YearViewModel) PushIssue(i *xmlprovider.Issue) {
|
||||
iv, err := FromIssue(i)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user