diff --git a/src/main.v b/src/main.v index 50e1464..9a5d956 100644 --- a/src/main.v +++ b/src/main.v @@ -151,7 +151,9 @@ fn get_ppu() !f64 { mut people := sql db { select from Person where status == 3 }! - + if people.len == 0 { + return 0 + } people.sort(a.order_time < b.order_time) time_range := people.last().order_time - people.first().order_time return people.len / time_range.hours() @@ -171,6 +173,28 @@ fn get_mean_time_between_pannenkoeken() !time.Duration { return stats.mean(arrays.window(people, size: 2).map(it[0].delivery_time - it[1].delivery_time)) } +fn get_last_done_person() ![]Person { + mut db := create_db_connection()! + defer { + db.close() or { panic(err) } + } + people := sql db { + select from Person where status == 3 order by delivery_time desc limit 1 + }! + return people +} + +fn get_next_person() ![]Person { + mut db := create_db_connection()! + defer { + db.close() or { panic(err) } + } + people := sql db { + select from Person where status < 3 order by id limit 1 + }! + return people +} + fn status_update(user_id int) !Person { mut db := create_db_connection()! defer { @@ -279,6 +303,21 @@ pub fn (mut app App) home() vweb.Result { return $vweb.html() } +@['/banner'; get] +pub fn (mut app App) banner() vweb.Result { + last_done := get_last_done_person() or { + app.set_status(400, '') + return app.text('${err}') + } + next_person := get_next_person() or { + app.set_status(400, '') + return app.text('${err}') + } + now := time.now() + + return $vweb.html() +} + @['/status_update'; post] pub fn (mut app App) status_update() vweb.Result { if person := status_update(app.form['id'].int()) { diff --git a/src/templates/banner.html b/src/templates/banner.html new file mode 100644 index 0000000..9d77ea9 --- /dev/null +++ b/src/templates/banner.html @@ -0,0 +1,74 @@ + + + + + + + 🥞wachtrij + + + + + + +
+
+
+
+
+
+

Previous pancake

+ @if last_done.len > 0 + @{now - last_done[0].delivery_time} + @else + No pancakes done yet + @end +
+
+
+
+
+
+
+
+

NEXT UP

+ @if next_person.len > 0 + @{next_person[0].name} + @else + Nobody in the queue + @end +
+ +
+
+
+
+
+ + + \ No newline at end of file