Skip to content

Commit

Permalink
Merge pull request #4 from myoung34/hamburger
Browse files Browse the repository at this point in the history
Add hamburger slider and settings support via FS sessions
  • Loading branch information
myoung34 committed Aug 18, 2020
2 parents c9b2ed8 + 927eb90 commit 9fb078f
Show file tree
Hide file tree
Showing 16 changed files with 630 additions and 111 deletions.
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.tox
flask_session
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ __pycache__
data
.tox
.venv
flask_session
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ run:

.PHONY: seed
seed:
rm data/*.sqlite
rm data || :
mkdir data || :
sqlite3 data/tilt.sqlite ".read seed/create.sql"
bash seed/seed.sh
6 changes: 0 additions & 6 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,3 @@ services:
- ./data:/data
ports:
- 5000:5000
environment:
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
- AWS_REGION=$AWS_REGION
- AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION
113 changes: 71 additions & 42 deletions poetry.lock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Flask-Cors = "^3.0.8"
gunicorn = "^20.0.4"
configobj = "^5.0.6"
eventlet = "^0.26.1"
flask-session = "^0.3.2"

[tool.poetry.dev-dependencies]
flake8 = "^3.7"
Expand Down
2 changes: 2 additions & 0 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ astroid==2.4.2
atomicwrites==1.4.0; sys_platform == "win32"
attrs==19.3.0
bandit==1.6.2
cachelib==0.1.1
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
Expand All @@ -20,6 +21,7 @@ flake8==3.8.3
flask==1.1.2
flask-bootstrap==3.3.7.1
flask-cors==3.0.8
flask-session==0.3.2
flask-socketio==4.3.1
flask-sqlalchemy==2.4.4
gitdb==4.0.5
Expand Down
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
cachelib==0.1.1
click==7.1.2
configobj==5.0.6
dnspython==1.16.0
Expand All @@ -6,6 +7,7 @@ eventlet==0.26.1
flask==1.1.2
flask-bootstrap==3.3.7.1
flask-cors==3.0.8
flask-session==0.3.2
flask-socketio==4.3.1
flask-sqlalchemy==2.4.4
greenlet==0.4.16
Expand Down
30 changes: 30 additions & 0 deletions tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,36 @@ def test_index(client):
assert client.get(url_for('index')).status_code == 200


def test_index(client):
"""Test that the settings works."""

assert client.get(url_for('settings')).status_code == 200


def test_save_settings(
app,
):
test_client = app.test_client()
socketio_test_client = socketio.test_client(
app,
flask_test_client=test_client
)

assert socketio_test_client.is_connected()
assert test_client.get(url_for('index')).status_code == 200
socketio_test_client.emit(
'save settings',
{
'settings': {
'gravity_meas': 'Brix',
'gravity_offset': '',
'temp_meas': 'Fahrenheit',
}
}
)
assert socketio_test_client.get_received() == []


def test_refresh(
app,
):
Expand Down
39 changes: 35 additions & 4 deletions tilty_dashboard/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,24 @@
import os
from datetime import datetime, timedelta

from flask import Flask, render_template
from flask import Flask, render_template, session
from flask_bootstrap import Bootstrap
from flask_cors import CORS
from flask_socketio import SocketIO, emit
from sqlalchemy import and_
from werkzeug.contrib.fixers import ProxyFix

from flask_session import Session
from tilty_dashboard.model import Tilt, db

logging.basicConfig(level=logging.DEBUG)
log = logging.getLogger(__name__)


app = Flask(__name__)
socketio = SocketIO(app)
app.config['SESSION_TYPE'] = 'filesystem'
Session(app)
socketio = SocketIO(app, manage_session=False)


def init_webapp(config):
Expand All @@ -36,19 +39,47 @@ def init_webapp(config):
return app


@socketio.on('save settings')
def save_settings(message):
""" Save the settings into the cookie """
session["settings"] = message['settings']


@app.route('/settings', methods=['GET', 'POST'])
def settings():
""" Settings Page. """
return render_template(
'settings.html',
gravity_meas=session.get('settings', {}).get('gravity_meas'),
gravity_offset=session.get('settings', {}).get(
'gravity_offset',
-0.001
),
temp_meas=session.get('settings', {}).get('temp_meas'),
)


@app.route('/')
def index():
"""A landing page.
Nothing too interesting here.
"""
return render_template('index.html')
return render_template(
'index.html',
gravity_meas=session.get('settings', {}).get('gravity_meas'),
gravity_offset=session.get('settings', {}).get(
'gravity_offset',
-0.001
),
temp_meas=session.get('settings', {}).get('temp_meas'),
)


@socketio.on('refresh')
def refresh():
""" todo """
""" Query The DB and refresh the socket """

since = datetime.now() - timedelta(days=1)
last_pulse = db.session.query( # pylint:disable=E1101
Expand Down

0 comments on commit 9fb078f

Please sign in to comment.