aboutsummaryrefslogtreecommitdiffstats
path: root/src/expense/templates
diff options
context:
space:
mode:
Diffstat (limited to 'src/expense/templates')
-rw-r--r--src/expense/templates/auth/delete.html13
-rw-r--r--src/expense/templates/auth/login.html15
-rw-r--r--src/expense/templates/auth/register.html16
-rw-r--r--src/expense/templates/base.html52
-rw-r--r--src/expense/templates/macros.html36
-rw-r--r--src/expense/templates/tracker/cat.html8
-rw-r--r--src/expense/templates/tracker/category.html16
-rw-r--r--src/expense/templates/tracker/create.html17
-rw-r--r--src/expense/templates/tracker/details.html10
-rw-r--r--src/expense/templates/tracker/index.html11
-rw-r--r--src/expense/templates/tracker/trans.html17
11 files changed, 211 insertions, 0 deletions
diff --git a/src/expense/templates/auth/delete.html b/src/expense/templates/auth/delete.html
new file mode 100644
index 0000000..6a2822e
--- /dev/null
+++ b/src/expense/templates/auth/delete.html
@@ -0,0 +1,13 @@
+{% from 'macros.html' import label_field %}
+{% extends 'base.html' %}
+
+{% block header %}
+<h2>{% block title %}Delete the Account. This is non reversable{% endblock %}</h2>
+{% endblock %}
+
+{% block content %}
+<form method="post">
+ {{ form.hidden_tag() }}
+ {{ form.submit }}
+</form>
+{% endblock %} \ No newline at end of file
diff --git a/src/expense/templates/auth/login.html b/src/expense/templates/auth/login.html
new file mode 100644
index 0000000..f223c3c
--- /dev/null
+++ b/src/expense/templates/auth/login.html
@@ -0,0 +1,15 @@
+{% from 'macros.html' import label_field %}
+{% extends 'base.html' %}
+
+{% block header %}
+<h2>{% block title %}Log In{% endblock %}</h2>
+{% endblock %}
+
+{% block content %}
+<form method="post">
+ {{ form.hidden_tag() }}
+ {{ label_field(form.username) }}
+ {{ label_field(form.password) }}
+ {{ form.submit }}
+</form>
+{% endblock %} \ No newline at end of file
diff --git a/src/expense/templates/auth/register.html b/src/expense/templates/auth/register.html
new file mode 100644
index 0000000..c08bc55
--- /dev/null
+++ b/src/expense/templates/auth/register.html
@@ -0,0 +1,16 @@
+{% from 'macros.html' import label_field %}
+{% extends 'base.html' %}
+
+{% block header %}
+<h1>{% block title %}Register{% endblock %}</h1>
+{% endblock %}
+
+{% block content %}
+<form method="post">
+ {{ form.hidden_tag() }}
+ {{ label_field(form.username) }}
+ {{ label_field(form.password) }}
+ {{ label_field(form.confirm) }}
+ {{ form.submit }}
+</form>
+{% endblock %} \ No newline at end of file
diff --git a/src/expense/templates/base.html b/src/expense/templates/base.html
new file mode 100644
index 0000000..d9c6759
--- /dev/null
+++ b/src/expense/templates/base.html
@@ -0,0 +1,52 @@
+<!doctype html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>{% block title %}{% endblock %} - Expense</title>
+ <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.3.0/chart.umd.js"
+ integrity="sha512-CMF3tQtjOoOJoOKlsS7/2loJlkyctwzSoDK/S40iAB+MqWSaf50uObGQSk5Ny/gfRhRCjNLvoxuCvdnERU4WGg=="
+ crossorigin="anonymous" referrerpolicy="no-referrer"></script>
+</head>
+
+<body>
+ <header>
+ <nav>
+ <h1>Expense Tracker</h1>
+ {% if current_user.is_authenticated %}
+ <div class="dropdown">
+ <span>Manage</span>
+ <div class="content">
+ <a href="{{ url_for('index') }}">Summary</a>
+ <a href="{{ url_for('tracker.details') }}">Details</a>
+ <a href="{{ url_for('tracker.create') }}">Insert Entry</a>
+ <a href="{{ url_for('tracker.category') }}">Manage Category</a>
+ </div>
+ </div>
+ <div class="dropdown">
+ <span>{{ current_user.name }}</span>
+ <div class="content">
+ <a href="{{ url_for('auth.delete') }}">Delete Account</a>
+ <a href="{{ url_for('auth.logout') }}">Log Out</a>
+ </div>
+ </div>
+ {% else %}
+ <a href="{{ url_for('auth.register') }}">Register</a>
+ <a href="{{ url_for('auth.login') }}">Log In</a>
+ {% endif %}
+ </nav>
+ </header>
+ <main>
+ <header>
+ {% block header %}{% endblock %}
+ </header>
+ {% for message in get_flashed_messages() %}
+ <div class="flash">{{ message }}</div>
+ {% endfor %}
+ {% block content %}{% endblock %}
+ </main>
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/expense/templates/macros.html b/src/expense/templates/macros.html
new file mode 100644
index 0000000..2d83155
--- /dev/null
+++ b/src/expense/templates/macros.html
@@ -0,0 +1,36 @@
+{% macro label_field(label) -%}
+{% for error in label.errors %}
+<span>{{ error }}</span>
+{% endfor %}
+{{ label.label }}
+{{ label() }}
+{%- endmacro %}
+
+{% macro expense_table(data, total) -%}
+<table>
+ <thead>
+ <tr>
+ <th></th>
+ <th>Date</th>
+ <th>Category</th>
+ <th>Description</th>
+ <th>Amount</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for row in data %}
+ <tr>
+ <td><a href="{{ url_for("tracker.trans", id=row.id ) }}">Edit</a></td>
+ <td><time datetime="{{ row.date.strftime("%Y-%m-%d") }}">{{ row.date.strftime("%d/%m/%Y") }}<time></td>
+ <td><a href="{{ url_for("tracker.cat", id=row.category.id ) }}">{{ row.category.name }}</a></td>
+ <td>{{ row.description }}</td>
+ <td>{{ "%.2f"|format(row.amount) }}</td>
+ </tr>
+ {% endfor %}
+ <tfoot>
+ <td colspan="4">Overall</td>
+ <td>{{ "%.2f"|format(total) }}</td>
+ </tfoot>
+ </tbody>
+</table>
+{%- endmacro %} \ No newline at end of file
diff --git a/src/expense/templates/tracker/cat.html b/src/expense/templates/tracker/cat.html
new file mode 100644
index 0000000..ee35193
--- /dev/null
+++ b/src/expense/templates/tracker/cat.html
@@ -0,0 +1,8 @@
+{% from 'macros.html' import expense_table %}
+{% extends 'base.html' %}
+
+
+{% block content %}
+<h2>{{ category.name }}</h2>
+{{ expense_table(table, total[0]) }}
+{% endblock %} \ No newline at end of file
diff --git a/src/expense/templates/tracker/category.html b/src/expense/templates/tracker/category.html
new file mode 100644
index 0000000..50c4a11
--- /dev/null
+++ b/src/expense/templates/tracker/category.html
@@ -0,0 +1,16 @@
+{% from 'macros.html' import label_field %}
+{% extends 'base.html' %}
+
+{% block content %}
+<h2>Manage Categories</h2>
+<form method="post">
+ <div>
+ {{ form.hidden_tag() }}
+ {% for cat in current_user.categories %}
+ <p>{{ cat.name }}</p>
+ {% endfor %}
+ </div>
+ {{ label_field(form.category) }}
+ {{ form.submit }}
+</form>
+{% endblock %}
diff --git a/src/expense/templates/tracker/create.html b/src/expense/templates/tracker/create.html
new file mode 100644
index 0000000..e010455
--- /dev/null
+++ b/src/expense/templates/tracker/create.html
@@ -0,0 +1,17 @@
+{% from 'macros.html' import label_field %}
+{% extends 'base.html' %}
+
+{% block header %}
+<h2>Create New Entry</h2>
+{% endblock %}
+
+{% block content %}
+<form method="post">
+ {{ form.hidden_tag() }}
+ {{ label_field(form.date) }}
+ {{ label_field(form.category) }}
+ {{ label_field(form.description) }}
+ {{ label_field(form.amount) }}
+ {{ form.submit }}
+</form>
+{% endblock %}
diff --git a/src/expense/templates/tracker/details.html b/src/expense/templates/tracker/details.html
new file mode 100644
index 0000000..fa7eb1e
--- /dev/null
+++ b/src/expense/templates/tracker/details.html
@@ -0,0 +1,10 @@
+{% from 'macros.html' import expense_table %}
+{% extends 'base.html' %}
+
+{% block header %}
+ <h2>Details</h2>
+{% endblock%}
+
+{% block content %}
+ {{ expense_table(current_user.expenses, total[0]) }}
+{% endblock %} \ No newline at end of file
diff --git a/src/expense/templates/tracker/index.html b/src/expense/templates/tracker/index.html
new file mode 100644
index 0000000..ce7bc92
--- /dev/null
+++ b/src/expense/templates/tracker/index.html
@@ -0,0 +1,11 @@
+{% from 'macros.html' import expense_table %}
+{% extends 'base.html' %}
+
+{% block header %}
+<h2>Summary</h2>
+{% endblock %}
+
+{% block content %}
+<script src="{{ url_for('static', filename='script.js') }}" type="module"></script>
+<div id="root" ></div>
+{% endblock %} \ No newline at end of file
diff --git a/src/expense/templates/tracker/trans.html b/src/expense/templates/tracker/trans.html
new file mode 100644
index 0000000..449aa99
--- /dev/null
+++ b/src/expense/templates/tracker/trans.html
@@ -0,0 +1,17 @@
+{% from 'macros.html' import label_field %}
+{% extends 'base.html' %}
+
+{% block content %}
+<form method="post">
+ <h2>Edit Entry</h2>
+ {{ form.hidden_tag() }}
+ {{ label_field(form.date) }}
+ {{ label_field(form.category) }}
+ {{ label_field(form.description) }}
+ {{ label_field(form.amount) }}
+ <div class="button-group">
+ {{ form.submit }}
+ {{ form.delete }}
+ </div>
+</form>
+{% endblock %} \ No newline at end of file