add date parsing
This commit is contained in:
@@ -6,14 +6,14 @@ import (
|
|||||||
"github.com/b2dennis/meshi/xlsx"
|
"github.com/b2dennis/meshi/xlsx"
|
||||||
)
|
)
|
||||||
|
|
||||||
var weekdays = [7]string{
|
var weekdays = []string{
|
||||||
|
"Sonntag",
|
||||||
"Montag",
|
"Montag",
|
||||||
"Dienstag",
|
"Dienstag",
|
||||||
"Mittwoch",
|
"Mittwoch",
|
||||||
"Donnerstag",
|
"Donnerstag",
|
||||||
"Freitag",
|
"Freitag",
|
||||||
"Samstag",
|
"Samstag",
|
||||||
"Sonntag",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
templ Home(plan xlsx.Plan) {
|
templ Home(plan xlsx.Plan) {
|
||||||
@@ -31,7 +31,7 @@ templ Home(plan xlsx.Plan) {
|
|||||||
@table.Header() {
|
@table.Header() {
|
||||||
@table.Row() {
|
@table.Row() {
|
||||||
@table.Head() {
|
@table.Head() {
|
||||||
Wochentag
|
Tag
|
||||||
}
|
}
|
||||||
@table.Head() {
|
@table.Head() {
|
||||||
Frühstück
|
Frühstück
|
||||||
@@ -44,7 +44,7 @@ templ Home(plan xlsx.Plan) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i,day := range(weekdays) {
|
for i := 0; i <= 6; i++ {
|
||||||
{{
|
{{
|
||||||
class := ""
|
class := ""
|
||||||
if i == 6 {
|
if i == 6 {
|
||||||
@@ -53,11 +53,11 @@ templ Home(plan xlsx.Plan) {
|
|||||||
}}
|
}}
|
||||||
@table.Row(table.RowProps{Class: class}) {
|
@table.Row(table.RowProps{Class: class}) {
|
||||||
@table.Cell() {
|
@table.Cell() {
|
||||||
{day}
|
{weekdays[plan[i][0].Date.Weekday()]}, {plan[i][0].Date.Format("02.01.2006")}
|
||||||
}
|
}
|
||||||
for _, menu := range plan.Menus[i] {
|
for _, menu := range plan[i] {
|
||||||
@table.Cell() {
|
@table.Cell() {
|
||||||
{menu}
|
{menu.Text}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ import (
|
|||||||
"github.com/b2dennis/meshi/xlsx"
|
"github.com/b2dennis/meshi/xlsx"
|
||||||
)
|
)
|
||||||
|
|
||||||
var weekdays = [7]string{
|
var weekdays = []string{
|
||||||
|
"Sonntag",
|
||||||
"Montag",
|
"Montag",
|
||||||
"Dienstag",
|
"Dienstag",
|
||||||
"Mittwoch",
|
"Mittwoch",
|
||||||
"Donnerstag",
|
"Donnerstag",
|
||||||
"Freitag",
|
"Freitag",
|
||||||
"Samstag",
|
"Samstag",
|
||||||
"Sonntag",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Home(plan xlsx.Plan) templ.Component {
|
func Home(plan xlsx.Plan) templ.Component {
|
||||||
@@ -109,7 +109,7 @@ func Home(plan xlsx.Plan) templ.Component {
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
ctx = templ.InitializeContext(ctx)
|
ctx = templ.InitializeContext(ctx)
|
||||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "Wochentag")
|
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "Tag")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
@@ -209,7 +209,7 @@ func Home(plan xlsx.Plan) templ.Component {
|
|||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
for i, day := range weekdays {
|
for i := 0; i <= 6; i++ {
|
||||||
class := ""
|
class := ""
|
||||||
if i == 6 {
|
if i == 6 {
|
||||||
class = "border-b-0"
|
class = "border-b-0"
|
||||||
@@ -239,22 +239,35 @@ func Home(plan xlsx.Plan) templ.Component {
|
|||||||
}
|
}
|
||||||
ctx = templ.InitializeContext(ctx)
|
ctx = templ.InitializeContext(ctx)
|
||||||
var templ_7745c5c3_Var12 string
|
var templ_7745c5c3_Var12 string
|
||||||
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(day)
|
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(weekdays[plan[i][0].Date.Weekday()])
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/pages/home.templ`, Line: 56, Col: 36}
|
return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/pages/home.templ`, Line: 56, Col: 68}
|
||||||
}
|
}
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, ", ")
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
|
var templ_7745c5c3_Var13 string
|
||||||
|
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(plan[i][0].Date.Format("02.01.2006"))
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/pages/home.templ`, Line: 56, Col: 108}
|
||||||
|
}
|
||||||
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
|
||||||
|
if templ_7745c5c3_Err != nil {
|
||||||
|
return templ_7745c5c3_Err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var11), templ_7745c5c3_Buffer)
|
templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var11), templ_7745c5c3_Buffer)
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
for _, menu := range plan.Menus[i] {
|
for _, menu := range plan[i] {
|
||||||
templ_7745c5c3_Var13 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
templ_7745c5c3_Var14 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||||
if !templ_7745c5c3_IsBuffer {
|
if !templ_7745c5c3_IsBuffer {
|
||||||
@@ -266,18 +279,18 @@ func Home(plan xlsx.Plan) templ.Component {
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
ctx = templ.InitializeContext(ctx)
|
ctx = templ.InitializeContext(ctx)
|
||||||
var templ_7745c5c3_Var14 string
|
var templ_7745c5c3_Var15 string
|
||||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(menu)
|
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(menu.Text)
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/pages/home.templ`, Line: 60, Col: 41}
|
return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/pages/home.templ`, Line: 60, Col: 46}
|
||||||
}
|
}
|
||||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
|
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var13), templ_7745c5c3_Buffer)
|
templ_7745c5c3_Err = table.Cell().Render(templ.WithChildren(ctx, templ_7745c5c3_Var14), templ_7745c5c3_Buffer)
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
@@ -301,7 +314,7 @@ func Home(plan xlsx.Plan) templ.Component {
|
|||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</body></html>")
|
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</body></html>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
|||||||
53
xlsx/main.go
53
xlsx/main.go
@@ -1,23 +1,66 @@
|
|||||||
package xlsx
|
package xlsx
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/xuri/excelize/v2"
|
"github.com/xuri/excelize/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Plan struct {
|
type Plan = [7][3]struct {
|
||||||
Menus [7][3]string
|
Text string
|
||||||
|
Date time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func Load() (Plan, error) {
|
func Load() (Plan, error) {
|
||||||
f, err := excelize.OpenFile("./plan.xlsx")
|
f, err := excelize.OpenFile("./plan.xlsx")
|
||||||
|
defer func() {
|
||||||
|
err := f.Close()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Plan{}, err
|
return Plan{}, err
|
||||||
}
|
}
|
||||||
var menus [7][3]string
|
var plan [7][3]struct {
|
||||||
|
Text string
|
||||||
|
Date time.Time
|
||||||
|
}
|
||||||
|
today := time.Now().Format("01-02-06")
|
||||||
|
v := ""
|
||||||
|
offset := 1
|
||||||
|
for v != today {
|
||||||
|
offset++
|
||||||
|
v, err = f.GetCellValue("Menüplan", "A"+strconv.Itoa(offset))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
for x := 0; x <= 2; x++ {
|
for x := 0; x <= 2; x++ {
|
||||||
for y := 0; y <= 6; y++ {
|
for y := 0; y <= 6; y++ {
|
||||||
menus[y][x], err = f.GetCellValue("Menüplan", string([]rune{rune('B' + x), rune('2' + y)}))
|
plan[y][x] = struct {
|
||||||
|
Text string
|
||||||
|
Date time.Time
|
||||||
|
}{}
|
||||||
|
plan[y][x].Text, err = f.GetCellValue("Menüplan", string([]rune{rune('B' + x)})+strconv.Itoa(y+offset))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
datestr, err := f.GetCellValue("Menüplan", "A"+strconv.Itoa(y+offset))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
time, err := time.Parse("01-02-06", datestr)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
plan[y][x].Date = time
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Plan{Menus: menus}, err
|
return plan, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user