fix: case-insensitive field matching + status migration
This commit is contained in:
@@ -105,6 +105,11 @@ def init_schema(db):
|
|||||||
);
|
);
|
||||||
""")
|
""")
|
||||||
db.commit()
|
db.commit()
|
||||||
|
# Migration: add status column if missing
|
||||||
|
try:
|
||||||
|
db.execute("ALTER TABLE submissions ADD COLUMN status TEXT NOT NULL DEFAULT 'received'")
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
def get_setting(db, key, default=""):
|
def get_setting(db, key, default=""):
|
||||||
row = db.execute("SELECT value FROM settings WHERE key = ?", (key,)).fetchone()
|
row = db.execute("SELECT value FROM settings WHERE key = ?", (key,)).fetchone()
|
||||||
@@ -337,8 +342,8 @@ def check_status(email: str = "", phone: str = ""):
|
|||||||
rows = db.execute("""
|
rows = db.execute("""
|
||||||
SELECT s.id, s.status, s.created_at
|
SELECT s.id, s.status, s.created_at
|
||||||
FROM submissions s
|
FROM submissions s
|
||||||
JOIN submission_data d1 ON d1.submission_id = s.id AND d1.field_label = 'Email' AND d1.field_value = ?
|
JOIN submission_data d1 ON d1.submission_id = s.id AND LOWER(d1.field_label) = 'email' AND d1.field_value = ?
|
||||||
JOIN submission_data d2 ON d2.submission_id = s.id AND d2.field_label = 'Phone' AND d2.field_value = ?
|
JOIN submission_data d2 ON d2.submission_id = s.id AND LOWER(d2.field_label) = 'phone' AND d2.field_value = ?
|
||||||
ORDER BY s.id DESC LIMIT 1
|
ORDER BY s.id DESC LIMIT 1
|
||||||
""", (email.strip(), phone.strip())).fetchall()
|
""", (email.strip(), phone.strip())).fetchall()
|
||||||
db.close()
|
db.close()
|
||||||
@@ -358,8 +363,8 @@ def delete_submission(email: str = "", phone: str = ""):
|
|||||||
rows = db.execute("""
|
rows = db.execute("""
|
||||||
SELECT s.id
|
SELECT s.id
|
||||||
FROM submissions s
|
FROM submissions s
|
||||||
JOIN submission_data d1 ON d1.submission_id = s.id AND d1.field_label = 'Email' AND d1.field_value = ?
|
JOIN submission_data d1 ON d1.submission_id = s.id AND LOWER(d1.field_label) = 'email' AND d1.field_value = ?
|
||||||
JOIN submission_data d2 ON d2.submission_id = s.id AND d2.field_label = 'Phone' AND d2.field_value = ?
|
JOIN submission_data d2 ON d2.submission_id = s.id AND LOWER(d2.field_label) = 'phone' AND d2.field_value = ?
|
||||||
ORDER BY s.id DESC LIMIT 1
|
ORDER BY s.id DESC LIMIT 1
|
||||||
""", (email.strip(), phone.strip())).fetchall()
|
""", (email.strip(), phone.strip())).fetchall()
|
||||||
if not rows:
|
if not rows:
|
||||||
|
|||||||
Reference in New Issue
Block a user