diff --git a/lnbits/extensions/lnticket/crud.py b/lnbits/extensions/lnticket/crud.py
index 45be7124..47be3d02 100644
--- a/lnbits/extensions/lnticket/crud.py
+++ b/lnbits/extensions/lnticket/crud.py
@@ -49,7 +49,7 @@ async def set_ticket_paid(payment_hash: str) -> Tickets:
amount = formdata.amountmade + row[7]
await db.execute(
"""
- UPDATE lnticket.form
+ UPDATE lnticket.forms
SET amountmade = ?
WHERE id = ?
""",
@@ -108,34 +108,35 @@ async def create_form(
name: str,
webhook: Optional[str] = None,
description: str,
- costpword: int,
+ amount: int,
+ flatrate: int,
) -> Forms:
form_id = urlsafe_short_hash()
await db.execute(
"""
- INSERT INTO lnticket.form (id, wallet, name, webhook, description, costpword, amountmade)
- VALUES (?, ?, ?, ?, ?, ?, ?)
+ INSERT INTO lnticket.forms (id, wallet, name, webhook, description, flatrate, amount, amountmade)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""",
- (form_id, wallet, name, webhook, description, costpword, 0),
+ (form_id, wallet, name, webhook, description, flatrate, amount, 0),
)
form = await get_form(form_id)
- assert form, "Newly created form couldn't be retrieved"
+ assert form, "Newly created forms couldn't be retrieved"
return form
async def update_form(form_id: str, **kwargs) -> Forms:
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
await db.execute(
- f"UPDATE lnticket.form SET {q} WHERE id = ?", (*kwargs.values(), form_id)
+ f"UPDATE lnticket.forms SET {q} WHERE id = ?", (*kwargs.values(), form_id)
)
- row = await db.fetchone("SELECT * FROM lnticket.form WHERE id = ?", (form_id,))
+ row = await db.fetchone("SELECT * FROM lnticket.forms WHERE id = ?", (form_id,))
assert row, "Newly updated form couldn't be retrieved"
return Forms(**row)
async def get_form(form_id: str) -> Optional[Forms]:
- row = await db.fetchone("SELECT * FROM lnticket.form WHERE id = ?", (form_id,))
+ row = await db.fetchone("SELECT * FROM lnticket.forms WHERE id = ?", (form_id,))
return Forms(**row) if row else None
@@ -145,11 +146,11 @@ async def get_forms(wallet_ids: Union[str, List[str]]) -> List[Forms]:
q = ",".join(["?"] * len(wallet_ids))
rows = await db.fetchall(
- f"SELECT * FROM lnticket.form WHERE wallet IN ({q})", (*wallet_ids,)
+ f"SELECT * FROM lnticket.forms WHERE wallet IN ({q})", (*wallet_ids,)
)
return [Forms(**row) for row in rows]
async def delete_form(form_id: str) -> None:
- await db.execute("DELETE FROM lnticket.form WHERE id = ?", (form_id,))
+ await db.execute("DELETE FROM lnticket.forms WHERE id = ?", (form_id,))
diff --git a/lnbits/extensions/lnticket/migrations.py b/lnbits/extensions/lnticket/migrations.py
index 82d5f3b8..cfd2f646 100644
--- a/lnbits/extensions/lnticket/migrations.py
+++ b/lnbits/extensions/lnticket/migrations.py
@@ -145,3 +145,58 @@ async def m003_changed(db):
),
)
await db.execute("DROP TABLE lnticket.forms")
+
+
+async def m004_changed(db):
+
+ await db.execute(
+ """
+ CREATE TABLE lnticket.forms (
+ id TEXT PRIMARY KEY,
+ wallet TEXT NOT NULL,
+ name TEXT NOT NULL,
+ webhook TEXT,
+ description TEXT NOT NULL,
+ flatrate INTEGER DEFAULT 0,
+ amount INTEGER NOT NULL,
+ amountmade INTEGER NOT NULL,
+ time TIMESTAMP NOT NULL DEFAULT """
+ + db.timestamp_now
+ + """
+ );
+ """
+ )
+
+ for row in [list(row) for row in await db.fetchall("SELECT * FROM lnticket.form")]:
+ usescsv = ""
+
+ for i in range(row[5]):
+ if row[7]:
+ usescsv += "," + str(i + 1)
+ else:
+ usescsv += "," + str(1)
+ usescsv = usescsv[1:]
+ await db.execute(
+ """
+ INSERT INTO lnticket.forms (
+ id,
+ wallet,
+ name,
+ webhook,
+ description,
+ amount,
+ amountmade,
+ )
+ VALUES (?, ?, ?, ?, ?, ?, ?)
+ """,
+ (
+ row[0],
+ row[1],
+ row[2],
+ row[3],
+ row[4],
+ row[5],
+ row[6],
+ ),
+ )
+ await db.execute("DROP TABLE lnticket.form")
diff --git a/lnbits/extensions/lnticket/models.py b/lnbits/extensions/lnticket/models.py
index 362bc223..fdf4a5ff 100644
--- a/lnbits/extensions/lnticket/models.py
+++ b/lnbits/extensions/lnticket/models.py
@@ -7,7 +7,8 @@ class Forms(NamedTuple):
name: str
webhook: str
description: str
- costpword: int
+ amount: int
+ flatrate: int
amountmade: int
time: int
diff --git a/lnbits/extensions/lnticket/templates/lnticket/display.html b/lnbits/extensions/lnticket/templates/lnticket/display.html
index d570ad79..bb59b682 100644
--- a/lnbits/extensions/lnticket/templates/lnticket/display.html
+++ b/lnbits/extensions/lnticket/templates/lnticket/display.html
@@ -23,11 +23,20 @@
label="Your email (optional, if you want a reply)"
>
{% raw %}{{amountWords}}{% endraw %}