From 28395c64263697466cbcc7b9373797a47d86df3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Sun, 10 Feb 2019 14:00:35 +0100 Subject: [PATCH] Added Bootstrap and Navigation --- ogn/__init__.py | 6 + ogn/navigation.py | 14 ++ ogn/routes.py | 128 ++++++++++++++- ogn/static/css/flags/LICENSE | 11 ++ ogn/static/css/flags/flags.css | 259 +++++++++++++++++++++++++++++++ ogn/static/css/flags/flags.png | Bin 0 -> 79881 bytes ogn/static/img/Blank.gif | Bin 0 -> 43 bytes ogn/static/img/Transparent.gif | Bin 0 -> 42 bytes ogn/templates/airports.html | 27 ++++ ogn/templates/base.html | 24 +++ ogn/templates/device_detail.html | 34 ++++ ogn/templates/devices.html | 31 ++++ ogn/templates/logbook.html | 61 ++++++++ ogn/templates/ogn_live.html | 81 ++++++++++ ogn/templates/receivers.html | 29 ++++ ogn/templates/records.html | 31 ++++ setup.py | 3 + 17 files changed, 733 insertions(+), 6 deletions(-) create mode 100644 ogn/navigation.py create mode 100644 ogn/static/css/flags/LICENSE create mode 100644 ogn/static/css/flags/flags.css create mode 100644 ogn/static/css/flags/flags.png create mode 100644 ogn/static/img/Blank.gif create mode 100644 ogn/static/img/Transparent.gif create mode 100644 ogn/templates/airports.html create mode 100644 ogn/templates/base.html create mode 100644 ogn/templates/device_detail.html create mode 100644 ogn/templates/devices.html create mode 100644 ogn/templates/logbook.html create mode 100644 ogn/templates/ogn_live.html create mode 100644 ogn/templates/receivers.html create mode 100644 ogn/templates/records.html diff --git a/ogn/__init__.py b/ogn/__init__.py index a6ed060..8bb2d1d 100644 --- a/ogn/__init__.py +++ b/ogn/__init__.py @@ -1,7 +1,13 @@ from flask import Flask +from flask_bootstrap import Bootstrap from flask_sqlalchemy import SQLAlchemy +from navigation import nav app = Flask(__name__) app.config.from_object('config.default') +bootstrap = Bootstrap(app) + db = SQLAlchemy(app) + +nav.init_app(app) diff --git a/ogn/navigation.py b/ogn/navigation.py new file mode 100644 index 0000000..c24434f --- /dev/null +++ b/ogn/navigation.py @@ -0,0 +1,14 @@ +from flask_nav import Nav +from flask_nav.elements import * + +nav = Nav() + +# registers the "top" menubar +nav.register_element('top_menubar', Navbar( + View('Home', 'index'), + View('Devices', 'devices'), + View('Receivers', 'receivers'), + View('Airports', 'airports'), + View('Logbook', 'logbook'), + View('Records', 'records'), +)) diff --git a/ogn/routes.py b/ogn/routes.py index 9235784..614fb23 100644 --- a/ogn/routes.py +++ b/ogn/routes.py @@ -1,12 +1,128 @@ +from flask import request, render_template + from ogn import app from ogn import db from ogn.model import * -@app.route('/') -def index(): - return "WTF" -@app.route('/test') -def test(): - return db.session.query(Device).first().address \ No newline at end of file +@app.route('/') +@app.route('/index') +def index(): + return render_template('base.html') + + +@app.route('/devices', methods=['GET', 'POST']) +def devices(): + device_id = request.args.get('id') + if device_id: + device = db.session.query(Device) \ + .filter(Device.id == device_id) + + return render_template('device_detail.html', device=device) + else: + devices = db.session.query(Device) \ + .limit(100) + return render_template('devices.html', devices=devices) + + +@app.route('/receivers') +def receivers(): + receivers = db.session.query(Receiver) \ + .filter(Receiver.country != db.null()) \ + .order_by(Receiver.name) + return render_template('receivers.html', receivers=receivers) + + +@app.route('/airports') +def airports(): + page = request.args.get('page', 1, type=int) + + pagination = db.session.query(Airport) \ + .order_by(Airport.name) \ + .paginate(page, 20, False) + return render_template('airports.html', pagination=pagination) + + +@app.route('/logbook', methods=['GET', 'POST']) +def logbook(): + sel_country = request.args.get('country') + sel_airport = request.args.get('airport') + sel_date = request.args.get('date') + + sel_device_id = request.args.get('device_id') + + airport_ids_in_logbook = db.session.query(db.distinct(Logbook.takeoff_airport_id).label('id')) \ + .subquery() + + airports_in_logbook = db.session.query(Airport) \ + .filter(Airport.id == airport_ids_in_logbook.c.id) \ + .subquery() + + country_ids_in_logbook = db.session.query(db.distinct(Country.gid).label('id')) \ + .filter(Country.iso2 == airports_in_logbook.c.country_code) \ + .subquery() + + countries_avail = db.session.query(Country) \ + .filter(Country.gid == country_ids_in_logbook.c.id) \ + .order_by(Country.iso2) + + # Get airport selection list + if sel_country: + airports = db.session.query(Airport) \ + .filter(Airport.id == airport_ids_in_logbook.c.id) \ + .filter(Airport.country_code == sel_country) \ + .order_by(Airport.name) + else: + airports = [''] + + # Get date selection list + if sel_country and sel_airport: + dates = db.session.query(db.func.date(Logbook.reftime), db.func.count(Logbook.id)) \ + .filter(db.or_(Logbook.takeoff_airport_id == sel_airport, + Logbook.landing_airport_id == sel_airport)) \ + .group_by(db.func.date(Logbook.reftime)) \ + .order_by(db.func.date(Logbook.reftime)) + else: + dates = [''] + + # Get Logbook + filters = [] + if sel_date: + filters.append(db.func.date(Logbook.reftime) == sel_date) + + if sel_country and sel_airport: + filters.append(db.or_(Logbook.takeoff_airport_id == sel_airport, Logbook.landing_airport_id == sel_airport)) + + if sel_device_id: + filters.append(Logbook.device_id == sel_device_id) + + if len(filters) > 0: + logbook = db.session.query(Logbook.takeoff_timestamp, + db.func.round(Logbook.takeoff_track/10).label('takeoff_track'), + Logbook.landing_timestamp, + db.func.round(Logbook.landing_track/10).label('landing_track'), + Logbook.max_altitude, + DeviceInfo.aircraft, + DeviceInfo.registration, + DeviceInfo.competition) \ + .filter(*filters) \ + .filter(db.and_(Logbook.device_id == Device.id, Device.address == DeviceInfo.address)) \ + .order_by(Logbook.reftime) + else: + logbook = None + + return render_template('logbook.html', sel_country=sel_country, countries=countries_avail, sel_airport=sel_airport, airports=airports, sel_date=sel_date, dates=dates, logbook=logbook) + + +@app.route('/live') +def live(): + return render_template('ogn_live.jinja') + + +@app.route('/records') +def records(): + receiverstats = db.session.query(ReceiverStats) \ + .limit(10) + + return render_template('records.html', receiverstats=receiverstats) \ No newline at end of file diff --git a/ogn/static/css/flags/LICENSE b/ogn/static/css/flags/LICENSE new file mode 100644 index 0000000..9f7fd6c --- /dev/null +++ b/ogn/static/css/flags/LICENSE @@ -0,0 +1,11 @@ +License + +FamFamFam flag icons are "available for free use for any purpose with no requirement for attribution" + +Blogpotato.de flag icons are licensed under Creative Commons + + + +Author and license terms for Maxmind icon set are unknown. + +- See more at: https://www.flag-sprites.com/en_US/#sthash.cOJO8GvT.dpuf \ No newline at end of file diff --git a/ogn/static/css/flags/flags.css b/ogn/static/css/flags/flags.css new file mode 100644 index 0000000..104bb6d --- /dev/null +++ b/ogn/static/css/flags/flags.css @@ -0,0 +1,259 @@ +.flag { + width: 16px; + height: 11px; + background:url(flags.png) no-repeat +} + +.flag.flag-ad {background-position: -16px 0} +.flag.flag-ae {background-position: -32px 0} +.flag.flag-af {background-position: -48px 0} +.flag.flag-ag {background-position: -64px 0} +.flag.flag-ai {background-position: -80px 0} +.flag.flag-al {background-position: -96px 0} +.flag.flag-am {background-position: -112px 0} +.flag.flag-an {background-position: -128px 0} +.flag.flag-ao {background-position: -144px 0} +.flag.flag-ar {background-position: -160px 0} +.flag.flag-as {background-position: -176px 0} +.flag.flag-at {background-position: -192px 0} +.flag.flag-au {background-position: -208px 0} +.flag.flag-aw {background-position: -224px 0} +.flag.flag-az {background-position: -240px 0} +.flag.flag-ba {background-position: 0 -11px} +.flag.flag-bb {background-position: -16px -11px} +.flag.flag-bd {background-position: -32px -11px} +.flag.flag-be {background-position: -48px -11px} +.flag.flag-bf {background-position: -64px -11px} +.flag.flag-bg {background-position: -80px -11px} +.flag.flag-bh {background-position: -96px -11px} +.flag.flag-bi {background-position: -112px -11px} +.flag.flag-bj {background-position: -128px -11px} +.flag.flag-bm {background-position: -144px -11px} +.flag.flag-bn {background-position: -160px -11px} +.flag.flag-bo {background-position: -176px -11px} +.flag.flag-br {background-position: -192px -11px} +.flag.flag-bs {background-position: -208px -11px} +.flag.flag-bt {background-position: -224px -11px} +.flag.flag-bv {background-position: -240px -11px} +.flag.flag-bw {background-position: 0 -22px} +.flag.flag-by {background-position: -16px -22px} +.flag.flag-bz {background-position: -32px -22px} +.flag.flag-ca {background-position: -48px -22px} +.flag.flag-catalonia {background-position: -64px -22px} +.flag.flag-cd {background-position: -80px -22px} +.flag.flag-cf {background-position: -96px -22px} +.flag.flag-cg {background-position: -112px -22px} +.flag.flag-ch {background-position: -128px -22px} +.flag.flag-ci {background-position: -144px -22px} +.flag.flag-ck {background-position: -160px -22px} +.flag.flag-cl {background-position: -176px -22px} +.flag.flag-cm {background-position: -192px -22px} +.flag.flag-cn {background-position: -208px -22px} +.flag.flag-co {background-position: -224px -22px} +.flag.flag-cr {background-position: -240px -22px} +.flag.flag-cu {background-position: 0 -33px} +.flag.flag-cv {background-position: -16px -33px} +.flag.flag-cw {background-position: -32px -33px} +.flag.flag-cy {background-position: -48px -33px} +.flag.flag-cz {background-position: -64px -33px} +.flag.flag-de {background-position: -80px -33px} +.flag.flag-dj {background-position: -96px -33px} +.flag.flag-dk {background-position: -112px -33px} +.flag.flag-dm {background-position: -128px -33px} +.flag.flag-do {background-position: -144px -33px} +.flag.flag-dz {background-position: -160px -33px} +.flag.flag-ec {background-position: -176px -33px} +.flag.flag-ee {background-position: -192px -33px} +.flag.flag-eg {background-position: -208px -33px} +.flag.flag-eh {background-position: -224px -33px} +.flag.flag-england {background-position: -240px -33px} +.flag.flag-er {background-position: 0 -44px} +.flag.flag-es {background-position: -16px -44px} +.flag.flag-et {background-position: -32px -44px} +.flag.flag-eu {background-position: -48px -44px} +.flag.flag-fi {background-position: -64px -44px} +.flag.flag-fj {background-position: -80px -44px} +.flag.flag-fk {background-position: -96px -44px} +.flag.flag-fm {background-position: -112px -44px} +.flag.flag-fo {background-position: -128px -44px} +.flag.flag-fr {background-position: -144px -44px} +.flag.flag-ga {background-position: -160px -44px} +.flag.flag-gb {background-position: -176px -44px} +.flag.flag-gd {background-position: -192px -44px} +.flag.flag-ge {background-position: -208px -44px} +.flag.flag-gf {background-position: -224px -44px} +.flag.flag-gg {background-position: -240px -44px} +.flag.flag-gh {background-position: 0 -55px} +.flag.flag-gi {background-position: -16px -55px} +.flag.flag-gl {background-position: -32px -55px} +.flag.flag-gm {background-position: -48px -55px} +.flag.flag-gn {background-position: -64px -55px} +.flag.flag-gp {background-position: -80px -55px} +.flag.flag-gq {background-position: -96px -55px} +.flag.flag-gr {background-position: -112px -55px} +.flag.flag-gs {background-position: -128px -55px} +.flag.flag-gt {background-position: -144px -55px} +.flag.flag-gu {background-position: -160px -55px} +.flag.flag-gw {background-position: -176px -55px} +.flag.flag-gy {background-position: -192px -55px} +.flag.flag-hk {background-position: -208px -55px} +.flag.flag-hm {background-position: -224px -55px} +.flag.flag-hn {background-position: -240px -55px} +.flag.flag-hr {background-position: 0 -66px} +.flag.flag-ht {background-position: -16px -66px} +.flag.flag-hu {background-position: -32px -66px} +.flag.flag-ic {background-position: -48px -66px} +.flag.flag-id {background-position: -64px -66px} +.flag.flag-ie {background-position: -80px -66px} +.flag.flag-il {background-position: -96px -66px} +.flag.flag-im {background-position: -112px -66px} +.flag.flag-in {background-position: -128px -66px} +.flag.flag-io {background-position: -144px -66px} +.flag.flag-iq {background-position: -160px -66px} +.flag.flag-ir {background-position: -176px -66px} +.flag.flag-is {background-position: -192px -66px} +.flag.flag-it {background-position: -208px -66px} +.flag.flag-je {background-position: -224px -66px} +.flag.flag-jm {background-position: -240px -66px} +.flag.flag-jo {background-position: 0 -77px} +.flag.flag-jp {background-position: -16px -77px} +.flag.flag-ke {background-position: -32px -77px} +.flag.flag-kg {background-position: -48px -77px} +.flag.flag-kh {background-position: -64px -77px} +.flag.flag-ki {background-position: -80px -77px} +.flag.flag-km {background-position: -96px -77px} +.flag.flag-kn {background-position: -112px -77px} +.flag.flag-kp {background-position: -128px -77px} +.flag.flag-kr {background-position: -144px -77px} +.flag.flag-kurdistan {background-position: -160px -77px} +.flag.flag-kw {background-position: -176px -77px} +.flag.flag-ky {background-position: -192px -77px} +.flag.flag-kz {background-position: -208px -77px} +.flag.flag-la {background-position: -224px -77px} +.flag.flag-lb {background-position: -240px -77px} +.flag.flag-lc {background-position: 0 -88px} +.flag.flag-li {background-position: -16px -88px} +.flag.flag-lk {background-position: -32px -88px} +.flag.flag-lr {background-position: -48px -88px} +.flag.flag-ls {background-position: -64px -88px} +.flag.flag-lt {background-position: -80px -88px} +.flag.flag-lu {background-position: -96px -88px} +.flag.flag-lv {background-position: -112px -88px} +.flag.flag-ly {background-position: -128px -88px} +.flag.flag-ma {background-position: -144px -88px} +.flag.flag-mc {background-position: -160px -88px} +.flag.flag-md {background-position: -176px -88px} +.flag.flag-me {background-position: -192px -88px} +.flag.flag-mg {background-position: -208px -88px} +.flag.flag-mh {background-position: -224px -88px} +.flag.flag-mk {background-position: -240px -88px} +.flag.flag-ml {background-position: 0 -99px} +.flag.flag-mm {background-position: -16px -99px} +.flag.flag-mn {background-position: -32px -99px} +.flag.flag-mo {background-position: -48px -99px} +.flag.flag-mp {background-position: -64px -99px} +.flag.flag-mq {background-position: -80px -99px} +.flag.flag-mr {background-position: -96px -99px} +.flag.flag-ms {background-position: -112px -99px} +.flag.flag-mt {background-position: -128px -99px} +.flag.flag-mu {background-position: -144px -99px} +.flag.flag-mv {background-position: -160px -99px} +.flag.flag-mw {background-position: -176px -99px} +.flag.flag-mx {background-position: -192px -99px} +.flag.flag-my {background-position: -208px -99px} +.flag.flag-mz {background-position: -224px -99px} +.flag.flag-na {background-position: -240px -99px} +.flag.flag-nc {background-position: 0 -110px} +.flag.flag-ne {background-position: -16px -110px} +.flag.flag-nf {background-position: -32px -110px} +.flag.flag-ng {background-position: -48px -110px} +.flag.flag-ni {background-position: -64px -110px} +.flag.flag-nl {background-position: -80px -110px} +.flag.flag-no {background-position: -96px -110px} +.flag.flag-np {background-position: -112px -110px} +.flag.flag-nr {background-position: -128px -110px} +.flag.flag-nu {background-position: -144px -110px} +.flag.flag-nz {background-position: -160px -110px} +.flag.flag-om {background-position: -176px -110px} +.flag.flag-pa {background-position: -192px -110px} +.flag.flag-pe {background-position: -208px -110px} +.flag.flag-pf {background-position: -224px -110px} +.flag.flag-pg {background-position: -240px -110px} +.flag.flag-ph {background-position: 0 -121px} +.flag.flag-pk {background-position: -16px -121px} +.flag.flag-pl {background-position: -32px -121px} +.flag.flag-pm {background-position: -48px -121px} +.flag.flag-pn {background-position: -64px -121px} +.flag.flag-pr {background-position: -80px -121px} +.flag.flag-ps {background-position: -96px -121px} +.flag.flag-pt {background-position: -112px -121px} +.flag.flag-pw {background-position: -128px -121px} +.flag.flag-py {background-position: -144px -121px} +.flag.flag-qa {background-position: -160px -121px} +.flag.flag-re {background-position: -176px -121px} +.flag.flag-ro {background-position: -192px -121px} +.flag.flag-rs {background-position: -208px -121px} +.flag.flag-ru {background-position: -224px -121px} +.flag.flag-rw {background-position: -240px -121px} +.flag.flag-sa {background-position: 0 -132px} +.flag.flag-sb {background-position: -16px -132px} +.flag.flag-sc {background-position: -32px -132px} +.flag.flag-scotland {background-position: -48px -132px} +.flag.flag-sd {background-position: -64px -132px} +.flag.flag-se {background-position: -80px -132px} +.flag.flag-sg {background-position: -96px -132px} +.flag.flag-sh {background-position: -112px -132px} +.flag.flag-si {background-position: -128px -132px} +.flag.flag-sk {background-position: -144px -132px} +.flag.flag-sl {background-position: -160px -132px} +.flag.flag-sm {background-position: -176px -132px} +.flag.flag-sn {background-position: -192px -132px} +.flag.flag-so {background-position: -208px -132px} +.flag.flag-somaliland {background-position: -224px -132px} +.flag.flag-sr {background-position: -240px -132px} +.flag.flag-ss {background-position: 0 -143px} +.flag.flag-st {background-position: -16px -143px} +.flag.flag-sv {background-position: -32px -143px} +.flag.flag-sx {background-position: -48px -143px} +.flag.flag-sy {background-position: -64px -143px} +.flag.flag-sz {background-position: -80px -143px} +.flag.flag-tc {background-position: -96px -143px} +.flag.flag-td {background-position: -112px -143px} +.flag.flag-tf {background-position: -128px -143px} +.flag.flag-tg {background-position: -144px -143px} +.flag.flag-th {background-position: -160px -143px} +.flag.flag-tibet {background-position: -176px -143px} +.flag.flag-tj {background-position: -192px -143px} +.flag.flag-tk {background-position: -208px -143px} +.flag.flag-tl {background-position: -224px -143px} +.flag.flag-tm {background-position: -240px -143px} +.flag.flag-tn {background-position: 0 -154px} +.flag.flag-to {background-position: -16px -154px} +.flag.flag-tr {background-position: -32px -154px} +.flag.flag-tt {background-position: -48px -154px} +.flag.flag-tv {background-position: -64px -154px} +.flag.flag-tw {background-position: -80px -154px} +.flag.flag-tz {background-position: -96px -154px} +.flag.flag-ua {background-position: -112px -154px} +.flag.flag-ug {background-position: -128px -154px} +.flag.flag-um {background-position: -144px -154px} +.flag.flag-us {background-position: -160px -154px} +.flag.flag-uy {background-position: -176px -154px} +.flag.flag-uz {background-position: -192px -154px} +.flag.flag-va {background-position: -208px -154px} +.flag.flag-vc {background-position: -224px -154px} +.flag.flag-ve {background-position: -240px -154px} +.flag.flag-vg {background-position: 0 -165px} +.flag.flag-vi {background-position: -16px -165px} +.flag.flag-vn {background-position: -32px -165px} +.flag.flag-vu {background-position: -48px -165px} +.flag.flag-wales {background-position: -64px -165px} +.flag.flag-wf {background-position: -80px -165px} +.flag.flag-ws {background-position: -96px -165px} +.flag.flag-xk {background-position: -112px -165px} +.flag.flag-ye {background-position: -128px -165px} +.flag.flag-yt {background-position: -144px -165px} +.flag.flag-za {background-position: -160px -165px} +.flag.flag-zanzibar {background-position: -176px -165px} +.flag.flag-zm {background-position: -192px -165px} +.flag.flag-zw {background-position: -208px -165px} diff --git a/ogn/static/css/flags/flags.png b/ogn/static/css/flags/flags.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7e20688f49e5d101cc39f3e42e43e0a20e155f GIT binary patch literal 79881 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

%Fvd8dI`y9)2 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 literal 0 HcmV?d00001 diff --git a/ogn/static/img/Blank.gif b/ogn/static/img/Blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..2799b45c6591f1db05c8c00bd1fd0c5c01f57614 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE79h#MpaUX6G7L;iE{qJ;0LYaF_y7O^ literal 0 HcmV?d00001 diff --git a/ogn/static/img/Transparent.gif b/ogn/static/img/Transparent.gif new file mode 100644 index 0000000000000000000000000000000000000000..f191b280ce91e6cb8c387735c10ef9bc5da6c83b GIT binary patch literal 42 ocmZ?wbhEHbWMp7uXkY+=|Ns9h{$ybUF?B!$NQQxl(S^Yp0J!f4_W%F@ literal 0 HcmV?d00001 diff --git a/ogn/templates/airports.html b/ogn/templates/airports.html new file mode 100644 index 0000000..f23e6ee --- /dev/null +++ b/ogn/templates/airports.html @@ -0,0 +1,27 @@ +{% extends "base.html" %} + +{% block content %} + +

+
+

Airports

+
+ + + + + + + + {% for airport in pagination.items %} + + + + + {% endfor %} +
#NameCountry
{{ loop.index }} + {{ airport.name }}{{ airport.country_code }}
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/ogn/templates/base.html b/ogn/templates/base.html new file mode 100644 index 0000000..94d6f82 --- /dev/null +++ b/ogn/templates/base.html @@ -0,0 +1,24 @@ +{% extends 'bootstrap/base.html' %} + +{% block title %} + {% if title %}{{ title }}{% else %}No page title{% endif %} +{% endblock %} + +{% block navbar %} +{{nav.top_menubar.render()}} +{% endblock %} + +{% block content %} +
+ {% with messages = get_flashed_messages() %} + {% if messages %} + {% for message in messages %} + + {% endfor %} + {% endif %} + {% endwith %} + + {# application content needs to be provided in the app_content block #} + {% block app_content %}{% endblock %} +
+{% endblock %} \ No newline at end of file diff --git a/ogn/templates/device_detail.html b/ogn/templates/device_detail.html new file mode 100644 index 0000000..572fb86 --- /dev/null +++ b/ogn/templates/device_detail.html @@ -0,0 +1,34 @@ +{% extends "base.html" %} + +{% block content %} + +
+
+

Devices

+
+ +{{ device.address }} + + + + + + + + + {% for entry in device.logbook %} + + + + + + + + + {% endfor %} +
Nr.TakeoffLandingAGL
{{ loop.index }}{% if entry.takeoff_timestamp is not none %} {{ entry.takeoff_timestamp.strftime('%H:%M') }} {% endif %}{% if entry.takeoff_track is not none %} {{ '%02d' | format(entry.takeoff_track) }} {% endif %}{% if entry.landing_timestamp is not none %} {{ entry.landing_timestamp.strftime('%H:%M') }} {% endif %}{% if entry.landing_track is not none %} {{ '%02d' | format(entry.landing_track) }} {% endif %}{% if entry.max_altitude is not none %} {{ entry.max_altitude }} {% endif %}
+ +
+
+ +{% endblock %} \ No newline at end of file diff --git a/ogn/templates/devices.html b/ogn/templates/devices.html new file mode 100644 index 0000000..e86c2d8 --- /dev/null +++ b/ogn/templates/devices.html @@ -0,0 +1,31 @@ +{% extends "base.html" %} + +{% block content %} + +
+
+

Devices

+
+ + + + + + + + + + {% for device in devices %} + + + + + + {% endfor %} +
AddressAirportLast takeoff/landingLogbookSoftware version
{{ device.address }}{% if device.takeoff_landings %}{% set last_action = device.takeoff_landings|last %}{{ last_action.airport.name }}{% endif %} + {% if device.takeoff_landings %}{% set last_action = device.takeoff_landings|last %}{% if last_action.is_takeoff == True %}↗{% else %}↘{% endif %} @ {{ last_action.timestamp.strftime('%Y-%m-%d %H:%M:%S') }}{% endif %} + {% if device.infos %}{% set info = device.infos|first %}{{ info.registration }} {% else %} - {% endif %}{% if device.software_version is not none %}{% if device.software_version < 6.6 %}

{{ device.software_version }}

{% else %}{{ device.software_version }}{% endif %}{% else %} - {% endif %}
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/ogn/templates/logbook.html b/ogn/templates/logbook.html new file mode 100644 index 0000000..b011b2b --- /dev/null +++ b/ogn/templates/logbook.html @@ -0,0 +1,61 @@ +{% extends "base.html" %} + +{% block content %} + +
+
+

Logbook

+
+ +
+
+ + + +
+
+ + +{% if logbook is not none %} + + + + + + + + + + {% for entry in logbook %} + + + + + + + + + + + {% endfor %} +
Nr.AircraftTypeTakeoffLandingAGL
{{ loop.index }}{{ entry.registration }}{{ entry.aircraft }}{% if entry.takeoff_timestamp is not none %} {{ entry.takeoff_timestamp.strftime('%H:%M') }} {% endif %}{% if entry.takeoff_track is not none %} {{ '%02d' | format(entry.takeoff_track) }} {% endif %}{% if entry.landing_timestamp is not none %} {{ entry.landing_timestamp.strftime('%H:%M') }} {% endif %}{% if entry.landing_track is not none %} {{ '%02d' | format(entry.landing_track) }} {% endif %}{% if entry.max_altitude is not none %} {{ entry.max_altitude }} {% endif %}
+{% endif %} +
+
+ +{% endblock %} \ No newline at end of file diff --git a/ogn/templates/ogn_live.html b/ogn/templates/ogn_live.html new file mode 100644 index 0000000..cc08c84 --- /dev/null +++ b/ogn/templates/ogn_live.html @@ -0,0 +1,81 @@ + + + + + + + Spot the gliders! + + + + + + + + + + + + +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/ogn/templates/receivers.html b/ogn/templates/receivers.html new file mode 100644 index 0000000..8789902 --- /dev/null +++ b/ogn/templates/receivers.html @@ -0,0 +1,29 @@ +{% extends "base.html" %} + +{% block content %} + + + +
+
+

Receivers

+
+ + + + + + + + {% for receiver in receivers %} + + + + + + {% endfor %} +
NameCountryAltitude
{{ receiver.name }}{{ receiver.country.iso2 }}{{ receiver.altitude }}
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/ogn/templates/records.html b/ogn/templates/records.html new file mode 100644 index 0000000..1e5b5dc --- /dev/null +++ b/ogn/templates/records.html @@ -0,0 +1,31 @@ +{% extends "base.html" %} + +{% block content %} + + + +
+
+

Devices

+
+ + + + + + + + + {% for receiverstat in receiverstats %} + + + + + + + {% endfor %} +
ReceiverCountryAircraftsBeacons
{{ receiverstat.receiver.name }}{{ receiverstat.receiver.country.iso2 }}{{ receiverstat.aircraft_count }}{{ receiverstat.beacon_count }}
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/setup.py b/setup.py index 3bdb612..29a9473 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,10 @@ setup( keywords='gliding ogn', packages=find_packages(exclude=['tests', 'tests.*']), install_requires=[ + 'Flask==1.0.2', + 'flask-bootstrap==3.3.7.1', 'flask-sqlalchemy==2.3.2', + 'flask-nav==0.6', 'geopy==1.17.0', 'manage.py==0.2.10', 'celery[redis]==4.2.1',