From: Jakub Czajka Date: Sat, 6 Jan 2024 14:03:55 +0000 (+0100) Subject: Allow creating new exercise categories and associating them with exercises. X-Git-Url: https://git.ekhem.eu.org/?a=commitdiff_plain;h=24fd6ed798c99b6a3a36c75c26a257527e2d0872;p=gym.git Allow creating new exercise categories and associating them with exercises. --- diff --git a/gym.conf b/gym.conf index da5ba1f..6d7f318 100644 --- a/gym.conf +++ b/gym.conf @@ -1,4 +1,4 @@ -# Copyright (c) 2023 Jakub Czajka +# Copyright (c) 2023-2024 Jakub Czajka # License: GPL-3.0 or later. server { @@ -23,7 +23,7 @@ server { fastcgi_param SCRIPT_FILENAME ${dollar}document_root/record.sh; } - location ~ ^/(exercise|gym|workout)$ { + location ~ ^/(category|exercise|exercise_category|gym|workout)$ { include fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param RECORD_TYPE ${dollar}1; diff --git a/gym.sh b/gym.sh index 118c619..acdfabb 100755 --- a/gym.sh +++ b/gym.sh @@ -1,11 +1,17 @@ #!/bin/sh -# Copyright (c) 2023 Jakub Czajka +# Copyright (c) 2023-2024 Jakub Czajka # License: GPL-3.0 or later. . /etc/environment -gyms=$(/usr/bin/psql --user=gym_tracker --dbname="${GYM_DB}" --tuples-only \ - --no-align --command="SELECT name FROM gyms") +query_db() { + /usr/bin/psql --user=gym_tracker --dbname="${GYM_DB}" --tuples-only \ + --no-align --command="${1}" +} + +exercises=$(query_db "SELECT name FROM exercises ORDER BY ID") +gyms=$(query_db "SELECT name FROM gyms ORDER BY id") +categories=$(query_db "SELECT name FROM categories ORDER BY id") format_as() { xargs --replace={} echo "${1}" @@ -58,6 +64,29 @@ PAGE=" + +
+
+ New exercise category + + +
+
+ +
+
+ Associate exercise with category + + + +
+
" diff --git a/insert.sh b/insert.sh index aba0fac..c0a3954 100755 --- a/insert.sh +++ b/insert.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (c) 2023 Jakub Czajka +# Copyright (c) 2023-2024 Jakub Czajka # License: GPL-3.0 or later. . /etc/environment @@ -35,6 +35,20 @@ echo " " case ${RECORD_TYPE} in + category) + category=$(get_query_param category) + + query_db "\ + INSERT INTO categories (name) + VALUES ('${category}')" + + id=$(query_db "\ + SELECT id + FROM categories + WHERE name='${category}'") + + echo "Recorded new category '${category}' (id=${id})." + ;; exercise) exercise=$(get_query_param exercise) @@ -49,6 +63,23 @@ case ${RECORD_TYPE} in echo "Recorded new exercise '${exercise}' (id=${id})." ;; + exercise_category) + category=$(get_query_param category) + exercise=$(get_query_param exercise) + + category_id=$(query_db "\ + SELECT id + FROM categories + WHERE name='${category}'") + + exercise_id=$(query_db "\ + SELECT id + FROM exercises + WHERE name='${exercise}'") + + echo "Associated exercise '${exercise}' (id=${exercise_id}) with category\ + ${category} (id=${category_id})." + ;; gym) gym=$(get_query_param gym)