Das Timetracking-Tool kann die gearbeiteten Zeiten von Gitea auslesen und in eine CSV-Datei verwandeln.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Timetracking-Tool/exporter/csv.go

38 lines
833 B

package exporter
import (
"code.gitea.io/sdk/gitea"
"encoding/csv"
"os"
"strconv"
)
type LocalTrackedTimes gitea.TrackedTimes
func (tt *LocalTrackedTimes) ToTableData() [][]string {
data := make([][]string, 0)
for _, t := range *tt {
data = append(data, []string{t.Created.Format("02.01.2006 15:04"), strconv.FormatInt(t.UserID, 10), strconv.FormatInt(t.IssueID, 10), strconv.FormatInt(t.Time, 10)})
}
return data
}
func (tt *LocalTrackedTimes) SaveToCSV(path string) (err error) {
var file *os.File
if file, err = os.Create(path); err != nil {
return
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
err = writer.Write([]string{"Date", "User", "Issue", "Time (Seconds)"})
if err != nil {
return
}
err = writer.WriteAll(tt.ToTableData())
if err != nil {
return
}
return nil
}