Commit 1e40a5c2 authored by Robin Sonnabend's avatar Robin Sonnabend

Implemented pausing

parent ce185f91
"""empty message
Revision ID: 256d9df3492
Revises: bdf979c44e
Create Date: 2015-11-08 11:30:13.923165
"""
# revision identifiers, used by Alembic.
revision = '256d9df3492'
down_revision = 'bdf979c44e'
from alembic import op
import sqlalchemy as sa
def upgrade():
### commands auto generated by Alembic - please adjust! ###
op.add_column('events', sa.Column('current_topic_id', sa.Integer(), nullable=True))
op.create_foreign_key(None, 'events', 'topics', ['current_topic_id'], ['id'])
### end Alembic commands ###
def downgrade():
### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, 'events', type_='foreignkey')
op.drop_column('events', 'current_topic_id')
### end Alembic commands ###
......@@ -41,11 +41,15 @@ class Event(db.Model):
name = db.Column(db.String, unique=True)
paused = db.Column(db.Boolean)
paused_until = db.Column(db.DateTime)
current_topic_id = db.Column(db.Integer, db.ForeignKey("topics.id"))
def __init__(self, name, paused=False):
current_topic = relationship("Topic", foreign_keys=[current_topic_id])
def __init__(self, name, paused=False, current_topic_id=None):
self.name = name
self.paused = paused
self.paused_until = datetime(1970, 1, 1)
self.current_topic_id = current_topic_id or 0
def __repr__(self):
return "<Event(id={}, name={}, paused={}, paused_until={})>".format(
......@@ -66,7 +70,7 @@ class Topic(db.Model):
event_id = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False)
index = db.Column(db.Integer)
event = relationship("Event", backref=backref("topics",order_by=id))
event = relationship("Event", backref=backref("topics",order_by=id), foreign_keys=[event_id])
def __init__(self, name, mode, event_id):
self.name = name
......
......@@ -143,6 +143,8 @@ def topic_show():
topic_id = request.args.get("id", None)
if topic_id is not None:
topic = Topic.query.filter_by(id=topic_id).first()
topic.event.current_topic_id = topic.id
db.session.commit()
form = AddStatementForm()
form.topic.data = topic.id
statements = topic.sorted_statements()
......@@ -348,7 +350,7 @@ def pause():
rawtime = float(request.form["timeslider"])
delta = timedelta(seconds=rawtime)
print(delta)
event.paused_until += delta
event.paused_until = datetime.now() + delta
db.session.commit()
topic_id = request.args.get("original", None)
return redirect(url_for(".topic_show", id=topic_id))
......@@ -41,7 +41,7 @@ def query_statements(mode, topic_id):
print("unknown querying mode {}".format(mode))
"""
@speech.route("/index")
@speech.route("/")
def index():
topic_id = request.args.get("topic", None)
mode = request.args.get("mode", None)
......
......@@ -131,3 +131,20 @@ th.rede-medium-text {
.rede-list-point-normal {
font-weight: normal;
}
.rede-paused-title {
margin: 0 auto;
}
h4.rede-paused-title-text {
font-size: 48px;
text-align: center;
}
div.rede-paused-supporting {
font-size: 24px;
}
.mdl-card {
min-height: 0px;
}
......@@ -118,4 +118,13 @@
{% endfor %}
</table>
</div>
{% if topic.event.paused %}
<div class="mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mdl-card mdl-shadow--2dp">
<div class="mdl-card__title rede-paused-title">
<h4 class="mdl-card__title-text rede-paused-title-text">
Paused until {{ topic.event.paused_until.strftime("%H:%M") }}
</h4>
</div>
</div>
{% endif %}
{% endblock %}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment