Fonts + Only Pointers in sync.Maps

This commit is contained in:
Simon Martens
2024-12-20 01:10:39 +01:00
parent 9012fdcb17
commit 3ef30ef7c7
17 changed files with 323 additions and 255 deletions

View File

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

View File

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

View File

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

View File

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

View File

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