Merge branch 'staging' into 'main'

Staging

See merge request PhilippHofer/rot!36
This commit is contained in:
PhilippHofer 2023-10-01 19:08:42 +00:00
commit 1d9894a704
40 changed files with 1950 additions and 1782 deletions

2
.gitignore vendored
View File

@ -3,4 +3,4 @@ db.sqlite
.history/ .history/
Rocket.toml Rocket.toml
frontend/node_modules/* frontend/node_modules/*
static/ /static/

185
Cargo.lock generated
View File

@ -40,9 +40,9 @@ dependencies = [
[[package]] [[package]]
name = "aes-gcm" name = "aes-gcm"
version = "0.10.2" version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
dependencies = [ dependencies = [
"aead", "aead",
"aes", "aes",
@ -76,9 +76,9 @@ dependencies = [
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "1.0.5" version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -135,7 +135,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -146,7 +146,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -187,9 +187,9 @@ dependencies = [
[[package]] [[package]]
name = "base64" name = "base64"
version = "0.21.3" version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
[[package]] [[package]]
name = "base64ct" name = "base64ct"
@ -245,9 +245,9 @@ dependencies = [
[[package]] [[package]]
name = "bumpalo" name = "bumpalo"
version = "3.13.0" version = "3.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
@ -257,9 +257,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "1.4.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]] [[package]]
name = "cc" name = "cc"
@ -278,9 +278,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.28" version = "0.4.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f" checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
dependencies = [ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
@ -288,7 +288,6 @@ dependencies = [
"num-traits", "num-traits",
"pure-rust-locales", "pure-rust-locales",
"serde", "serde",
"time 0.1.45",
"wasm-bindgen", "wasm-bindgen",
"windows-targets 0.48.5", "windows-targets 0.48.5",
] ]
@ -338,7 +337,7 @@ dependencies = [
"rand", "rand",
"sha2", "sha2",
"subtle", "subtle",
"time 0.3.28", "time",
"version_check", "version_check",
] ]
@ -463,7 +462,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"proc-macro2-diagnostics", "proc-macro2-diagnostics",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -626,6 +625,7 @@ checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
dependencies = [ dependencies = [
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-executor",
"futures-io", "futures-io",
"futures-sink", "futures-sink",
"futures-task", "futures-task",
@ -676,6 +676,17 @@ version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
[[package]]
name = "futures-macro"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.37",
]
[[package]] [[package]]
name = "futures-sink" name = "futures-sink"
version = "0.3.28" version = "0.3.28"
@ -697,6 +708,7 @@ dependencies = [
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-io", "futures-io",
"futures-macro",
"futures-sink", "futures-sink",
"futures-task", "futures-task",
"memchr", "memchr",
@ -736,7 +748,7 @@ checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
"wasi 0.11.0+wasi-snapshot-preview1", "wasi",
] ]
[[package]] [[package]]
@ -840,9 +852,9 @@ dependencies = [
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.3.2" version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
[[package]] [[package]]
name = "hex" name = "hex"
@ -1125,9 +1137,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.147" version = "0.2.148"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
[[package]] [[package]]
name = "libm" name = "libm"
@ -1148,9 +1160,9 @@ dependencies = [
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.4.5" version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
@ -1227,7 +1239,7 @@ checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
dependencies = [ dependencies = [
"libc", "libc",
"log", "log",
"wasi 0.11.0+wasi-snapshot-preview1", "wasi",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -1438,7 +1450,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"proc-macro2-diagnostics", "proc-macro2-diagnostics",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -1478,7 +1490,7 @@ dependencies = [
"pest_meta", "pest_meta",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -1547,7 +1559,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -1588,9 +1600,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.66" version = "1.0.67"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -1603,16 +1615,16 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
"version_check", "version_check",
"yansi 1.0.0-rc.1", "yansi 1.0.0-rc.1",
] ]
[[package]] [[package]]
name = "pure-rust-locales" name = "pure-rust-locales"
version = "0.6.0" version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b856d7d028ebb0011d78eded5bc9185932412f36c12c67930f222d6b407526b" checksum = "ed02a829e62dc2715ceb8afb4f80e298148e1345749ceb369540fe0eb3368432"
[[package]] [[package]]
name = "quote" name = "quote"
@ -1688,7 +1700,7 @@ checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -1779,7 +1791,7 @@ dependencies = [
"serde", "serde",
"state", "state",
"tempfile", "tempfile",
"time 0.3.28", "time",
"tokio", "tokio",
"tokio-stream", "tokio-stream",
"tokio-util", "tokio-util",
@ -1800,7 +1812,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"rocket_http", "rocket_http",
"syn 2.0.31", "syn 2.0.37",
"unicode-xid", "unicode-xid",
] ]
@ -1839,7 +1851,7 @@ dependencies = [
"smallvec", "smallvec",
"stable-pattern", "stable-pattern",
"state", "state",
"time 0.3.28", "time",
"tokio", "tokio",
"uncased", "uncased",
] ]
@ -1850,7 +1862,9 @@ version = "0.1.0"
dependencies = [ dependencies = [
"argon2", "argon2",
"chrono", "chrono",
"chrono-tz",
"env_logger", "env_logger",
"futures",
"ics", "ics",
"log", "log",
"rocket", "rocket",
@ -1869,9 +1883,9 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "0.38.11" version = "0.38.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453" checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f"
dependencies = [ dependencies = [
"bitflags 2.4.0", "bitflags 2.4.0",
"errno", "errno",
@ -1961,14 +1975,14 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.105" version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@ -2039,9 +2053,9 @@ dependencies = [
[[package]] [[package]]
name = "smallvec" name = "smallvec"
version = "1.11.0" version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
[[package]] [[package]]
name = "socket2" name = "socket2"
@ -2055,9 +2069,9 @@ dependencies = [
[[package]] [[package]]
name = "socket2" name = "socket2"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.48.0", "windows-sys 0.48.0",
@ -2141,7 +2155,7 @@ dependencies = [
"sqlx-rt", "sqlx-rt",
"stringprep", "stringprep",
"thiserror", "thiserror",
"time 0.3.28", "time",
"tokio-stream", "tokio-stream",
"url", "url",
"webpki-roots", "webpki-roots",
@ -2225,9 +2239,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.31" version = "2.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2271,9 +2285,9 @@ dependencies = [
[[package]] [[package]]
name = "termcolor" name = "termcolor"
version = "1.2.0" version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
dependencies = [ dependencies = [
"winapi-util", "winapi-util",
] ]
@ -2295,7 +2309,7 @@ checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -2310,20 +2324,9 @@ dependencies = [
[[package]] [[package]]
name = "time" name = "time"
version = "0.1.45" version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi",
]
[[package]]
name = "time"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
dependencies = [ dependencies = [
"deranged", "deranged",
"itoa", "itoa",
@ -2334,15 +2337,15 @@ dependencies = [
[[package]] [[package]]
name = "time-core" name = "time-core"
version = "0.1.1" version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]] [[package]]
name = "time-macros" name = "time-macros"
version = "0.2.14" version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
dependencies = [ dependencies = [
"time-core", "time-core",
] ]
@ -2375,7 +2378,7 @@ dependencies = [
"num_cpus", "num_cpus",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
"socket2 0.5.3", "socket2 0.5.4",
"tokio-macros", "tokio-macros",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -2388,7 +2391,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -2415,9 +2418,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio-util" name = "tokio-util"
version = "0.7.8" version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-core", "futures-core",
@ -2429,9 +2432,9 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.7.6" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
dependencies = [ dependencies = [
"serde", "serde",
"serde_spanned", "serde_spanned",
@ -2450,9 +2453,9 @@ dependencies = [
[[package]] [[package]]
name = "toml_edit" name = "toml_edit"
version = "0.19.14" version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [ dependencies = [
"indexmap 2.0.0", "indexmap 2.0.0",
"serde", "serde",
@ -2487,7 +2490,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
] ]
[[package]] [[package]]
@ -2537,9 +2540,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
[[package]] [[package]]
name = "typenum" name = "typenum"
version = "1.16.0" version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]] [[package]]
name = "ubyte" name = "ubyte"
@ -2624,9 +2627,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.11" version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]] [[package]]
name = "unicode-normalization" name = "unicode-normalization"
@ -2702,9 +2705,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]] [[package]]
name = "walkdir" name = "walkdir"
version = "2.3.3" version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
dependencies = [ dependencies = [
"same-file", "same-file",
"winapi-util", "winapi-util",
@ -2719,12 +2722,6 @@ dependencies = [
"try-lock", "try-lock",
] ]
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.11.0+wasi-snapshot-preview1" version = "0.11.0+wasi-snapshot-preview1"
@ -2752,7 +2749,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -2774,7 +2771,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.31", "syn 2.0.37",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -2832,9 +2829,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]] [[package]]
name = "winapi-util" name = "winapi-util"
version = "0.1.5" version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
dependencies = [ dependencies = [
"winapi", "winapi",
] ]

View File

@ -18,5 +18,7 @@ argon2 = "0.5"
serde = { version = "1.0", features = [ "derive" ]} serde = { version = "1.0", features = [ "derive" ]}
serde_json = "1.0" serde_json = "1.0"
chrono = { version = "0.4", features = ["serde"]} chrono = { version = "0.4", features = ["serde"]}
chrono-tz = "0.8"
tera = { version = "1.18", features = ["date-locale"], optional = true} tera = { version = "1.18", features = ["date-locale"], optional = true}
ics = "0.5" ics = "0.5"
futures = "0.3"

View File

@ -6,8 +6,11 @@
# Notes / Bugfixes # Notes / Bugfixes
## Frontend ## Frontend
- [] support esc to close sidebar - [] support esc to close sidebar
- [] after an hour(?) of inactivity -> show large popup w/ "maybe old data (ignore) (reload page)" (ignore bc maybe use is actively doing something -> don't throw input away!) - [] reload page -> don't throw input away!
## Backend
- [] variable for kiosk mode (needed especially for header)
- [] boat_damage -> Add user_select
# Nice to have # Nice to have
## Frontend ## Frontend

View File

@ -1,33 +1,77 @@
/*document.addEventListener('DOMContentLoaded', function() { import * as d3 from 'd3';
setDistance('.set-distance-js');
});
function setDistance(selector: string) { export interface Data {
const fields = document.querySelectorAll(selector); date: Date;
if(fields) { km: number;
Array.prototype.forEach.call(fields, (field: HTMLInputElement) => { }
if(field.dataset.relation){
const relatedField = <HTMLInputElement>document.getElementById(field.dataset.relation);
if(relatedField) { if(sessionStorage.getItem('userStats')) {
field.addEventListener('input', (e) => { const data = JSON.parse(sessionStorage.getItem('userStats') || '{}') as Data[];
e.preventDefault();
const dataList = <HTMLDataListElement>document.getElementById('destinations'); if(data.length >= 2) {
if(dataList) { const margin = { top: 20, right: 20, bottom: 50, left: 50 };
var option = Array.prototype.find.call(dataList.options, function(option) { const width: number = 960 - margin.left - margin.right;
return option.value === field.value; const height: number = 500 - margin.top - margin.bottom;
});
// Get distance data.forEach((d: Data) => {
const distance = option.getAttribute('distance'); d.date = <Date> new Date(d.date)
if(distance) relatedField.value = distance; d.km = +d.km;
}
});
}
}
}); });
const x = d3.scaleTime()
.domain(<[Date, Date]>d3.extent(data, (d: Data) => d.date))
.range([0, width]);
const y = d3.scaleLinear()
.domain([0, Number(d3.max(data, (d: Data) => d.km))])
.range([height, 0]);
const line = d3.line<Data>()
.x((d: Data) => x(d.date))
.y((d: Data) => y(d.km));
const svg = d3.select('#container')
.append('svg')
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom)
.call(responsivefy)
.append('g')
.attr('transform', `translate(${margin.left},${margin.top})`);
svg.append('path')
.data([data])
.attr('class', 'line')
.attr('d', line);
svg.append('g')
.attr('transform', `translate(0,${height})`)
.call(d3.axisBottom(x));
svg.append('g')
.call(d3.axisLeft(y));
}
}
function responsivefy(svg: any) {
const container = d3.select(svg.node().parentNode);
const width = parseInt(svg.style('width'), 10);
const height = parseInt(svg.style('height'), 10);
const aspect = width / height;
svg.attr('viewBox', `0 0 ${width} ${height}`)
.attr('preserveAspectRatio', 'xMinYMid')
.call(resize);
d3.select(window).on(
'resize.' + container.attr('id'),
resize
);
function resize() {
const w = parseInt(container.style('width'));
svg.attr('width', w);
svg.attr('height', Math.round(w / aspect));
} }
} }
*/
export {}

View File

@ -1,14 +1,198 @@
import Choices from "choices.js";
import { Sidebar } from './js/sidebar'; import { Sidebar } from './js/sidebar';
import './scss/app.scss' import './scss/app.scss'
export interface choiceMap {
[details: string]: Choices;
}
let choiceObjects: choiceMap = {};
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
initSearch(); initSearch();
initSidebar(); initSidebar();
initToggle(); initToggle();
replaceStrings(); replaceStrings();
initChoices();
initBoatActions();
selectBoatChange();
addRelationMagic(<HTMLElement>document.querySelector('body'));
reloadPage();
setCurrentdate(<HTMLInputElement>document.querySelector('#departure'));
}); });
function setCurrentdate(input: HTMLInputElement) {
if(input) {
input.value = (new Date().toJSON().slice(0,16));
}
}
function selectBoatChange() {
const boatSelect = <HTMLSelectElement>document.querySelector('#boat_id');
if(boatSelect) {
const boatChoice = new Choices(boatSelect, {
loadingText: 'Wird geladen...',
noResultsText: 'Keine Ergebnisse gefunden',
noChoicesText: 'Keine Ergebnisse gefunden',
itemSelectText: 'Zum Auswählen klicken',
callbackOnCreateTemplates: function () {
return {
option: ({ label, value, customProperties, active, disabled, }: any) => {
const opt: HTMLOptionElement = Choices.defaults.templates.option.call(
this,
{ label, value, customProperties, active, disabled }
);
// We get the original <option> from choicejs
const originalOption: HTMLOptionElement = this._presetOptions.filter(
(option: HTMLOptionElement) => option.value === value
)[0];
const rowers = Number(originalOption.dataset.amount_seats) - 1;
const isShipmasterSteering = originalOption.dataset.default_shipmaster_only_steering;
setMaxAmountRowers(rowers,isShipmasterSteering);
return opt;
}
}
}
} as any);
choiceObjects[boatSelect.id] = boatChoice;
}
const shipmasterSelect = <HTMLSelectElement>document.querySelector('#shipmaster');
if(shipmasterSelect) {
const shipmasterChoice = new Choices(shipmasterSelect, {
loadingText: 'Wird geladen...',
noResultsText: 'Keine Ergebnisse gefunden',
noChoicesText: 'Keine Ergebnisse gefunden',
itemSelectText: 'Zum Auswählen klicken',
});
choiceObjects[shipmasterSelect.id] = shipmasterChoice;
}
}
function reloadPage() {
let pageTitle = document.title;
let attentionMessage = 'Riemen- und Dollenbruch';
document.addEventListener('visibilitychange', function() {
let isPageActive = !document.hidden;
if(!isPageActive){
document.title = attentionMessage;
} else {
document.title = pageTitle;
location.reload();
}
});
}
function setMaxAmountRowers(rowers: number, isShipmasterSteering='false') {
if(choiceObjects['newrower']) {
let curSelection = choiceObjects['newrower'].getValue(true);
let amount_to_delete = (<any>curSelection).length - rowers;
if (amount_to_delete > 0){
let to_delete = (<any>curSelection).slice(-amount_to_delete);
for (let del of to_delete) {
choiceObjects['newrower'].removeActiveItemsByValue(del);
}
}
let input = <HTMLElement>document.querySelector('#newrower');
if(input) {
choiceObjects['newrower'].config.maxItemCount = rowers;
if (rowers === 0) {
choiceObjects['newrower'].disable()
input.parentElement?.parentElement?.parentElement?.classList.add('hidden');
input.parentElement?.parentElement?.parentElement?.classList.add('md:block');
input.parentElement?.parentElement?.parentElement?.classList.add('opacity-50');
} else{
choiceObjects['newrower'].enable();
input.parentElement?.parentElement?.parentElement?.classList.remove('hidden');
input.parentElement?.parentElement?.parentElement?.classList.remove('md:block');
input.parentElement?.parentElement?.parentElement?.classList.remove('opacity-50');
}
}
let only_steering = <HTMLSelectElement>document.querySelector('#shipmaster_only_steering');
if(only_steering) {
if(isShipmasterSteering == 'true') {
only_steering.removeAttribute('disabled');
only_steering.setAttribute('checked', 'true');
only_steering.parentElement?.parentElement?.parentElement?.classList.remove('hidden');
only_steering.parentElement?.parentElement?.parentElement?.classList.remove('md:block');
only_steering.parentElement?.parentElement?.parentElement?.classList.remove('opacity-50');
} else {
only_steering.setAttribute('disabled', 'disabled');
only_steering.removeAttribute('checked');
only_steering.parentElement?.parentElement?.parentElement?.classList.add('hidden');
only_steering.parentElement?.parentElement?.parentElement?.classList.add('md:block');
only_steering.parentElement?.parentElement?.parentElement?.classList.add('opacity-50');
}
}
}
}
function initBoatActions() {
const boatSelects = document.querySelectorAll('.boats-js[data-onclick="true"]');
if(boatSelects) {
Array.prototype.forEach.call(boatSelects, (select: HTMLInputElement) => {
select.addEventListener('click', function() {
if(select.dataset.seats) {
const rowers = Number(select.dataset.seats) - 1;
const isShipmasterSteering = select.dataset.default_shipmaster_only_steering;
setMaxAmountRowers(rowers, isShipmasterSteering);
if (select.dataset.id) {
choiceObjects['boat_id'].setChoiceByValue(select.dataset.id);
}
window.scrollTo(0, 0);
const inputElement = document.getElementById("departure") as HTMLInputElement;
const now = new Date();
const formattedDateTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}T${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;
inputElement.value = formattedDateTime;
}
});
});
}
}
function initChoices() {
const selects = document.querySelectorAll('select[data-init="true"]');
if(selects) {
Array.prototype.forEach.call(selects, (select: HTMLInputElement) => {
initNewChoice(select);
});
}
}
function initNewChoice(select: HTMLInputElement) {
const choice = new Choices(select, {
removeItemButton: true,
loadingText: 'Wird geladen...',
noResultsText: 'Keine Ergebnisse gefunden',
noChoicesText: 'Keine Ergebnisse gefunden',
itemSelectText: 'Zum Auswählen klicken',
placeholderValue: 'Ruderer auswählen',
maxItemCount: -1, //TODO
maxItemText: (maxItemCount) => {
return `Nur ${maxItemCount} Ruderer können hinzugefügt werden`;
},
});
choiceObjects[select.id] = choice;
}
function initToggle() { function initToggle() {
// get filter btns & set object sessionStorage // get filter btns & set object sessionStorage
const btns = <NodeListOf<HTMLButtonElement>>document.querySelectorAll('.filter-trips-js'); const btns = <NodeListOf<HTMLButtonElement>>document.querySelectorAll('.filter-trips-js');
@ -141,7 +325,7 @@ function initSearch() {
} }
function filterElements(input: string) { function filterElements(input: string) {
const elements = document.querySelectorAll('form[data-filterable="true"]'); const elements = document.querySelectorAll('div[data-filterable="true"]');
let resultWrapper = <HTMLElement>document.querySelector('#filter-result-js'), let resultWrapper = <HTMLElement>document.querySelector('#filter-result-js'),
amountShownElements = 0; amountShownElements = 0;
@ -192,6 +376,13 @@ function initTripSidebar(triggerElement: HTMLElement) {
let bodyElement = <HTMLElement>body.cloneNode(true); let bodyElement = <HTMLElement>body.cloneNode(true);
let bodyContainerElement = <HTMLElement>sidebarElement.querySelector('.body-js'); let bodyContainerElement = <HTMLElement>sidebarElement.querySelector('.body-js');
const selects = bodyElement.querySelectorAll('select[multiple]');
if(selects) {
Array.prototype.forEach.call(selects, (select: HTMLInputElement) => {
initNewChoice(select);
});
}
/* Quickfix duplicate ids checkboxes */ /* Quickfix duplicate ids checkboxes */
const checkboxes = <NodeListOf<HTMLElement>>bodyElement.querySelectorAll('input[type="checkbox"]'); const checkboxes = <NodeListOf<HTMLElement>>bodyElement.querySelectorAll('input[type="checkbox"]');
@ -235,15 +426,15 @@ function initTripSidebar(triggerElement: HTMLElement) {
function addRelationMagic(bodyElement: HTMLElement) { function addRelationMagic(bodyElement: HTMLElement) {
const fields = bodyElement.querySelectorAll('.set-distance-js'); const fields = bodyElement.querySelectorAll('.set-distance-js');
if(fields) { if(fields) {
Array.prototype.forEach.call(fields, (field: HTMLInputElement) => { Array.prototype.forEach.call(fields, (field: HTMLInputElement) => {
if(field.dataset.relation){ if(field.dataset.relation){
const relatedField = <HTMLInputElement>bodyElement.querySelector('#' + field.dataset.relation); const relatedField = <HTMLInputElement>bodyElement.querySelector('#' + field.dataset.relation);
if(relatedField) { if(relatedField) {
field.addEventListener('input', (e) => { field.addEventListener('input', (e) => {
e.preventDefault(); e.preventDefault();
const dataList = <HTMLDataListElement>document.getElementById('destinations'); const dataList = <HTMLDataListElement>document.querySelector('#destinations');
if(dataList) { if(dataList) {
var option = Array.prototype.find.call(dataList.options, function(option) { var option = Array.prototype.find.call(dataList.options, function(option) {
return option.value === field.value; return option.value === field.value;

View File

@ -9,12 +9,17 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"devDependencies": { "devDependencies": {
"@types/d3": "^7.4.1",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"postcss": "^8.4.21", "postcss": "^8.4.21",
"sass": "^1.60.0", "sass": "^1.60.0",
"tailwindcss": "^3.3.1", "tailwindcss": "^3.3.1",
"typescript": "^4.9.3", "typescript": "^4.9.5",
"vite": "^4.2.0", "vite": "^4.2.0",
"vite-plugin-static-copy": "^0.13.1" "vite-plugin-static-copy": "^0.13.1"
},
"dependencies": {
"choices.js": "^10.2.0",
"d3": "^7.8.5"
} }
} }

View File

@ -9,3 +9,4 @@
@import 'components/input'; @import 'components/input';
@import 'components/alert'; @import 'components/alert';
@import 'components/status'; @import 'components/status';
@import 'components/chart';

View File

@ -0,0 +1,3 @@
.line {
@apply fill-none stroke-2 stroke-primary-600;
}

View File

@ -11,3 +11,323 @@ select {
-webkit-appearance: none; -webkit-appearance: none;
appearance: none; appearance: none;
} }
/* ===============================
= Choices =
=============================== */
.choices {
position: relative;
overflow: hidden;
margin-bottom: 24px;
font-size: 16px;
}
.choices:focus {
outline: none;
}
.choices:last-child {
margin-bottom: 0;
}
.choices.is-open {
overflow: visible;
}
.choices.is-disabled .choices__inner,
.choices.is-disabled .choices__input {
background-color: #eaeaea;
cursor: not-allowed;
-webkit-user-select: none;
user-select: none;
}
.choices.is-disabled .choices__item {
cursor: not-allowed;
}
.choices [hidden] {
display: none !important;
}
.choices[data-type*=select-one] {
cursor: pointer;
}
.choices[data-type*=select-one] .choices__input {
display: block;
width: 100%;
padding: 10px;
@apply border-0 ring-1 ring-inset ring-gray-300;
background-color: #fff;
margin: 0;
}
.choices[data-type*=select-one] .choices__button {
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==");
padding: 0;
background-size: 8px;
position: absolute;
top: 50%;
right: 0;
margin-top: -10px;
margin-right: 25px;
height: 20px;
width: 20px;
@apply rounded-md;
opacity: 0.25;
}
.choices[data-type*=select-one] .choices__button:hover, .choices[data-type*=select-one] .choices__button:focus {
opacity: 1;
}
.choices[data-type*=select-one] .choices__button:focus {
box-shadow: 0 0 0 2px #00bcd4;
}
.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button {
display: none;
}
.choices[data-type*=select-one]::after {
content: "";
height: 0;
width: 0;
border-style: solid;
border-color: #333 transparent transparent transparent;
border-width: 5px;
position: absolute;
right: 11.5px;
top: 50%;
margin-top: -2.5px;
pointer-events: none;
}
.choices[data-type*=select-one].is-open::after {
@apply border-0 ring-1 ring-inset ring-gray-300;
margin-top: -7.5px;
}
.choices[data-type*=select-one][dir=rtl]::after {
left: 11.5px;
right: auto;
}
.choices[data-type*=select-one][dir=rtl] .choices__button {
right: auto;
left: 0;
margin-left: 25px;
margin-right: 0;
}
.choices[data-type*=select-multiple] .choices__inner,
.choices[data-type*=text] .choices__inner {
cursor: text;
}
.choices[data-type*=select-multiple] .choices__button,
.choices[data-type*=text] .choices__button {
position: relative;
display: inline-block;
margin-top: 0;
margin-right: -4px;
margin-bottom: 0;
margin-left: 8px;
padding-left: 16px;
border-left: 1px solid #008fa1;
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==");
background-size: 8px;
width: 8px;
line-height: 1;
opacity: 0.75;
border-radius: 0;
}
.choices[data-type*=select-multiple] .choices__button:hover, .choices[data-type*=select-multiple] .choices__button:focus,
.choices[data-type*=text] .choices__button:hover,
.choices[data-type*=text] .choices__button:focus {
opacity: 1;
}
.choices__inner {
@apply input rounded-md;
}
.is-focused .choices__inner, .is-open .choices__inner {
@apply border-0 ring-1 ring-inset ring-gray-300;
}
.is-open .choices__inner {
border-radius: 0;
}
.is-flipped.is-open .choices__inner {
border-radius: 0;
}
.choices__list {
margin: 0;
padding-left: 0;
list-style: none;
}
.choices__list--single {
display: inline-block;
width: 100%;
}
[dir=rtl] .choices__list--single {
padding-right: 4px;
padding-left: 16px;
}
.choices__list--single .choices__item {
width: 100%;
}
.choices__list--multiple {
display: inline;
}
.choices__list--multiple .choices__item {
display: inline-block;
vertical-align: middle;
@apply rounded-md bg-primary-600;
padding: 0px 10px;
font-size: 12px;
font-weight: 500;
margin-right: 3.75px;
color: #fff;
word-break: break-all;
box-sizing: border-box;
}
.choices__list--multiple .choices__item[data-deletable] {
padding-right: 5px;
}
[dir=rtl] .choices__list--multiple .choices__item {
margin-right: 0;
margin-left: 3.75px;
}
.choices__list--multiple .choices__item.is-highlighted {
@apply bg-primary-900;
}
.is-disabled .choices__list--multiple .choices__item {
@apply bg-gray-600;
}
.choices__list--dropdown, .choices__list[aria-expanded] {
visibility: hidden;
z-index: 1;
position: absolute;
width: 100%;
background-color: #fff;
@apply border;
top: 100%;
margin-top: -1px;
border-bottom-left-radius: 2.5px;
border-bottom-right-radius: 2.5px;
overflow: hidden;
word-break: break-all;
will-change: visibility;
}
.is-active.choices__list--dropdown, .is-active.choices__list[aria-expanded] {
visibility: visible;
}
.is-open .choices__list--dropdown, .is-open .choices__list[aria-expanded] {
@apply border-0 ring-1 ring-inset ring-gray-300;
}
.is-flipped .choices__list--dropdown, .is-flipped .choices__list[aria-expanded] {
top: auto;
bottom: 100%;
margin-top: 0;
margin-bottom: -1px;
border-radius: 0.25rem 0.25rem 0 0;
}
.choices__list--dropdown .choices__list, .choices__list[aria-expanded] .choices__list {
position: relative;
max-height: 300px;
overflow: auto;
-webkit-overflow-scrolling: touch;
will-change: scroll-position;
}
.choices__list--dropdown .choices__item, .choices__list[aria-expanded] .choices__item {
position: relative;
padding: 10px;
font-size: 14px;
}
[dir=rtl] .choices__list--dropdown .choices__item, [dir=rtl] .choices__list[aria-expanded] .choices__item {
text-align: right;
}
@media (min-width: 640px) {
.choices__list--dropdown .choices__item--selectable, .choices__list[aria-expanded] .choices__item--selectable {
padding-right: 100px;
}
.choices__list--dropdown .choices__item--selectable::after, .choices__list[aria-expanded] .choices__item--selectable::after {
content: attr(data-select-text);
font-size: 12px;
opacity: 0;
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
}
[dir=rtl] .choices__list--dropdown .choices__item--selectable, [dir=rtl] .choices__list[aria-expanded] .choices__item--selectable {
text-align: right;
padding-left: 100px;
padding-right: 10px;
}
[dir=rtl] .choices__list--dropdown .choices__item--selectable::after, [dir=rtl] .choices__list[aria-expanded] .choices__item--selectable::after {
right: auto;
left: 10px;
}
}
.choices__list--dropdown .choices__item--selectable.is-highlighted, .choices__list[aria-expanded] .choices__item--selectable.is-highlighted {
@apply bg-gray-100;
}
.choices__list--dropdown .choices__item--selectable.is-highlighted::after, .choices__list[aria-expanded] .choices__item--selectable.is-highlighted::after {
opacity: 0.5;
}
.choices__item {
cursor: default;
}
.choices__item--selectable {
cursor: pointer;
}
.choices__item--disabled {
cursor: not-allowed;
-webkit-user-select: none;
user-select: none;
opacity: 0.5;
}
.choices__heading {
font-weight: 600;
font-size: 12px;
padding: 10px;
@apply text-gray-400
}
.choices__button {
text-indent: -9999px;
-webkit-appearance: none;
appearance: none;
border: 0;
background-color: transparent;
background-repeat: no-repeat;
background-position: center;
cursor: pointer;
}
.choices__button:focus {
outline: none;
}
.choices__input {
display: inline-block;
vertical-align: baseline;
font-size: 14px;
border: 0;
border-radius: 0;
max-width: 100%;
}
.choices__input:focus {
outline: 0;
}
.choices__input::-webkit-search-decoration, .choices__input::-webkit-search-cancel-button, .choices__input::-webkit-search-results-button, .choices__input::-webkit-search-results-decoration {
display: none;
}
.choices__input::-ms-clear, .choices__input::-ms-reveal {
display: none;
width: 0;
height: 0;
}
[dir=rtl] .choices__input {
padding-right: 2px;
padding-left: 0;
}
.choices__placeholder {
opacity: 0.5;
}
/* ===== End of Choices ====== */

View File

@ -1,225 +0,0 @@
var style = document.createElement('style');
style.setAttribute("id","multiselect_dropdown_styles");
style.innerHTML = `
.multiselect-dropdown{
display: inline-block;
border-radius: 4px;
border: solid 1px #ced4da;
background-color: white;
position: relative;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right .75rem center;
background-size: 16px 12px;
padding: 0.375rem 0.5rem;
line-height: 1.5rem;
}
.multiselect-dropdown span.optext, .multiselect-dropdown span.placeholder{
margin-right:0.5em;
margin-bottom:2px;
padding:1px 0;
border-radius: 4px;
display:inline-block;
}
.multiselect-dropdown span.optext{
background-color: rgba(226, 232, 240, 0.8);
padding:1px 0.75em;
}
.multiselect-dropdown span.optext .optdel {
float: right;
margin: 0 -6px 1px 5px;
font-size: 1em;
cursor: pointer;
}
.multiselect-dropdown span.optext .optdel:hover { color:#f43f5e;}
.multiselect-dropdown span.placeholder{
color:#ced4da;
}
.multiselect-dropdown-list-wrapper{
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px;
z-index: 100;
padding:2px;
border-radius: .375rem;
border: solid 1px #ced4da;
display: none;
margin: -1px;
position: absolute;
top:0;
left: 0;
right: 0;
background: white;
}
.multiselect-dropdown-list-wrapper .multiselect-dropdown-search{
margin-bottom:5px;
padding: 0.375rem 0.5rem;
line-height: 1.5rem;
}
.multiselect-dropdown-list{
padding:2px;
height: 15rem;
overflow-y:auto;
overflow-x: hidden;
}
.multiselect-dropdown-list::-webkit-scrollbar {
width: 6px;
}
.multiselect-dropdown-list::-webkit-scrollbar-thumb {
background-color: rgba(226, 232, 240, 0.8);
border-radius: .375rem;
}
.multiselect-dropdown-list div{
padding: 5px;
}
.multiselect-dropdown-list input{
height: 1.15em;
width: 1.15em;
margin-right: 0.35em;
}
.multiselect-dropdown-list div.checked{
}
.multiselect-dropdown-list div:hover{
background-color: rgba(226, 232, 240, 0.8);
}
.multiselect-dropdown span.maxselected {width:100%;}
.multiselect-dropdown-all-selector {border-bottom:solid 1px #999;}
`;
document.head.appendChild(style);
function MultiselectDropdown(options){
var config={
search:true,
height:'15rem',
placeholder:'Auswählen',
txtSelected:'ausgewählt',
txtAll:'Alle',
txtRemove: 'Entfernen',
txtSearch:'Suchen',
...options
};
function newEl(tag,attrs){
var e=document.createElement(tag);
if(attrs!==undefined) Object.keys(attrs).forEach(k=>{
if(k==='class') { Array.isArray(attrs[k]) ? attrs[k].forEach(o=>o!==''?e.classList.add(o):0) : (attrs[k]!==''?e.classList.add(attrs[k]):0)}
else if(k==='style'){
Object.keys(attrs[k]).forEach(ks=>{
e.style[ks]=attrs[k][ks];
});
}
else if(k==='text'){attrs[k]===''?e.innerHTML='&nbsp;':e.innerText=attrs[k]}
else e[k]=attrs[k];
});
return e;
}
document.querySelectorAll("select[multiple]").forEach((el,k)=>{
var div=newEl('div',{class:'multiselect-dropdown',style:{width:config.style?.width??el.clientWidth+'px',padding:config.style?.padding??''}});
el.style.display='none';
el.parentNode.insertBefore(div,el.nextSibling);
var listWrap=newEl('div',{class:'multiselect-dropdown-list-wrapper'});
var list=newEl('div',{class:'multiselect-dropdown-list',style:{height:config.height}});
var search=newEl('input',{class:['multiselect-dropdown-search'].concat([config.searchInput?.class??'form-control']),style:{width:'100%',display:el.attributes['multiselect-search']?.value==='true'?'block':'none'},placeholder:config.txtSearch});
listWrap.appendChild(search);
div.appendChild(listWrap);
listWrap.appendChild(list);
el.loadOptions=()=>{
list.innerHTML='';
if(el.attributes['multiselect-select-all']?.value=='true'){
var op=newEl('div',{class:'multiselect-dropdown-all-selector'})
var ic=newEl('input',{type:'checkbox'});
op.appendChild(ic);
op.appendChild(newEl('label',{text:config.txtAll}));
op.addEventListener('click',()=>{
op.classList.toggle('checked');
op.querySelector("input").checked=!op.querySelector("input").checked;
var ch=op.querySelector("input").checked;
list.querySelectorAll(":scope > div:not(.multiselect-dropdown-all-selector)")
.forEach(i=>{if(i.style.display!=='none'){i.querySelector("input").checked=ch; i.optEl.selected=ch}});
el.dispatchEvent(new Event('change'));
});
ic.addEventListener('click',(ev)=>{
ic.checked=!ic.checked;
});
el.addEventListener('change', (ev)=>{
let itms=Array.from(list.querySelectorAll(":scope > div:not(.multiselect-dropdown-all-selector)")).filter(e=>e.style.display!=='none')
let existsNotSelected=itms.find(i=>!i.querySelector("input").checked);
if(ic.checked && existsNotSelected) ic.checked=false;
else if(ic.checked==false && existsNotSelected===undefined) ic.checked=true;
});
list.appendChild(op);
}
Array.from(el.options).map(o=>{
var op=newEl('div',{class:o.selected?'checked':'',optEl:o})
var ic=newEl('input',{type:'checkbox',checked:o.selected});
op.appendChild(ic);
op.appendChild(newEl('label',{text:o.text}));
op.addEventListener('click',()=>{
op.classList.toggle('checked');
op.querySelector("input").checked=!op.querySelector("input").checked;
op.optEl.selected=!!!op.optEl.selected;
el.dispatchEvent(new Event('change'));
});
ic.addEventListener('click',(ev)=>{
ic.checked=!ic.checked;
});
o.listitemEl=op;
list.appendChild(op);
});
div.listEl=listWrap;
div.refresh=()=>{
div.querySelectorAll('span.optext, span.placeholder').forEach(t=>div.removeChild(t));
var sels=Array.from(el.selectedOptions);
if(sels.length>(el.attributes['multiselect-max-items']?.value??5)){
div.appendChild(newEl('span',{class:['optext','maxselected'],text:sels.length+' '+config.txtSelected}));
}
else{
sels.map(x=>{
var c=newEl('span',{class:'optext',text:x.text, srcOption: x});
if((el.attributes['multiselect-hide-x']?.value !== 'true'))
c.appendChild(newEl('span',{class:'optdel',text:'x',title:config.txtRemove, onclick:(ev)=>{c.srcOption.listitemEl.dispatchEvent(new Event('click'));div.refresh();ev.stopPropagation();}}));
div.appendChild(c);
});
}
if(0==el.selectedOptions.length) div.appendChild(newEl('span',{class:'placeholder',text:el.attributes['placeholder']?.value??config.placeholder}));
};
div.refresh();
}
el.loadOptions();
search.addEventListener('input',()=>{
list.querySelectorAll(":scope div:not(.multiselect-dropdown-all-selector)").forEach(d=>{
var txt=d.querySelector("label").innerText.toUpperCase();
d.style.display=txt.includes(search.value.toUpperCase())?'block':'none';
});
});
div.addEventListener('click',()=>{
div.listEl.style.display='block';
search.focus();
search.select();
});
document.addEventListener('click', function(event) {
if (!div.contains(event.target)) {
listWrap.style.display='none';
div.refresh();
}
});
});
}
window.addEventListener('load',()=>{
MultiselectDropdown(window.MultiselectDropdownOptions);
});

View File

@ -1,4 +1,4 @@
INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('admin', false, true, false, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$4P4NCw4Ukhv80/eQYTsarHhnw61JuL1KMx/L9dm82YM'); INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('admin', true, true, false, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$4P4NCw4Ukhv80/eQYTsarHhnw61JuL1KMx/L9dm82YM');
INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('rower', false, false, false, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$jWKzDmI0jqT2dqINFt6/1NjVF4Dx15n07PL1ZMBmFsY'); INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('rower', false, false, false, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$jWKzDmI0jqT2dqINFt6/1NjVF4Dx15n07PL1ZMBmFsY');
INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('guest', false, false, true, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$GF6gizbI79Bh0zA9its8S0gram956v+YIV8w8VpwJnQ'); INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('guest', false, false, true, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$GF6gizbI79Bh0zA9its8S0gram956v+YIV8w8VpwJnQ');
INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('cox', true, false, false, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$lnWzHx3DdqS9GQyWYel82kIotZuK2wk9EyfhPFtjNzs'); INSERT INTO "user" (name, is_cox, is_admin, is_guest, pw) VALUES('cox', true, false, false, '$argon2id$v=19$m=19456,t=2,p=1$dS/X5/sPEKTj4Rzs/CuvzQ$lnWzHx3DdqS9GQyWYel82kIotZuK2wk9EyfhPFtjNzs');
@ -23,11 +23,12 @@ INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Joe', 2, 1);
INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Kaputtes Boot :-(', 7, 1); INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Kaputtes Boot :-(', 7, 1);
INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Sehr kaputtes Boot :-((', 7, 1); INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Sehr kaputtes Boot :-((', 7, 1);
INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Ottensheim Boot', 7, 2); INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Ottensheim Boot', 7, 2);
INSERT INTO "boat" (name, amount_seats, location_id, owner) VALUES ('second_private_boat_from_rower', 1, 1, 2);
INSERT INTO "logbook_type" (name) VALUES ('Wanderfahrt'); INSERT INTO "logbook_type" (name) VALUES ('Wanderfahrt');
INSERT INTO "logbook_type" (name) VALUES ('Regatta'); INSERT INTO "logbook_type" (name) VALUES ('Regatta');
INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure) VALUES (2, 2, false, '2142-12-24 10:00'); INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure) VALUES (2, 2, false, '1142-12-24 10:00');
INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km) VALUES (1, 4, false, '2141-12-24 10:00', '2141-12-24 15:00', 'Ottensheim', 25); INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km) VALUES (1, 4, false, '1141-12-24 10:00', '2141-12-24 15:00', 'Ottensheim', 25);
INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km) VALUES (3, 4, false, '2142-12-24 10:00', '2142-12-24 11:30', 'Ottensheim + Regattastrecke', 29); INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km) VALUES (3, 4, false, '1142-12-24 10:00', '2142-12-24 11:30', 'Ottensheim + Regattastrecke', 29);
INSERT INTO "rower" (logbook_id, rower_id) VALUES(3,3); INSERT INTO "rower" (logbook_id, rower_id) VALUES(3,3);
INSERT INTO "boat_damage" (boat_id, desc, user_id_created, created_at) VALUES(4,'Dolle bei Position 2 fehlt', 5, '2142-12-24 15:02'); INSERT INTO "boat_damage" (boat_id, desc, user_id_created, created_at) VALUES(4,'Dolle bei Position 2 fehlt', 5, '2142-12-24 15:02');
INSERT INTO "boat_damage" (boat_id, desc, user_id_created, created_at, lock_boat) VALUES(5, 'TOHT', 5, '2142-12-24 15:02', 1); INSERT INTO "boat_damage" (boat_id, desc, user_id_created, created_at, lock_boat) VALUES(5, 'TOHT', 5, '2142-12-24 15:02', 1);

View File

@ -2,6 +2,8 @@ use rocket::serde::{Deserialize, Serialize};
use rocket::FromForm; use rocket::FromForm;
use sqlx::{FromRow, SqlitePool}; use sqlx::{FromRow, SqlitePool};
use super::user::User;
#[derive(FromRow, Debug, Serialize, Deserialize)] #[derive(FromRow, Debug, Serialize, Deserialize)]
pub struct Boat { pub struct Boat {
pub id: i64, pub id: i64,
@ -76,6 +78,18 @@ impl Boat {
.ok() .ok()
} }
pub async fn shipmaster_allowed(&self, user: &User) -> bool {
if let Some(owner_id) = self.owner {
return owner_id == user.id;
}
if self.amount_seats == 1 {
return true;
}
user.is_cox
}
pub async fn is_locked(&self, db: &SqlitePool) -> bool { pub async fn is_locked(&self, db: &SqlitePool) -> bool {
sqlx::query!("SELECT * FROM boat_damage WHERE boat_id=? AND lock_boat=true AND user_id_verified is null", self.id).fetch_optional(db).await.unwrap().is_some() sqlx::query!("SELECT * FROM boat_damage WHERE boat_id=? AND lock_boat=true AND user_id_verified is null", self.id).fetch_optional(db).await.unwrap().is_some()
} }
@ -109,7 +123,7 @@ impl Boat {
damage, damage,
on_water: boat.on_water(db).await, on_water: boat.on_water(db).await,
boat, boat,
}) });
} }
res res
} }
@ -130,6 +144,44 @@ ORDER BY amount_seats DESC
Self::boats_to_details(db, boats).await Self::boats_to_details(db, boats).await
} }
pub async fn for_user(db: &SqlitePool, user: &User) -> Vec<BoatWithDetails> {
if user.is_admin {
return Self::all(db).await;
}
let boats;
if user.is_cox {
boats = sqlx::query_as!(
Boat,
"
SELECT id, name, amount_seats, location_id, owner, year_built, boatbuilder, default_shipmaster_only_steering, skull, external
FROM boat
WHERE owner is null or owner = ?
ORDER BY amount_seats DESC
",
user.id
)
.fetch_all(db)
.await
.unwrap(); //TODO: fixme
} else {
boats = sqlx::query_as!(
Boat,
"
SELECT id, name, amount_seats, location_id, owner, year_built, boatbuilder, default_shipmaster_only_steering, skull, external
FROM boat
WHERE owner = ? OR (owner is null and amount_seats = 1)
ORDER BY amount_seats DESC
",
user.id
)
.fetch_all(db)
.await
.unwrap(); //TODO: fixme
}
Self::boats_to_details(db, boats).await
}
pub async fn all_at_location(db: &SqlitePool, location: String) -> Vec<BoatWithDetails> { pub async fn all_at_location(db: &SqlitePool, location: String) -> Vec<BoatWithDetails> {
let boats = sqlx::query_as!( let boats = sqlx::query_as!(
Boat, Boat,

View File

@ -101,7 +101,7 @@ ORDER BY created_at DESC
user_fixed, user_fixed,
user_verified, user_verified,
boat_damage, boat_damage,
}) });
} }
res res
} }

View File

@ -1,4 +1,5 @@
use chrono::{Local, NaiveDateTime, TimeZone}; use chrono::{Local, NaiveDateTime, TimeZone};
use chrono_tz::Europe::Vienna;
use rocket::FromForm; use rocket::FromForm;
use serde::Serialize; use serde::Serialize;
use sqlx::{FromRow, Sqlite, SqlitePool, Transaction}; use sqlx::{FromRow, Sqlite, SqlitePool, Transaction};
@ -26,7 +27,7 @@ impl PartialEq for Logbook {
} }
} }
#[derive(FromForm)] #[derive(FromForm, Debug)]
pub struct LogToAdd { pub struct LogToAdd {
pub boat_id: i32, pub boat_id: i32,
pub shipmaster: i64, pub shipmaster: i64,
@ -37,27 +38,25 @@ pub struct LogToAdd {
pub distance_in_km: Option<i64>, pub distance_in_km: Option<i64>,
pub comments: Option<String>, pub comments: Option<String>,
pub logtype: Option<i64>, pub logtype: Option<i64>,
pub rower: Vec<i64>, pub rowers: Vec<i64>,
} }
#[derive(FromForm)] #[derive(FromForm, Debug)]
pub struct LogToFinalize { pub struct LogToFinalize {
pub destination: String, pub destination: String,
pub distance_in_km: i64, pub distance_in_km: i64,
pub comments: Option<String>, pub comments: Option<String>,
pub logtype: Option<i64>, pub logtype: Option<i64>,
pub rower: Vec<i64>, pub rowers: Vec<i64>,
} }
#[derive(Serialize)] #[derive(Serialize, Debug)]
pub struct LogbookWithBoatAndRowers { pub struct LogbookWithBoatAndRowers {
#[serde(flatten)] #[serde(flatten)]
pub logbook: Logbook, pub logbook: Logbook,
pub boat: Boat, pub boat: Boat,
pub shipmaster_user: User, pub shipmaster_user: User,
pub rowers: Vec<User>, pub rowers: Vec<User>,
pub departure_timestamp: i64,
pub arrival_timestamp: Option<i64>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
@ -65,10 +64,19 @@ pub enum LogbookUpdateError {
NotYourEntry, NotYourEntry,
TooManyRowers(usize, usize), TooManyRowers(usize, usize),
RowerCreateError(i64, String), RowerCreateError(i64, String),
ArrivalNotAfterDeparture,
}
#[derive(Debug, PartialEq)]
pub enum LogbookDeleteError {
NotYourEntry,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum LogbookCreateError { pub enum LogbookCreateError {
ArrivalSetButNoDestination,
UserNotAllowedToUseBoat,
ArrivalSetButNoDistance,
BoatAlreadyOnWater, BoatAlreadyOnWater,
BoatLocked, BoatLocked,
BoatNotFound, BoatNotFound,
@ -76,6 +84,8 @@ pub enum LogbookCreateError {
ShipmasterAlreadyOnWater, ShipmasterAlreadyOnWater,
RowerAlreadyOnWater(User), RowerAlreadyOnWater(User),
RowerCreateError(i64, String), RowerCreateError(i64, String),
SamePersonShipmasterAndRower,
ArrivalNotAfterDeparture,
} }
impl Logbook { impl Logbook {
@ -97,7 +107,7 @@ impl Logbook {
pub async fn on_water(db: &SqlitePool) -> Vec<LogbookWithBoatAndRowers> { pub async fn on_water(db: &SqlitePool) -> Vec<LogbookWithBoatAndRowers> {
let rows = sqlx::query!( let rows = sqlx::query!(
" "
SELECT id, boat_id, shipmaster, shipmaster_only_steering, strftime('%Y-%m-%d %H:%M', departure) as departure, arrival, destination, distance_in_km, comments, logtype SELECT id, boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km, comments, logtype
FROM logbook FROM logbook
WHERE arrival is null WHERE arrival is null
ORDER BY departure DESC ORDER BY departure DESC
@ -114,8 +124,7 @@ ORDER BY departure DESC
boat_id: row.boat_id, boat_id: row.boat_id,
shipmaster: row.shipmaster, shipmaster: row.shipmaster,
shipmaster_only_steering: row.shipmaster_only_steering, shipmaster_only_steering: row.shipmaster_only_steering,
departure: NaiveDateTime::parse_from_str(&row.departure.unwrap(), "%Y-%m-%d %H:%M") departure: row.departure,
.unwrap(),
arrival: row.arrival, arrival: row.arrival,
destination: row.destination, destination: row.destination,
distance_in_km: row.distance_in_km, distance_in_km: row.distance_in_km,
@ -126,15 +135,11 @@ ORDER BY departure DESC
let mut ret = Vec::new(); let mut ret = Vec::new();
for log in logs { for log in logs {
let date_time = Local.from_local_datetime(&log.departure).single().unwrap();
ret.push(LogbookWithBoatAndRowers { ret.push(LogbookWithBoatAndRowers {
rowers: Rower::for_log(db, &log).await, rowers: Rower::for_log(db, &log).await,
boat: Boat::find_by_id(db, log.boat_id as i32).await.unwrap(), boat: Boat::find_by_id(db, log.boat_id as i32).await.unwrap(),
shipmaster_user: User::find_by_id(db, log.shipmaster as i32).await.unwrap(), shipmaster_user: User::find_by_id(db, log.shipmaster as i32).await.unwrap(),
logbook: log, logbook: log,
arrival_timestamp: None, //TODO: send arrival timestmap
departure_timestamp: date_time.timestamp(),
}); });
} }
ret ret
@ -161,14 +166,16 @@ ORDER BY departure DESC
boat: Boat::find_by_id(db, log.boat_id as i32).await.unwrap(), boat: Boat::find_by_id(db, log.boat_id as i32).await.unwrap(),
shipmaster_user: User::find_by_id(db, log.shipmaster as i32).await.unwrap(), shipmaster_user: User::find_by_id(db, log.shipmaster as i32).await.unwrap(),
logbook: log, logbook: log,
arrival_timestamp: None,
departure_timestamp: 0,
}); });
} }
ret ret
} }
pub async fn create(db: &SqlitePool, log: LogToAdd) -> Result<(), LogbookCreateError> { pub async fn create(
db: &SqlitePool,
log: LogToAdd,
created_by_user: &User,
) -> Result<(), LogbookCreateError> {
let Some(boat) = Boat::find_by_id(db, log.boat_id).await else { let Some(boat) = Boat::find_by_id(db, log.boat_id).await else {
return Err(LogbookCreateError::BoatNotFound); return Err(LogbookCreateError::BoatNotFound);
}; };
@ -180,41 +187,76 @@ ORDER BY departure DESC
if boat.on_water(db).await { if boat.on_water(db).await {
return Err(LogbookCreateError::BoatAlreadyOnWater); return Err(LogbookCreateError::BoatAlreadyOnWater);
} }
if (User::find_by_id(db, log.shipmaster as i32).await.unwrap())
.on_water(db) let shipmaster = User::find_by_id(db, log.shipmaster as i32).await.unwrap();
.await
{ if shipmaster.on_water(db).await {
return Err(LogbookCreateError::ShipmasterAlreadyOnWater); return Err(LogbookCreateError::ShipmasterAlreadyOnWater);
} }
if log.rower.len() > boat.amount_seats as usize - 1 { if let Some(arrival) = &log.arrival {
let dep = NaiveDateTime::parse_from_str(&log.departure, "%Y-%m-%dT%H:%M").unwrap();
let arr = NaiveDateTime::parse_from_str(&arrival, "%Y-%m-%dT%H:%M").unwrap();
if arr <= dep {
return Err(LogbookCreateError::ArrivalNotAfterDeparture);
}
if log.destination.is_none() {
return Err(LogbookCreateError::ArrivalSetButNoDestination);
}
if log.distance_in_km.is_none() {
return Err(LogbookCreateError::ArrivalSetButNoDistance);
}
}
if log.rowers.len() > boat.amount_seats as usize - 1 {
return Err(LogbookCreateError::TooManyRowers( return Err(LogbookCreateError::TooManyRowers(
boat.amount_seats as usize, boat.amount_seats as usize,
log.rower.len() + 1, log.rowers.len() + 1,
)); ));
} }
for rower in &log.rower { for rower in &log.rowers {
let user = User::find_by_id(db, *rower as i32).await.unwrap(); let user = User::find_by_id(db, *rower as i32).await.unwrap();
if *rower == log.shipmaster {
return Err(LogbookCreateError::SamePersonShipmasterAndRower);
}
if user.on_water(db).await { if user.on_water(db).await {
return Err(LogbookCreateError::RowerAlreadyOnWater(user)); return Err(LogbookCreateError::RowerAlreadyOnWater(user));
} }
} }
if !boat.shipmaster_allowed(created_by_user).await {
return Err(LogbookCreateError::UserNotAllowedToUseBoat);
}
//let departure = format!("{}+02:00", &log.departure);
let mut tx = db.begin().await.unwrap(); let mut tx = db.begin().await.unwrap();
let departure = NaiveDateTime::parse_from_str(&log.departure, "%Y-%m-%dT%H:%M").unwrap(); //let departure = NaiveDateTime::parse_from_str(&log.departure, "%Y-%m-%dT%H:%M").unwrap();
println!("@@@@@@ {:?}", log.arrival); //let departure_vienna = chrono::Utc
let arrival = log // .from_local_datetime(&departure)
.arrival // .single()
.map(|a| NaiveDateTime::parse_from_str(&a, "%Y-%m-%dT%H:%M").unwrap()); // .unwrap();
//let departure_utc = departure_vienna.with_timezone(&Vienna);
//let arrival = log.arrival.map(|a| {
// let arr = NaiveDateTime::parse_from_str(&a, "%Y-%m-%dT%H:%M").unwrap();
// let arr_vienna = Vienna.from_local_datetime(&arr).single().unwrap();
// arr_vienna
// .with_timezone(&chrono::Utc)
// .format("%Y-%m-%d %H:%M")
//});
//let arrival = log.arrival.map(|a| format!("{}+02:00", a));
let inserted_row = sqlx::query!( let inserted_row = sqlx::query!(
"INSERT INTO logbook(boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km, comments, logtype) VALUES (?,?,?,?,?,?,?,?,?) RETURNING id", "INSERT INTO logbook(boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km, comments, logtype) VALUES (?,?,?,?,?,?,?,?,?) RETURNING id",
log.boat_id, log.boat_id,
log.shipmaster, log.shipmaster,
log.shipmaster_only_steering, log.shipmaster_only_steering,
departure, log.departure,
arrival, log.arrival,
log.destination, log.destination,
log.distance_in_km, log.distance_in_km,
log.comments, log.comments,
@ -223,12 +265,10 @@ ORDER BY departure DESC
.fetch_one(&mut tx) .fetch_one(&mut tx)
.await.unwrap(); .await.unwrap();
for rower in &log.rower { for rower in &log.rowers {
Rower::create(&mut tx, inserted_row.id, *rower) Rower::create(&mut tx, inserted_row.id, *rower)
.await .await
.map_err(|e| { .map_err(|e| LogbookCreateError::RowerCreateError(*rower, e.to_string()))?;
return LogbookCreateError::RowerCreateError(*rower, e.to_string());
})?;
} }
tx.commit().await.unwrap(); tx.commit().await.unwrap();
@ -262,6 +302,16 @@ ORDER BY departure DESC
.unwrap(); .unwrap();
} }
#[cfg(test)]
pub async fn highest_id(db: &SqlitePool) -> i32 {
sqlx::query!("SELECT max(id) as id FROM logbook")
.fetch_one(db)
.await
.unwrap()
.id
.unwrap()
}
pub async fn home( pub async fn home(
&self, &self,
db: &SqlitePool, db: &SqlitePool,
@ -274,14 +324,20 @@ ORDER BY departure DESC
let boat = Boat::find_by_id(db, self.boat_id as i32).await.unwrap(); //ok let boat = Boat::find_by_id(db, self.boat_id as i32).await.unwrap(); //ok
if log.rower.len() > boat.amount_seats as usize - 1 { if log.rowers.len() > boat.amount_seats as usize - 1 {
return Err(LogbookUpdateError::TooManyRowers( return Err(LogbookUpdateError::TooManyRowers(
boat.amount_seats as usize, boat.amount_seats as usize,
log.rower.len() + 1, log.rowers.len() + 1,
)); ));
} }
let arrival = format!("{}", chrono::offset::Local::now().format("%Y-%m-%d %H:%M")); let arrival = chrono::offset::Utc::now().naive_utc();
let arrival = Vienna.from_utc_datetime(&arrival);
if arrival.timestamp() + 60 * 60 * 2 <= self.departure.timestamp() {
//TODO: fixme
return Err(LogbookUpdateError::ArrivalNotAfterDeparture);
}
let mut tx = db.begin().await.unwrap(); let mut tx = db.begin().await.unwrap();
@ -299,10 +355,10 @@ ORDER BY departure DESC
self.remove_rowers(&mut tx).await; self.remove_rowers(&mut tx).await;
for rower in &log.rower { for rower in &log.rowers {
Rower::create(&mut tx, self.id, *rower).await.map_err(|e| { Rower::create(&mut tx, self.id, *rower)
return LogbookUpdateError::RowerCreateError(*rower, e.to_string()); .await
})?; .map_err(|e| LogbookUpdateError::RowerCreateError(*rower, e.to_string()))?;
} }
tx.commit().await.unwrap(); tx.commit().await.unwrap();
@ -310,11 +366,15 @@ ORDER BY departure DESC
Ok(()) Ok(())
} }
pub async fn delete(&self, db: &SqlitePool) { pub async fn delete(&self, db: &SqlitePool, user: &User) -> Result<(), LogbookDeleteError> {
sqlx::query!("DELETE FROM logbook WHERE id=?", self.id) if user.is_admin || user.id == self.shipmaster {
.execute(db) sqlx::query!("DELETE FROM logbook WHERE id=?", self.id)
.await .execute(db)
.unwrap(); //Okay, because we can only create a Logbook of a valid id .await
.unwrap(); //Okay, because we can only create a Logbook of a valid id
return Ok(());
}
Err(LogbookDeleteError::NotYourEntry)
} }
} }
@ -379,7 +439,7 @@ mod test {
&pool, &pool,
LogToAdd { LogToAdd {
boat_id: 3, boat_id: 3,
shipmaster: 5, shipmaster: 4,
shipmaster_only_steering: false, shipmaster_only_steering: false,
departure: "2128-05-20T12:00".into(), departure: "2128-05-20T12:00".into(),
arrival: None, arrival: None,
@ -387,8 +447,9 @@ mod test {
distance_in_km: None, distance_in_km: None,
comments: None, comments: None,
logtype: None, logtype: None,
rower: Vec::new(), rowers: Vec::new(),
}, },
&User::find_by_id(&pool, 4).await.unwrap(),
) )
.await .await
.unwrap() .unwrap()
@ -410,8 +471,9 @@ mod test {
distance_in_km: None, distance_in_km: None,
comments: None, comments: None,
logtype: None, logtype: None,
rower: Vec::new(), rowers: Vec::new(),
}, },
&User::find_by_id(&pool, 4).await.unwrap(),
) )
.await; .await;
@ -434,8 +496,9 @@ mod test {
distance_in_km: None, distance_in_km: None,
comments: None, comments: None,
logtype: None, logtype: None,
rower: Vec::new(), rowers: Vec::new(),
}, },
&User::find_by_id(&pool, 4).await.unwrap(),
) )
.await; .await;
@ -458,14 +521,40 @@ mod test {
distance_in_km: None, distance_in_km: None,
comments: None, comments: None,
logtype: None, logtype: None,
rower: Vec::new(), rowers: Vec::new(),
}, },
&User::find_by_id(&pool, 5).await.unwrap(),
) )
.await; .await;
assert_eq!(res, Err(LogbookCreateError::BoatAlreadyOnWater)); assert_eq!(res, Err(LogbookCreateError::BoatAlreadyOnWater));
} }
#[sqlx::test]
fn test_create_boat_on_water_wrong_arrival() {
let pool = testdb!();
let res = Logbook::create(
&pool,
LogToAdd {
boat_id: 3,
shipmaster: 5,
shipmaster_only_steering: false,
departure: "2128-05-20T12:00".into(),
arrival: Some("2128-05-20T11:00".into()),
destination: None,
distance_in_km: None,
comments: None,
logtype: None,
rowers: Vec::new(),
},
&User::find_by_id(&pool, 5).await.unwrap(),
)
.await;
assert_eq!(res, Err(LogbookCreateError::ArrivalNotAfterDeparture));
}
#[sqlx::test] #[sqlx::test]
fn test_create_shipmaster_on_water() { fn test_create_shipmaster_on_water() {
let pool = testdb!(); let pool = testdb!();
@ -482,14 +571,40 @@ mod test {
distance_in_km: None, distance_in_km: None,
comments: None, comments: None,
logtype: None, logtype: None,
rower: Vec::new(), rowers: Vec::new(),
}, },
&User::find_by_id(&pool, 2).await.unwrap(),
) )
.await; .await;
assert_eq!(res, Err(LogbookCreateError::ShipmasterAlreadyOnWater)); assert_eq!(res, Err(LogbookCreateError::ShipmasterAlreadyOnWater));
} }
#[sqlx::test]
fn test_create_same_person_cox_and_rower() {
let pool = testdb!();
let res = Logbook::create(
&pool,
LogToAdd {
boat_id: 3,
shipmaster: 5,
shipmaster_only_steering: false,
departure: "2128-05-20T12:00".into(),
arrival: None,
destination: None,
distance_in_km: None,
comments: None,
logtype: None,
rowers: vec![5],
},
&User::find_by_id(&pool, 5).await.unwrap(),
)
.await;
assert_eq!(res, Err(LogbookCreateError::SamePersonShipmasterAndRower));
}
#[sqlx::test] #[sqlx::test]
fn test_create_too_many_rowers() { fn test_create_too_many_rowers() {
let pool = testdb!(); let pool = testdb!();
@ -506,8 +621,9 @@ mod test {
distance_in_km: None, distance_in_km: None,
comments: None, comments: None,
logtype: None, logtype: None,
rower: vec![1], rowers: vec![1],
}, },
&User::find_by_id(&pool, 5).await.unwrap(),
) )
.await; .await;
@ -545,7 +661,7 @@ mod test {
distance_in_km: 42, distance_in_km: 42,
comments: Some("Perfect water".into()), comments: Some("Perfect water".into()),
logtype: None, logtype: None,
rower: vec![], rowers: vec![],
}, },
) )
.await .await
@ -568,7 +684,7 @@ mod test {
distance_in_km: 42, distance_in_km: 42,
comments: Some("Perfect water".into()), comments: Some("Perfect water".into()),
logtype: None, logtype: None,
rower: vec![], rowers: vec![],
}, },
) )
.await; .await;
@ -592,7 +708,7 @@ mod test {
distance_in_km: 42, distance_in_km: 42,
comments: Some("Perfect water".into()), comments: Some("Perfect water".into()),
logtype: None, logtype: None,
rower: vec![1], rowers: vec![1],
}, },
) )
.await; .await;

View File

@ -39,7 +39,7 @@ WHERE id in (SELECT rower_id FROM rower WHERE logbook_id=?)
) )
.execute(db) .execute(db)
.await .await
.map_err(|e| return e.to_string())?; .map_err(|e| e.to_string())?;
Ok(()) Ok(())
} }

View File

@ -1,3 +1,4 @@
use crate::model::user::User;
use serde::Serialize; use serde::Serialize;
use sqlx::{FromRow, Row, SqlitePool}; use sqlx::{FromRow, Row, SqlitePool};
@ -41,3 +42,44 @@ ORDER BY rowed_km DESC;
.collect() .collect()
} }
} }
#[derive(Debug, Serialize)]
pub struct PersonalStat {
date: String,
km: i32,
}
pub async fn get_personal(db: &SqlitePool, user: &User) -> Vec<PersonalStat> {
sqlx::query(&format!(
"
SELECT
departure_date as date,
SUM(total_distance) OVER (ORDER BY departure_date) as km
FROM (
SELECT
date(l.departure) as departure_date,
COALESCE(SUM(l.distance_in_km),0) as total_distance
FROM
logbook l
LEFT JOIN
rower r ON l.id = r.logbook_id
WHERE
l.shipmaster = {0} OR r.rower_id = {0}
GROUP BY
departure_date
) as subquery
ORDER BY
departure_date;
",
user.id
))
.fetch_all(db)
.await
.unwrap()
.into_iter()
.map(|row| PersonalStat {
date: row.get("date"),
km: row.get("km"),
})
.collect()
}

View File

@ -120,9 +120,9 @@ ORDER BY day;",
pub(crate) async fn user_allowed_to_change(&self, db: &SqlitePool, user: &User) -> bool { pub(crate) async fn user_allowed_to_change(&self, db: &SqlitePool, user: &User) -> bool {
if self.belongs_to_event(db).await { if self.belongs_to_event(db).await {
return user.is_admin; user.is_admin
} else { } else {
return self.user_is_cox(db, user).await != CoxAtTrip::No; self.user_is_cox(db, user).await != CoxAtTrip::No
} }
} }

View File

@ -28,6 +28,22 @@ pub struct User {
pub last_access: Option<chrono::NaiveDateTime>, pub last_access: Option<chrono::NaiveDateTime>,
} }
#[derive(Debug, Serialize, Deserialize)]
pub struct UserWithWaterStatus {
#[serde(flatten)]
pub user: User,
pub on_water: bool,
}
impl UserWithWaterStatus {
pub async fn from_user(user: User, db: &SqlitePool) -> Self {
Self {
on_water: user.on_water(db).await,
user,
}
}
}
impl PartialEq for User { impl PartialEq for User {
fn eq(&self, other: &Self) -> bool { fn eq(&self, other: &Self) -> bool {
self.id == other.id self.id == other.id
@ -494,7 +510,7 @@ mod test {
fn test_cox() { fn test_cox() {
let pool = testdb!(); let pool = testdb!();
let res = User::cox(&pool).await; let res = User::cox(&pool).await;
assert_eq!(res.len(), 2); assert_eq!(res.len(), 3);
} }
#[sqlx::test] #[sqlx::test]

View File

@ -114,7 +114,7 @@ mod test {
assert_eq!(response.status(), Status::Ok); assert_eq!(response.status(), Status::Ok);
let text = response.into_string().await.unwrap(); let text = response.into_string().await.unwrap();
assert!(&text.contains("Neues Boot hinzufügen")); assert!(&text.contains("Neues Boot"));
assert!(&text.contains("Kaputtes Boot :-(")); assert!(&text.contains("Kaputtes Boot :-("));
assert!(&text.contains("Haichenbach")); assert!(&text.contains("Haichenbach"));
} }

View File

@ -145,13 +145,13 @@ async fn remove(db: &State<SqlitePool>, planned_event_id: i64, cox: CoxUser) ->
) )
.await; .await;
return Flash::success(Redirect::to("/"), "Erfolgreich abgemeldet!"); Flash::success(Redirect::to("/"), "Erfolgreich abgemeldet!")
} }
Err(TripHelpDeleteError::DetailsLocked) => { Err(TripHelpDeleteError::DetailsLocked) => {
return Flash::error(Redirect::to("/"), "Boot bereits eingeteilt"); Flash::error(Redirect::to("/"), "Boot bereits eingeteilt")
} }
Err(TripHelpDeleteError::CoxNotHelping) => { Err(TripHelpDeleteError::CoxNotHelping) => {
return Flash::error(Redirect::to("/"), "Steuermann hilft nicht aus...") Flash::error(Redirect::to("/"), "Steuermann hilft nicht aus...")
} }
} }
} else { } else {

View File

@ -15,9 +15,12 @@ use tera::Context;
use crate::model::{ use crate::model::{
boat::Boat, boat::Boat,
logbook::{LogToAdd, LogToFinalize, Logbook, LogbookCreateError, LogbookUpdateError}, logbook::{
LogToAdd, LogToFinalize, Logbook, LogbookCreateError, LogbookDeleteError,
LogbookUpdateError,
},
logtype::LogType, logtype::LogType,
user::{AdminUser, User}, user::{User, UserWithWaterStatus},
}; };
pub struct KioskCookie(String); pub struct KioskCookie(String);
@ -35,14 +38,23 @@ impl<'r> FromRequest<'r> for KioskCookie {
} }
#[get("/", rank = 2)] #[get("/", rank = 2)]
async fn index( async fn index(db: &State<SqlitePool>, flash: Option<FlashMessage<'_>>, user: User) -> Template {
db: &State<SqlitePool>, let boats = Boat::for_user(db, &user).await;
flash: Option<FlashMessage<'_>>,
adminuser: AdminUser, let coxes: Vec<UserWithWaterStatus> = futures::future::join_all(
) -> Template { User::cox(db)
let boats = Boat::all(db).await; .await
let coxes = User::cox(db).await; .into_iter()
let users = User::all(db).await; .map(|user| UserWithWaterStatus::from_user(user, db)),
)
.await;
let users: Vec<UserWithWaterStatus> = futures::future::join_all(
User::all(db)
.await
.into_iter()
.map(|user| UserWithWaterStatus::from_user(user, db)),
)
.await;
let logtypes = LogType::all(db).await; let logtypes = LogType::all(db).await;
let distances = Logbook::distances(db).await; let distances = Logbook::distances(db).await;
@ -57,7 +69,7 @@ async fn index(
context.insert("coxes", &coxes); context.insert("coxes", &coxes);
context.insert("users", &users); context.insert("users", &users);
context.insert("logtypes", &logtypes); context.insert("logtypes", &logtypes);
context.insert("loggedin_user", &adminuser.user); context.insert("loggedin_user", &user);
context.insert("on_water", &on_water); context.insert("on_water", &on_water);
context.insert("distances", &distances); context.insert("distances", &distances);
@ -72,7 +84,7 @@ async fn show(db: &State<SqlitePool>, user: User) -> Template {
} }
#[get("/show")] #[get("/show")]
async fn show_kiosk(db: &State<SqlitePool>, _kios: KioskCookie) -> Template { async fn show_kiosk(db: &State<SqlitePool>, _kiosk: KioskCookie) -> Template {
let logs = Logbook::completed(db).await; let logs = Logbook::completed(db).await;
Template::render("log.completed", context!(logs)) Template::render("log.completed", context!(logs))
@ -93,8 +105,20 @@ async fn kiosk(
kiosk: KioskCookie, kiosk: KioskCookie,
) -> Template { ) -> Template {
let boats = Boat::all_at_location(db, kiosk.0).await; let boats = Boat::all_at_location(db, kiosk.0).await;
let coxes = User::cox(db).await; let coxes: Vec<UserWithWaterStatus> = futures::future::join_all(
let users = User::all(db).await; User::cox(db)
.await
.into_iter()
.map(|user| UserWithWaterStatus::from_user(user, db)),
)
.await;
let users: Vec<UserWithWaterStatus> = futures::future::join_all(
User::all(db)
.await
.into_iter()
.map(|user| UserWithWaterStatus::from_user(user, db)),
)
.await;
let logtypes = LogType::all(db).await; let logtypes = LogType::all(db).await;
let distances = Logbook::distances(db).await; let distances = Logbook::distances(db).await;
@ -115,10 +139,11 @@ async fn kiosk(
Template::render("kiosk", context.into_json()) Template::render("kiosk", context.into_json())
} }
async fn create_logbook(db: &SqlitePool, data: Form<LogToAdd>) -> Flash<Redirect> { async fn create_logbook(db: &SqlitePool, data: Form<LogToAdd>, user: &User) -> Flash<Redirect> {
match Logbook::create( match Logbook::create(
db, db,
data.into_inner() data.into_inner(),
user
) )
.await .await
{ {
@ -130,17 +155,18 @@ async fn create_logbook(db: &SqlitePool, data: Form<LogToAdd>) -> Flash<Redirect
Err(LogbookCreateError::BoatNotFound) => Flash::error(Redirect::to("/log"), format!("Boot gibt's ned")), Err(LogbookCreateError::BoatNotFound) => Flash::error(Redirect::to("/log"), format!("Boot gibt's ned")),
Err(LogbookCreateError::TooManyRowers(expected, actual)) => Flash::error(Redirect::to("/log"), format!("Zu viele Ruderer (Boot fasst maximal {expected}, es wurden jedoch {actual} Ruderer ausgewählt)")), Err(LogbookCreateError::TooManyRowers(expected, actual)) => Flash::error(Redirect::to("/log"), format!("Zu viele Ruderer (Boot fasst maximal {expected}, es wurden jedoch {actual} Ruderer ausgewählt)")),
Err(LogbookCreateError::RowerCreateError(rower, e)) => Flash::error(Redirect::to("/log"), format!("Fehler bei Ruderer {rower}: {e}")), Err(LogbookCreateError::RowerCreateError(rower, e)) => Flash::error(Redirect::to("/log"), format!("Fehler bei Ruderer {rower}: {e}")),
Err(LogbookCreateError::SamePersonShipmasterAndRower) => Flash::error(Redirect::to("/log"), format!("Selbe Person als Schiffsführer und Ruderer ausgewählt")),
Err(LogbookCreateError::ArrivalSetButNoDistance) => Flash::error(Redirect::to("/log"), format!("Distanz notwendig, wenn Ankunftszeit angegeben wurde")),
Err(LogbookCreateError::ArrivalSetButNoDestination) => Flash::error(Redirect::to("/log"), format!("Ziel notwendig, wenn Ankunftszeit angegeben wurde")),
Err(LogbookCreateError::ArrivalNotAfterDeparture) => Flash::error(Redirect::to("/log"), format!("Ankunftszeit kann nicht vor der Abfahrtszeit sein")),
Err(LogbookCreateError::UserNotAllowedToUseBoat) => Flash::error(Redirect::to("/log"), format!("Schiffsführer darf dieses Boot nicht verwenden")),
} }
} }
#[post("/", data = "<data>", rank = 2)] #[post("/", data = "<data>", rank = 2)]
async fn create( async fn create(db: &State<SqlitePool>, data: Form<LogToAdd>, user: User) -> Flash<Redirect> {
db: &State<SqlitePool>, create_logbook(db, data, &user).await
data: Form<LogToAdd>,
_adminuser: AdminUser,
) -> Flash<Redirect> {
create_logbook(db, data).await
} }
#[post("/", data = "<data>")] #[post("/", data = "<data>")]
@ -149,7 +175,8 @@ async fn create_kiosk(
data: Form<LogToAdd>, data: Form<LogToAdd>,
_kiosk: KioskCookie, _kiosk: KioskCookie,
) -> Flash<Redirect> { ) -> Flash<Redirect> {
create_logbook(db, data).await let creator = User::find_by_id(db, data.shipmaster as i32).await.unwrap();
create_logbook(db, data, &creator).await
} }
async fn home_logbook( async fn home_logbook(
@ -169,10 +196,10 @@ async fn home_logbook(
match logbook.home(db, user, data.into_inner()).await { match logbook.home(db, user, data.into_inner()).await {
Ok(_) => Flash::success(Redirect::to("/log"), "Successfully updated log"), Ok(_) => Flash::success(Redirect::to("/log"), "Successfully updated log"),
Err(LogbookUpdateError::TooManyRowers(expected, actual)) => Flash::error(Redirect::to("/log"), format!("Zu viele Ruderer (Boot fasst maximal {expected}, es wurden jedoch {actual} Ruderer ausgewählt)")), Err(LogbookUpdateError::TooManyRowers(expected, actual)) => Flash::error(Redirect::to("/log"), format!("Zu viele Ruderer (Boot fasst maximal {expected}, es wurden jedoch {actual} Ruderer ausgewählt)")),
Err(_) => Flash::error( Err(a) => {println!("{a:?}"); return Flash::error(
Redirect::to("/log"), Redirect::to("/log"),
format!("Logbook with ID {} could not be updated!", logbook_id), format!("Logbook with ID {} could not be updated!", logbook_id),
), )},
} }
} }
@ -200,20 +227,25 @@ async fn home(
db: &State<SqlitePool>, db: &State<SqlitePool>,
data: Form<LogToFinalize>, data: Form<LogToFinalize>,
logbook_id: i32, logbook_id: i32,
adminuser: AdminUser, user: User,
) -> Flash<Redirect> { ) -> Flash<Redirect> {
home_logbook(db, data, logbook_id, &adminuser.user).await home_logbook(db, data, logbook_id, &user).await
} }
#[get("/<logbook_id>/delete")] #[get("/<logbook_id>/delete")]
async fn delete(db: &State<SqlitePool>, logbook_id: i32, _adminuser: AdminUser) -> Flash<Redirect> { async fn delete(db: &State<SqlitePool>, logbook_id: i32, user: User) -> Flash<Redirect> {
let logbook = Logbook::find_by_id(db, logbook_id).await; let logbook = Logbook::find_by_id(db, logbook_id).await;
if let Some(logbook) = logbook { if let Some(logbook) = logbook {
logbook.delete(db).await; match logbook.delete(db, &user).await {
Flash::success( Ok(_) => Flash::success(
Redirect::to("/log"), Redirect::to("/log"),
format!("Logbook with ID {} successfully deleted!", logbook_id), format!("Logbook with ID {} successfully deleted!", logbook_id),
) ),
Err(LogbookDeleteError::NotYourEntry) => Flash::error(
Redirect::to("/log"),
"Du hast nicht die Berechtigung, den Eintrag zu löschen!",
),
}
} else { } else {
Flash::error( Flash::error(
Redirect::to("/log"), Redirect::to("/log"),
@ -243,6 +275,8 @@ mod test {
use rocket::{http::Status, local::asynchronous::Client}; use rocket::{http::Status, local::asynchronous::Client};
use sqlx::SqlitePool; use sqlx::SqlitePool;
use crate::model::logbook::Logbook;
use crate::tera::{log::Boat, User};
use crate::testdb; use crate::testdb;
#[sqlx::test] #[sqlx::test]
@ -426,4 +460,402 @@ mod test {
assert_eq!(flash_cookie.value(), "7:successSuccessfully updated log"); assert_eq!(flash_cookie.value(), "7:successSuccessfully updated log");
} }
//Kiosk mode
// i see all boats
#[sqlx::test]
fn test_kiosks_sees_all_boats() {
let db = testdb!();
let rocket = rocket::build().manage(db.clone());
let rocket = crate::tera::config(rocket);
let client = Client::tracked(rocket).await.unwrap();
let req = client.get("/log/kiosk/ekrv2019/Linz");
let _ = req.dispatch().await;
let req = client.get("/log");
let response = req.dispatch().await;
let text = response.into_string().await.unwrap();
//Sees all boats stationed in Linz
assert!(text.contains("Haichenbach"));
assert!(text.contains("Joe"));
assert!(text.contains("Kaputtes Boot :-("));
assert!(text.contains("Sehr kaputtes Boot :-(("));
assert!(text.contains("second_private_boat_from_rower"));
assert!(text.contains("private_boat_from_rower"));
//Doesn't see the one's in Ottensheim
assert!(!text.contains("Ottensheim Boot"));
}
#[sqlx::test]
fn test_kiosks_can_start_trips_with_all_boats() {
let db = testdb!();
let rocket = rocket::build().manage(db.clone());
let rocket = crate::tera::config(rocket);
sqlx::query("DELETE FROM logbook;")
.execute(&db)
.await
.unwrap();
let mut client = Client::tracked(rocket).await.unwrap();
let req = client.get("/log/kiosk/ekrv2019/Linz");
let _ = req.dispatch().await;
can_start_and_end_trip(&db, &mut client, "Haichenbach".into(), "admin".into()).await;
can_start_and_end_trip(&db, &mut client, "Joe".into(), "admin".into()).await;
can_start_and_end_trip(&db, &mut client, "Kaputtes Boot :-(".into(), "admin".into()).await;
cant_start_trip(
&db,
&mut client,
"Sehr kaputtes Boot :-((".into(),
"admin".into(),
"Boot gesperrt".into(),
)
.await;
can_start_and_end_trip(
&db,
&mut client,
"second_private_boat_from_rower".into(),
"rower".into(),
)
.await;
}
#[sqlx::test]
fn test_shipowner_can_allow_others_to_drive() {
let db = testdb!();
let rocket = rocket::build().manage(db.clone());
let rocket = crate::tera::config(rocket);
sqlx::query("DELETE FROM logbook;")
.execute(&db)
.await
.unwrap();
let client = Client::tracked(rocket).await.unwrap();
let login = client
.post("/auth")
.header(ContentType::Form) // Set the content type to form
.body("name=rower&password=rower"); // Add the form data to the request body;
login.dispatch().await;
// Owner can start trip:
let boat_id = Boat::find_by_name(&db, "private_boat_from_rower".into())
.await
.unwrap()
.id;
let shipmaster_id = User::find_by_name(&db, "rower2".into()).await.unwrap().id;
let req = client.post("/log").header(ContentType::Form).body(format!(
"boat_id={boat_id}&shipmaster={shipmaster_id}&departure=1199-12-31T10:00"
));
let response = req.dispatch().await;
assert_eq!(response.status(), Status::SeeOther);
assert_eq!(response.headers().get("Location").next(), Some("/log"));
let flash_cookie = response
.cookies()
.get("_flash")
.expect("Expected flash cookie");
assert_eq!(
flash_cookie.value(),
"7:successAusfahrt erfolgreich hinzugefügt"
);
// Shipmaster can end it
let log_id = Logbook::highest_id(&db).await;
let login = client
.post("/auth")
.header(ContentType::Form) // Set the content type to form
.body("name=rower2&password=rower"); // Add the form data to the request body;
login.dispatch().await;
let req = client
.post(format!("/log/{log_id}"))
.header(ContentType::Form)
.body("destination=Ottensheim&distance_in_km=25");
let response = req.dispatch().await;
assert_eq!(response.status(), Status::SeeOther);
assert_eq!(response.headers().get("Location").next(), Some("/log"));
let flash_cookie = response
.cookies()
.get("_flash")
.expect("Expected flash cookie");
assert_eq!(flash_cookie.value(), "7:successSuccessfully updated log");
}
#[sqlx::test]
fn test_normal_user_sees_appropriate_boats() {
let db = testdb!();
let rocket = rocket::build().manage(db.clone());
let rocket = crate::tera::config(rocket);
let mut client = Client::tracked(rocket).await.unwrap();
let login = client
.post("/auth")
.header(ContentType::Form) // Set the content type to form
.body("name=rower&password=rower"); // Add the form data to the request body;
login.dispatch().await;
let req = client.get("/log");
let response = req.dispatch().await;
let text = response.into_string().await.unwrap();
sqlx::query("DELETE FROM logbook;")
.execute(&db)
.await
.unwrap();
//Sees all 1x
assert!(text.contains("Haichenbach"));
can_start_and_end_trip(&db, &mut client, "Haichenbach".into(), "rower".into()).await;
assert!(text.contains("private_boat_from_rower"));
can_start_and_end_trip(
&db,
&mut client,
"private_boat_from_rower".into(),
"rower".into(),
)
.await;
assert!(text.contains("second_private_boat_from_rower"));
can_start_and_end_trip(
&db,
&mut client,
"second_private_boat_from_rower".into(),
"rower".into(),
)
.await;
//Don't see anything else
assert!(!text.contains("Joe"));
cant_start_trip(
&db,
&mut client,
"Joe".into(),
"rower".into(),
"Schiffsführer darf dieses Boot nicht verwenden".into(),
)
.await;
assert!(!text.contains("Kaputtes Boot :-("));
cant_start_trip(
&db,
&mut client,
"Kaputtes Boot :-(".into(),
"rower".into(),
"Schiffsführer darf dieses Boot nicht verwenden".into(),
)
.await;
assert!(!text.contains("Sehr kaputtes Boot :-(("));
cant_start_trip(
&db,
&mut client,
"Sehr kaputtes Boot :-((".into(),
"rower".into(),
"Boot gesperrt".into(),
)
.await;
assert!(!text.contains("Ottensheim Boot"));
cant_start_trip(
&db,
&mut client,
"Ottensheim Boot".into(),
"rower".into(),
"Schiffsführer darf dieses Boot nicht verwenden".into(),
)
.await;
}
#[sqlx::test]
fn test_cox_sees_appropriate_boats() {
let db = testdb!();
let rocket = rocket::build().manage(db.clone());
let rocket = crate::tera::config(rocket);
let mut client = Client::tracked(rocket).await.unwrap();
let login = client
.post("/auth")
.header(ContentType::Form) // Set the content type to form
.body("name=cox&password=cox"); // Add the form data to the request body;
login.dispatch().await;
sqlx::query("DELETE FROM logbook;")
.execute(&db)
.await
.unwrap();
let req = client.get("/log");
let response = req.dispatch().await;
let text = response.into_string().await.unwrap();
//Sees all 1x
assert!(text.contains("Haichenbach"));
can_start_and_end_trip(&db, &mut client, "Haichenbach".into(), "cox".into()).await;
assert!(text.contains("Joe"));
can_start_and_end_trip(&db, &mut client, "Joe".into(), "cox".into()).await;
assert!(text.contains("Kaputtes Boot :-("));
can_start_and_end_trip(&db, &mut client, "Kaputtes Boot :-(".into(), "cox".into()).await;
assert!(text.contains("Sehr kaputtes Boot :-(("));
cant_start_trip(
&db,
&mut client,
"Sehr kaputtes Boot :-((".into(),
"cox".into(),
"Boot gesperrt".into(),
)
.await;
assert!(text.contains("Ottensheim Boot"));
can_start_and_end_trip(&db, &mut client, "Ottensheim Boot".into(), "cox".into()).await;
//Can't use private boats
assert!(!text.contains("private_boat_from_rower"));
cant_start_trip(
&db,
&mut client,
"private_boat_from_rower".into(),
"cox".into(),
"Schiffsführer darf dieses Boot nicht verwenden".into(),
)
.await;
assert!(!text.contains("second_private_boat_from_rower"));
cant_start_trip(
&db,
&mut client,
"second_private_boat_from_rower".into(),
"cox".into(),
"Schiffsführer darf dieses Boot nicht verwenden".into(),
)
.await;
}
#[sqlx::test]
fn test_cant_end_trip_other_user() {
let db = testdb!();
let rocket = rocket::build().manage(db.clone());
let rocket = crate::tera::config(rocket);
let client = Client::tracked(rocket).await.unwrap();
let login = client
.post("/auth")
.header(ContentType::Form) // Set the content type to form
.body("name=rower2&password=rower"); // Add the form data to the request body;
login.dispatch().await;
let req = client
.post("/log/1")
.header(ContentType::Form)
.body("destination=Ottensheim&distance_in_km=25");
let response = req.dispatch().await;
assert_eq!(response.status(), Status::SeeOther);
assert_eq!(response.headers().get("Location").next(), Some("/log"));
let flash_cookie = response
.cookies()
.get("_flash")
.expect("Expected flash cookie");
assert_eq!(
flash_cookie.value(),
"5:errorLogbook with ID 1 could not be updated!"
);
}
async fn can_start_and_end_trip(
db: &SqlitePool,
client: &mut Client,
boat_name: String,
shipmaster_name: String,
) {
let boat_id = Boat::find_by_name(db, boat_name).await.unwrap().id;
let shipmaster_id = User::find_by_name(db, &shipmaster_name).await.unwrap().id;
let req = client.post("/log").header(ContentType::Form).body(format!(
"boat_id={boat_id}&shipmaster={shipmaster_id}&departure=1199-12-31T10:00"
));
let response = req.dispatch().await;
assert_eq!(response.status(), Status::SeeOther);
assert_eq!(response.headers().get("Location").next(), Some("/log"));
let flash_cookie = response
.cookies()
.get("_flash")
.expect("Expected flash cookie");
assert_eq!(
flash_cookie.value(),
"7:successAusfahrt erfolgreich hinzugefügt"
);
let log_id = Logbook::highest_id(db).await;
let req = client
.post(format!("/log/{log_id}"))
.header(ContentType::Form)
.body("destination=Ottensheim&distance_in_km=25");
let response = req.dispatch().await;
assert_eq!(response.status(), Status::SeeOther);
assert_eq!(response.headers().get("Location").next(), Some("/log"));
let flash_cookie = response
.cookies()
.get("_flash")
.expect("Expected flash cookie");
assert_eq!(flash_cookie.value(), "7:successSuccessfully updated log");
}
async fn cant_start_trip(
db: &SqlitePool,
client: &mut Client,
boat_name: String,
shipmaster_name: String,
reason: String,
) {
let boat_id = Boat::find_by_name(db, boat_name).await.unwrap().id;
let shipmaster_id = User::find_by_name(db, &shipmaster_name).await.unwrap().id;
let req = client.post("/log").header(ContentType::Form).body(format!(
"boat_id={boat_id}&shipmaster={shipmaster_id}&departure=2199-12-31T10:00"
));
let response = req.dispatch().await;
assert_eq!(response.status(), Status::SeeOther);
assert_eq!(response.headers().get("Location").next(), Some("/log"));
let flash_cookie = response
.cookies()
.get("_flash")
.expect("Expected flash cookie");
assert_eq!(flash_cookie.value(), format!("5:error{}", reason));
}
} }

View File

@ -2,17 +2,35 @@ use rocket::{get, routes, Route, State};
use rocket_dyn_templates::{context, Template}; use rocket_dyn_templates::{context, Template};
use sqlx::SqlitePool; use sqlx::SqlitePool;
use crate::model::{stat::Stat, user::User}; use crate::model::{
stat::{self, Stat},
user::User,
};
#[get("/")] use super::log::KioskCookie;
#[get("/", rank = 2)]
async fn index(db: &State<SqlitePool>, user: User) -> Template { async fn index(db: &State<SqlitePool>, user: User) -> Template {
let stat = Stat::get_rowed_km(db).await; let stat = Stat::get_rowed_km(db).await;
let personal = stat::get_personal(db, &user).await;
let kiosk = false;
Template::render("stat", context!(loggedin_user: &user, stat)) Template::render(
"stat",
context!(loggedin_user: &user, stat, personal, kiosk),
)
}
#[get("/")]
async fn index_kiosk(db: &State<SqlitePool>, _kiosk: KioskCookie) -> Template {
let stat = Stat::get_rowed_km(db).await;
let kiosk = true;
Template::render("stat", context!(stat, kiosk))
} }
pub fn routes() -> Vec<Route> { pub fn routes() -> Vec<Route> {
routes![index] routes![index, index_kiosk]
} }
#[cfg(test)] #[cfg(test)]

View File

@ -1,977 +1 @@
UPDATE user SET is_admin=true WHERE name IN ('Sandra Sollberger', 'Thomas Hoffelner', 'Manfred Meindl', 'Bernhard Heinemann'); UPDATE user SET is_admin=true WHERE name IN ('Sandra Sollberger', 'Thomas Hoffelner', 'Manfred Meindl', 'Bernhard Heinemann');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-01-06 12:00:00','2023-01-06 15:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-01-07 10:35:00','2023-01-07 13:45:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-01-07 10:35:00','2023-01-07 14:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-01-07 13:15:00','2023-01-07 15:20:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-01-12 10:10:00','2023-01-12 13:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-01-14 10:40:00','2023-01-14 13:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-01-14 12:55:00','2023-01-14 15:20:00','Dürnberger',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-01-15 10:40:00','2023-01-15 13:50:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-01-17 10:15:00','2023-01-17 13:30:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-02-14 13:10:00','2023-02-14 14:30:00','Wasserschischule',5,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Larissa Freimuth'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-02-24 10:01:00','2023-02-24 12:50:00','Traun',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-03 08:48:00','2023-03-03 12:05:00','Traun',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-03 09:45:00','2023-03-03 13:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-04 09:30:00','2023-03-04 13:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-06 13:15:00','2023-03-06 16:40:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-07 13:20:00','2023-03-07 17:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-08 10:03:00','2023-03-08 13:25:00','Traun',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-10 09:50:00','2023-03-10 13:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-16 11:00:00','2023-03-16 15:15:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-17 10:20:00','2023-03-17 13:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-03-17 12:02:00','2023-03-17 15:05:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-17 13:22:00','2023-03-17 17:10:00','traun muhlb plus 2 km',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-18 09:01:00','2023-03-18 13:10:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-18 09:50:00','2023-03-18 13:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-03-18 11:30:00','2023-03-18 14:50:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-19 09:45:00','2023-03-19 13:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-03-19 13:35:00','2023-03-19 15:35:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-21 10:00:00','2023-03-21 13:25:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-21 10:01:00','2023-03-21 13:00:00','Trmdg',18,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-03-21 11:25:00','2023-03-21 15:55:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-21 13:00:00','2023-03-21 15:40:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-22 09:45:00','2023-03-22 13:25:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-03-22 09:51:00','2023-03-22 14:00:00','2122:7 retur plus 7km',27,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-03-22 14:05:00','2023-03-22 17:30:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-23 09:50:00','2023-03-23 13:15:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-03-24 09:25:00','2023-03-24 12:45:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-04 11:25:00','2023-04-04 14:15:00','traun mdg',18,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-06 11:03:00','2023-04-06 14:30:00','traun muhlb',23,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-04-06 17:25:00','2023-04-06 19:15:00','2137,6',8,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daria Danner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Moritz Lach'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alaa Almousa'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-04-07 14:15:00','2023-04-07 17:45:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-04-07 14:15:00','2023-04-07 17:50:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Stephan Siegl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-04-07 14:10:00','2023-04-07 18:15:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ilona Stütz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-10 10:29:00','2023-04-10 14:20:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-04-10 12:50:00','2023-04-10 16:25:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ilona Stütz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-12 10:43:00','2023-04-12 14:25:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-04-18 18:00:00','2023-04-18 19:45:00','schulwasser',6,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Moritz Lach'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Richard Bogdan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daria Danner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-04-19 18:15:00','2023-04-19 20:00:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-04-19 18:15:00','2023-04-19 19:50:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-04-20 17:55:00','2023-04-20 20:05:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Heinz Radinger'),false,'2023-04-21 10:35:00','2023-04-21 12:00:00','Schiffsmühle',7,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Klaus Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Karl Allmeier'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-21 08:45:00','2023-04-21 11:30:00','2122,7und ret',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-04-21 14:05:00','2023-04-21 18:45:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ilona Stütz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniel Kortschak'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-04-21 14:10:00','2023-04-21 17:15:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Matthias Höfer'),false,'2023-04-21 14:10:00','2023-04-21 18:30:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-04-21 16:55:00','2023-04-21 19:20:00','Robinson',12,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Moritz Lach'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Richard Bogdan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-22 07:45:00','2023-04-22 11:35:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-04-22 10:25:00','2023-04-22 13:45:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-04-22 14:30:00','2023-04-22 17:30:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ilona Stütz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-04-22 10:30:00','2023-04-22 12:20:00','Wolfgangsee',20,'Some("Langstreckenregatta")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-23 08:10:00','2023-04-23 10:45:00','2124UND RETUR',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniel Kortschak'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-04-23 09:45:00','2023-04-23 13:00:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-04-23 11:05:00','2023-04-23 15:30:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-23 11:05:00','2023-04-23 15:05:00','Biber',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Klima'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-04-23 11:10:00','2023-04-23 15:00:00','Regattastrecke',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Silvia Demmig'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Karl Allmeier'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-04-23 11:15:00','2023-04-23 15:15:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-04-23 11:00:00','2023-04-23 15:00:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Moritz Lach'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Richard Bogdan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-04-25 17:15:00','2023-04-25 19:35:00','schulwasser',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Moritz Lach'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Richard Bogdan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daria Danner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-04-26 18:00:00','2023-04-26 20:10:00','schulwasser mehrfach',8,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Maxfranz'),(SELECT id FROM user WHERE name='Philip Baillon'),true,'2023-04-26 17:54:00','2023-04-26 20:05:00','Wasserschischule',5,'Some("Philip der Lustige Handsteuer")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-04-26 18:30:00','2023-04-26 20:00:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-04-26 18:30:00','2023-04-26 20:40:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-04-26 18:15:00','2023-04-26 20:20:00','Puchenau Boje',8,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ilona Stütz'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Matthias Höfer'),false,'2023-04-26 18:15:00','2023-04-26 20:00:00','schulwasser',7,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-04-27 10:35:00','2023-04-27 13:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-04-27 12:00:00','2023-04-27 16:45:00','Dürnberger',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Niklas Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-27 13:55:00','2023-04-27 18:25:00','2122:7 retur plus 7km',29,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-04-27 15:55:00','2023-04-27 18:45:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-04-28 09:20:00','2023-04-28 12:30:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Siegfried Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-04-28 17:50:00','2023-04-28 20:15:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-04-29 11:05:00','2023-04-29 14:50:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ilona Stütz'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-04-29 11:10:00','2023-04-29 14:55:00','Ottensheim',25,'Some("Hochwasserausfahrt")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-04-30 08:45:00','2023-04-30 12:50:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-04-30 10:40:00','2023-04-30 14:00:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-04-30 13:20:00','2023-04-30 16:20:00','Ottensheim',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-05-01 15:00:00','2023-05-01 17:50:00','Dürnberger',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-05-03 11:55:00','2023-05-03 15:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-03 13:55:00','2023-05-03 17:15:00','2122:7 retur',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-05-03 18:10:00','2023-05-03 20:15:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-05-03 18:10:00','2023-05-03 20:20:00','Rudi',8,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-05-03 18:10:00','2023-05-03 20:05:00','Robinson',12,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Verena Kriechbaum'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Stephan Siegl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Matthias Höfer'),false,'2023-05-03 18:15:00','2023-05-03 20:20:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hansiburli'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-03 18:15:00','2023-05-03 20:05:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-03 18:10:00','2023-05-03 20:10:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-05-04 10:00:00','2023-05-04 13:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-04 11:05:00','2023-05-04 14:05:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-05 08:37:00','2023-05-05 12:40:00','2122 bis 2134 plus 7km',29,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-05-05 09:30:00','2023-05-05 16:15:00','Aschach',55,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-05 14:00:00','2023-05-05 17:45:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-05 14:05:00','2023-05-05 17:55:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-05-05 14:05:00','2023-05-05 16:15:00','Abgefallener',16,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-05-06 09:10:00','2023-05-06 11:10:00','Wasserschischule',6,'Some("+1 km")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gabriele Schwarz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-06 09:15:00','2023-05-06 11:50:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-05-06 09:15:00','2023-05-06 12:40:00','Wasserschischule + Schulwasser',7,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-07 08:16:00','2023-05-07 12:05:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-05-07 09:05:00','2023-05-07 12:15:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-05-08 10:20:00','2023-05-08 13:45:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-05-09 09:30:00','2023-05-09 12:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-09 09:35:00','2023-05-09 12:45:00','2122:7 retur',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-09 12:45:00','2023-05-09 16:30:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-09 17:05:00','2023-05-09 20:10:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-09 17:05:00','2023-05-09 20:10:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Leihboot WSV'),(SELECT id FROM user WHERE name='Michael Sageder'),true,'2023-05-08 16:40:00','2023-05-08 18:20:00','Regattastrecke',8,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-05-10 18:10:00','2023-05-10 20:25:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-10 18:10:00','2023-05-10 20:25:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-10 18:10:00','2023-05-10 20:25:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-05-22 17:10:00','2023-05-22 19:00:00','schulwasser',4,'Some("Hypo Rudern")');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-05-22 17:15:00','2023-05-22 19:10:00','schulwasser',6,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-05-22 17:15:00','2023-05-22 19:15:00','schulwasser',5,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-05-22 17:35:00','2023-05-22 20:15:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Klima'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-18 06:00:00','2023-05-18 19:05:00','Tyn-Prag',153,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-05-18 06:00:00','2023-05-18 20:00:00','Tyn-Prag',153,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniel Kortschak'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-23 10:15:00','2023-05-23 13:45:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-21 09:30:00','2023-05-21 12:00:00','Traun',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-05-24 18:10:00','2023-05-24 19:50:00','Westringbrücke',6,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-24 18:10:00','2023-05-24 20:05:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Verena Kriechbaum'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-24 18:15:00','2023-05-24 20:15:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-25 09:24:00','2023-05-25 13:28:00','2122 bis 2134',24,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-05-25 12:05:00','2023-05-25 17:00:00','Dürnberger Felsen',19,'Some("19")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Niklas Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-26 14:00:00','2023-05-26 17:10:00','Ottensheim',25,'Some("leider ohne Markt :-(")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Matthias Höfer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-27 06:00:00','2023-05-27 16:45:00','Schlögen',103,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-27 09:33:00','2023-05-27 14:12:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Ranna'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-05-28 07:15:00','2023-05-28 16:05:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-28 07:15:00','2023-05-28 12:44:00','Biber plus 8km',33,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-05-27 06:30:00','2023-05-27 16:45:00','Schlögen',103,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-29 06:45:00','2023-05-29 11:19:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-30 10:11:00','2023-05-30 12:55:00','Traun',18,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-05-30 12:55:00','2023-05-30 19:30:00','Rodlmündung',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-30 18:00:00','2023-05-30 20:45:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-05-30 18:10:00','2023-05-30 20:10:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Anna Kuthan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-05-31 12:20:00','2023-05-31 14:00:00','schulwasser',4,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Max Knauseder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-05-31 12:25:00','2023-05-31 14:05:00','schulwasser',4,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Kristina Schwendinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-05-31 14:15:00','2023-05-31 17:45:00','Schulwasser mehrmals',8,'Some("PH-Studierende")');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-05-31 14:20:00','2023-05-31 18:05:00','schulwasser',6,'Some("PH-Studierende")');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-05-31 14:20:00','2023-05-31 18:05:00','schulwasser',5,'Some("PH-Studierende")');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-05-31 14:25:00','2023-05-31 16:25:00','Abgefallener',16,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-05-31 18:05:00','2023-05-31 20:35:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-05-31 18:05:00','2023-05-31 20:35:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Verena Kriechbaum'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-05-31 18:05:00','2023-05-31 20:25:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Stephan Siegl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franz'),(SELECT id FROM user WHERE name='Daniela Allmeier'),true,'2023-05-31 18:10:00','2023-05-31 20:35:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Berlin Müggelsee'),(SELECT id FROM user WHERE name='Manuela Firmötz'),false,'2023-05-31 19:15:00','2023-05-31 19:15:00','Berliner Gewässer',167,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-01 09:05:00','2023-06-01 12:00:00','Traun',18,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-06-01 12:15:00','2023-06-01 18:10:00','Rodlmündung',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-01 16:35:00','2023-06-01 19:05:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-02 07:25:00','2023-06-02 12:05:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-02 14:00:00','2023-06-02 18:25:00','Ottensheim',25,'Some("Eva-Maria Gruber zum ersten Mal fußgesteuert - 5 km")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philipp Hofer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-02 18:05:00','2023-06-02 21:05:00','Dürnberger',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-06-03 09:00:00','2023-06-03 11:15:00','Wiking + 1',11,'Some("Riss Boden unter 1er Platz (vmtl. von letzter Ausfahrt)")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Manuela Firmötz'),false,'2023-06-03 10:05:00','2023-06-03 14:55:00','2142,5',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-04 08:30:00','2023-06-04 11:00:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Anna Kuthan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-04 09:40:00','2023-06-04 12:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-04 09:45:00','2023-06-04 12:48:00','2122:7 retur',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-04 10:00:00','2023-06-04 14:15:00','Ottensheim Überhebstelle',29,'Some("Eva-Maria 16,5 km fußgesteuert: Regattasteg -> Überhebstelle -> Bootshaus")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Ranna'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-04 10:55:00','2023-06-04 17:55:00','Aschach',54,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-06 10:22:00','2023-06-06 13:00:00','Traun',18,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-06 13:05:00','2023-06-06 18:30:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-06 13:55:00','2023-06-06 17:25:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-06 18:00:00','2023-06-06 20:05:00','Achleitnersiedlung + 1',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Anna Kuthan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hermann Otto'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-06-06 18:15:00','2023-06-06 20:05:00','Robinson',12,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-07 10:40:00','2023-06-07 14:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-07 12:15:00','2023-06-07 14:40:00','schulwasser',4,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Max Knauseder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-06-07 12:15:00','2023-06-07 13:45:00','schulwasser',4,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Richard Bogdan'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-07 18:05:00','2023-06-07 20:30:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-06-07 18:10:00','2023-06-07 20:35:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Juan Francisco Bautista Serrano'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-07 18:10:00','2023-06-07 20:15:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-07 18:10:00','2023-06-07 20:30:00','2141',15,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniela Allmeier'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-08 06:34:00','2023-06-08 11:11:00','2122 bis 2134 plus 9km',33,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-08 09:05:00','2023-06-08 11:50:00','2142,5',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Elisabeth Fölser'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Burkhard Riss'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Elisabeth Totschnig'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Silvia Demmig'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-08 17:45:00','2023-06-08 20:15:00','Dürnberger',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-09 14:00:00','2023-06-09 19:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-09 14:05:00','2023-06-09 18:15:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-09 14:10:00','2023-06-09 18:20:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Anna Kuthan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-09 17:45:00','2023-06-09 20:15:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-10 06:44:00','2023-06-10 11:19:00','2122 bis 2134 plus 9km',33,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-11 08:10:00','2023-06-11 11:35:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Elisabeth Fölser'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-11 14:20:00','2023-06-11 17:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-12 06:41:00','2023-06-12 10:30:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-12 12:20:00','2023-06-12 15:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Jakob RV Gmunden'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-06-08 17:30:00','2023-06-08 16:45:00','Neckar',76,'Some("Gäste bei RV Gmunden")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-12 17:05:00','2023-06-12 19:15:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-12 17:05:00','2023-06-12 19:00:00','Rudi',8,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-06-12 17:50:00','2023-06-12 21:35:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Klima'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-12 18:25:00','2023-06-12 20:45:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-13 10:15:00','2023-06-13 12:55:00','2122 bis 2134',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-13 12:55:00','2023-06-13 18:15:00','Rodlmündung',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-13 18:15:00','2023-06-13 20:15:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-14 10:35:00','2023-06-14 14:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-06-14 18:10:00','2023-06-14 20:55:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Verena Kriechbaum'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Matthias Höfer'),false,'2023-06-14 18:15:00','2023-06-14 20:40:00','2142,5',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-14 18:15:00','2023-06-14 20:35:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniel Kortschak'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-15 10:05:00','2023-06-15 13:25:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-06-15 14:45:00','2023-06-15 16:45:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-16 07:10:00','2023-06-16 10:50:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-16 09:01:00','2023-06-16 13:15:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-16 14:05:00','2023-06-16 19:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-16 17:40:00','2023-06-16 20:20:00','Dürnberger',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-17 08:08:00','2023-06-17 11:50:00','2123,7 plus 7km',27,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-17 18:15:00','2023-06-17 21:10:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-18 07:25:00','2023-06-18 11:15:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-18 09:30:00','2023-06-18 20:45:00','Brandstatt',52,'Some("+ Regattastrecke")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-18 09:55:00','2023-06-18 17:15:00','Ottensheim Überhebstelle plus Winterhafen',34,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-19 09:55:00','2023-06-19 13:35:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-06-19 14:30:00','2023-06-19 18:10:00','Dürnberger',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-19 17:00:00','2023-06-19 19:15:00','2139',11,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-19 17:00:00','2023-06-19 19:00:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-19 17:40:00','2023-06-19 21:55:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-19 18:40:00','2023-06-19 21:35:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-06-14 12:00:00','2023-06-14 13:30:00','schulwasser',5,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Kristina Schwendinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-14 12:00:00','2023-06-14 13:30:00','schulwasser',4,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Max Knauseder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Schärding'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-20 06:00:00','2023-06-20 08:25:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-20 08:45:00','2023-06-20 15:15:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-20 09:15:00','2023-06-20 11:50:00','Traun',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-20 11:50:00','2023-06-20 18:50:00','Rodlmündung',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-20 18:10:00','2023-06-20 20:15:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-06-20 18:10:00','2023-06-20 21:05:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniel Kortschak'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-20 12:00:00','2023-06-20 15:30:00','Ottensheim Überhebstelle - 2158,5',21,'Some("Erganzung AUsfahrt 20.6.2023")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-21 09:40:00','2023-06-21 13:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-06-21 12:00:00','2023-06-21 14:00:00','schulwasser',1,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-21 13:55:00','2023-06-21 14:00:00','schulwasser',1,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Max Knauseder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-06-21 15:35:00','2023-06-21 16:50:00','2137,5',8,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-21 16:00:00','2023-06-21 18:20:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Manuela Firmötz'),false,'2023-06-21 16:05:00','2023-06-21 20:25:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-06-21 18:05:00','2023-06-21 20:45:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-21 18:10:00','2023-06-21 20:30:00','2142,5',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Verena Kriechbaum'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-21 18:10:00','2023-06-21 20:40:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-22 06:29:00','2023-06-22 11:05:00','2122 bis 2134 plus 9km',33,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-22 08:50:00','2023-06-22 12:25:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franjo'),(SELECT id FROM user WHERE name='Franz Poddemski'),false,'2023-06-22 09:30:00','2023-06-22 11:45:00','Steyregger Brücke',12,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-23 08:25:00','2023-06-23 12:50:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-23 18:10:00','2023-06-23 21:00:00','Dürnberger',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Schärding'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-24 14:15:00','2023-06-24 18:45:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-25 06:11:00','2023-06-25 11:35:00','2122 bis 2137 plus 7km',37,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-25 07:50:00','2023-06-25 20:10:00','Aschach',54,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-25 08:10:00','2023-06-25 11:10:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-06-25 08:25:00','2023-06-25 11:25:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-25 08:30:00','2023-06-25 17:10:00','Aschach',54,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Asgard'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-06-25 12:45:00','2023-06-25 16:10:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Thomas Hoffelner'),false,'2023-06-25 12:45:00','2023-06-25 16:15:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-26 09:15:00','2023-06-26 12:40:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-26 17:00:00','2023-06-26 19:45:00','2141',15,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-06-26 17:00:00','2023-06-26 19:25:00','Blockhaus',14,'Some("Trainingsfahrt Gruber - steuern")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-26 17:10:00','2023-06-26 19:25:00','Robinson + 1',13,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hermann Otto'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-06-26 18:00:00','2023-06-26 21:50:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-26 18:00:00','2023-06-26 20:10:00','schulwasser',4,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Caroline Schwendinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-27 09:11:00','2023-06-27 12:45:00','traun muhlb',23,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Ranna'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-27 10:15:00','2023-06-27 12:45:00','2127',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-27 12:55:00','2023-06-27 19:45:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Franz Poddemski'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-06-27 18:05:00','2023-06-27 21:05:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-27 18:10:00','2023-06-27 20:40:00','2142,5',18,'Some("super Besatzung :)")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Anna Kuthan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Eva-Maria Gruber'),false,'2023-06-27 18:15:00','2023-06-27 20:50:00','Ottensheim Fähre',22,'Some("Steuertraining Gruber")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniela Allmeier'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-28 09:40:00','2023-06-28 13:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-06-28 18:10:00','2023-06-28 20:35:00','2143,5',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daria Danner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-06-28 18:10:00','2023-06-28 20:45:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Verena Kriechbaum'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-28 18:10:00','2023-06-28 20:35:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-06-28 18:10:00','2023-06-28 20:45:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-06-29 07:22:00','2023-06-29 11:40:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Karl Allmeier'),false,'2023-06-29 08:25:00','2023-06-29 10:50:00','Blockhaus',15,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Klaus Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Heinz Radinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-29 09:20:00','2023-06-29 15:50:00','Aschach 2158,6',50,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-06-29 13:50:00','2023-06-29 15:40:00','2141',15,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-29 14:05:00','2023-06-29 16:35:00','schulwasser',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Kristina Schwendinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Asgard'),(SELECT id FROM user WHERE name='Nina Füreder'),false,'2023-06-29 14:10:00','2023-06-29 18:15:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Lola'),(SELECT id FROM user WHERE name='Manuela Firmötz'),false,'2023-06-29 14:15:00','2023-06-29 18:15:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-06-29 17:30:00','2023-06-29 21:50:00','Rodlmündung',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-30 07:45:00','2023-06-30 11:05:00','Regattastrecke',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-06-30 09:50:00','2023-06-30 13:30:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-06-30 14:05:00','2023-06-30 18:15:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Bernhard Heinemann'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-06-30 14:05:00','2023-06-30 17:55:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Asgard'),(SELECT id FROM user WHERE name='Verena Kriechbaum'),false,'2023-07-01 14:10:00','2023-07-01 16:35:00','schulwasser',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Krempelstein'),(SELECT id FROM user WHERE name='Edith Steinacker'),false,'2023-07-01 14:10:00','2023-07-01 16:35:00','schulwasser',10,'Some("erste Einser Fahrt")');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Martin Kugler'),false,'2023-07-01 14:10:00','2023-07-01 16:35:00','schulwasser',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Matthias Höfer'),false,'2023-07-01 14:10:00','2023-07-01 16:35:00','schulwasser',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Adi'),(SELECT id FROM user WHERE name='Harald Koch'),false,'2023-07-01 14:20:00','2023-07-01 16:05:00','2137',7,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-02 09:15:00','2023-07-02 11:55:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-02 08:15:00','2023-07-02 12:15:00','2121 und ret plus 7km',33,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Schärding'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-02 14:40:00','2023-07-02 17:10:00','2137,5',8,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-03 07:55:00','2023-07-03 12:45:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Karl Allmeier'),false,'2023-07-03 09:00:00','2023-07-03 11:55:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Klaus Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Heinz Radinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-03 12:40:00','2023-07-03 17:20:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-03 15:00:00','2023-07-03 18:20:00','2127',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-07-03 17:50:00','2023-07-03 21:45:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Klima'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-03 17:55:00','2023-07-03 20:55:00','Dürnberger',20,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-04 11:00:00','2023-07-04 14:35:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-04 12:11:00','2023-07-04 17:05:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franz'),(SELECT id FROM user WHERE name='Ernst Klima'),true,'2023-07-04 17:55:00','2023-07-04 22:05:00','Ottensheim',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Caroline Schwendinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Richard Bogdan'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Larissa Freimuth'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Klima'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-07-04 18:05:00','2023-07-04 22:25:00','Rodlmündung',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Lehofer'),(SELECT id FROM user WHERE name='Verena Kriechbaum'),false,'2023-07-04 18:10:00','2023-07-04 20:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-07-04 18:10:00','2023-07-04 20:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-04 18:15:00','2023-07-04 20:40:00','2141',15,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Stephan Siegl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-04 18:15:00','2023-07-04 21:10:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-04 18:30:00','2023-07-04 21:00:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-05 09:30:00','2023-07-05 13:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franz'),(SELECT id FROM user WHERE name='Daniela Allmeier'),true,'2023-07-05 18:15:00','2023-07-05 20:20:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Juan Francisco Bautista Serrano'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philipp Hofer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Commenda'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-06 05:55:00','2023-07-06 08:35:00','Steyregger Brücke + Winterhafen + 2',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Karl Allmeier'),false,'2023-07-06 09:40:00','2023-07-06 15:10:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Heinz Radinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-06 09:55:00','2023-07-06 13:30:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franjo'),(SELECT id FROM user WHERE name='Franz Poddemski'),false,'2023-07-07 08:10:00','2023-07-07 10:50:00','Steyregger Brücke plus 2km',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-07 08:10:00','2023-07-07 10:50:00','2126',16,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-07 08:50:00','2023-07-07 12:30:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-07 13:00:00','2023-07-07 17:15:00','Ottensheim Regattastrecke',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hermann Otto'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-07 14:00:00','2023-07-07 18:05:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-08 08:20:00','2023-07-08 11:50:00','traun muhlb',23,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-07-08 09:15:00','2023-07-08 11:35:00','Rudi',8,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-08 09:15:00','2023-07-08 11:50:00','2137',7,'Some("Schnupperrudern")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-08 09:15:00','2023-07-08 11:35:00','Wasserschischule',5,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-07-08 12:55:00','2023-07-08 15:45:00','Dürnberger',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-08 13:55:00','2023-07-08 16:35:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-08 14:10:00','2023-07-08 19:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-08 14:10:00','2023-07-08 17:55:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-09 07:25:00','2023-07-09 11:07:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-09 08:00:00','2023-07-09 11:25:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Ranna'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-10 14:45:00','2023-07-10 17:50:00','Rodlmündung',23,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-10 17:05:00','2023-07-10 19:30:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franz'),(SELECT id FROM user WHERE name='Daniela Allmeier'),true,'2023-07-10 17:05:00','2023-07-10 19:30:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-10 17:45:00','2023-07-10 22:05:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Birgit Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Klaus Schlögl'),false,'2023-07-11 08:30:00','2023-07-11 11:15:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Heinz Radinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-11 08:35:00','2023-07-11 12:25:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-11 11:15:00','2023-07-11 13:10:00','Steyregger Brücke',12,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-11 13:15:00','2023-07-11 18:20:00','Ottensheim Rodl',23,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Christian Gusenbauer'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-11 18:05:00','2023-07-11 20:40:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Stephan Siegl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-07-11 18:05:00','2023-07-11 20:25:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Erich Zauner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Juan Francisco Bautista Serrano'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Lehofer'),(SELECT id FROM user WHERE name='Sylvia Ecker'),false,'2023-07-11 18:10:00','2023-07-11 20:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Martin Kugler'),false,'2023-07-11 18:10:00','2023-07-11 20:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Krempelstein'),(SELECT id FROM user WHERE name='Verena Kriechbaum'),false,'2023-07-11 18:10:00','2023-07-11 20:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Adi'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-07-11 18:10:00','2023-07-11 20:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-12 09:15:00','2023-07-12 12:40:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-12 14:00:00','2023-07-12 16:55:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martina Schwendinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-12 17:30:00','2023-07-12 20:15:00','Blockhaus',14,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-13 16:55:00','2023-07-13 19:25:00','Dürnberger Felsen',19,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Michael Messner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Adi'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-07-13 17:00:00','2023-07-13 20:05:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-13 17:00:00','2023-07-13 20:05:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-14 07:30:00','2023-07-14 11:25:00','2123 7 und retur plus7km',29,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franjo'),(SELECT id FROM user WHERE name='Franz Poddemski'),false,'2023-07-14 08:20:00','2023-07-14 11:30:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-14 09:25:00','2023-07-14 15:10:00','Wesenufer',119,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Schärding'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-14 14:10:00','2023-07-14 19:40:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-15 05:45:00','2023-07-15 20:40:00','Wallsee, Wiking + 2',85,'Some("Sternfahrt Wiking")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-15 05:45:00','2023-07-15 19:15:00','Wallsee-Wiking',84,'Some("Sternfahrt Wiking")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Michael Messner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-15 06:45:00','2023-07-15 14:20:00','2121 bis 2146 und ret',50,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Heinz Radinger'),false,'2023-07-15 07:30:00','2023-07-15 10:45:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Klaus Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-15 09:05:00','2023-07-15 20:30:00','2161',55,'Some("Sternfahrt Wiking - letzte 5 km gesteuert von Firmötz Manuela")');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manuela Firmötz'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hermann Otto'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-07-15 10:05:00','2023-07-15 15:00:00','Ottensheim Regattastrecke',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Burkhard Riss'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Juan Francisco Bautista Serrano'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Dreamliner'),(SELECT id FROM user WHERE name='Bernhard Heinemann'),false,'2023-07-15 11:55:00','2023-07-15 20:40:00','Ottensheim',25,'Some("Ruder von Club100")');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-07-16 10:20:00','2023-07-16 14:55:00','Abgefallenerplus 4km',29,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-16 14:15:00','2023-07-16 18:25:00','Dürnberger',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Ranna'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-16 16:00:00','2023-07-16 19:15:00','Ottensheim Regattastrecke',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-17 14:20:00','2023-07-17 18:05:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Christian Gusenbauer'),false,'2023-07-17 15:10:00','2023-07-17 20:30:00','Ottensheim Regattastrecke',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martina Schwendinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Adolf Hainschink'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franz'),(SELECT id FROM user WHERE name='Daniela Allmeier'),true,'2023-07-17 17:05:00','2023-07-17 19:05:00','Wiking',10,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Daniel Kortschak'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Matthias List'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Asgard'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-17 17:10:00','2023-07-17 19:50:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Martin Kugler'),false,'2023-07-17 17:10:00','2023-07-17 19:55:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Lehofer'),(SELECT id FROM user WHERE name='Eva-Maria Gruber'),false,'2023-07-17 17:10:00','2023-07-17 19:55:00','Wiking',10,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Adi'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-07-17 17:25:00','2023-07-17 19:55:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-06-24 16:50:00','2023-06-24 18:30:00','Heimatrunde :-)',11,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-17 19:00:00','2023-07-17 21:25:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Schärding'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-18 05:50:00','2023-07-18 08:35:00','2142,5',18,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-18 09:55:00','2023-07-18 13:35:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Dreamliner'),(SELECT id FROM user WHERE name='Bernhard Heinemann'),false,'2023-07-18 09:55:00','2023-07-18 13:45:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-18 10:19:00','2023-07-18 16:05:00','2125 bis 2143',36,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Haichenbach'),(SELECT id FROM user WHERE name='Philip Baillon'),false,'2023-07-18 17:50:00','2023-07-18 21:10:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Lehofer'),(SELECT id FROM user WHERE name='Sylvia Ecker'),false,'2023-07-18 17:50:00','2023-07-18 20:20:00','schulwasser',8,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Adi'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-07-18 17:50:00','2023-07-18 20:20:00','schulwasser',8,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-18 18:20:00','2023-07-18 21:35:00','Ottensheim Regattastrecke + 1km',30,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Club100'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-07-18 18:20:00','2023-07-18 21:00:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Elisabeth Totschnig'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Burkhard Riss'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Juan Francisco Bautista Serrano'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Stephan Siegl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Melanie Ludwig'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-18 18:35:00','2023-07-18 20:55:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Matthias Höfer'),false,'2023-07-18 18:55:00','2023-07-18 20:15:00','schulwasser',5,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-19 09:40:00','2023-07-19 13:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-19 18:25:00','2023-07-19 21:00:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Joe'),(SELECT id FROM user WHERE name='Heinz Radinger'),false,'2023-07-20 08:20:00','2023-07-20 15:50:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Klaus Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-20 10:25:00','2023-07-20 14:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Asgard'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-20 14:50:00','2023-07-20 18:10:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Lehofer'),(SELECT id FROM user WHERE name='Thomas Hoffelner'),false,'2023-07-20 14:55:00','2023-07-20 18:10:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-20 18:15:00','2023-07-20 20:35:00','Dürnberger Felsen',19,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-21 09:50:00','2023-07-21 13:20:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-21 14:05:00','2023-07-21 18:45:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Lisa-Maria Schedlberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-21 14:05:00','2023-07-21 18:25:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-21 17:50:00','2023-07-21 21:00:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-22 07:47:00','2023-07-22 11:50:00','2124 plus 7km',27,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-22 11:30:00','2023-07-22 15:10:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-22 15:55:00','2023-07-22 18:00:00','2141',15,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-23 06:32:00','2023-07-23 11:05:00','2122 bis 2134 plus 7km',31,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-23 07:50:00','2023-07-23 11:15:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-23 08:10:00','2023-07-23 10:40:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-07-23 08:30:00','2023-07-23 11:35:00','Ottensheim Fähre',22,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Karl Allmeier'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Elisabeth Fölser'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-23 09:55:00','2023-07-23 13:30:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Dreamliner'),(SELECT id FROM user WHERE name='Bernhard Heinemann'),false,'2023-07-23 10:35:00','2023-07-23 14:20:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Heinz Radinger'),false,'2023-07-24 08:25:00','2023-07-24 11:25:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Klaus Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Wolfgang Schlögl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Karl Allmeier'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-24 08:50:00','2023-07-24 14:05:00','Ottensheim Regattastrecke + Winterhafen',32,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Etsch'),(SELECT id FROM user WHERE name='Siegfried Sageder'),false,'2023-07-24 09:30:00','2023-07-24 12:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Andrea Sageder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-24 19:00:00','2023-07-24 20:55:00','Achleitnersiedlung',17,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Friedl'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-25 18:10:00','2023-07-25 21:05:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Philip Baillon'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Ingrid Klug'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniela Allmeier'),false,'2023-07-25 18:10:00','2023-07-25 20:30:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Matthias List'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Elisabeth Totschnig'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Burkhard Riss'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-25 18:10:00','2023-07-25 20:40:00','2123,5',20,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sylvia Ecker'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Nina Füreder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-25 18:15:00','2023-07-25 21:15:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Luzern'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-25 18:15:00','2023-07-25 21:20:00','Regattastrecke + 1000m',27,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hermann Otto'),(SELECT id FROM user WHERE name='Philip Baillon'),false,'2023-07-26 18:25:00','2023-07-26 20:40:00','2141',15,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Michael Messner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Edith Steinacker'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Pfaff'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-26 18:00:00','2023-07-26 21:50:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Adi'),(SELECT id FROM user WHERE name='Marie Birner'),false,'2023-07-26 18:00:00','2023-07-26 21:50:00','Ottensheim',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-27 10:15:00','2023-07-27 14:05:00','traun muhlb plus 2',25,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Sandra Sollberger'),false,'2023-07-27 16:35:00','2023-07-27 20:30:00','Ottensheim Regattastrecke + 1km',30,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-27 17:05:00','2023-07-27 20:30:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Thomas Hoffelner'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-27 17:30:00','2023-07-27 20:55:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Michael Sageder'),false,'2023-07-27 17:50:00','2023-07-27 19:45:00','Abgefallener',16,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Christiana'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-28 14:05:00','2023-07-28 18:45:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Melanie Ludwig'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Moby Dyk'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-07-28 14:05:00','2023-07-28 18:30:00','Ottensheim',25,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Manfred Meindl'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Lackinger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Dreamliner'),(SELECT id FROM user WHERE name='Bernhard Heinemann'),false,'2023-07-28 14:35:00','2023-07-28 18:45:00','Ottensheim Fähre',22,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Klima Ernst'),(SELECT id FROM user WHERE name='Ernst Klima'),false,'2023-07-31 08:05:00','2023-07-31 10:55:00','Abgefallener',16,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Franjo'),(SELECT id FROM user WHERE name='Franz Poddemski'),false,'2023-07-31 08:05:00','2023-07-31 10:55:00','Blockhaus',14,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='WinTech'),(SELECT id FROM user WHERE name='Manfred Meindl'),false,'2023-07-31 08:10:00','2023-07-31 19:00:00','Aschach',58,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Thomas Klima'),false,'2023-07-31 17:45:00','2023-07-31 21:20:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Margit Bencic'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Alexandra Binder'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Gerald Binder'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Messner'),(SELECT id FROM user WHERE name='Michael Messner'),false,'2023-07-31 17:45:00','2023-07-31 20:45:00','Ottensheim Überhebstelle',29,'None');
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Urfahr'),(SELECT id FROM user WHERE name='Christian Commenda'),false,'2023-07-31 17:50:00','2023-07-31 20:25:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Martin Kugler'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Erich'),(SELECT id FROM user WHERE name='Daniel Kortschak'),false,'2023-07-31 18:10:00','2023-07-31 20:45:00','Abgefallener',16,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Eva-Maria Gruber'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Linz'),(SELECT id FROM user WHERE name='Philipp Hofer'),false,'2023-08-01 16:35:00','2023-08-01 19:45:00','Ottensheim Regattastrecke + 1',30,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Marie Birner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Claudia Jagersberger'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Sandra Sollberger'));
INSERT INTO logbook (boat_id, shipmaster, shipmaster_only_steering, departure, arrival,destination, distance_in_km, comments) VALUES ((SELECT id FROM boat WHERE name='Hansiburli'),(SELECT id FROM user WHERE name='Philip Baillon'),false,'2023-08-01 17:30:00','2023-08-01 19:50:00','Achleitnersiedlung',17,'None');
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Michael Messner'));
INSERT INTO rower (logbook_id, rower_id) VALUES ((SELECT seq FROM sqlite_sequence WHERE name='logbook'), (SELECT id FROM user WHERE name='Raphael Eichhorn'));

View File

@ -9,11 +9,9 @@
<h1 class="h1">Boats</h1> <h1 class="h1">Boats</h1>
{{ boat::new() }} {{ boat::new() }}
<div class="bg-primary-100 p-3 rounded-b-md grid gap-4"> {% for boat in boats %}
{% for boat in boats %} {{ boat::edit(boat=boat, uuid=loop.index) }}
{{ boat::edit(boat=boat, uuid=loop.index) }} {% endfor %}
{% endfor %}
</div>
</div> </div>

View File

@ -16,7 +16,7 @@
<div class="grid md:grid-cols-3"> <div class="grid md:grid-cols-3">
<div> <div>
<label for="name" class="sr-only">Name</label> <label for="name" class="sr-only">Name</label>
<input type="text" name="name" class="relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:z-10 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Name"/> <input type="text" name="name" class="relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Name"/>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<label for="is_guest" class="flex items-center cursor-pointer hover:text-gray-100"><input type="checkbox" id="is_guest" name="is_guest" class="h-4 w-4 accent-gray-200 mr-2" checked="true"/> <label for="is_guest" class="flex items-center cursor-pointer hover:text-gray-100"><input type="checkbox" id="is_guest" name="is_guest" class="h-4 w-4 accent-gray-200 mr-2" checked="true"/>
@ -32,40 +32,42 @@
<!-- START filterBar --> <!-- START filterBar -->
<div class="bg-primary-200 p-3 mt-4 rounded-t-md"> <div class="bg-primary-200 p-3 mt-4 rounded-t-md">
<label for="name" class="sr-only">Suche</label> <label for="name" class="sr-only">Suche</label>
<input type="search" name="name" id="filter-js" class="w-full relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:z-10 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Suchen nach..."/> <input type="search" name="name" id="filter-js" class="w-full relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Suchen nach..."/>
</div> </div>
<!-- END filterBar --> <!-- END filterBar -->
<div class="bg-primary-100 p-3 rounded-b-md grid gap-4"> <div class="bg-primary-100 p-3 rounded-b-md grid gap-4">
<div id="filter-result-js" class="text-primary-950"></div> <div id="filter-result-js" class="text-primary-950"></div>
{% for user in users %} {% for user in users %}
<form action="/admin/user" data-filterable="true" data-filter="{{ user.name }}" method="post" class="bg-white p-3 rounded-md flex items-end md:items-center justify-between"> <div data-filterable="true" data-filter="{{ user.name }}">
<div class="w-full"> <form action="/admin/user" method="post" class="bg-white p-3 rounded-md flex items-end md:items-center justify-between w-full">
<input type="hidden" name="id" value="{{ user.id }}"/> <div class="w-full">
<div class="font-bold mb-1">{{ user.name }} <input type="hidden" name="id" value="{{ user.id }}"/>
{% if user.last_access %} <div class="font-bold mb-1">{{ user.name }}
(last access: {% if user.last_access %}
{{ user.last_access | date }}) (last access:
{% endif %} {{ user.last_access | date }})
</div> {% endif %}
<div class="grid md:grid-cols-3"> </div>
{{ macros::checkbox(label='Scheckbuch', name='is_guest', id=loop.index , checked=user.is_guest) }} <div class="grid md:grid-cols-3">
{{ macros::checkbox(label='Steuerberechtigter', name='is_cox', id=loop.index , checked=user.is_cox) }} {{ macros::checkbox(label='Scheckbuch', name='is_guest', id=loop.index , checked=user.is_guest) }}
{{ macros::checkbox(label='Technical', name='is_tech', id=loop.index , checked=user.is_tech) }} {{ macros::checkbox(label='Steuerberechtigter', name='is_cox', id=loop.index , checked=user.is_cox) }}
{{ macros::checkbox(label='Admin', name='is_admin', id=loop.index , checked=user.is_admin) }} {{ macros::checkbox(label='Technical', name='is_tech', id=loop.index , checked=user.is_tech) }}
</div> {{ macros::checkbox(label='Admin', name='is_admin', id=loop.index , checked=user.is_admin) }}
{% if user.pw %} </div>
<a class="inline-block mt-1 text-primary-600 hover:text-primary-900 underline" href="/admin/user/{{ user.id }}/reset-pw">Passwort zurücksetzen</a> {% if user.pw %}
{% endif %} <a class="inline-block mt-1 text-primary-600 hover:text-primary-900 underline" href="/admin/user/{{ user.id }}/reset-pw">Passwort zurücksetzen</a>
</div> {% endif %}
<div class="grid gap-3"> </div>
<a href="/admin/user/{{ user.id }}/delete" class="inline-block btn btn-alert" onclick="return confirm('Wirklich löschen?');"> <div class="grid gap-3">
{% include "includes/delete-icon" %} <a href="/admin/user/{{ user.id }}/delete" class="inline-block btn btn-alert" onclick="return confirm('Wirklich löschen?');">
Löschen {% include "includes/delete-icon" %}
</a> Löschen
<input value="Ändern" type="submit" class="w-28 btn btn-primary"/> </a>
</div> <input value="Ändern" type="submit" class="w-28 btn btn-primary"/>
</form> </div>
</form>
</div>
{% endfor %} {% endfor %}
</div> </div>

View File

@ -10,16 +10,18 @@
<title>Ruderassistent - ASKÖ Ruderverein Donau Linz</title> <title>Ruderassistent - ASKÖ Ruderverein Donau Linz</title>
</head> </head>
<body class="bg-gray-100"> <body class="bg-gray-100">
{%if loggedin_user %} {% if loggedin_user %}
{{ macros::header(loggedin_user=loggedin_user) }} {{ macros::header(loggedin_user=loggedin_user) }}
{%endif%} {% endif %}
<div class="flex min-h-screen {%if not loggedin_user %} items-center {% else %} items-start {% endif %} justify-center px-4 py-12 sm:px-6 lg:px-8"> {% block content %}{% endblock content %} <div class="flex min-h-screen {%if not loggedin_user %} items-center {% else %} items-start {% endif %} justify-center px-4 py-12 sm:px-6 lg:px-8"> {% block content %}{% endblock content %}
</div> </div>
{%if loggedin_user %} {% if loggedin_user %}
{% include "includes/footer" %} {% include "includes/footer" %}
{%endif%} {% endif %}
{% include "dynamics/sidebar" %}
<script src="/public/main.js"></script> <script src="/public/main.js"></script>
</body> </body>

View File

@ -5,56 +5,80 @@
{% block content %} {% block content %}
<div class="w-full"> <div class="max-w-screen-lg w-full">
<h1 class="h1">Bootschäden</h1> <h1 class="h1">Bootschäden</h1>
{% if flash %} {% if flash %}
{{ macros::alert(message=flash.1, type=flash.0, class="sm:col-span-2 lg:col-span-3") }} {{ macros::alert(message=flash.1, type=flash.0, class="sm:col-span-2 lg:col-span-3 mt-3") }}
{% endif %} {% endif %}
<h1>Neuen Schaden eintragen</h1>
<form action="/boatdamage" method="post">
{{ log::boat_select(only_ones=false) }}
{{ macros::input(label='Beschreibung des Schadens', name='desc', type='text', required=true) }}
{{ macros::checkbox(label='Boot sperren', name='lock_boat', type='text', required=true) }}
<input type="submit" value="Schaden eintragen" />
</form>
<h2 class="text-md font-bold tracking-wide bg-primary-900 mt-3 p-3 text-white flex justify-between items-center rounded-md">
Neuen Schaden
<a href="#" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"
data-sidebar="true" data-trigger="sidebar" data-header="Neuen Schaden anlegen" data-body="#new-damage">
{% include "includes/plus-icon" %}
<span class="sr-only">Neuen Schaden eintragen</span>
</a>
</h2>
<hr /> <div class="hidden">
<div id="new-damage">
<form action="/boatdamage" method="post" class="grid gap-3">
{{ log::boat_select(only_ones=false, id='boat') }}
{{ macros::input(label='Beschreibung des Schadens', name='desc', type='text', required=true, wrapper_class='col-span-4') }}
<div class="col-span-4">
{{ macros::checkbox(label='Boot sperren', name='lock_boat', type='text', required=true) }}
</div>
<input type="submit" class="btn btn-primary w-full col-span-4" value="Schaden eintragen" />
</form>
</div>
</div>
<div class="bg-gray-200 p-3 mt-4 rounded-t-md">
<label for="name" class="sr-only">Suche</label>
<input type="search" name="name" id="filter-js" class="w-full relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Suchen nach Namen...">
</div>
<div id="filter-result-js" class="bg-gray-200 text-primary-950 pb-3 px-3 text-right"></div>
{% for boatdamage in boatdamages %} {% for boatdamage in boatdamages %}
Boat: {{ boatdamage.boat.name }} <div data-filterable="true" data-filter="{{ boatdamage.boat.name }} {{ boatdamage.user_created.name }}" class="w-full border-t bg-white p-3 {% if boatdamage.verified_at %} opacity-50 {% endif %}">
Desc: {{ boatdamage.desc }} <div>
Schaden eingetragen von {{ boatdamage.user_created.name }} am/um {{ boatdamage.created_at | date(format='%d. %m. %Y %H:%M') }} <strong>{{ boatdamage.created_at | date(format='%d.%m.%Y') }} <span class="font-normal text-gray-600">({{ boatdamage.boat.name }})</span></strong>{% if boatdamage.boat.damage %}<small class="block text-gray-600">(Boot gesperrt)</small>{% endif %}
{% if boatdamage.is_lock %} <div>{{ boatdamage.desc }}</div>
Boot gesperrt <small class="block text-gray-600">
{% endif %} Schaden eingetragen von {{ boatdamage.user_created.name }} am/um {{ boatdamage.created_at | date(format='%d.%m.%Y (%H:%M)') }}
{% if boatdamage.fixed_at %} </small>
Repariert von {{ boatdamage.user_fixed.name }} am/um {{ boatdamage.fixed_at | date(format='%d. %m. %Y %H:%M') }}
{% elif loggedin_user.is_cox %}
<form action="/boatdamage/{{ boatdamage.id }}/fixed" method="post">
<input type="text" name="desc" value="{{ boatdamage.desc }}" />
{% if loggedin_user.is_tech %}
<input type="submit" value="Ich hab's repariert + verifiziert" />
{% else %}
<input type="submit" value="Ich hab's repariert" />
{% endif %}
</form>
{% endif %}
{% if boatdamage.verified_at %}
Verifziert von {{ boatdamage.user_verified.name }} am/um {{ boatdamage.verified_at | date(format='%d. %m. %Y %H:%M') }}
{% elif loggedin_user.is_tech and boatdamage.fixed_at %}
<form action="/boatdamage/{{ boatdamage.id }}/verified" method="post">
<input type="text" name="desc" value="{{ boatdamage.desc }}" />
<input type="submit" value="Ich hab's verifiziert" />
</form>
{% endif %}
<hr />
{% endfor %}
{% if boatdamage.fixed_at %}
<small class="block text-gray-600">Repariert von {{ boatdamage.user_fixed.name }} am/um {{ boatdamage.fixed_at | date(format='%d.%m.%Y (%H:%M)') }}</small>
{% else %}
{% if loggedin_user.is_cox %}
<form action="/boatdamage/{{ boatdamage.id }}/fixed" method="post" class="mt-3">
<input type="hidden" name="desc" value="{{ boatdamage.desc }}" />
{% if loggedin_user.is_tech %}
<input type="submit" class="btn btn-primary" value="Repariert und verifiziert" />
{% else %}
<input type="submit" class="btn btn-primary" value="Repariert" />
{% endif %}
</form>
{% endif %}
{% endif %}
{% if boatdamage.verified_at %}
<small class="block text-gray-600">Verifziert von {{ boatdamage.user_verified.name }} am/um {{ boatdamage.verified_at | date(format='%d.%m.%Y (%H:%M)') }}</small>
{% else %}
{% if loggedin_user.is_tech and boatdamage.fixed_at %}
<form action="/boatdamage/{{ boatdamage.id }}/verified" method="post" class="mt-3">
<input type="hidden" name="desc" value="{{ boatdamage.desc }}" />
<input type="submit" class="btn btn-dark" value="Verifiziert" />
</form>
{% endif %}
{% endif %}
</div>
</div>
{% endfor %}
</div> </div>
{% include "dynamics/sidebar" %}
{% endblock content%} {% endblock content%}

View File

@ -10,7 +10,7 @@
{{ macros::checkbox(label='Gäste erlauben', name='tripdetails.allow_guests') }} {{ macros::checkbox(label='Gäste erlauben', name='tripdetails.allow_guests') }}
{{ macros::checkbox(label='Immer anzeigen', name='tripdetails.always_show') }} {{ macros::checkbox(label='Immer anzeigen', name='tripdetails.always_show') }}
{{ macros::input(label='Anmerkungen', name='tripdetails.notes', type='input') }} {{ macros::input(label='Anmerkungen', name='tripdetails.notes', type='input') }}
{{ macros::select(data=trip_types, name='tripdetails.trip_type', default='Reguläre Ausfahrt') }} {{ macros::select(label='Typ', data=trip_types, name='tripdetails.trip_type', default='Reguläre Ausfahrt') }}
<input value="Erstellen" class="w-full btn btn-primary" type="submit"/> <input value="Erstellen" class="w-full btn btn-primary" type="submit"/>
</form> </form>

View File

@ -8,7 +8,7 @@
{{ macros::checkbox(label='Gäste erlauben', name='allow_guests') }} {{ macros::checkbox(label='Gäste erlauben', name='allow_guests') }}
{{ macros::checkbox(label='Immer anzeigen', name='always_show') }} {{ macros::checkbox(label='Immer anzeigen', name='always_show') }}
{{ macros::input(label='Anmerkungen', name='notes', type='input') }} {{ macros::input(label='Anmerkungen', name='notes', type='input') }}
{{ macros::select(data=trip_types, name='trip_type', default='Reguläre Ausfahrt') }} {{ macros::select(label='Typ', data=trip_types, name='trip_type', default='Reguläre Ausfahrt') }}
<input value="Erstellen" class="w-full btn btn-primary" type="submit"/> <input value="Erstellen" class="w-full btn btn-primary" type="submit"/>
</form> </form>

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-journal" viewBox="0 0 16 16">
<path d="M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2z"/>
<path d="M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1z"/>
</svg>

After

Width:  |  Height:  |  Size: 500 B

View File

@ -1,49 +1,67 @@
{% macro new() %} {% macro new() %}
<form action="/admin/boat/new" method="post" class="mt-4 bg-primary-900 rounded-md text-white px-3 pb-3 pt-2 sm:flex items-end justify-between"> <div class="w-full">
<div class="w-full"> <h2 class="text-md font-bold tracking-wide bg-primary-900 mt-3 p-3 text-white flex justify-between items-center rounded-md">
<h2 class="text-md font-bold mb-2 uppercase tracking-wide"> Neues Boot
Neues Boot hinzufügen
</h2> <a href="#" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"
{{ macros::input(label="Name", name="name", type="text", required=true) }} data-sidebar="true" data-trigger="sidebar" data-header="Neues Boot anlegen" data-body="#new-boat">
{{ macros::input(label="Anzahl Sitze", name="amount_seats", type="number", required=true, min=1) }} {% include "includes/plus-icon" %}
{{ macros::input(label="Baujahr", name="year_built", type="number", min=1950, max=2050) }} <span class="sr-only">Neues Boot anlegen</span>
{{ macros::input(label="Bootsbauer", name="boatbuilder", type="text") }} </a>
{{ macros::select(data=locations, label='location', name='location_id', selected_id=1) }} </h2>
{{ macros::select(data=users, label='users', name='owner', default="Vereinsboot") }} <div class="hidden">
{{ macros::checkbox(label="Steuerperson steuert nur", name="default_shipmaster_only_steering")}} <div id="new-boat">
{{ macros::checkbox(label="Skull", name="skull", checked=true)}} <form action="/admin/boat/new" method="post" class="grid gap-3">
{{ macros::checkbox(label="Externes Boot (anderer Verein)", name="external")}} {{ macros::input(label="Name", name="name", type="text", required=true) }}
</div> {{ macros::input(label="Anzahl Sitze", name="amount_seats", type="number", required=true, min=1) }}
<div class="text-right"> {{ macros::input(label="Baujahr", name="year_built", type="number", min=1950, max=2050) }}
<input value="Hinzufügen" type="submit" class="w-28 mt-2 sm:mt-0 rounded-md bg-primary-500 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"/> {{ macros::input(label="Bootsbauer", name="boatbuilder", type="text") }}
</div> {{ macros::select(label="Standort", data=locations, name='location_id', selected_id=1) }}
</form> {{ macros::select(label="Besitzer", data=users, name='owner', default="Verein") }}
<div>
{{ macros::checkbox(label="handgesteuert", name="default_shipmaster_only_steering")}}
{{ macros::checkbox(label="Skull", name="skull", checked=true)}}
{{ macros::checkbox(label="Externes Boot (anderer Verein)", name="external")}}
</div>
<input value="Hinzufügen" type="submit" class="w-full mt-2 rounded-md bg-primary-500 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"/>
</form>
</div>
</div>
</div>
<div class="bg-gray-200 p-3 mt-4 rounded-t-md">
<label for="name" class="sr-only">Suche</label>
<input type="search" name="name" id="filter-js" class="w-full relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Suchen nach Namen...">
</div>
<div id="filter-result-js" class="bg-gray-200 text-primary-950 pb-3 px-3 text-right"></div>
{% endmacro new %} {% endmacro new %}
{% macro edit(boat, uuid) %} {% macro edit(boat, uuid) %}
<form action="/admin/boat/{{ boat.id }}" data-filterable="true" method="post" class="bg-white p-3 rounded-md flex items-end md:items-center justify-between"> <div data-filterable="true" data-filter="{{ boat.name }}" class="w-full border-t">
<div class="w-full"> <form action="/admin/boat/{{ boat.id }}" data-filterable="true" method="post" class="bg-white p-4 w-full">
<input type="hidden" name="id" value="{{ boat.id }}"/> <div class="w-full">
<div class="font-bold mb-1">{{ boat.name }}<br/></div> <input type="hidden" name="id" value="{{ boat.id }}"/>
<div class="grid md:grid-cols-3"> <div class="font-bold mb-1">{{ boat.name }}<br/></div>
{{ macros::input(label='Name', name='name', type='text', value=boat.name) }} <div class="grid md:grid-cols-3 gap-3">
{{ macros::input(label='Amount Seats', name='amount_seats', type='number', min=0, value=boat.amount_seats) }} {{ macros::input(label='Name', name='name', type='text', value=boat.name) }}
{{ macros::select(data=locations, label='location', name='location_id', selected_id=boat.location_id) }} {{ macros::input(label='Plätze', name='amount_seats', type='number', min=0, value=boat.amount_seats) }}
{{ macros::select(data=users, label='users', name='owner', selected_id=boat.owner, default="Vereinsboot") }} {{ macros::select(data=locations, label='Standort', name='location_id', selected_id=boat.location_id) }}
{{ macros::input(label='Baujahr', name='year_built', type='number', min=1950, value=boat.year_built) }} {{ macros::select(data=users, label='Besitzer', name='owner', selected_id=boat.owner, default="Vereinsboot") }}
{{ macros::input(label='Bootsbauer', name='boatbuilder', type='text', value=boat.boatbuilder) }} {{ macros::input(label='Baujahr', name='year_built', type='number', min=1950, value=boat.year_built) }}
{{ macros::checkbox(label='default_shipmaster_only_steering', name='default_shipmaster_only_steering', id=uuid , checked=boat.default_shipmaster_only_steering) }} {{ macros::input(label='Bootsbauer', name='boatbuilder', type='text', value=boat.boatbuilder) }}
{{ macros::checkbox(label='skull', name='skull', id=uuid , checked=boat.skull) }} {{ macros::checkbox(label='hangesteuert', name='default_shipmaster_only_steering', id=uuid , checked=boat.default_shipmaster_only_steering) }}
{{ macros::checkbox(label='external', name='external', id=uuid , checked=boat.external) }} {{ macros::checkbox(label='Skull', name='skull', id=uuid , checked=boat.skull) }}
</div> {{ macros::checkbox(label='Externes Boot', name='external', id=uuid , checked=boat.external) }}
</div> </div>
<div class="grid gap-3"> </div>
<a href="/admin/boat/{{ boat.id }}/delete" class="inline-block btn btn-alert" onclick="return confirm('Wirklich löschen?');"> <div class="text-right mt-3">
{% include "includes/delete-icon" %} <a href="/admin/boat/{{ boat.id }}/delete" class="inline-block btn btn-alert" onclick="return confirm('Wirklich löschen?');">
Löschen {% include "includes/delete-icon" %}
</a> Löschen
<input value="Ändern" type="submit" class="w-28 btn btn-primary"/> </a>
</div> <input value="Ändern" type="submit" class="w-28 btn btn-primary"/>
</form> </div>
</form>
</div>
{% endmacro edit %} {% endmacro edit %}

View File

@ -13,7 +13,7 @@
<strong>{{ amount_seats }}x</strong> <strong>{{ amount_seats }}x</strong>
</div> </div>
{% for boat in grouped_boats %} {% for boat in grouped_boats %}
<div id="boat-{{ boat.id }}" class="px-3" {% if boat.damage != 'locked' %} onclick="document.getElementById('boat_id').value={{ boat.id }}; document.getElementById('newrower-max_rower_allowed').innerHTML={{ boat.amount_seats }}; document.getElementById('departure').value = new Date().toISOString().slice(0,16);" {% endif %}> <div id="boat-{{ boat.id }}" class="px-3 boats-js" {% if boat.damage != 'locked' %} data-seats="{{boat.amount_seats}}" data-default_shipmaster_only_steering="{{boat.default_shipmaster_only_steering}}" data-onclick="true" {% endif %} data-id="{{ boat.id }}">
<span class="status-damage status-damage-{{ boat.damage }}"></span> <span class="status-damage status-damage-{{ boat.damage }}"></span>
<span {% if boat.damage == 'locked' or boat.on_water %} class="opacity-50" {% endif %}>{{ boat.name }} <span {% if boat.damage == 'locked' or boat.on_water %} class="opacity-50" {% endif %}>{{ boat.name }}
{% if boat.owner %} {% if boat.owner %}
@ -27,127 +27,129 @@
{% endmacro show_boats %} {% endmacro show_boats %}
{# Shows the form for creating a new logbook entry. #} {# Shows the form for creating a new logbook entry. #}
{% macro new(only_ones, allow_any_shipmaster, shipmaster) %} {% macro new(only_ones, shipmaster) %}
<form action="/log" method="post" id="form" class="grid grid-cols-2 gap-3" onsubmit="Array.from(this.elements).forEach(e=>!e.value.trim()&&(e.disabled=true));"> <form action="/log" method="post" id="form" class="grid grid-cols-4 gap-3" onsubmit="Array.from(this.elements).forEach(e=>!e.value.trim()&&(e.disabled=true));">
{{ log::boat_select(only_ones=only_ones) }} {{ log::boat_select(only_ones=only_ones) }}
{% if allow_any_shipmaster %} <div class="col-span-4 md:col-span-3">
<select name="shipmaster" id="shipmaster" class="input rounded-md h-10"> <label for="shipmaster" class=" text-sm text-gray-600 ">Schiffsführer</label>
<optgroup label="Steuerleute">
{% for cox in coxes %} <select name="shipmaster" id="shipmaster" class="input rounded-md h-10">
<option value="{{ cox.id }}" {% if cox.id == shipmaster%} selected {% endif %}>{{ cox.name }}</option> <optgroup label="Steuerleute">
{% endfor %} {% for cox in coxes %}
</optgroup> <option value="{{ cox.id }}" {% if cox.on_water %} disabled="disabled" {% else %} {% if cox.id == shipmaster %} selected {% endif %} {% endif %}>{{ cox.name }}
<optgroup label="Mitglieder"> {% if cox.on_water %}
{% for user in users | filter(attribute="is_cox", value=false) %} (am Wasser)
<option value="{{ user.id }}" {% if user.id == shipmaster%} selected {% endif %}>{{ user.name }}</option> {% endif %}
{% endfor %} </option>
</optgroup> {% endfor %}
</select> </optgroup>
{% else %} <optgroup label="Mitglieder">
<input type="hidden" name="shipmaster" value="{{shipmaster}}"/> {% for user in users | filter(attribute="is_cox", value=false) %}
{% endif %} <option value="{{ user.id }}" {% if user.id == shipmaster %} selected {% endif %} {% if user.on_water %} disabled="disabled" {% endif %}>{{ user.name }}
{% if user.on_water %}
(am Wasser)
{% endif %}
</option>
{% endfor %}
</optgroup>
</select>
</div>
{% if not only_ones %} {% if not only_ones %}
{{ macros::checkbox(label='handgesteuert', name='shipmaster_only_steering') }} <div class="col-span-4 md:col-span-1">
<div class="text-sm text-gray-600">Bootssteuerung</div>
<div class="h-10 flex items-center">
{{ macros::checkbox(label='handgesteuert', name='shipmaster_only_steering', disabled=true) }}
</div>
</div>
{% endif %} {% endif %}
{% if not only_ones %} {% if not only_ones %}
{{ log::rower_select(id="newrower", selected=[], class="col-span-2") }} {{ log::rower_select(id="newrower", selected=[], class="col-span-4", init=true) }}
{% endif %} {% endif %}
<div></div> {{ macros::input(label='Abfahrtszeit', name='departure', type='datetime-local', required=true, wrapper_class='col-span-2') }}
{{ macros::input(label='Ankunftszeit', name='arrival', type='datetime-local', wrapper_class='col-span-2') }}
<div> <div class="relative col-span-2">
<label for="destination" class="small text-gray-600">Ziel</label> <label for="destination" class="text-sm text-gray-600">Ziel</label>
<input type="search" class="input rounded-md" list="destinations" placeholder="Destination" name="destination" id="destination">
<input class="input rounded-md set-distance-js" type="search" list="destinations" placeholder="Destination" id="destination" name="destination" value="" data-relation="distance_in_km"/>
<datalist id="destinations"> <datalist id="destinations">
{% for distance in distances %} {% for distance in distances %}
<option value="{{ distance.0 }}" distance={{ distance.1 }}/> <option value="{{ distance.0 }}" distance={{ distance.1 }} />
{% endfor %}
</datalist>
</div>
{{ macros::input(label='Abfahrtszeit', name='departure', type='datetime-local', required=true) }}
{{ macros::input(label='Ankunftszeit', name='arrival', type='datetime-local') }}
<div>
<label for="destination" class="small text-gray-600">Ziel</label>
<input type="search" class="input rounded-md set-distance-js" list="destinations" placeholder="Destination" name="destination" id="destination" data-relation="distance_in_km">
<datalist id="destinations">
{% for distance in distances %}
<option value="{{ distance.0 }}" distance={{ distance.1 }}/>
{% endfor %} {% endfor %}
</datalist> </datalist>
</div> </div>
<div class="relative"> <div class="relative col-span-2">
{{ macros::input(label="Distanz", name="distance_in_km", type="number", min=1) }} {{ macros::input(label="Distanz", name="distance_in_km", id="distance_in_km" , type="number", min=0, value='', class="rounded-md") }}
<span class="absolute right-0 bottom-0 py-1.5 px-2 bg-white border-0 text-gray-600 ring-1 ring-inset ring-gray-300 rounded-br-md rounded-tr-md">km</span> <span class="absolute right-0 bottom-0 py-1.5 px-2 bg-white border-0 text-gray-600 ring-1 ring-inset ring-gray-300 rounded-br-md rounded-tr-md">km</span>
</div> </div>
{{ macros::input(label="Kommentar", name="comments", type="text", wrapper_class="col-span-2") }}
<div class="col-span-2"> {{ macros::input(label="Kommentar", name="comments", type="text", wrapper_class="col-span-4") }}
<label for="logtype" class=" small text-gray-600 ">Typ</label>
{{ macros::select(data=logtypes, name='logtype', default="Normal") }} {{ macros::select(label="Typ", data=logtypes, name='logtype', default="Normal", wrapper_class="col-span-4") }}
</div>
<input type="submit" value="Ausfahrt starten" class="btn btn-primary w-full col-span-2 m-auto"/> <input type="submit" value="Ausfahrt eintragen" class="btn btn-primary w-full col-span-4 m-auto"/>
</form> </form>
{% endmacro new %} {% endmacro new %}
{% macro boat_select(only_ones) %} {% macro boat_select(only_ones, id="boat_id") %}
{% if not only_ones %} {% if not only_ones %}
{{ macros::select(data=boats, name='boat_id', display=["name", " (","amount_seats", " x)"], extras=["default_shipmaster_only_steering", "amount_seats"], class="col-span-2") }} {{ macros::select(label="Boot", data=boats, name="boat_id", id=id, display=["name", " (","amount_seats", " x)"], extras=["default_shipmaster_only_steering", "amount_seats", "on_water"], wrapper_class="col-span-4") }}
{% else %} {% else %}
{% set ones = boats | filter(attribute="amount_seats", value=1) %} {% set ones = boats | filter(attribute="amount_seats", value=1) %}
{{ macros::select(data=ones, name='boat_id', display=["name", " (","amount_seats", " x)"], extras=["default_shipmaster_only_steering", "amount_seats"], class="col-span-2") }} {{ macros::select(label="Boot", data=ones, name="boat_id", id=id, display=["name", " (","amount_seats", " x)"], extras=["default_shipmaster_only_steering", "amount_seats", "on_water"], wrapper_class="col-span-4") }}
{% endif %} {% endif %}
{% endmacro boat_select %} {% endmacro boat_select %}
{% macro rower_select(id, selected, amount_seats='', class='') %} {% macro rower_select(id, selected, amount_seats='', class='', init='false') %}
<div class="{{ class }}"> {% if not amount_seats or amount_seats > 1 %}
<select style="width: 100px;" multiple="multiple" name="rowers[]" multiselect-search="true" id="{{id}}" class="w-full"> <div class="{{ class }}">
{% for user in users %} <label for="{{id}}" class="text-sm text-gray-600 ">Ruderer</label>
{% set_global sel = false %} <select style="width: 100%;" multiple name="rowers[]" id="{{id}}" class="w-full" data-seats="{{amount_seats}}" data-init={{init}}>
{% for rower in selected %} {% for user in users %}
{% if rower.id == user.id %} {% set_global sel = false %}
{% set_global sel = true %} {% for rower in selected %}
{% endif %} {% if rower.id == user.id %}
{% set_global sel = true %}
{% endif %}
{% endfor %}
<option value="{{ user.id }}" {% if sel %} selected {% endif %} {% if user.on_water %} disabled="disabled" {% endif %}>
{{user.name}}
{% if user.on_water %}
(am Wasser)
{% endif %}
</option>
{% endfor %} {% endfor %}
<option value="{{ user.id }}" {% if sel %} selected {% endif %}>{{user.name}}</option> </select>
{% endfor %} </div>
</select> {% endif %}
</div>
<div>
<span id="{{id}}-amount_rower_selected"></span>
<span id="{{id}}-max_rower_allowed">{{amount_seats}}</span>
Ruderer auszuwählen
</div>
{% endmacro rower_select %} {% endmacro rower_select %}
{% macro show(log, state, allowed_to_close=false, only_ones) %} {% macro show(log, state, allowed_to_close=false, only_ones) %}
<div class="grid grid-cols-1 gap-3 mb-3 w-full"> <div class="grid grid-cols-1 gap-3 mb-3 w-full">
<div class="pt-2 px-3 {% if not loop.first %} border-t {% endif %}"> <div class="pt-2 px-3 {% if not loop.first %} border-t {% endif %}">
<div class="w-full"> <div class="w-full">
<div class="flex justify-between"> <div class="flex justify-between items-center">
<div> <div>
<strong class="text-primary-900"> <strong class="block text-primary-900">
{{ log.departure_timestamp | date(format="%H:%M") }} {{ log.departure | date(format="%H:%M") }}
Uhr Uhr
</strong> </strong>
<small class="text-gray-600">({{ log.boat.name }})</small> <a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{{ log.departure | date(format="%H:%M") }} Uhr</strong> ({{ log.boat.name }})" data-body="#log{{ log.id }}" class="text-sm link-primary break-all">
{{ log.boat.name }}
</a>
</div> </div>
<div>
<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{{ log.departure_timestamp | date(format="%H:%M") }} Uhr</strong> ({{ log.boat.name }})" data-body="#log{{ log.id }}" class="inline-block link-primary mr-3"> {% if allowed_to_close and state == "on_water" %}
Details <a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{{ log.departure | date(format="%H:%M") }} Uhr</strong> ({{ log.boat.name }})" data-body="#close{{ log.id }}" class="border-0 btn btn-dark text-white flex items-center justify-center ml-3">
</a> {% include "includes/pencil" %}
</div> </a>
{% endif %}
<div> </div>
{% if allowed_to_close and state == "on_water" %}
<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{{ log.departure_timestamp | date(format="%H:%M") }} Uhr</strong> ({{ log.boat.name }})" data-body="#close{{ log.id }}" class="btn btn-dark w-full mt-3">
Beenden
</a>
{% endif %}
</div> </div>
<div class="hidden"> <div class="hidden">
@ -155,16 +157,19 @@
<div id="close{{ log.id }}"> <div id="close{{ log.id }}">
{{ log::home(log=log, only_ones=only_ones) }} {{ log::home(log=log, only_ones=only_ones) }}
</div> </div>
<div>
LÖSCHEN
</div>
{% endif %} {% endif %}
<div id="log{{ log.id }}"> <div id="log{{ log.id }}">
{% if log.destination %} {% if log.destination %}
{{ log.destination }} {{ log.destination }}
{% endif %} {% endif %}
{% for cox in coxes %} {% for user in users %}
{% if cox.id == log.shipmaster %} {% if user.id == log.shipmaster %}
<p> <p>
<strong>{{ cox.name }}</strong> <strong>{{ user.name }}</strong>
</p> </p>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -172,6 +177,10 @@
{% for rower in log.rowers %} {% for rower in log.rowers %}
<p>{{ rower.name }}</p> <p>{{ rower.name }}</p>
{% endfor %} {% endfor %}
{% if allowed_to_close and state == "on_water" %}
<a href="/log/{{ log.id }}/delete" onclick="return confirm('Willst du diesen Eintrag wirklich löschen? Die Daten gehen verloren :O');">LÖSCHEN</a>
{% endif %}
</div> </div>
</div> </div>
</div> </div>
@ -179,59 +188,77 @@
</div> </div>
{% endmacro show %} {% endmacro show %}
{% macro show_old(log, state, allowed_to_close=false, only_ones) %} {% macro show_old(log, state, allowed_to_close=false, only_ones, index) %}
Bootsname: <div class="border-t bg-white py-3 px-4 relative" data-filterable="true" data-filter="{{ log.boat.name }} {{ log.shipmaster_user.name }} {% for rower in log.rowers %} {{ rower.name }} {% endfor %}">
{{ log.boat.name }}<br/> {% if log.logtype %}
Schiffsführer: <div class="absolute top-0 right-0 bg-primary-100 rounded-bl-md text-primary-950 text-xs w-32 px-2 py-1 text-center font-bold">
{{ log.shipmaster_user.name }}<br/> {% if log.logtype == 1 %}
{% if log.shipmaster_only_steering %} Wanderfahrt
Schiffsführer steuert nur {% else %}
{% endif %} {% if log.logtype == 2 %}
Weggefahren: Regatta
{{ log.departure }}<br/> {% else %}
{% if state == "completed" %} {{ log.logtype }}
Angekommen: {% endif %}
{{ log.arrival}}<br/> {% endif %}
{% endif %} </div>
{% set amount_rowers = log.rowers | length %} {% endif %}
{% set amount_guests = log.boat.amount_seats - amount_rowers -1 %} <div {% if log.logtype %} class="mt-4 sm:mt-0" {% endif %}>
{% if allowed_to_close and state == "on_water" %} <strong>{{ log.boat.name }}</strong> <small class="text-gray-600">({{ log.shipmaster_user.name }}{% if log.shipmaster_only_steering %} - handgesteuert {% endif %})</small>
{{ log::home(log=log, only_ones=only_ones) }} <small class="block text-gray-600">
{% else %}
Ziel: {% if state == "completed" and log.departure | date(format='%d.%m.%Y') == log.arrival | date(format='%d.%m.%Y') %}
{{ log.destination }}<br/> {{ log.departure | date(format='%d.%m.%Y')}} ({{ log.departure | date(format='%H:%M')}} - {{ log.arrival | date(format='%H:%M')}})
{% if state == "completed" %} {% else %}
Km: {{ log.departure | date(format='%d.%m.%Y (%H:%M)') }} {% if state == "completed" %}- {{ log.arrival | date(format='%d.%m.%Y (%H:%M)') }}{% endif %}
{{ log.distance_in_km }}<br/> {% endif %}
{% endif %} </small>
{% if log.comments %} {% set amount_rowers = log.rowers | length %}
Kommentare: {% set amount_guests = log.boat.amount_seats - amount_rowers -1 %}
{{ log.comments }}<br/> {% if allowed_to_close and state == "on_water" %}
{% endif %} {{ log::home(log=log, only_ones=only_ones) }}
{% if log.logtype %} {% else %}
Logtype: <div>
{{ log.logtype }}<br/> {{ log.destination }}
{% endif %} {% if state == "completed" %}
{% if amount_guests > 0 or log.rowers | length > 0 %} <small class="text-gray-600">({{ log.distance_in_km }} km)</small>
Ruderer: {% endif %}
{% endif %}
{% if amount_guests > 0 %} {% if log.comments %}
{{ amount_guests }} <span class="text-sm italic">- "{{ log.comments }}"</span>
Gäste (ohne Account) {% endif %}
{% endif %} </div>
{% for rower in log.rowers %} {% if amount_guests > 0 or log.rowers | length > 0 %}
{{ rower.name }} <div class="text-sm text-gray-600">
{% endfor %} Mitruderer:
{% endif %} {% for rower in log.rowers %}
{{ rower.name }}{% if not loop.last or amount_guests > 0 %}, {% endif %}
{% endfor %}
{% if amount_guests > 0 %}
{{ amount_guests }}
Gäste (ohne Account)
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
{% endmacro show_old %} {% endmacro show_old %}
{% macro home(log, only_ones) %} {% macro home(log, only_ones) %}
<form class="grid grid-cols-1 gap-3" action="/log/{{log.id}}" method="post"> <form class="grid grid-cols-1 gap-3" action="/log/{{log.id}}" method="post">
{% for user in users %}
{% if user.id == log.shipmaster %}
<p>
<strong>{{ user.name }}</strong>
</p>
{% endif %}
{% endfor %}
{% if not only_ones %} {% if not only_ones %}
{{ log::rower_select(id="rowers"~log.id, selected=log.rowers, amount_seats=log.boat.amount_seats) }} {{ log::rower_select(id="rowers"~log.id, selected=log.rowers, amount_seats=log.boat.amount_seats) }}
{% endif %} {% endif %}
<div class="relative"> <div class="relative">
<label for="destination" class="small text-gray-600">Ziel</label> <label for="destination" class="text-sm text-gray-600">Ziel</label>
<input class="input rounded-md set-distance-js change-id-js" type="search" list="destinations" placeholder="Destination" required="required" id="destination{{ log.id }}" name="destination" value="{{log.destination}}" data-relation="distance_in_km{{log.id}}"/> <input class="input rounded-md set-distance-js change-id-js" type="search" list="destinations" placeholder="Destination" required="required" id="destination{{ log.id }}" name="destination" value="{{log.destination}}" data-relation="distance_in_km{{log.id}}"/>
</div> </div>
@ -242,11 +269,8 @@
</div> </div>
{{ macros::input(label="Kommentar", name="comments", id="comments" ~ log.id, type="text", value=log.comments, class="rounded-md change-id-js") }} {{ macros::input(label="Kommentar", name="comments", id="comments" ~ log.id, type="text", value=log.comments, class="rounded-md change-id-js") }}
{{ macros::select(label="Typ", data=logtypes, name="logtype", id="logtype" ~ log.id, default="Normal", selected_id=log.logtype, class="rounded-md change-id-js") }}
<div>
<label for="logtype" class=" small text-gray-600 ">Typ</label>
{{ macros::select(data=logtypes, name="logtype", id="logtype" ~ log.id, default="Normal", selected_id=log.logtype, class="rounded-md change-id-js") }}
</div>
<input class="btn btn-primary" type="submit" value="Ausfahrt beenden"/> <input class="btn btn-primary" type="submit" value="Ausfahrt beenden"/>
</form> </form>
{% endmacro home %} {% endmacro home %}

View File

@ -13,31 +13,31 @@
{% include "includes/question-icon" %} {% include "includes/question-icon" %}
<span class="sr-only">FAQs</span> <span class="sr-only">FAQs</span>
</a> </a>
{% if loggedin_user.is_admin%}
<a href="/boatdamage" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer">
Bootsschaden
<span class="sr-only">Bootsschaden</span>
</a>
{% endif %}
{% if loggedin_user.is_admin %} {% if loggedin_user.is_admin %}
<a href="/stat" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"> <a href="#" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"
STATS data-sidebar="true" data-trigger="sidebar" data-header="Logbuch" data-body="#mobile-menu">
<span class="sr-only">Logbuch</span> {% include "includes/book" %}
</a> <span class="sr-only">Logbuch</span>
<a href="/log/show" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"> </a>
LOGBUCH HISTORY <div class="hidden">
<span class="sr-only">Logbuch History</span> <div id="mobile-menu">
</a> <a href="/log" class="block w-100 py-2 hover:text-primary-600">
<a href="/log" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"> Ausfahrt eintragen
LOGBUCH </a>
<span class="sr-only">Logbuch</span> <a href="/log/show" class="block w-100 py-2 hover:text-primary-600 border-t">
</a> Logbuch
<a href="/admin/boat" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"> </a>
BOATS <a href="/stat" class="block w-100 py-2 hover:text-primary-600 border-t">
<span class="sr-only">Bootsverwaltung</span> Statistik
</a> </a>
<a href="/admin/boat" class="block w-100 py-2 hover:text-primary-600 border-t">
Boote
</a>
<a href="/boatdamage" class="block w-100 py-2 hover:text-primary-600 border-t">
Bootsschaden
</a>
</div>
</div>
<a href="/admin/user" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"> <a href="/admin/user" class="inline-flex justify-center rounded-md bg-primary-600 mx-1 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer">
<svg class="inline h-4" width="16" height="16" fill="currentColor" class="bi bi-person-lines-fill" viewbox="0 0 16 16"> <svg class="inline h-4" width="16" height="16" fill="currentColor" class="bi bi-person-lines-fill" viewbox="0 0 16 16">
@ -62,38 +62,41 @@
{% macro input(label, name, type, required=false, class='rounded-md', value='', min='', hide_label=false, id='', autofocus=false, wrapper_class='') %} {% macro input(label, name, type, required=false, class='rounded-md', value='', min='', hide_label=false, id='', autofocus=false, wrapper_class='') %}
<div class="{{wrapper_class}}"> <div class="{{wrapper_class}}">
<label for="{{ name }}" class="{% if hide_label %} sr-only {% else %} small text-gray-600 {% endif %}">{{ label }}</label> <label for="{{ name }}" class="{% if hide_label %} sr-only {% else %} text-sm text-gray-600 {% endif %}">{{ label }}</label>
<input {% if id %} id="{{ id }}" {% else %} id="{{ name }}" {% endif %} name="{{ name }}" type="{{ type }}" {% if required %} required {% endif %} value="{{ value }}" class="input {{ class }}" placeholder="{% if hide_label %}{{ label }}{% endif %}" {% if min %} min="{{ min }}" {% endif %} {% if autofocus %} autofocus {% endif %}> <input {% if id %} id="{{ id }}" {% else %} id="{{ name }}" {% endif %} name="{{ name }}" type="{{ type }}" {% if required %} required {% endif %} value="{{ value }}" class="input {{ class }}" placeholder="{% if hide_label %}{{ label }}{% endif %}" {% if min is defined %} min="{{ min }}" {% endif %} {% if autofocus %} autofocus {% endif %}>
</div> </div>
{% endmacro input %} {% endmacro input %}
{% macro checkbox(label, name, id='', checked=false, class='') %} {% macro checkbox(label, name, id='', checked=false, class='', disabled=false) %}
<label for="{{ name }}{{ id }}" class="flex items-center cursor-pointer hover:text-gray-900 {{ class }}"> <label for="{{ name }}{{ id }}" class="flex items-center cursor-pointer hover:text-gray-900 {{ class }}">
<input type="checkbox" id="{{ name }}{{ id }}" name="{{ name }}" {% if checked %} checked {% endif %} class="h-4 w-4 accent-primary-600 mr-2"/> <input type="checkbox" id="{{ name }}{{ id }}" name="{{ name }}" {% if checked %} checked {% endif %} {% if disabled %} disabled {% endif %} class="h-4 w-4 accent-primary-600 mr-2"/>
{{ label }} {{ label }}
</label> </label>
{% endmacro checkbox %} {% endmacro checkbox %}
{% macro select(data, name='trip_type', default='', id='', selected_id='', display='', extras='', class='') %} {% macro select(label, data, name='trip_type', default='', id='', selected_id='', display='', extras='', class='', wrapper_class='') %}
{% if display == '' %} <div class="{{wrapper_class}}">
{% set display = ["name"] %} <label for="{{ name }}" class="text-sm text-gray-600">{{ label }}</label>
{% endif %} {% if display == '' %}
<select name="{{ name }}" {% if id %} id="{{ id }}" {% else %} id="{{ name }}" {% endif %} class="input rounded-md h-10 {{ class }}"> {% set display = ["name"] %}
{% if default %} {% endif %}
<option selected value>{{ default }}</option> <select name="{{ name }}" {% if id %} id="{{ id }}" {% else %} id="{{ name }}" {% endif %} class="input rounded-md {{ class }}">
{% endif %} {% if default %}
{% for d in data %} <option selected value>{{ default }}</option>
<option value="{{ d.id }}" {% if d.id == selected_id %} selected {% endif %} {% if extras != '' %} {% for extra in extras %} extra- {{extra}}={{d[extra]}} {% endfor %} {% endif %}> {% endif %}
{% for displa in display -%} {% for d in data %}
{%- if d[displa] -%} <option value="{{ d.id }}" {% if d.id == selected_id %} selected {% endif %} {% if extras != '' %} {% for extra in extras %} {% if extra != 'on_water' %} data-{{extra}}={{d[extra]}} {% else %} {% if d[extra] %} disabled {% endif %} {% endif %} {% endfor %} {% endif %}>
{{- d[displa] -}} {% for displa in display -%}
{%- else -%} {%- if d[displa] -%}
{{- displa -}} {{- d[displa] -}}
{%- endif -%} {%- else -%}
{%- endfor %} {{- displa -}}
</option> {%- endif -%}
{% endfor %} {%- endfor %}
</select> </option>
{% endfor %}
</select>
</div>
{% endmacro select %} {% endmacro select %}
@ -116,7 +119,7 @@
{% if rower.is_real_guest %} {% if rower.is_real_guest %}
<small class="text-gray-600">(Gast)</small> <small class="text-gray-600">(Gast)</small>
{% if allow_removing %} {% if allow_removing %}
<a href="/remove/{{ trip_details_id }}/{{ rower.name }}" class="btn btn-attention btn-fw">Abmelden</a> <a href="/remove/{{ trip_details_id }}/{{ rower.name }}" class="btn btn-attention btn-fw">Abmelden</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
<span class="hidden">(angemeldet seit <span class="hidden">(angemeldet seit

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pencil-square" viewBox="0 0 16 16">
<path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/>
<path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/>
</svg>

After

Width:  |  Height:  |  Size: 579 B

View File

@ -239,7 +239,7 @@
{{ macros::input(label='Anmerkungen', name='notes', type='input', value=trip.notes) }} {{ macros::input(label='Anmerkungen', name='notes', type='input', value=trip.notes) }}
{{ macros::checkbox(label='Immer anzeigen', name='always_show', id=trip.id,checked=trip.always_show) }} {{ macros::checkbox(label='Immer anzeigen', name='always_show', id=trip.id,checked=trip.always_show) }}
{{ macros::checkbox(label='Gesperrt', name='is_locked', id=trip.id,checked=trip.is_locked) }} {{ macros::checkbox(label='Gesperrt', name='is_locked', id=trip.id,checked=trip.is_locked) }}
{{ macros::select(name='trip_type', data=trip_types, default='Reguläre Ausfahrt', selected_id=trip.trip_type_id) }} {{ macros::select(label='Typ', name='trip_type', data=trip_types, default='Reguläre Ausfahrt', selected_id=trip.trip_type_id) }}
<input value="Speichern" class="btn btn-primary" type="submit"/> <input value="Speichern" class="btn btn-primary" type="submit"/>
</form> </form>
@ -293,8 +293,6 @@
</div> </div>
</div> </div>
{% include "dynamics/sidebar" %}
{% if loggedin_user.is_cox %} {% if loggedin_user.is_cox %}
{% include "forms/trip" %} {% include "forms/trip" %}
{% endif %} {% endif %}

View File

@ -23,22 +23,24 @@
<div class="md:col-span-3 bg-white rounded-md shadow"> <div class="md:col-span-3 bg-white rounded-md shadow">
<h2 class="h2">Neue Ausfahrt</h2> <h2 class="h2">Neue Ausfahrt</h2>
<div class="p-3"> <div class="p-3">
{{ log::new(only_ones=false, allow_any_shipmaster=true, shipmaster=-1) }} {{ log::new(only_ones=false, shipmaster=-1) }}
</div> </div>
</div> </div>
<div class="bg-white rounded-md shadow"> <div class="bg-white rounded-md shadow">
<h2 class="h2">Am Wasser</h2> <h2 class="h2">Am Wasser</h2>
<div> <div>
{% for log in on_water %} {% if on_water | length > 0 %}
{{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones=false) }} {% for log in on_water %}
{% endfor %} {{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones=false) }}
{% endfor %}
{% else %}
<p class="p-3 text-center">Kein Boot am Wasser</p>
{% endif %}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% include "dynamics/sidebar" %}
<script src="/public/logbook.js"></script> <script src="/public/logbook.js"></script>
{% endblock content%} {% endblock content%}

View File

@ -7,10 +7,18 @@
<div class="max-w-screen-lg w-full"> <div class="max-w-screen-lg w-full">
<h1 class="h1">Logbuch</h1> <h1 class="h1">Logbuch</h1>
{% for log in logs %}
{{ log::show_old(log=log, state="completed", only_ones=false) }} <div class="mt-3">
<hr/> <div class="bg-gray-200 p-3 mt-4 rounded-t-md">
{% endfor %} <label for="name" class="sr-only">Suche</label>
<input type="search" name="name" id="filter-js" class="w-full relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Suchen nach Bootsname oder Ruderer...">
</div>
<div id="filter-result-js" class="bg-gray-200 text-primary-950 pb-3 px-3 text-right"></div>
{% for log in logs %}
{{ log::show_old(log=log, state="completed", only_ones=false, index=loop.index) }}
{% endfor %}
</div>
</div> </div>
{% endblock content%} {% endblock content%}

View File

@ -4,13 +4,16 @@
{% extends "base" %} {% extends "base" %}
{% block content %} {% block content %}
{% if flash %}
{{ macros::alert(message=flash.1, type=flash.0, class="sm:col-span-2 lg:col-span-3") }}
{% endif %}
<div class="w-full"> <div class="w-full">
<h1 class="h1">Logbuch</h1> <h1 class="h1">Logbuch</h1>
{% if flash %}
<div class="w-full">
{{ macros::alert(message=flash.1, type=flash.0, class="sm:col-span-2 lg:col-span-3") }}
</div>
{% endif %}
<div class="w-full grid md:grid-cols-5 gap-3 mt-5"> <div class="w-full grid md:grid-cols-5 gap-3 mt-5">
<div class="bg-white rounded-md hidden md:block shadow"> <div class="bg-white rounded-md hidden md:block shadow">
<h2 class="h2">Boote</h2> <h2 class="h2">Boote</h2>
@ -22,25 +25,26 @@
<div class="md:col-span-3 bg-white rounded-md shadow"> <div class="md:col-span-3 bg-white rounded-md shadow">
<h2 class="h2">Neue Ausfahrt</h2> <h2 class="h2">Neue Ausfahrt</h2>
<div class="p-3"> <div class="p-3">
{{ log::new(only_ones=loggedin_user.is_cox==false, allow_any_shipmaster=loggedin_user.is_cox, shipmaster=loggedin_user.id) }} {{ log::new(only_ones=loggedin_user.is_cox==false, shipmaster=loggedin_user.id) }}
</div> </div>
</div> </div>
<div class="bg-white rounded-md shadow"> <div class="bg-white rounded-md shadow">
<h2 class="h2">Am Wasser</h2> <h2 class="h2">Am Wasser</h2>
{% for log in on_water %} {% if on_water | length > 0 %}
{% if log.shipmaster == loggedin_user.id %} {% for log in on_water %}
{{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones=loggedin_user.is_cox==false) }} {% if log.shipmaster == loggedin_user.id %}
{% else %} {{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones=loggedin_user.is_cox==false) }}
{{ log::show(log=log, state="on_water", only_ones=true) }} {% else %}
{% endif %} {{ log::show(log=log, state="on_water", only_ones=true) }}
{% endfor %} {% endif %}
{% endfor %}
{% else %}
<p class="p-3 text-center">Kein Boot am Wasser</p>
{% endif %}
</div> </div>
</div> </div>
</div> </div>
{% include "dynamics/sidebar" %}
<script src="/public/logbook.js"></script> <script src="/public/logbook.js"></script>
<script src="/public/js/multiselect-dropdown.js"></script>
{% endblock content%} {% endblock content%}

View File

@ -6,12 +6,47 @@
<div class="max-w-screen-lg w-full"> <div class="max-w-screen-lg w-full">
<h1 class="h1">Statstik</h1> <h1 class="h1">Statistik</h1>
<ol> <div class="bg-gray-200 p-3 mt-4 rounded-t-md">
<label for="name" class="sr-only">Suche</label>
<input type="search" name="name" id="filter-js" class="w-full relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Suchen nach Namen...">
</div>
<div id="filter-result-js" class="bg-gray-200 text-primary-950 pb-3 px-3 text-right"></div>
<div class="border-r border-l">
{% set_global km = 0 %}
{% set_global index = 1 %}
{% for s in stat %} {% for s in stat %}
<li>{{s.name}}: <div class="border-t {% if loop.last %} border-b {% endif %} bg-white flex justify-between items-center px-3 py-1" data-filterable="true" data-filter="{{ s.name }}">
{{s.rowed_km}}km</li> <span class="text-sm text-gray-600 w-10">
{% if km != s.rowed_km %}
{{loop.index}}
{% set_global index = loop.index %}
{% else %}
{{ index }}
{% endif %}
</span>
<span class="grow">{{s.name}}</span>
<span>{{s.rowed_km}} km</span>
{% set_global km = s.rowed_km %}
</div>
{% endfor %} {% endfor %}
</ol> </div>
<div id="container" class="w-full"></div>
</div> </div>
<script>
{% if personal %}
const data = [
{%- for p in personal %}
{ date: '{{p.date}}', km: {{p.km}} },
{%- endfor %}
]
sessionStorage.setItem('userStats', JSON.stringify(data));
{% endif %}
</script>
<script src="/public/logbook.js"></script>
{% endblock content%} {% endblock content%}