Jinja2 templates.

Commit
caa0e1db19c0616031f7879d4298ed152b05f557
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
Changed files
app/templates/add-invoice.html
index 00000000..92748be4 000000..100644
@@ -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/add-item.html
index 00000000..acffa87c 000000..100644
@@ -0,0 +1,20 @@
1 Added: {# -*- mode: web; -*- #}
2 Added:
3 Added: {% extends "base.html" %}
4 Added:
5 Added:
6 Added: {% block title %}Add a new {{ item }}{% endblock %}
7 Added: {% block content %}
8 Added:
9 Added: {# the form #}
10 Added: <form action="{{ url_for('add_item', item=item) }}" method="POST">
11 Added: <fieldset>
12 Added: <legend>Add a new {{ item }} to our database.</legend>
13 Added: {% for field in form %}
14 Added: {{ field.label() }}
15 Added: {{ field() }}<br/>
16 Added: {% endfor %}
17 Added: </fieldset>
18 Added: </form>
19 Added:
20 Added: {% endblock %}
app/templates/add_product.html
index ad7ea0a8..00000000 100644..000000
@@ -1,44 +0,0 @@
1 Removed: {# -*- mode: jinja2; -*- #}
2 Removed:
3 Removed: {% extends "base.html" %}
4 Removed: {% import "bootstrap/wtf.html" as wtf %}
5 Removed:
6 Removed: {% block content %}
7 Removed:
8 Removed: {% block title %}Add a New Product{% endblock %}
9 Removed:
10 Removed: {% if message %}
11 Removed:
12 Removed: {# the form was submitted and message exists #}
13 Removed: <p class="lead"><strong>{{ message }}</strong></p>
14 Removed: {# links #}
15 Removed: <p><a href="{{ url_for('add_product') }}" class="button">Submit another product.</a></p>
16 Removed: <p><a href="/fapg/home">Return to the index.</a></p>
17 Removed:
18 Removed: {% else %}
19 Removed:
20 Removed: {# the form is displayed when template opens via GET not POST #}
21 Removed: <p class="lead alert alert-primary">Add a new sock to our inventory.</p>
22 Removed: <p class="ml-4"><a href="/fapg/home" class="button">Return to the index.</a></p>
23 Removed: {# show flash - based on WTForms validators
24 Removed: see https://pythonprogramming.net/flash-flask-tutorial/
25 Removed: get_flashed_messages() exists here because of flash()
26 Removed: in the route function
27 Removed: #}
28 Removed: {% with errors = get_flashed_messages() %}
29 Removed: {% if errors %}
30 Removed: {% for err in errors %}
31 Removed: <div class="alert alert-danger alert-dismissible" role="alert">
32 Removed: <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
33 Removed: {{ err }}
34 Removed: </div>
35 Removed: {% endfor %}
36 Removed: {% endif %}
37 Removed: {% endwith %}
38 Removed: {# end of flash #}
39 Removed:
40 Removed: {# the form, thanks to WTForms #}
41 Removed: {{ wtf.quick_form(form) }}
42 Removed:
43 Removed: {% endif %}
44 Removed: {% endblock %}
app/templates/base.html
index 0b53b5c6..b5f507d4 100644..100644
@@ -1,30 +1,40 @@
1 Removed: {# -*- mode: jinja2; -*- #}
1 Added: {# -*- mode: web; -*- #}
2 2
3 3 <!doctype html>
4 4
5 5 <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>Farm Manager</title>
10 Removed: <meta name="author" content="Marius Peter">
11 Removed: <meta name="description" content="A draft page for Farm Manager.">
12 Removed: <!-- <link rel="icon" href="/favicon.ico"> -->
13 Removed: <link rel="stylesheet" href="{{ url_for('static', filename='styles/style.css') }}">
14 Removed: </head>
15 Removed: <body>
16 Removed: <nav>
17 Removed: <a href="/" class="button">Home</a>
18 Removed: <h1>{% block title %}{% endblock %}</h1>
19 Removed: <ul>
20 Removed: {% for module in modules %}
21 Removed: <li><a href="/module/{{ module.name }}" class="button">{{ module.name }}</a></li>
22 Removed: {% endfor %}
23 Removed: </ul>
24 Removed: </nav>
25 Removed: <div id="content">
26 Removed: {% block content %}{% endblock %}
27 Removed: </div>
28 Removed: <!-- <script src="js/scripts.js"></script> -->
29 Removed: </body>
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>Farm Manager</title>
10 Added: <meta name="author" content="Marius Peter">
11 Added: <meta name="description" content="A draft page for Farm Manager.">
12 Added: <!-- <link rel="icon" href="{{ url_for('static', filename='img/favicon.png') }}"> -->
13 Added: <link rel="stylesheet" href="{{ url_for('static', filename='styles/style.css') }}">
14 Added: </head>
15 Added: <body>
16 Added: <nav>
17 Added: <a href="/" class="button">Home</a>
18 Added: <h1>{% block title %}{% endblock %}</h1>
19 Added: <ul>
20 Added: {% for module in modules %}
21 Added: <li><a href="/modules/{{ module.name }}" class="button">{{ module.name }}</a></li>
22 Added: {% endfor %}
23 Added: </ul>
24 Added: </nav>
25 Added: <div id="content">
26 Added: {% block content %}{% endblock %}
27 Added: </div>
28 Added: {# Flashed messages added last, so that they appear on top of the content. #}
29 Added: {% with messages = get_flashed_messages(with_categories=true) %}
30 Added: {% if messages %}
31 Added: <ul class="flashes">
32 Added: {% for category, message in messages %}
33 Added: <li class="alert alert-{{ category }}">{{ message }}</li>
34 Added: {% endfor %}
35 Added: </ul>
36 Added: {% endif %}
37 Added: {% endwith %}
38 Added: <!-- <script src="js/scripts.js"></script> -->
39 Added: </body>
30 40 </html>
app/templates/errors/item-not-found.html
index 00000000..3afc5dbd 000000..100644
@@ -0,0 +1,14 @@
1 Added: {% extends "base.html" %}
2 Added:
3 Added: {% block title %}
4 Added: Item not found
5 Added: {% endblock %}
6 Added:
7 Added: {% block content %}
8 Added: <p>
9 Added: Item <strong>{{item }}</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
index a9bac514..f518554a 100644..100644
@@ -1,22 +1,22 @@
1 Removed: <!-- -*- mode: jinja2; -*- -->
1 Added: {# -*- mode: web; -*- #}
2 2
3 3 {% extends "base.html" %}
4 4
5 5 {% block title %}
6 Removed: Welcome, {{ user.name_first }}!
6 Added: Welcome, {{ user.name_first }}!
7 7 {% endblock %}
8 8
9 9
10 10 {% block content %}
11 11
12 Removed: <p>You are logged in as <strong>{{ user }}</strong> on
12 Added: <p>You are logged in as <strong>{{ user }}</strong> on
13 13 project <strong>{{ project }}</strong>.</p>
14 14
15 Removed: <h2>Available modules</h2>
16 Removed: <dl>
17 Removed: {% for module in modules %}
18 Removed: <dt style="font-weight: bold">{{ module.name }}</dt><dd>{{ module.description }}<dd>
19 Removed: {% endfor %}
20 Removed: </dl>
15 Added: <h2>Available modules</h2>
16 Added: <dl>
17 Added: {% for module in modules %}
18 Added: <dt style="font-weight: bold">{{ module.name }}</dt><dd>{{ module.description }}<dd>
19 Added: {% endfor %}
20 Added: </dl>
21 21
22 22 {% endblock %}
app/templates/modules/calculator.html
index f951a171..00000000 100644..000000
@@ -1,8 +0,0 @@
1 Removed: {% extends "base.html" %}
2 Removed: {% block title %}
3 Removed: Calculator
4 Removed: {% endblock %}
5 Removed:
6 Removed: {% block content %}
7 Removed: <i>insert module content here.</i>
8 Removed: {% endblock %}
app/templates/modules/catalog.html
index 857c654d..00000000 100644..000000
@@ -1,35 +0,0 @@
1 Removed: <!-- -*- mode: jinja2; -*- -->
2 Removed:
3 Removed: {% extends "base.html" %}
4 Removed: {% block title %}
5 Removed: Catalog
6 Removed: {% endblock %}
7 Removed:
8 Removed: {% block content %}
9 Removed: <i>insert module content here.</i>
10 Removed:
11 Removed: <p>
12 Removed: <a href="{{ url_for('add_product') }}" class="button">Add product to your catalog</a>
13 Removed: </p>
14 Removed:
15 Removed: <table>
16 Removed: <thead>
17 Removed: <tr>
18 Removed: <th>Name</th>
19 Removed: <th>Price</th>
20 Removed: <th>Supplier</th>
21 Removed: <th>Updated</th>
22 Removed: </tr>
23 Removed: </thead>
24 Removed: <tbody>
25 Removed: {% for product in catalog %}
26 Removed: <tr>
27 Removed: <td>{{ product.name }}</td>
28 Removed: <td>{{ product.price }}</td>
29 Removed: <td>{{ product.supplier }}</td>
30 Removed: <td>{{ product.updated }}</td>
31 Removed: </tr>
32 Removed: {% endfor %}
33 Removed: </tbody>
34 Removed: </table>
35 Removed: {% endblock %}
app/templates/modules/creator.html
index 588f4286..00000000 100644..000000
@@ -1,8 +0,0 @@
1 Removed: {% extends "base.html" %}
2 Removed: {% block title %}
3 Removed: Creator
4 Removed: {% endblock %}
5 Removed:
6 Removed: {% block content %}
7 Removed: <i>insert module content here.</i>
8 Removed: {% endblock %}
app/templates/modules/customers.html
index 00000000..c693097a 000000..100644
@@ -0,0 +1,43 @@
1 Added: {# -*- mode: web; -*- #}
2 Added:
3 Added: {% extends "base.html" %}
4 Added: {% block title %}
5 Added: Customers
6 Added: {% endblock %}
7 Added:
8 Added: {% block content %}
9 Added: <div id="actions">
10 Added: <a href="{{ url_for('add_item', item='customer') }}" class="button">Add customer</a>
11 Added: </div>
12 Added:
13 Added: <table>
14 Added: <thead>
15 Added: <tr>
16 Added: <th></th>
17 Added: <th>Name</th>
18 Added: <th>City</th>
19 Added: <th>Phone</th>
20 Added: <th>E-mail</th>
21 Added: </tr>
22 Added: </thead>
23 Added: <tbody>
24 Added: {% for customer in customers %}
25 Added: <tr>
26 Added: <td><button>edit</button></td>
27 Added: {% if customer.website %}
28 Added: <td><a href="{{ customer.website }}">{{ customer.name }}</a></td>
29 Added: {% else %}
30 Added: <td>{{ customer.name }}</td>
31 Added: {% endif %}
32 Added: <td>{{ customer.city }}</td>
33 Added: <td>{{ customer.phone }}</td>
34 Added: {% if customer.email %}
35 Added: <td><a href="mailto:{{ customer.email }}">{{ customer.email }}</a></td>
36 Added: {% else %}
37 Added: <td></td>
38 Added: {% endif %}
39 Added: </tr>
40 Added: {% endfor %}
41 Added: </tbody>
42 Added: </table>
43 Added: {% endblock %}
app/templates/modules/invoices.html
index 00000000..76fe267d 000000..100644
@@ -0,0 +1,44 @@
1 Added: {# -*- mode: jinja2; -*- #}
2 Added:
3 Added: {% extends "base.html" %}
4 Added: {% block title %}
5 Added: Products
6 Added: {% endblock %}
7 Added:
8 Added: {% block content %}
9 Added:
10 Added: <div id="actions">
11 Added: <a href="{{ url_for('add_invoice') }}" class="button">New invoice</a>
12 Added: </div>
13 Added:
14 Added: <i>Track your invoices and create new ones here.</i>
15 Added:
16 Added: <table>
17 Added: <thead>
18 Added: <tr>
19 Added: <th colspan=2><i>Actions</i></th>
20 Added: <th>Name</th>
21 Added: <th>Price (net)</th>
22 Added: <th>Price (gross)</th>
23 Added: <th>Updated</th>
24 Added: </tr>
25 Added: </thead>
26 Added: <tbody>
27 Added: {% for invoice in invoices %}
28 Added: <tr>
29 Added: <td><button>edit</button></td>
30 Added: <td><button formaction="/">delete</button></td>
31 Added: <td>{{ product.name }}</td>
32 Added: <td>{{ product.price_net }}</td>
33 Added: <td>{{ product.price_gross }}</td>
34 Added: {% if product.date_time_updated %}
35 Added: <td>{{ product.date_time_updated }}</td>
36 Added: {% else %}
37 Added: <td>{{ product.date_time_created }}</td>
38 Added: {% endif %}
39 Added:
40 Added: </tr>
41 Added: {% endfor %}
42 Added: </tbody>
43 Added: </table>
44 Added: {% endblock %}
app/templates/modules/logger.html
index 7ba93b38..f3321e9a 100644..100644
@@ -1,8 +1,142 @@
1 Added: {# -*- mode: web; -*- #}
2 Added:
1 3 {% extends "base.html" %}
4 Added:
2 5 {% block title %}
3 6 Logger
4 7 {% endblock %}
5 8
6 9 {% block content %}
7 Removed: <i>insert module content here.</i>
10 Added:
11 Added:
12 Added: <div id="actions">
13 Added: <a href="{{ url_for('add_item', item='log') }}" class="button">Add log</a>
14 Added: </div>
15 Added:
16 Added: <i>Track operating logs.</i>
17 Added:
18 Added: <p>Most recent target</p>
19 Added: <table>
20 Added: <thead>
21 Added: <tr>
22 Added: <th colspan=2><i>Actions</i></th>
23 Added: <th>ID</th>
24 Added: <th>Type</th>
25 Added: <th>Updated</th>
26 Added: <th>NNO3</th>
27 Added: <th>P</th>
28 Added: <th>K</th>
29 Added: <th>Ca</th>
30 Added: <th>Mg</th>
31 Added: <th>S</th>
32 Added: <th>Na</th>
33 Added: <th>Cl</th>
34 Added: <th>Fe</th>
35 Added: <th>Zn</th>
36 Added: <th>B</th>
37 Added: <th>Mn</th>
38 Added: <th>Cu</th>
39 Added: <th>Mo</th>
40 Added: <th>Si</th>
41 Added: <th>NNH4</th>
42 Added: </tr>
43 Added: </thead>
44 Added: <tbody>
45 Added: <tr>
46 Added: <td>
47 Added: <button>edit</button>
48 Added: </td>
49 Added: <td>
50 Added: <form method="post" action="{{ url_for('delete_item', pk=target.primary_key, table='Log' ) }}">
51 Added: <button>delete</button>
52 Added: </form>
53 Added: </td>
54 Added: <td>{{ target.primary_key }}</td>
55 Added: <td>Target</td>
56 Added: <td>{{ target.date_time_updated }}</td>
57 Added: <td>{{ target.nno3 }}</td>
58 Added: <td>{{ target.p }}</td>
59 Added: <td>{{ target.k }}</td>
60 Added: <td>{{ target.ca }}</td>
61 Added: <td>{{ target.mg }}</td>
62 Added: <td>{{ target.s }}</td>
63 Added: <td>{{ target.na }}</td>
64 Added: <td>{{ target.cl }}</td>
65 Added: <td>{{ target.fe }}</td>
66 Added: <td>{{ target.zn }}</td>
67 Added: <td>{{ target.b }}</td>
68 Added: <td>{{ target.mn }}</td>
69 Added: <td>{{ target.cu }}</td>
70 Added: <td>{{ target.mo }}</td>
71 Added: <td>{{ target.si }}</td>
72 Added: <td>{{ target.nnh4 }}</td>
73 Added: </tr>
74 Added: </tbody>
75 Added: </table>
76 Added:
77 Added: <p>Logs</p>
78 Added:
79 Added: <table>
80 Added: <thead>
81 Added: <tr>
82 Added: <th colspan=2><i>Actions</i></th>
83 Added: <th>ID</th>
84 Added: <th>Type</th>
85 Added: <th>Updated</th>
86 Added: <th>NNO3</th>
87 Added: <th>P</th>
88 Added: <th>K</th>
89 Added: <th>Ca</th>
90 Added: <th>Mg</th>
91 Added: <th>S</th>
92 Added: <th>Na</th>
93 Added: <th>Cl</th>
94 Added: <th>Fe</th>
95 Added: <th>Zn</th>
96 Added: <th>B</th>
97 Added: <th>Mn</th>
98 Added: <th>Cu</th>
99 Added: <th>Mo</th>
100 Added: <th>Si</th>
101 Added: <th>NNH4</th>
102 Added: </tr>
103 Added: </thead>
104 Added: <tbody>
105 Added: {% for log in logs %}
106 Added: <tr>
107 Added: <td>
108 Added: <button>edit</button>
109 Added: </td>
110 Added: <td>
111 Added: <form method="post" action="{{ url_for('delete_item', pk=log.primary_key, table='Log' ) }}">
112 Added: <button>delete</button>
113 Added: </form>
114 Added: </td>
115 Added: <td>{{ log.primary_key }}</td>
116 Added: {% if log.target == "True" %}
117 Added: <td>Target</td>
118 Added: {% else %}
119 Added: <td>Log</td>
120 Added: {% endif %}
121 Added: <td>{{ log.date_time_updated }}</td>
122 Added: <td>{{ log.nno3 }}</td>
123 Added: <td>{{ log.p }}</td>
124 Added: <td>{{ log.k }}</td>
125 Added: <td>{{ log.ca }}</td>
126 Added: <td>{{ log.mg }}</td>
127 Added: <td>{{ log.s }}</td>
128 Added: <td>{{ log.na }}</td>
129 Added: <td>{{ log.cl }}</td>
130 Added: <td>{{ log.fe }}</td>
131 Added: <td>{{ log.zn }}</td>
132 Added: <td>{{ log.b }}</td>
133 Added: <td>{{ log.mn }}</td>
134 Added: <td>{{ log.cu }}</td>
135 Added: <td>{{ log.mo }}</td>
136 Added: <td>{{ log.si }}</td>
137 Added: <td>{{ log.nnh4 }}</td>
138 Added: </tr>
139 Added: {% endfor %}
140 Added: </tbody>
141 Added: </table>
8 142 {% endblock %}
app/templates/modules/orders.html
index 00000000..bf94d3d7 000000..100644
@@ -0,0 +1,37 @@
1 Added: {# -*- mode: web; -*- #}
2 Added:
3 Added: {% extends "base.html" %}
4 Added: {% block title %}
5 Added: Orders
6 Added: {% endblock %}
7 Added:
8 Added: {% block content %}
9 Added: <i>Track your orders and their payment status here.</i>
10 Added:
11 Added: <p>
12 Added: <a href="{{ url_for('add_item', item='order') }}" class="button">Add order</a>
13 Added: </p>
14 Added:
15 Added: <table>
16 Added: <thead>
17 Added: <tr>
18 Added: <th>ID</th>
19 Added: <th>Date</th>
20 Added: <th>Customer</th>
21 Added: <th>Content</th>
22 Added: <th>Updated</th>
23 Added: </tr>
24 Added: </thead>
25 Added: <tbody>
26 Added: {% for order in orders %}
27 Added: <tr>
28 Added: <td>{{ order.id }}</td>
29 Added: <td>{{ order.date }}</td>
30 Added: <td>{{ order.customer }}</td>
31 Added: <td>{{ order.content }}</td>
32 Added: <td>{{ order.updated }}</td>
33 Added: </tr>
34 Added: {% endfor %}
35 Added: </tbody>
36 Added: </table>
37 Added: {% endblock %}
app/templates/modules/products.html
index 00000000..97b692ae 000000..100644
@@ -0,0 +1,51 @@
1 Added: {# -*- mode: web; -*- #}
2 Added:
3 Added: {% extends "base.html" %}
4 Added: {% block title %}
5 Added: Products
6 Added: {% endblock %}
7 Added:
8 Added: {% block content %}
9 Added:
10 Added:
11 Added: <div id="actions">
12 Added: <a href="{{ url_for('add_item', item='product') }}" class="button">Add product</a>
13 Added: </div>
14 Added:
15 Added: <i>Track products you sell here.</i>
16 Added:
17 Added: <table>
18 Added: <thead>
19 Added: <tr>
20 Added: <th colspan=2><i>Actions</i></th>
21 Added: <th>Name</th>
22 Added: <th>Price (net)</th>
23 Added: <th>Price (gross)</th>
24 Added: <th>Updated</th>
25 Added: </tr>
26 Added: </thead>
27 Added: <tbody>
28 Added: {% for product in products %}
29 Added: <tr>
30 Added: <td>
31 Added: <button>edit</button>
32 Added: </td>
33 Added: <td>
34 Added: <form method="post" action="{{ url_for('delete_item', pk=product.primary_key, table='Product' ) }}">
35 Added: <button>delete</button>
36 Added: </form>
37 Added: </td>
38 Added: <td>{{ product.name }}</td>
39 Added: <td>{{ product.price_net }}</td>
40 Added: <td>{{ product.price_gross }}</td>
41 Added: {% if product.date_time_updated %}
42 Added: <td>{{ product.date_time_updated }}</td>
43 Added: {% else %}
44 Added: <td>{{ product.date_time_created }}</td>
45 Added: {% endif %}
46 Added:
47 Added: </tr>
48 Added: {% endfor %}
49 Added: </tbody>
50 Added: </table>
51 Added: {% endblock %}
app/templates/preview-invoice.html
index 00000000..5ddeb002 000000..100644
@@ -0,0 +1,106 @@
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>New Invoice for {{ 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">Company Name</h2>
23 Added: <div>455 Foggy Heights, AZ 85004, US</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">John Doe</h2>
34 Added: <div class="address">796 Silver Harbour, TX 79273, US</div>
35 Added: <div class="email"><a href="mailto:john@example.com">john@example.com</a></div>
36 Added: </div>
37 Added: <div id="invoice">
38 Added: <h1>INVOICE 3-2-1</h1>
39 Added: <div class="date">Date of Invoice: 01/06/2014</div>
40 Added: <div class="date">Due Date: 30/06/2014</div>
41 Added: </div>
42 Added: </div>
43 Added: <table cellspacing="0" cellpadding="0" border="0">
44 Added: <thead>
45 Added: <tr>
46 Added: <th class="no">#</th>
47 Added: <th class="desc">DESCRIPTION</th>
48 Added: <th class="unit">UNIT PRICE</th>
49 Added: <th class="qty">QUANTITY</th>
50 Added: <th class="total">TOTAL</th>
51 Added: </tr>
52 Added: </thead>
53 Added: <tbody>
54 Added: <tr>
55 Added: <td class="no">01</td>
56 Added: <td class="desc"><h3>Website Design</h3>Creating a recognizable design solution based on the company's existing visual identity</td>
57 Added: <td class="unit">$40.00</td>
58 Added: <td class="qty">30</td>
59 Added: <td class="total">$1,200.00</td>
60 Added: </tr>
61 Added: <tr>
62 Added: <td class="no">02</td>
63 Added: <td class="desc"><h3>Website Development</h3>Developing a Content Management System-based Website</td>
64 Added: <td class="unit">$40.00</td>
65 Added: <td class="qty">80</td>
66 Added: <td class="total">$3,200.00</td>
67 Added: </tr>
68 Added: <tr>
69 Added: <td class="no">03</td>
70 Added: <td class="desc"><h3>Search Engines Optimization</h3>Optimize the site for search engines (SEO)</td>
71 Added: <td class="unit">$40.00</td>
72 Added: <td class="qty">20</td>
73 Added: <td class="total">$800.00</td>
74 Added: </tr>
75 Added: </tbody>
76 Added: <tfoot>
77 Added: <tr>
78 Added: <td colspan="2"></td>
79 Added: <td colspan="2">SUBTOTAL</td>
80 Added: <td>$5,200.00</td>
81 Added: </tr>
82 Added: <tr>
83 Added: <td colspan="2"></td>
84 Added: <td colspan="2">TAX 25%</td>
85 Added: <td>$1,300.00</td>
86 Added: </tr>
87 Added: <tr>
88 Added: <td colspan="2"></td>
89 Added: <td colspan="2">GRAND TOTAL</td>
90 Added: <td>$6,500.00</td>
91 Added: </tr>
92 Added: </tfoot>
93 Added: </table>
94 Added: <div id="thanks">Thank you!</div>
95 Added: <div id="notices">
96 Added: <div>NOTICE:</div>
97 Added: <div class="notice">A finance charge of 1.5% will be made on unpaid balances after 30 days.</div>
98 Added: </div>
99 Added: </main>
100 Added: <footer>
101 Added: Invoice was created on a computer and is valid without the signature and seal.
102 Added: </footer>
103 Added:
104 Added: </div>
105 Added: </body>
106 Added: </html>