From 819e6609bf31088dca662385afae7eafb00b4ec5 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Mon, 19 Jun 2017 11:32:25 +0200 Subject: [PATCH] Allow custom week report numbering. --- export/latex/export.go | 28 ++++++++++++++++++++++------ export/latex/template.go | 2 +- project/week.go | 3 ++- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/export/latex/export.go b/export/latex/export.go index 403fe1d..995c7bd 100644 --- a/export/latex/export.go +++ b/export/latex/export.go @@ -64,14 +64,30 @@ func (e *Exporter) Export(prj *project.Project, w io.Writer) (err error) { }, }) + // Generate work report numbers + actualNumber := 0 + weeknums := map[int]int{} + for i, week := range prj.Weeks { + actualNumber++ + + if week.Number > 0 { + // Use custom number for this week's report + actualNumber = week.Number + } + + weeknums[i] = actualNumber + } + data := struct { - Project *project.Project - TexMarker TexMarker - TexInputs []string + Project *project.Project + TexMarker TexMarker + TexInputs []string + WeekNumbers map[int]int }{ - Project: prj, - TexInputs: e.Inputs, - TexMarker: e.Marker, + Project: prj, + TexInputs: e.Inputs, + TexMarker: e.Marker, + WeekNumbers: weeknums, } return exportTemplate.Execute(w, data) } diff --git a/export/latex/template.go b/export/latex/template.go index 7d6d2cf..05f6cb1 100644 --- a/export/latex/template.go +++ b/export/latex/template.go @@ -121,7 +121,7 @@ var exportTemplate = template.Must(template. \tableofcontents -\begin{weeklyreport}{}{}{} +\begin{weeklyreport}{}{}{} \weeklyreportsection{} diff --git a/project/week.go b/project/week.go index 9b352dd..f418505 100644 --- a/project/week.go +++ b/project/week.go @@ -3,7 +3,8 @@ package project // Week represents a week in the report. type Week struct { Date Date + Number int `json:"Number,omitempty"` + Periods []Period `json:"Professional school"` WorkActivities []string `json:"Operational activities"` WorkActivityDetails string `json:"Operational instructions"` - Periods []Period `json:"Professional school"` }