From 2a850ff4b1dca4937eb77187e35e7ed21e199db2 Mon Sep 17 00:00:00 2001 From: Bryan Cerrati Date: Mon, 23 Jun 2025 12:51:52 -0400 Subject: [PATCH] CSV Export --- app/db/keepalive.db | Bin 16384 -> 16384 bytes app/keep.py | 21 ++++++++++++++++++++- app/templates/keepaliveshowpage.html | 5 +++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/db/keepalive.db b/app/db/keepalive.db index 9354e251daaa8b36f918dfb5767f130049c60f1c..e1a73811fcd21fe3805ae8e08a4e6eb6233fdf4d 100644 GIT binary patch delta 24 fcmZo@U~Fh$oFL68Gf~EwQD$Spe0@fqMFs)@ShxnJ delta 24 fcmZo@U~Fh$oFL68HBrWyQEFqte0@glMFs)@Sb_$j diff --git a/app/keep.py b/app/keep.py index df2524a..521bd99 100644 --- a/app/keep.py +++ b/app/keep.py @@ -1,4 +1,4 @@ -from flask import Blueprint, render_template, request, g, url_for, redirect +from flask import Blueprint, render_template, request, g, url_for, redirect, Response from datetime import datetime import sqlite3 @@ -76,3 +76,22 @@ def delete_keepalive(item_id): c.execute("DELETE FROM keepalive2 WHERE id = ?", (item_id,)) conn.commit() return redirect(url_for('keep.dispkeepalive')) + + +@keep.route('/download_csv') +def download_csv(): + conn = get_db() + c = conn.cursor() + c.execute("SELECT location, date, time FROM keepalive2 ORDER BY id DESC") + rows = c.fetchall() + conn.close() + + output = "Location,Date,Time\n" + for row in rows: + output += f"{row[0]},{row[1]},{row[2]}\n" + + return Response( + output, + mimetype='text/csv', + headers={"Content-Disposition": "attachment;filename=keepalive.csv"} + ) diff --git a/app/templates/keepaliveshowpage.html b/app/templates/keepaliveshowpage.html index 7040fc0..39faf3e 100644 --- a/app/templates/keepaliveshowpage.html +++ b/app/templates/keepaliveshowpage.html @@ -26,6 +26,11 @@ {% endfor %} + +
+ Download CSV +
+ {% else %}

No items to show.

{% endif %}