[Flask] Simple ERP for a farm.
Templates.
Changed files
- app/templates/add-invoice.html
- app/templates/add-item.html
- app/templates/base.html
- app/templates/errors/item-not-found.html
- app/templates/errors/table-not-found.html
- app/templates/home.html
- app/templates/modules-promo.html
- app/templates/modules/add-invoice.html
- app/templates/modules/add-item.html
- app/templates/modules/customers.html
- app/templates/modules/edit-item.html
- app/templates/modules/ferti.html
- app/templates/modules/invoice-preview.html
- app/templates/modules/invoices.html
- app/templates/modules/logger.html
- app/templates/modules/login.html
- app/templates/modules/orders.html
- app/templates/modules/products.html
- app/templates/modules/register.html
- app/templates/modules/settings.html
- app/templates/preview-invoice.html
app/templates/add-invoice.html
@@ -1,48 +0,0 @@
1
Removed:
{# -*- mode: web; -*- #}
2
Removed:
3
Removed:
{% extends "base.html" %}
4
Removed:
5
Removed:
6
Removed:
{% block title %}Add a new invoice{% endblock %}
7
Removed:
{% block content %}
8
Removed:
9
Removed:
{% if message %}
10
Removed:
{# the form was submitted and message exists #}
11
Removed:
<p><strong>{{ item }}</strong></p>
12
Removed:
{# links #}
13
Removed:
<p><a href="{{ url_for('add_item', item=item) }}" class="button">Submit another {{ item }}</a></p>
14
Removed:
<p><a href="/fapg/home">Return to the index</a></p>
15
Removed:
16
Removed:
{% else %}
17
Removed:
{# the form is displayed when template opens via GET not POST #}
18
Removed:
19
Removed:
{# show flash - based on WTForms validators see
20
Removed:
https://pythonprogramming.net/flash-flask-tutorial/
21
Removed:
get_flashed_messages() exists here because of flash() in the route
22
Removed:
function #}
23
Removed:
24
Removed:
{% with errors = get_flashed_messages() %} {% if errors %}
25
Removed:
{% for err in errors %}
26
Removed:
<div class="alert alert-danger alert-dismissible" role="alert">
27
Removed:
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
28
Removed:
{{ err }}
29
Removed:
</div>
30
Removed:
{% endfor %}
31
Removed:
{% endif %}
32
Removed:
{% endwith %}
33
Removed:
{# end of flash #}
34
Removed:
35
Removed:
36
Removed:
{# the form #}
37
Removed:
<form action="{{ url_for('add_item', item=item) }}" method="POST">
38
Removed:
<fieldset>
39
Removed:
<legend>Add a new {{ item }} to our database.</legend>
40
Removed:
{% for field in form %}
41
Removed:
{{ field.label() }}
42
Removed:
{{ field() }}<br/>
43
Removed:
{% endfor %}
44
Removed:
</fieldset>
45
Removed:
</form>
46
Removed:
47
Removed:
{% endif %}
48
Removed:
{% endblock %}
app/templates/add-item.html
@@ -1,20 +0,0 @@
1
Removed:
{# -*- mode: web; -*- #}
2
Removed:
3
Removed:
{% extends "base.html" %}
4
Removed:
5
Removed:
6
Removed:
{% block title %}Add a new {{ item }}{% endblock %}
7
Removed:
{% block content %}
8
Removed:
9
Removed:
{# the form #}
10
Removed:
<form action="{{ url_for('add_item', item=item) }}" method="POST">
11
Removed:
<fieldset>
12
Removed:
<legend>Add a new {{ item }} to our database.</legend>
13
Removed:
{% for field in form %}
14
Removed:
{{ field.label() }}
15
Removed:
{{ field() }}<br/>
16
Removed:
{% endfor %}
17
Removed:
</fieldset>
18
Removed:
</form>
19
Removed:
20
Removed:
{% endblock %}
app/templates/base.html
@@ -13,26 +13,51 @@
13
13
<link rel="stylesheet" href="{{ url_for('static', filename='styles/style.css') }}">
14
14
</head>
15
15
<body>
16
Removed:
<nav>
17
Removed:
<a href="/" class="button">Home</a>
18
Removed:
<h1>{% block title %}{% endblock %}</h1>
16
Added:
<nav id="user">
17
Added:
<div style="display: flex; align-items: baseline;">
18
Added:
<ul>
19
Added:
<li><a href="{{ url_for('main.home') }}" class="button">Home</a></li>
20
Added:
</ul>
21
Added:
<h1>{% block title %}{% endblock %}</h1>
22
Added:
</div>
19
23
<ul>
24
Added:
{% if current_user.is_authenticated %}
25
Added:
<li><a href="{{ url_for('common.settings') }}" class="button">Settings</a></li>
26
Added:
<li><a href="{{ url_for('auth.logout') }}" class="button">Logout</a></li>
27
Added:
{% else %}
28
Added:
<li><a href="{{ url_for('auth.login') }}" class="button">Login</a></li>
29
Added:
<li><a href="{{ url_for('auth.register') }}" class="button">Register</a></li>
30
Added:
{% endif %}
31
Added:
</ul>
32
Added:
</nav>
33
Added:
{% if current_user.is_authenticated %}
34
Added:
<nav id="modules">
35
Added:
<ul>
20
36
{% for module in modules %}
21
37
<li><a href="/modules/{{ module.name }}" class="button">{{ module.name }}</a></li>
22
38
{% endfor %}
39
Added:
23
40
</ul>
24
41
</nav>
42
Added:
<nav id="actions">
43
Added:
<ul>
44
Added:
{% block actions %}{% endblock %}
45
Added:
</ul>
46
Added:
</nav>
47
Added:
{% endif %}
25
48
<div id="content">
26
49
{% block content %}{% endblock %}
27
50
</div>
28
51
{# Flashed messages added last, so that they appear on top of the content. #}
29
52
{% with messages = get_flashed_messages(with_categories=true) %}
30
53
{% if messages %}
31
Removed:
<ul class="flashes">
32
Removed:
{% for category, message in messages %}
33
Removed:
<li class="alert alert-{{ category }}">{{ message }}</li>
34
Removed:
{% endfor %}
35
Removed:
</ul>
54
Added:
<div id="flash">
55
Added:
<ul>
56
Added:
{% for category, message in messages %}
57
Added:
<li class="alert alert-{{ category }}">{{ message }}</li>
58
Added:
{% endfor %}
59
Added:
</ul>
60
Added:
</div>
36
61
{% endif %}
37
62
{% endwith %}
38
63
<!-- <script src="js/scripts.js"></script> -->
app/templates/errors/item-not-found.html
@@ -6,7 +6,7 @@
6
6
7
7
{% block content %}
8
8
<p>
9
Removed:
Item <strong>{{item }}</strong> could not found.
9
Added:
Item <strong>{{ item }}</strong> could not found.
10
10
</p>
11
11
<p>
12
12
If you'd like to suggest a feature, please send us an e-mail.
app/templates/errors/table-not-found.html
@@ -0,0 +1,14 @@
1
Added:
{% extends "base.html" %}
2
Added:
3
Added:
{% block title %}
4
Added:
Table not found
5
Added:
{% endblock %}
6
Added:
7
Added:
{% block content %}
8
Added:
<p>
9
Added:
Table <strong>{{ table }}</strong> could not found.
10
Added:
</p>
11
Added:
<p>
12
Added:
If you'd like to suggest a feature, please send us an e-mail.
13
Added:
</p>
14
Added:
{% endblock %}
app/templates/home.html
@@ -3,20 +3,32 @@
3
3
{% extends "base.html" %}
4
4
5
5
{% block title %}
6
Removed:
Welcome, {{ user.name_first }}!
6
Added:
{% if current_user.is_authenticated %}
7
Added:
Welcome, {{ user.name_first }} {{ user.name_last }}!
8
Added:
{% else %}
9
Added:
Welcome to the ERP for the FAPG!
10
Added:
{% endif %}
7
11
{% endblock %}
8
12
13
Added:
{% block actions %}
14
Added:
<li><a href="{{ url_for('main.download_database') }}" class="button">Download database</a></li>
15
Added:
{% endblock %}
9
16
10
17
{% block content %}
11
Removed:
12
Removed:
<p>You are logged in as <strong>{{ user }}</strong> on
13
Removed:
project <strong>{{ project }}</strong>.</p>
14
Removed:
15
18
<h2>Available modules</h2>
16
19
<dl>
17
20
{% for module in modules %}
18
Removed:
<dt style="font-weight: bold">{{ module.name }}</dt><dd>{{ module.description }}<dd>
19
Removed:
{% endfor %}
21
Added:
<dt>
22
Added:
{% if current_user.is_authenticated %}
23
Added:
{# Send to actual module page #}
24
Added:
<a href="/modules/{{ module.name }}">{{ module.name }}</a>
25
Added:
{% else %}
26
Added:
{# Send to module promo section #}
27
Added:
<a href="/modules#{{ module.name }}">{{ module.name }}</a>
28
Added:
{% endif %}
29
Added:
</dt>
30
Added:
<dd>{{ module.description }}</dd>
31
Added:
{% endfor %}
20
32
</dl>
21
33
22
34
{% endblock %}
app/templates/modules-promo.html
@@ -0,0 +1,22 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
{% block title %}
6
Added:
List of modules
7
Added:
{% endblock %}
8
Added:
9
Added:
{% block actions %}
10
Added:
{% endblock %}
11
Added:
12
Added:
{% block content %}
13
Added:
<h2>Modules for all your needs!</h2>
14
Added:
<dl>
15
Added:
{% for module in modules %}
16
Added:
<p>
17
Added:
{{ module }}
18
Added:
</p>
19
Added:
{% endfor %}
20
Added:
</dl>
21
Added:
22
Added:
{% endblock %}
app/templates/modules/add-invoice.html
@@ -0,0 +1,48 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
6
Added:
{% block title %}Add a new invoice{% endblock %}
7
Added:
{% block content %}
8
Added:
9
Added:
{% if message %}
10
Added:
{# the form was submitted and message exists #}
11
Added:
<p><strong>{{ item }}</strong></p>
12
Added:
{# links #}
13
Added:
<p><a href="{{ url_for('add_item', item=item) }}" class="button">Submit another {{ item }}</a></p>
14
Added:
<p><a href="/fapg/home">Return to the index</a></p>
15
Added:
16
Added:
{% else %}
17
Added:
{# the form is displayed when template opens via GET not POST #}
18
Added:
19
Added:
{# show flash - based on WTForms validators see
20
Added:
https://pythonprogramming.net/flash-flask-tutorial/
21
Added:
get_flashed_messages() exists here because of flash() in the route
22
Added:
function #}
23
Added:
24
Added:
{% with errors = get_flashed_messages() %} {% if errors %}
25
Added:
{% for err in errors %}
26
Added:
<div class="alert alert-danger alert-dismissible" role="alert">
27
Added:
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
28
Added:
{{ err }}
29
Added:
</div>
30
Added:
{% endfor %}
31
Added:
{% endif %}
32
Added:
{% endwith %}
33
Added:
{# end of flash #}
34
Added:
35
Added:
36
Added:
{# the form #}
37
Added:
<form action="{{ url_for('add_item', item=item) }}" method="POST">
38
Added:
<fieldset>
39
Added:
<legend>Add a new {{ item }} to our database.</legend>
40
Added:
{% for field in form %}
41
Added:
{{ field.label() }}
42
Added:
{{ field() }}<br/>
43
Added:
{% endfor %}
44
Added:
</fieldset>
45
Added:
</form>
46
Added:
47
Added:
{% endif %}
48
Added:
{% endblock %}
app/templates/modules/add-item.html
@@ -0,0 +1,19 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
6
Added:
{% block title %}Add {{ table }} item{% endblock %}
7
Added:
{% block content %}
8
Added:
9
Added:
<form action="{{ request.path }}" method="POST">
10
Added:
<fieldset>
11
Added:
<legend>Add a new item to our {{ table }} table.</legend>
12
Added:
{% for field in form %}
13
Added:
{{ field.label() }}
14
Added:
{{ field() }}<br/>
15
Added:
{% endfor %}
16
Added:
</fieldset>
17
Added:
</form>
18
Added:
19
Added:
{% endblock %}
app/templates/modules/customers.html
@@ -5,15 +5,17 @@
5
5
Customers
6
6
{% endblock %}
7
7
8
Added:
{% block actions %}
9
Added:
<li><a href="{{ url_for('common.add_item', module='customers', table='Customer' ) }}" class="button">Add customer</a></li>
10
Added:
{% endblock %}
11
Added:
8
12
{% block content %}
9
Removed:
<div id="actions">
10
Removed:
<a href="{{ url_for('add_item', item='customer') }}" class="button">Add customer</a>
11
Removed:
</div>
12
13
13
14
<table>
14
15
<thead>
15
16
<tr>
16
17
<th></th>
18
Added:
<th>ID</th>
17
19
<th>Name</th>
18
20
<th>City</th>
19
21
<th>Phone</th>
@@ -23,7 +25,15 @@
23
25
<tbody>
24
26
{% for customer in customers %}
25
27
<tr>
26
Removed:
<td><button>edit</button></td>
28
Added:
<td>
29
Added:
<form method="post" action="{{ url_for('common.edit_item', module='customers', pk=customer.primary_key, table='Customer') }}">
30
Added:
<button>edit</button>
31
Added:
</form>
32
Added:
<form method="post" action="{{ url_for('common.delete_item', module='customers', pk=customer.primary_key, table='Customer') }}">
33
Added:
<button>delete</button>
34
Added:
</form>
35
Added:
</td>
36
Added:
<td>{{ customer.primary_key }}</td>
27
37
{% if customer.website %}
28
38
<td><a href="{{ customer.website }}">{{ customer.name }}</a></td>
29
39
{% else %}
app/templates/modules/edit-item.html
@@ -0,0 +1,19 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
6
Added:
{% block title %}Edit {{ table }} item{% endblock %}
7
Added:
{% block content %}
8
Added:
9
Added:
<form action="{{ request.path }}" method="POST">
10
Added:
<fieldset>
11
Added:
<legend>Edit item #{{ pk }} in our {{ table }} table.</legend>
12
Added:
{% for field in form %}
13
Added:
{{ field.label() }}
14
Added:
{{ field() }}<br/>
15
Added:
{% endfor %}
16
Added:
</fieldset>
17
Added:
</form>
18
Added:
19
Added:
{% endblock %}
app/templates/modules/ferti.html
@@ -0,0 +1,99 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
{% block title %}
6
Added:
Logger
7
Added:
{% endblock %}
8
Added:
9
Added:
{% block actions %}
10
Added:
<li><a href="{{ url_for('common.add_item', module='ferti', table='FertiLog') }}" class="button">Add log</a></li>
11
Added:
<li><a href="{{ url_for('common.add_item', module='ferti', table='FertiTarget') }}" class="button">Add target</a></li>
12
Added:
{% endblock %}
13
Added:
14
Added:
{% block content %}
15
Added:
16
Added:
<i>Track operating logs.</i>
17
Added:
18
Added:
<table>
19
Added:
<thead>
20
Added:
<tr>
21
Added:
<th colspan=2><i>Actions</i></th>
22
Added:
<th>ID</th>
23
Added:
<th>Updated</th>
24
Added:
<th>NNO3</th>
25
Added:
<th>P</th>
26
Added:
<th>K</th>
27
Added:
<th>Ca</th>
28
Added:
<th>Mg</th>
29
Added:
<th>S</th>
30
Added:
<th>Na</th>
31
Added:
<th>Cl</th>
32
Added:
<th>Fe</th>
33
Added:
<th>Zn</th>
34
Added:
<th>B</th>
35
Added:
<th>Mn</th>
36
Added:
<th>Cu</th>
37
Added:
<th>Mo</th>
38
Added:
<th>Si</th>
39
Added:
<th>NNH4</th>
40
Added:
</tr>
41
Added:
</thead>
42
Added:
<tbody>
43
Added:
{% if target %}
44
Added:
<tr class="latest-target">
45
Added:
<td></td>
46
Added:
<td></td>
47
Added:
<td>{{ target.primary_key }}</td>
48
Added:
<td>{{ target.date_time_updated }}</td>
49
Added:
<td>{{ target.nno3 }}</td>
50
Added:
<td>{{ target.p }}</td>
51
Added:
<td>{{ target.k }}</td>
52
Added:
<td>{{ target.ca }}</td>
53
Added:
<td>{{ target.mg }}</td>
54
Added:
<td>{{ target.s }}</td>
55
Added:
<td>{{ target.na }}</td>
56
Added:
<td>{{ target.cl }}</td>
57
Added:
<td>{{ target.fe }}</td>
58
Added:
<td>{{ target.zn }}</td>
59
Added:
<td>{{ target.b }}</td>
60
Added:
<td>{{ target.mn }}</td>
61
Added:
<td>{{ target.cu }}</td>
62
Added:
<td>{{ target.mo }}</td>
63
Added:
<td>{{ target.si }}</td>
64
Added:
<td>{{ target.nnh4 }}</td>
65
Added:
</tr>
66
Added:
{% endif %}
67
Added:
{% for log in logs %}
68
Added:
<tr>
69
Added:
<td>
70
Added:
<button>edit</button>
71
Added:
</td>
72
Added:
<td>
73
Added:
<form method="post" action="{{ url_for('modules.delete_item', pk=log.primary_key, table='Fertilog' ) }}">
74
Added:
<button>delete</button>
75
Added:
</form>
76
Added:
</td>
77
Added:
<td>{{ log.primary_key }}</td>
78
Added:
<td>{{ log.date_time_updated }}</td>
79
Added:
<td>{{ log.nno3 }}</td>
80
Added:
<td>{{ log.p }}</td>
81
Added:
<td>{{ log.k }}</td>
82
Added:
<td>{{ log.ca }}</td>
83
Added:
<td>{{ log.mg }}</td>
84
Added:
<td>{{ log.s }}</td>
85
Added:
<td>{{ log.na }}</td>
86
Added:
<td>{{ log.cl }}</td>
87
Added:
<td>{{ log.fe }}</td>
88
Added:
<td>{{ log.zn }}</td>
89
Added:
<td>{{ log.b }}</td>
90
Added:
<td>{{ log.mn }}</td>
91
Added:
<td>{{ log.cu }}</td>
92
Added:
<td>{{ log.mo }}</td>
93
Added:
<td>{{ log.si }}</td>
94
Added:
<td>{{ log.nnh4 }}</td>
95
Added:
</tr>
96
Added:
{% endfor %}
97
Added:
</tbody>
98
Added:
</table>
99
Added:
{% endblock %}
app/templates/modules/invoice-preview.html
@@ -0,0 +1,108 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
<!doctype html>
4
Added:
5
Added:
<html lang="en">
6
Added:
<head>
7
Added:
<meta charset="utf-8">
8
Added:
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to">
9
Added:
<title>Invoice preview for {{ invoice.customer.name }}</title>
10
Added:
<meta name="author" content="Marius Peter">
11
Added:
<meta name="description" content="A new invoice for your project.">
12
Added:
<!-- <link rel="icon" href="{{ url_for('static', filename='img/favicon.png') }}"> -->
13
Added:
<link rel="stylesheet" href="{{ url_for('static', filename='styles/invoice.css') }}">
14
Added:
</head>
15
Added:
<body>
16
Added:
<div id="content">
17
Added:
<header class="clearfix">
18
Added:
<div id="logo">
19
Added:
<img src="{{ url_for('static', filename='img/logo.png') }}">
20
Added:
</div>
21
Added:
<div id="company">
22
Added:
<h2 class="name">FAPG</h2>
23
Added:
<div>Route de Versonnex</div>
24
Added:
<div>(602) 519-0450</div>
25
Added:
<div><a href="mailto:company@example.com">company@example.com</a></div>
26
Added:
</div>
27
Added:
28
Added:
</header>
29
Added:
<main>
30
Added:
<div id="details" class="clearfix">
31
Added:
<div id="client">
32
Added:
<div class="to">INVOICE TO:</div>
33
Added:
<h2 class="name">{{ invoice.customer.name }}</h2>
34
Added:
<div class="address">{{ invoice.customer.address }}</div>
35
Added:
{% if invoice.customer.email %}
36
Added:
<div class="email"><a href="mailto:{{ invoice.customer.email }}">{{ invoice.customer.email }}</a></div>
37
Added:
{% endif %}
38
Added:
</div>
39
Added:
<div id="invoice">
40
Added:
<h1>INVOICE {{ invoice.invoice_id_alt }}</h1>
41
Added:
<div class="date">Date of Invoice: {{ invoice.date_billed }}</div>
42
Added:
<div class="date">Due Date: {{ invoice.date_due }}</div>
43
Added:
</div>
44
Added:
</div>
45
Added:
<table cellspacing="0" cellpadding="0" border="0">
46
Added:
<thead>
47
Added:
<tr>
48
Added:
<th class="no">#</th>
49
Added:
<th class="desc">DESCRIPTION</th>
50
Added:
<th class="unit">UNIT PRICE</th>
51
Added:
<th class="qty">QUANTITY</th>
52
Added:
<th class="total">TOTAL</th>
53
Added:
</tr>
54
Added:
</thead>
55
Added:
<tbody>
56
Added:
<tr>
57
Added:
<td class="no">01</td>
58
Added:
<td class="desc"><h3>Website Design</h3>Creating a recognizable design solution based on the company's existing visual identity</td>
59
Added:
<td class="unit">$40.00</td>
60
Added:
<td class="qty">30</td>
61
Added:
<td class="total">$1,200.00</td>
62
Added:
</tr>
63
Added:
<tr>
64
Added:
<td class="no">02</td>
65
Added:
<td class="desc"><h3>Website Development</h3>Developing a Content Management System-based Website</td>
66
Added:
<td class="unit">$40.00</td>
67
Added:
<td class="qty">80</td>
68
Added:
<td class="total">$3,200.00</td>
69
Added:
</tr>
70
Added:
<tr>
71
Added:
<td class="no">03</td>
72
Added:
<td class="desc"><h3>Search Engines Optimization</h3>Optimize the site for search engines (SEO)</td>
73
Added:
<td class="unit">$40.00</td>
74
Added:
<td class="qty">20</td>
75
Added:
<td class="total">$800.00</td>
76
Added:
</tr>
77
Added:
</tbody>
78
Added:
<tfoot>
79
Added:
<tr>
80
Added:
<td colspan="2"></td>
81
Added:
<td colspan="2">SUBTOTAL</td>
82
Added:
<td>$5,200.00</td>
83
Added:
</tr>
84
Added:
<tr>
85
Added:
<td colspan="2"></td>
86
Added:
<td colspan="2">TAX 25%</td>
87
Added:
<td>$1,300.00</td>
88
Added:
</tr>
89
Added:
<tr>
90
Added:
<td colspan="2"></td>
91
Added:
<td colspan="2">GRAND TOTAL</td>
92
Added:
<td>$6,500.00</td>
93
Added:
</tr>
94
Added:
</tfoot>
95
Added:
</table>
96
Added:
<div id="thanks">Thank you!</div>
97
Added:
<div id="notices">
98
Added:
<div>NOTICE:</div>
99
Added:
<div class="notice">A finance charge of 1.5% will be made on unpaid balances after 30 days.</div>
100
Added:
</div>
101
Added:
</main>
102
Added:
<footer>
103
Added:
Invoice was created on a computer and is valid without the signature and seal.
104
Added:
</footer>
105
Added:
106
Added:
</div>
107
Added:
</body>
108
Added:
</html>
app/templates/modules/invoices.html
@@ -1,44 +1,80 @@
1
Removed:
{# -*- mode: jinja2; -*- #}
1
Added:
{# -*- mode: web; -*- #}
2
2
3
3
{% extends "base.html" %}
4
4
{% block title %}
5
Removed:
Products
5
Added:
Invoices
6
6
{% endblock %}
7
7
8
Added:
{% block actions %}
9
Added:
<li><a href="{{ url_for('common.add_item', module='invoices', table='Invoice') }}" class="button">Add invoice</a></li>
10
Added:
<li></li>
11
Added:
{% endblock %}
12
Added:
8
13
{% block content %}
14
Added:
<i>Track your invoices and create new ones here.</i><br/>
9
15
10
Removed:
<div id="actions">
11
Removed:
<a href="{{ url_for('add_invoice') }}" class="button">New invoice</a>
12
Removed:
</div>
13
Removed:
14
Removed:
<i>Track your invoices and create new ones here.</i>
15
Removed:
16
Removed:
<table>
16
Added:
<center>
17
Added:
{% for page_num in invoices.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}
18
Added:
{% if page_num %}
19
Added:
<!-- Check for the active page and set the link to "Active"-->
20
Added:
{% if invoices.page == page_num %}
21
Added:
<a href="{{ url_for('invoices.view', page=page_num) }}"
22
Added:
class="button">
23
Added:
{{ page_num }}
24
Added:
</a>
25
Added:
{% else %}
26
Added:
<a href="{{ url_for('invoices.view', page=page_num) }}"
27
Added:
class="button button-light">
28
Added:
{{ page_num }}
29
Added:
</a>
30
Added:
{% endif %}
31
Added:
{% else %}
32
Added:
...
33
Added:
{% endif %}
34
Added:
{% endfor %}
35
Added:
</center>
36
Added:
<table>
17
37
<thead>
18
Removed:
<tr>
19
Removed:
<th colspan=2><i>Actions</i></th>
20
Removed:
<th>Name</th>
21
Removed:
<th>Price (net)</th>
22
Removed:
<th>Price (gross)</th>
23
Removed:
<th>Updated</th>
24
Removed:
</tr>
38
Added:
<tr>
39
Added:
<th><i>Actions</i></th>
40
Added:
<th>ID</th>
41
Added:
<th>Created</th>
42
Added:
<th>Alternative Invoice ID</th>
43
Added:
<th>Customer Name</th>
44
Added:
<th>Customer Reference</th>
45
Added:
<th>Date Billed</th>
46
Added:
<th>Date Due</th>
47
Added:
<th>Amount (Net €)</th>
48
Added:
<th>Amount (Gross €)</th>
49
Added:
<th>Tax Amount (€)</th>
50
Added:
</tr>
25
51
</thead>
26
52
<tbody>
27
Removed:
{% for invoice in invoices %}
53
Added:
{% for invoice in invoices.items %}
28
54
<tr>
29
Removed:
<td><button>edit</button></td>
30
Removed:
<td><button formaction="/">delete</button></td>
31
Removed:
<td>{{ product.name }}</td>
32
Removed:
<td>{{ product.price_net }}</td>
33
Removed:
<td>{{ product.price_gross }}</td>
34
Removed:
{% if product.date_time_updated %}
35
Removed:
<td>{{ product.date_time_updated }}</td>
36
Removed:
{% else %}
37
Removed:
<td>{{ product.date_time_created }}</td>
38
Removed:
{% endif %}
39
Removed:
55
Added:
<td>
56
Added:
<form method="post" action="{{ url_for('common.delete_item', module='invoices', pk=invoice.primary_key, table='Invoice') }}">
57
Added:
<button>delete</button>
58
Added:
</form>
59
Added:
<form method="post" action="{{ url_for('common.edit_item', module='invoices', pk=invoice.primary_key, table='Invoice') }}">
60
Added:
<button>edit</button>
61
Added:
</form>
62
Added:
<form method="get" action="{{ url_for('invoices.preview', pk=invoice.primary_key) }}">
63
Added:
<button>preview</button>
64
Added:
</form>
65
Added:
</td>
66
Added:
<td>{{ invoice.primary_key }}</td>
67
Added:
<td>{{ invoice.date_time_created }}</td>
68
Added:
<td>{{ invoice.invoice_id_alt }}</td>
69
Added:
<td>{{ invoice.customer.name }}</td>
70
Added:
<td>{{ invoice.customer_reference }}</td>
71
Added:
<td>{{ invoice.date_billed }}</td>
72
Added:
<td>{{ invoice.date_due }}</td>
73
Added:
<td>{{ invoice.amount_net }}</td>
74
Added:
<td>{{ invoice.amount_gross }}</td>
75
Added:
<td>{{ invoice.amount_tax }}</td>
40
76
</tr>
41
Removed:
{% endfor %}
77
Added:
{% endfor %}
42
78
</tbody>
43
Removed:
</table>
79
Added:
</table>
44
80
{% endblock %}
app/templates/modules/logger.html
@@ -1,142 +0,0 @@
1
Removed:
{# -*- mode: web; -*- #}
2
Removed:
3
Removed:
{% extends "base.html" %}
4
Removed:
5
Removed:
{% block title %}
6
Removed:
Logger
7
Removed:
{% endblock %}
8
Removed:
9
Removed:
{% block content %}
10
Removed:
11
Removed:
12
Removed:
<div id="actions">
13
Removed:
<a href="{{ url_for('add_item', item='log') }}" class="button">Add log</a>
14
Removed:
</div>
15
Removed:
16
Removed:
<i>Track operating logs.</i>
17
Removed:
18
Removed:
<p>Most recent target</p>
19
Removed:
<table>
20
Removed:
<thead>
21
Removed:
<tr>
22
Removed:
<th colspan=2><i>Actions</i></th>
23
Removed:
<th>ID</th>
24
Removed:
<th>Type</th>
25
Removed:
<th>Updated</th>
26
Removed:
<th>NNO3</th>
27
Removed:
<th>P</th>
28
Removed:
<th>K</th>
29
Removed:
<th>Ca</th>
30
Removed:
<th>Mg</th>
31
Removed:
<th>S</th>
32
Removed:
<th>Na</th>
33
Removed:
<th>Cl</th>
34
Removed:
<th>Fe</th>
35
Removed:
<th>Zn</th>
36
Removed:
<th>B</th>
37
Removed:
<th>Mn</th>
38
Removed:
<th>Cu</th>
39
Removed:
<th>Mo</th>
40
Removed:
<th>Si</th>
41
Removed:
<th>NNH4</th>
42
Removed:
</tr>
43
Removed:
</thead>
44
Removed:
<tbody>
45
Removed:
<tr>
46
Removed:
<td>
47
Removed:
<button>edit</button>
48
Removed:
</td>
49
Removed:
<td>
50
Removed:
<form method="post" action="{{ url_for('delete_item', pk=target.primary_key, table='Log' ) }}">
51
Removed:
<button>delete</button>
52
Removed:
</form>
53
Removed:
</td>
54
Removed:
<td>{{ target.primary_key }}</td>
55
Removed:
<td>Target</td>
56
Removed:
<td>{{ target.date_time_updated }}</td>
57
Removed:
<td>{{ target.nno3 }}</td>
58
Removed:
<td>{{ target.p }}</td>
59
Removed:
<td>{{ target.k }}</td>
60
Removed:
<td>{{ target.ca }}</td>
61
Removed:
<td>{{ target.mg }}</td>
62
Removed:
<td>{{ target.s }}</td>
63
Removed:
<td>{{ target.na }}</td>
64
Removed:
<td>{{ target.cl }}</td>
65
Removed:
<td>{{ target.fe }}</td>
66
Removed:
<td>{{ target.zn }}</td>
67
Removed:
<td>{{ target.b }}</td>
68
Removed:
<td>{{ target.mn }}</td>
69
Removed:
<td>{{ target.cu }}</td>
70
Removed:
<td>{{ target.mo }}</td>
71
Removed:
<td>{{ target.si }}</td>
72
Removed:
<td>{{ target.nnh4 }}</td>
73
Removed:
</tr>
74
Removed:
</tbody>
75
Removed:
</table>
76
Removed:
77
Removed:
<p>Logs</p>
78
Removed:
79
Removed:
<table>
80
Removed:
<thead>
81
Removed:
<tr>
82
Removed:
<th colspan=2><i>Actions</i></th>
83
Removed:
<th>ID</th>
84
Removed:
<th>Type</th>
85
Removed:
<th>Updated</th>
86
Removed:
<th>NNO3</th>
87
Removed:
<th>P</th>
88
Removed:
<th>K</th>
89
Removed:
<th>Ca</th>
90
Removed:
<th>Mg</th>
91
Removed:
<th>S</th>
92
Removed:
<th>Na</th>
93
Removed:
<th>Cl</th>
94
Removed:
<th>Fe</th>
95
Removed:
<th>Zn</th>
96
Removed:
<th>B</th>
97
Removed:
<th>Mn</th>
98
Removed:
<th>Cu</th>
99
Removed:
<th>Mo</th>
100
Removed:
<th>Si</th>
101
Removed:
<th>NNH4</th>
102
Removed:
</tr>
103
Removed:
</thead>
104
Removed:
<tbody>
105
Removed:
{% for log in logs %}
106
Removed:
<tr>
107
Removed:
<td>
108
Removed:
<button>edit</button>
109
Removed:
</td>
110
Removed:
<td>
111
Removed:
<form method="post" action="{{ url_for('delete_item', pk=log.primary_key, table='Log' ) }}">
112
Removed:
<button>delete</button>
113
Removed:
</form>
114
Removed:
</td>
115
Removed:
<td>{{ log.primary_key }}</td>
116
Removed:
{% if log.target == "True" %}
117
Removed:
<td>Target</td>
118
Removed:
{% else %}
119
Removed:
<td>Log</td>
120
Removed:
{% endif %}
121
Removed:
<td>{{ log.date_time_updated }}</td>
122
Removed:
<td>{{ log.nno3 }}</td>
123
Removed:
<td>{{ log.p }}</td>
124
Removed:
<td>{{ log.k }}</td>
125
Removed:
<td>{{ log.ca }}</td>
126
Removed:
<td>{{ log.mg }}</td>
127
Removed:
<td>{{ log.s }}</td>
128
Removed:
<td>{{ log.na }}</td>
129
Removed:
<td>{{ log.cl }}</td>
130
Removed:
<td>{{ log.fe }}</td>
131
Removed:
<td>{{ log.zn }}</td>
132
Removed:
<td>{{ log.b }}</td>
133
Removed:
<td>{{ log.mn }}</td>
134
Removed:
<td>{{ log.cu }}</td>
135
Removed:
<td>{{ log.mo }}</td>
136
Removed:
<td>{{ log.si }}</td>
137
Removed:
<td>{{ log.nnh4 }}</td>
138
Removed:
</tr>
139
Removed:
{% endfor %}
140
Removed:
</tbody>
141
Removed:
</table>
142
Removed:
{% endblock %}
app/templates/modules/login.html
@@ -0,0 +1,16 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
{# the login form #}
6
Added:
{% block content %}
7
Added:
<form action="{{ url_for('auth.login') }}" method="POST">
8
Added:
<fieldset>
9
Added:
<legend>Login</legend>
10
Added:
{% for field in form %}
11
Added:
{{ field.label() }}
12
Added:
{{ field() }}<br/>
13
Added:
{% endfor %}
14
Added:
</fieldset>
15
Added:
</form>
16
Added:
{% endblock %}
app/templates/modules/orders.html
@@ -5,12 +5,12 @@
5
5
Orders
6
6
{% endblock %}
7
7
8
Added:
{% block actions %}
9
Added:
<a href="{{ url_for('add_item', item='order') }}" class="button">Add order</a>
10
Added:
{% endblock %}
11
Added:
8
12
{% block content %}
9
13
<i>Track your orders and their payment status here.</i>
10
Removed:
11
Removed:
<p>
12
Removed:
<a href="{{ url_for('add_item', item='order') }}" class="button">Add order</a>
13
Removed:
</p>
14
14
15
15
<table>
16
16
<thead>
app/templates/modules/products.html
@@ -5,19 +5,19 @@
5
5
Products
6
6
{% endblock %}
7
7
8
Added:
{% block actions %}
9
Added:
<li><a href="{{ url_for('common.add_item', module='products', table='Product') }}" class="button">Add product</a></li>
10
Added:
{% endblock %}
11
Added:
8
12
{% block content %}
9
13
10
Removed:
11
Removed:
<div id="actions">
12
Removed:
<a href="{{ url_for('add_item', item='product') }}" class="button">Add product</a>
13
Removed:
</div>
14
Removed:
15
14
<i>Track products you sell here.</i>
16
15
17
16
<table>
18
17
<thead>
19
18
<tr>
20
19
<th colspan=2><i>Actions</i></th>
20
Added:
<th>ID</th>
21
21
<th>Name</th>
22
22
<th>Price (net)</th>
23
23
<th>Price (gross)</th>
@@ -28,13 +28,15 @@
28
28
{% for product in products %}
29
29
<tr>
30
30
<td>
31
Removed:
<button>edit</button>
32
Removed:
</td>
31
Added:
<form method="post" action="{{ url_for('common.edit_item', module='products', pk=product.primary_key, table='Product') }}">
32
Added:
<button>edit</button>
33
Added:
</form> </td>
33
34
<td>
34
Removed:
<form method="post" action="{{ url_for('delete_item', pk=product.primary_key, table='Product' ) }}">
35
Added:
<form method="post" action="{{ url_for('common.delete_item', module='products', pk=product.primary_key, table='Product') }}">
35
36
<button>delete</button>
36
37
</form>
37
38
</td>
39
Added:
<td>{{ product.primary_key }}</td>
38
40
<td>{{ product.name }}</td>
39
41
<td>{{ product.price_net }}</td>
40
42
<td>{{ product.price_gross }}</td>
app/templates/modules/register.html
@@ -0,0 +1,16 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
{# the register form #}
6
Added:
{% block content %}
7
Added:
<form action="{{ url_for('auth.register') }}" method="POST">
8
Added:
<fieldset>
9
Added:
<legend>Register</legend>
10
Added:
{% for field in form %}
11
Added:
{{ field.label() }}
12
Added:
{{ field() }}<br/>
13
Added:
{% endfor %}
14
Added:
</fieldset>
15
Added:
</form>
16
Added:
{% endblock %}
app/templates/modules/settings.html
@@ -0,0 +1,57 @@
1
Added:
{# -*- mode: web; -*- #}
2
Added:
3
Added:
{% extends "base.html" %}
4
Added:
5
Added:
{% block title %}
6
Added:
Settings for user {{ current_user.username }}
7
Added:
{% endblock %}
8
Added:
9
Added:
{% block content %}
10
Added:
11
Added:
<p>Welcome, {{ current_user.username }}!</p>
12
Added:
13
Added:
<h2>User profile</h2>
14
Added:
15
Added:
<form method="post" action="{{ url_for('common.edit_item', module='settings', pk=current_user.primary_key, table='Users' ) }}">
16
Added:
<button>edit</button>
17
Added:
</form>
18
Added:
19
Added:
<table>
20
Added:
<thead>
21
Added:
<tr>
22
Added:
<th>Field</th>
23
Added:
<th>Value</th>
24
Added:
</tr>
25
Added:
</thead>
26
Added:
<tbody>
27
Added:
<tr>
28
Added:
<td>Username</td>
29
Added:
<td>{{ current_user.username }}</td>
30
Added:
</tr>
31
Added:
<tr>
32
Added:
<td>First Name</td>
33
Added:
<td>{{ current_user.name_first }}</td>
34
Added:
</tr>
35
Added:
<tr>
36
Added:
<td>Last Name</td>
37
Added:
<td>{{ current_user.name_last }}</td>
38
Added:
</tr>
39
Added:
<tr>
40
Added:
<td>E-mail</td>
41
Added:
<td>{{ current_user.email }}</td>
42
Added:
</tr>
43
Added:
<tr>
44
Added:
<td>Phone (mobile)</td>
45
Added:
<td>{{ current_user.phone_mobile }}</td>
46
Added:
</tr>
47
Added:
<tr>
48
Added:
<td>Phone (alt)</td>
49
Added:
<td>{{ current_user.phone_alternative }}</td>
50
Added:
</tr>
51
Added:
<tr>
52
Added:
<td> Last Updated</td>
53
Added:
<td>{{ current_user.date_time_updated }}</td>
54
Added:
</tr>
55
Added:
</tbody>
56
Added:
</table>
57
Added:
{% endblock %}
app/templates/preview-invoice.html
@@ -1,106 +0,0 @@
1
Removed:
{# -*- mode: web; -*- #}
2
Removed:
3
Removed:
<!doctype html>
4
Removed:
5
Removed:
<html lang="en">
6
Removed:
<head>
7
Removed:
<meta charset="utf-8">
8
Removed:
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to">
9
Removed:
<title>New Invoice for {{ customer.name }}</title>
10
Removed:
<meta name="author" content="Marius Peter">
11
Removed:
<meta name="description" content="A new invoice for your project.">
12
Removed:
<!-- <link rel="icon" href="{{ url_for('static', filename='img/favicon.png') }}"> -->
13
Removed:
<link rel="stylesheet" href="{{ url_for('static', filename='styles/invoice.css') }}">
14
Removed:
</head>
15
Removed:
<body>
16
Removed:
<div id="content">
17
Removed:
<header class="clearfix">
18
Removed:
<div id="logo">
19
Removed:
<img src="{{ url_for('static', filename='img/logo.png') }}">
20
Removed:
</div>
21
Removed:
<div id="company">
22
Removed:
<h2 class="name">Company Name</h2>
23
Removed:
<div>455 Foggy Heights, AZ 85004, US</div>
24
Removed:
<div>(602) 519-0450</div>
25
Removed:
<div><a href="mailto:company@example.com">company@example.com</a></div>
26
Removed:
</div>
27
Removed:
28
Removed:
</header>
29
Removed:
<main>
30
Removed:
<div id="details" class="clearfix">
31
Removed:
<div id="client">
32
Removed:
<div class="to">INVOICE TO:</div>
33
Removed:
<h2 class="name">John Doe</h2>
34
Removed:
<div class="address">796 Silver Harbour, TX 79273, US</div>
35
Removed:
<div class="email"><a href="mailto:john@example.com">john@example.com</a></div>
36
Removed:
</div>
37
Removed:
<div id="invoice">
38
Removed:
<h1>INVOICE 3-2-1</h1>
39
Removed:
<div class="date">Date of Invoice: 01/06/2014</div>
40
Removed:
<div class="date">Due Date: 30/06/2014</div>
41
Removed:
</div>
42
Removed:
</div>
43
Removed:
<table cellspacing="0" cellpadding="0" border="0">
44
Removed:
<thead>
45
Removed:
<tr>
46
Removed:
<th class="no">#</th>
47
Removed:
<th class="desc">DESCRIPTION</th>
48
Removed:
<th class="unit">UNIT PRICE</th>
49
Removed:
<th class="qty">QUANTITY</th>
50
Removed:
<th class="total">TOTAL</th>
51
Removed:
</tr>
52
Removed:
</thead>
53
Removed:
<tbody>
54
Removed:
<tr>
55
Removed:
<td class="no">01</td>
56
Removed:
<td class="desc"><h3>Website Design</h3>Creating a recognizable design solution based on the company's existing visual identity</td>
57
Removed:
<td class="unit">$40.00</td>
58
Removed:
<td class="qty">30</td>
59
Removed:
<td class="total">$1,200.00</td>
60
Removed:
</tr>
61
Removed:
<tr>
62
Removed:
<td class="no">02</td>
63
Removed:
<td class="desc"><h3>Website Development</h3>Developing a Content Management System-based Website</td>
64
Removed:
<td class="unit">$40.00</td>
65
Removed:
<td class="qty">80</td>
66
Removed:
<td class="total">$3,200.00</td>
67
Removed:
</tr>
68
Removed:
<tr>
69
Removed:
<td class="no">03</td>
70
Removed:
<td class="desc"><h3>Search Engines Optimization</h3>Optimize the site for search engines (SEO)</td>
71
Removed:
<td class="unit">$40.00</td>
72
Removed:
<td class="qty">20</td>
73
Removed:
<td class="total">$800.00</td>
74
Removed:
</tr>
75
Removed:
</tbody>
76
Removed:
<tfoot>
77
Removed:
<tr>
78
Removed:
<td colspan="2"></td>
79
Removed:
<td colspan="2">SUBTOTAL</td>
80
Removed:
<td>$5,200.00</td>
81
Removed:
</tr>
82
Removed:
<tr>
83
Removed:
<td colspan="2"></td>
84
Removed:
<td colspan="2">TAX 25%</td>
85
Removed:
<td>$1,300.00</td>
86
Removed:
</tr>
87
Removed:
<tr>
88
Removed:
<td colspan="2"></td>
89
Removed:
<td colspan="2">GRAND TOTAL</td>
90
Removed:
<td>$6,500.00</td>
91
Removed:
</tr>
92
Removed:
</tfoot>
93
Removed:
</table>
94
Removed:
<div id="thanks">Thank you!</div>
95
Removed:
<div id="notices">
96
Removed:
<div>NOTICE:</div>
97
Removed:
<div class="notice">A finance charge of 1.5% will be made on unpaid balances after 30 days.</div>
98
Removed:
</div>
99
Removed:
</main>
100
Removed:
<footer>
101
Removed:
Invoice was created on a computer and is valid without the signature and seal.
102
Removed:
</footer>
103
Removed:
104
Removed:
</div>
105
Removed:
</body>
106
Removed:
</html>