diff --git a/main.py b/main.py index c100716..423aae7 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,9 @@ import sqlite3 +from datetime import datetime from flask import Flask from flask import render_template from flask import url_for from flask import request, redirect, g -import datetime app = Flask(__name__) DATABASE = '/tmp/rollerverbrauch.db' @@ -61,6 +61,9 @@ def preparePitStops(pitstops): curr = pitstops[index] curr['distance'] = curr['odometer'] - last['odometer'] curr['average'] = round(100 * curr['litres']/curr['distance'], 2) + last_date = datetime.strptime(last['date'], '%Y-%m-%d') + curr_date = datetime.strptime(curr['date'], '%Y-%m-%d') + curr['days'] = (curr_date - last_date).days return pitstops def getLastPitStop(): diff --git a/static/main.css b/static/main.css index d2ae017..9b5533b 100644 --- a/static/main.css +++ b/static/main.css @@ -1,476 +1,19 @@ -/*! HTML5 Boilerplate v5.0 | MIT License | http://h5bp.com/ */ - -html { - color: #222; - font-size: 1em; - line-height: 1.4; -} - -::-moz-selection { - background: #b3d4fc; - text-shadow: none; -} - -::selection { - background: #b3d4fc; - text-shadow: none; -} - -hr { - display: block; - height: 1px; - border: 0; - border-top: 1px solid #ccc; - margin: 1em 0; - padding: 0; -} - -audio, -canvas, -iframe, -img, -svg, -video { - vertical-align: middle; -} - -fieldset { - border: 0; - margin: 0; - padding: 0; -} - -textarea { - resize: vertical; -} - -.browserupgrade { - margin: 0.2em 0; - background: #ccc; - color: #000; - padding: 0.2em 0; -} - - -/* ===== Initializr Styles ================================================== - Author: Jonathan Verrecchia - verekia.com/initializr/responsive-template - ========================================================================== */ - body { - font: 16px/26px Helvetica, Helvetica Neue, Arial; + padding-top: 50px; +} +.starter-template { + padding: 40px 15px; + text-align: center; } -.wrapper { - width: 90%; - margin: 0 5%; +th { + text-align: center; + padding-left: 10px; + padding-right: 10px; } -/* =================== - ALL: Orange Theme - =================== */ - -.header-container { - border-bottom: 20px solid #e44d26; -} - -.footer-container, -.main aside { - border-top: 20px solid #e44d26; -} - -.header-container, -.footer-container, -.main aside { - background: graytext; -} - -.title { - color: white; -} - -/* ============== - MOBILE: Menu - ============== */ - -nav ul { - margin: 0; - padding: 0; - list-style-type: none; -} - -nav a { - display: block; - margin-bottom: 10px; - padding: 15px 0; - - text-align: center; - text-decoration: none; - font-weight: bold; - - color: white; - background: #e44d26; -} - -nav a:hover, -nav a:visited { - color: white; -} - -nav a:hover { - text-decoration: underline; -} - -/* ============== - MOBILE: Main - ============== */ - -.main { - padding: 30px 0; -} - -.main article h1 { - font-size: 2em; -} - -.main aside { - color: white; - padding: 0px 5% 10px; -} - -.footer-container footer { - color: white; - padding: 20px 0; -} - -/* =============== - ALL: IE Fixes - =============== */ - -.ie7 .title { - padding-top: 20px; -} - -/* ========================================================================== - Author's custom styles - ========================================================================== */ - - - - - - - - - - - - - - - -/* ========================================================================== - Media Queries - ========================================================================== */ - -@media only screen and (min-width: 480px) { - -/* ==================== - INTERMEDIATE: Menu - ==================== */ - - nav a { - float: left; - width: 27%; - margin: 0 1.7%; - padding: 25px 2%; - margin-bottom: 0; - } - - nav li:first-child a { - margin-left: 0; - } - - nav li:last-child a { - margin-right: 0; - } - -/* ======================== - INTERMEDIATE: IE Fixes - ======================== */ - - nav ul li { - display: inline; - } - - .oldie nav a { - margin: 0 0.7%; - } -} - -@media only screen and (min-width: 768px) { - -/* ==================== - WIDE: CSS3 Effects - ==================== */ - - .header-container, - .main aside { - -webkit-box-shadow: 0 5px 10px #aaa; - -moz-box-shadow: 0 5px 10px #aaa; - box-shadow: 0 5px 10px #aaa; - } - -/* ============ - WIDE: Menu - ============ */ - - .title { - float: left; - } - - nav { - float: right; - width: 38%; - } - -/* ============ - WIDE: Main - ============ */ - - .main article { - float: left; - width: 57%; - } - - .main aside { - float: right; - width: 28%; - } -} - -@media only screen and (min-width: 1140px) { - -/* =============== - Maximal Width - =============== */ - - .wrapper { - width: 1026px; /* 1140px - 10% for margins */ - margin: 0 auto; - } -} - -/* ========================================================================== - Helper classes - ========================================================================== */ - -.hidden { - display: none !important; - visibility: hidden; -} - -.visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -.invisible { - visibility: hidden; -} - -.clearfix:before, -.clearfix:after { - content: " "; - display: table; -} - -.clearfix:after { - clear: both; -} - -.clearfix { - *zoom: 1; -} - -/* ========================================================================== - Print styles - ========================================================================== */ - -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - box-shadow: none !important; - text-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - thead { - display: table-header-group; - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } -} - -.form ul { - width:750px; - list-style-type:none; - list-style-position:outside; - margin:0px; - padding:0px; -} -.form li{ - padding:12px; - border-bottom:1px solid #eee; - position:relative; -} -.form label { - width:125px; - margin-top: 3px; - display:inline-block; - float:left; - padding:3px; -} -.form input { - height:20px; - width:220px; - padding:5px 8px; -} -.form textarea {padding:8px; width:300px;} -.form button {margin-left:156px;} -.form button.submit { - background-color: #68b12f; - background: -webkit-gradient(linear, left top, left bottom, from(#68b12f), to(#50911e)); - background: -webkit-linear-gradient(top, #68b12f, #50911e); - background: -moz-linear-gradient(top, #68b12f, #50911e); - background: -ms-linear-gradient(top, #68b12f, #50911e); - background: -o-linear-gradient(top, #68b12f, #50911e); - background: linear-gradient(top, #68b12f, #50911e); - border: 1px solid #509111; - border-bottom: 1px solid #5b992b; - border-radius: 3px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -ms-border-radius: 3px; - -o-border-radius: 3px; - box-shadow: inset 0 1px 0 0 #9fd574; - -webkit-box-shadow: 0 1px 0 0 #9fd574 inset ; - -moz-box-shadow: 0 1px 0 0 #9fd574 inset; - -ms-box-shadow: 0 1px 0 0 #9fd574 inset; - -o-box-shadow: 0 1px 0 0 #9fd574 inset; - color: white; - font-weight: bold; - padding: 6px 20px; - text-align: center; - text-shadow: 0 -1px 0 #396715; -} -.form button.submit:hover { - opacity:.85; - cursor: pointer; -} -.form button.submit:active { - border: 1px solid #20911e; - box-shadow: 0 0 10px 5px #356b0b inset; - -webkit-box-shadow:0 0 10px 5px #356b0b inset ; - -moz-box-shadow: 0 0 10px 5px #356b0b inset; - -ms-box-shadow: 0 0 10px 5px #356b0b inset; - -o-box-shadow: 0 0 10px 5px #356b0b inset; -} -.form a { - background-color: #68b12f; - background: -webkit-gradient(linear, left top, left bottom, from(#68b12f), to(#50911e)); - background: -webkit-linear-gradient(top, #68b12f, #50911e); - background: -moz-linear-gradient(top, #68b12f, #50911e); - background: -ms-linear-gradient(top, #68b12f, #50911e); - background: -o-linear-gradient(top, #68b12f, #50911e); - background: linear-gradient(top, #68b12f, #50911e); - border: 1px solid #509111; - border-bottom: 1px solid #5b992b; - border-radius: 3px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -ms-border-radius: 3px; - -o-border-radius: 3px; - box-shadow: inset 0 1px 0 0 #9fd574; - -webkit-box-shadow: 0 1px 0 0 #9fd574 inset ; - -moz-box-shadow: 0 1px 0 0 #9fd574 inset; - -ms-box-shadow: 0 1px 0 0 #9fd574 inset; - -o-box-shadow: 0 1px 0 0 #9fd574 inset; - color: white; - font-weight: bold; - padding: 6px 20px; - text-align: center; - text-shadow: 0 -1px 0 #396715; -} -.form a:hover { - opacity:.85; - cursor: pointer; -} -.form a:active { - border: 1px solid #20911e; - box-shadow: 0 0 10px 5px #356b0b inset; - -webkit-box-shadow:0 0 10px 5px #356b0b inset ; - -moz-box-shadow: 0 0 10px 5px #356b0b inset; - -ms-box-shadow: 0 0 10px 5px #356b0b inset; - -o-box-shadow: 0 0 10px 5px #356b0b inset; -} +td { + text-align: right; + padding-left: 10px; + padding-right: 10px; +} \ No newline at end of file diff --git a/templates/layout.html b/templates/layout.html index 4445db9..b151c7f 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -9,46 +9,52 @@ Rollerverbrauch - + + + + + + + + + + + + + - -
-
-

Rollerverbrauch

- -
-
- - -
-
+
+
{% block body %} {% endblock %} -
-
- - - -
- - - + diff --git a/templates/newPitStopForm.html b/templates/newPitStopForm.html index 84facbe..466d4d8 100644 --- a/templates/newPitStopForm.html +++ b/templates/newPitStopForm.html @@ -1,6 +1,8 @@ {% extends "layout.html" %} {% block navigation %} +
  • Home
  • +
  • Create Pitstop
  • {% endblock %} {% block body %} @@ -9,24 +11,46 @@

    Error: {{ data.error }}

    {% endif %} -
    - -
    +
    +
    + + + Create Pitstop + + +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    + {% endblock %} \ No newline at end of file diff --git a/templates/pitstops.html b/templates/pitstops.html index 6172e56..c725c15 100644 --- a/templates/pitstops.html +++ b/templates/pitstops.html @@ -1,6 +1,7 @@ {% extends "layout.html" %} {% block navigation %} +
  • Home
  • Create Pitstop
  • {% endblock %} @@ -10,6 +11,9 @@ Date + + Day + Odometer @@ -28,16 +32,19 @@ {{pitstop.date}} - + + {% if pitstop.days %}{{pitstop.days}}{% else %} --{% endif %} days + + {{pitstop.odometer}} km - + {% if pitstop.distance %}{{pitstop.distance}}{% else %} --{% endif %} km - + {{pitstop.litres}} l - + {% if pitstop.average %}{{pitstop.average}}{% else %} --{% endif %} l/100km