diff --git a/forms/login.py b/forms/login.py index c48da32..3ee0a9e 100644 --- a/forms/login.py +++ b/forms/login.py @@ -21,6 +21,12 @@ class BillForm(Form): kid = IntegerField(_("KID"), render_kw = FORM_RENDER_KW) date_due = DateField(_("Date due"), render_kw = FORM_RENDER_KW) +class WarrantyForm(Form): + item = StringField(_("Item"), [validators.DataRequired()], render_kw = FORM_RENDER_KW) + date_from = DateField(_("Date of purchase"), render_kw = FORM_RENDER_KW) + date_to = DateField(_("Warranty duration"), render_kw = FORM_RENDER_KW) + sum = DecimalField(_("Sum"), render_kw = FORM_RENDER_KW) + class LoginForm(Form): email = StringField(_("Email"), [ validators.DataRequired(), diff --git a/routes.py b/routes.py index 1c9f293..de8e58f 100644 --- a/routes.py +++ b/routes.py @@ -2,7 +2,7 @@ from flask import render_template, url_for, request, redirect, flash, abort from wtforms import Form, BooleanField, StringField, PasswordField, validators import flask_login -from forms.login import LoginForm, RegisterForm, BillForm, User, register_account +from forms.login import LoginForm, RegisterForm, BillForm, WarrantyForm, User, register_account from objects import glob # Global sharing of python objects in a manageable way @@ -54,12 +54,40 @@ def bills(): conn.close() return render_template("pages/bills.html", data=data, form=form) -@glob.app.route("/warranties") +@glob.app.route("/warranties", methods = ["GET", "POST"]) @flask_login.login_required def warranties(): - return "Unimplemented" + form = WarrantyForm(request.form) -@glob.app.route("/receipts") + conn = glob.make_sql_connection() + cur = conn.cursor() + + if request.method == "POST" and form.validate(): + cur.execute(""" + INSERT + INTO Garanti + VALUES (NULL, %s, %s, %s, %s, 1, %s) + """, (form.item.data, form.date_from.data, form.date_to.data, form.sum.data, flask_login.current_user.id)) + + conn.commit() + + return redirect(url_for("bills")) + + cur.execute(""" + SELECT Vare, Kjøpsdato, Garantitil, Pris + FROM Garanti + WHERE BrukerID = %s + """, (flask_login.current_user.id,)) + + data = [] + for row in cur: + data.append(row) + + cur.close() + conn.close() + return render_template("pages/warranties.html", data=data, form=form) + +@glob.app.route("/receipts", methods = ["GET", "POST"]) @flask_login.login_required def receipts(): return "Unimplemented" diff --git a/templates/pages/bills.html b/templates/pages/bills.html index 3dc4604..a396b68 100644 --- a/templates/pages/bills.html +++ b/templates/pages/bills.html @@ -1,4 +1,4 @@ -{% set title = "Bills" %} +{% set title = _("Bills") %} {% extends "layout/dash.html" %} diff --git a/templates/pages/dashboard.html b/templates/pages/dashboard.html index 167bde5..08c1378 100644 --- a/templates/pages/dashboard.html +++ b/templates/pages/dashboard.html @@ -1,4 +1,4 @@ -{% set title = "Dashboard" %} +{% set title = _("Dashboard") %} {% extends "layout/dash.html" %} diff --git a/templates/pages/receipts.html b/templates/pages/receipts.html index 85b6cd8..86dd383 100644 --- a/templates/pages/receipts.html +++ b/templates/pages/receipts.html @@ -1,4 +1,4 @@ -{% set title = "Dashboard" %} +{% set title = _("Receipts") %} {% extends "layout/dash.html" %} diff --git a/templates/pages/warranties.html b/templates/pages/warranties.html index 85b6cd8..9c040e5 100644 --- a/templates/pages/warranties.html +++ b/templates/pages/warranties.html @@ -1,11 +1,79 @@ -{% set title = "Dashboard" %} +{% set title = _("Warranties") %} {% extends "layout/dash.html" %} {% block content %} + +
-{% include "modules/calendar.html" %} + + + + + + + + + + + + + + +{% for row in data %} + + + + + + + +{% endfor %} + +
{{ _("Item") }}{{ _("Date of purchase") }}{{ _("Warranty duration") }}{{ _("Sum") }}
{{ row[0] }}{{ row[1] }}{{ row[2] }}{{ row[3] }}
+
{% endblock %} \ No newline at end of file