Compare commits

...

5 Commits

5 changed files with 59 additions and 4 deletions
+1 -2
View File
@@ -2716,8 +2716,6 @@ def tutorial_page():
student_max_borrow_days=cfg.STUDENT_MAX_BORROW_DAYS
)
@app.route('/library')
@app.route('/library/export/<scope>')
def library_export_excel(scope):
if 'username' not in session:
@@ -2760,6 +2758,7 @@ def library_export_excel(scope):
download_name=filename
)
@app.route('/library')
def library_view():
"""
Dedicated page for viewing library items (books, CDs, etc.).
+7 -1
View File
@@ -134,8 +134,14 @@ def _get_int_env(name, default):
except ValueError:
return int(default)
def get_version():
with open(os.path.join(BASE_DIR, '..', '.docker-build.env'), 'r') as f:
for l in f:
if l.startswith('INVENTAR_APP_IMAGE='):
return l.split(':', 1)[1].strip()
# Expose settings
APP_VERSION = _get(_conf, ['ver'], DEFAULTS['version'])
APP_VERSION = get_version()
DEBUG = _get_bool_env('INVENTAR_DEBUG', _get(_conf, ['dbg'], DEFAULTS['debug']))
SECRET_KEY = str(os.getenv('INVENTAR_SECRET_KEY', _get(_conf, ['key'], DEFAULTS['secret_key'])))
HOST = _get(_conf, ['host'], DEFAULTS['host'])
+4
View File
@@ -402,6 +402,10 @@ body.table-view .item-card {
background: var(--ui-surface);
box-shadow: none;
scroll-snap-align: none;
min-height: 60px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
body.table-view .item-card .card-content {
+7 -1
View File
@@ -144,7 +144,13 @@ services:
# Health check for load balancer
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read(); print('OK')"
]
interval: 30s
timeout: 10s
retries: 3
+40
View File
@@ -11,6 +11,44 @@ fi
CONFIG_FILE="$PWD/config.json"
ensure_runtime_config_json() {
local config_path backup_path
config_path="$CONFIG_FILE"
if [ -d "$config_path" ]; then
backup_path="${config_path}.dir.$(date +%Y%m%d-%H%M%S).bak"
mv "$config_path" "$backup_path"
echo "Warning: moved unexpected directory $config_path to $backup_path"
fi
if [ ! -f "$config_path" ]; then
cat > "$config_path" <<'EOF'
{
"ver": "2.6.5",
"dbg": false,
"host": "0.0.0.0",
"port": 8000,
"mongodb": {
"host": "mongodb",
"port": 27017,
"db": "Inventarsystem"
},
"modules": {
"library": {
"enabled": false
},
"student_cards": {
"enabled": false,
"default_borrow_days": 14,
"max_borrow_days": 365
}
}
}
EOF
echo "Created default runtime config at $config_path"
fi
}
show_help() {
echo "Usage: ./manage-tenant.sh [COMMAND] [OPTIONS]"
echo ""
@@ -176,6 +214,8 @@ EOF
restart_app_container() {
local env_file="$PWD/.docker-build.env"
local compose_args=()
ensure_runtime_config_json
# If HOST_WORKDIR is set (called from container), use absolute paths so docker daemon resolves them correctly
if [ -n "$HOST_WORKDIR" ]; then