Example #1
0
def event_new():
    form = NewEventForm()
    if form.validate_on_submit():
        if Topic.query.filter_by(name=form.name.data).count() > 0:
            flash("There already is an event with that name.", "alert-error")
            return render_layout("admin_event_new.html", form=form)
        event = Event(form.name.data)
        db.session.add(event)
        db.session.commit()
        return redirect(url_for(".event"))
    return render_layout("admin_event_new.html", form=form)
Example #2
0
def topic_new():
    event_id = request.args.get("event_id", None)
    form = NewTopicForm()
    if form.validate_on_submit():
        if Topic.query.filter_by(event_id=event_id,
                                 name=form.name.data).count() > 0:
            flash("There already is an topic with that name.", "alert-error")
            return render_layout("admin_topic_new.html", form=form)
        topic = Topic(form.name.data, form.mode.data, form.event_id.data)
        db.session.add(topic)
        db.session.commit()
        return redirect(url_for(".event_show", id=topic.event.id))
    if event_id is None:
        return redirect(url_for(".index"))
    event = Event.query.filter_by(id=event_id).first()
    form.event_id.data = event_id
    return render_layout("admin_topic_new.html", form=form, event=event)
Example #3
0
def update():
    event_id = request.args.get("event", None)
    events = []
    if event_id is not None and event_id.isnumeric() and int(event_id) > -1:
        event = Event.query.filter_by(id=event_id).first()
        if event is not None:
            events.append(event)
    else:
        events = Event.query.all()
    return render_layout("speech_content_index.html", events=events)
Example #4
0
def update_index_js():
    update_interval = config.UPDATE_INDEX_INTERVAL or 1
    div = "rede-content-div"
    mode = request.args.get("mode", None)
    event_id = request.args.get("event", -1)
    target_url = url_for(".update", event=event_id)
    return render_layout("update.js",
                         update_interval=update_interval,
                         div=div,
                         target_url=target_url,
                         prefix="update_index_")
Example #5
0
def user_new():
    form = NewUserForm()
    if form.validate_on_submit():
        password_hash = pbkdf2_sha256.encrypt(form.password.data,
                                              rounds=200000,
                                              salt_size=16)
        user = User(form.fullname.data, form.username.data, password_hash)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for(".user"))
    return render_layout("admin_user_new.html", form=form)
Example #6
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = db.session.query(User).filter_by(username=form.username.data).first()
        if (user is not None) and (pbkdf2_sha256.verify(form.password.data, user.password)):
            login_user(user, remember=form.remember_me.data)
            identity_changed.send(current_app._get_current_object(), identity=Identity(user.id))
            flash("Welcome back, {}!".format(user.fullname), "alert-success")
            return redirect(request.args.get("next") or url_for(".index"))
        else:
            flash("Invalid username or wrong password", "alert-error")
    return render_layout("login.html", form=form)
Example #7
0
def user_edit():
    user_id = request.args.get("id", None)
    if user_id is not None:
        user = db.session.query(User).filter_by(id=user_id).first()
        form = AdminUserForm(obj=user)
        if form.validate_on_submit():
            form.populate_obj(user)
            db.session.commit()
            return redirect(url_for(".index"))
        else:
            return render_layout("admin_user_edit.html", form=form, id=user_id)
    else:
        return redirect(url_for(".index"))
Example #8
0
def topic_edit():
    topic_id = request.args.get("id", None)
    if topic_id is not None:
        topic = db.session.query(Topic).filter_by(id=topic_id).first()
        form = NewTopicForm(obj=topic)
        if form.validate_on_submit():
            form.populate_obj(topic)
            db.session.commit()
            return redirect(url_for(".topic_show", id=topic.id))
        else:
            return render_layout("admin_topic_edit.html",
                                 form=form,
                                 id=topic_id)
    else:
        return redirect(url_for(".index"))
Example #9
0
def event_edit():
    event_id = request.args.get("id", None)
    if event_id is not None:
        event = db.session.query(Event).filter_by(id=event_id).first()
        form = NewEventForm(obj=event)
        if form.validate_on_submit():
            form.populate_obj(event)
            db.session.commit()
            return redirect(url_for(".index"))
        else:
            return render_layout("admin_event_edit.html",
                                 form=form,
                                 id=event_id)
    else:
        return redirect(url_for(".index"))
Example #10
0
def statement_new():
    form = AddStatementForm()
    if form.validate_on_submit():
        statement = request.form.get("submit", "add_statement")
        topic = Topic.query.filter_by(id=form.topic.data).first()
        speaker = speaker_by_name_or_number(form.speaker_name.data,
                                            topic.event.id)
        if topic is not None and speaker is not None:
            if speaker.count_active(topic) == 0 or (
                    statement == "add_meta_statement"
                    and speaker.count_active_meta(topic) == 0):
                statement = Statement(
                    speaker.id,
                    topic.id,
                    is_meta=(statement == "add_meta_statement"),
                    is_current=(not topic.sorted_statements()))
                db.session.add(statement)
                db.session.commit()
            return redirect(url_for(".topic_show", id=topic.id))
    return render_layout("admin_statement_new.html", form=form)
Example #11
0
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()
        topics = topic.event.sorted_topics()
        can_undo = len(
            Statement.query.filter_by(
                executed=True, topic_id=topic_id).order_by(
                    db.desc(Statement.execution_time)).all()) > 0
        return render_layout("admin_topic_show.html",
                             topic=topic,
                             form=form,
                             statements=statements,
                             topics=topics,
                             can_undo_statement=can_undo)
    return redirect(url_for(".index"))
Example #12
0
def speaker_edit():
    #speaker = Speaker.query.filter_by(number=number,event).first()
    #if speaker is not None:
    #id=statement.speaker.identifier(), topic_id=topic.id)
    speaker_id = request.args.get("id", None)
    topic_id = request.args.get("topic_id", None)
    speaker = Speaker.query.filter_by(id=speaker_id).first()
    form = EditSpeakerForm(obj=speaker)
    form.topic_id.data = topic_id

    if speaker is not None:
        if form.validate_on_submit():
            speaker.name = form.name.data
            speaker.number = form.number.data
            db.session.commit()
            return redirect(url_for(".topic_show", id=form.topic_id.data))
        else:
            return render_layout("admin_speaker_edit.html",
                                 form=form,
                                 speaker=speaker,
                                 topic_id=topic_id)
    else:
        return redirect(url_for(".index"))
Example #13
0
def update_time_js():
    update_interval = config.UPDATE_TIME_INTERVAL or 10
    div = "rede-time-div"
    target_url = url_for("update_time")
    return render_layout("update.js", update_interval=update_interval, div=div, target_url=target_url, prefix="time_")
Example #14
0
def update_time():
    return render_layout("content_time.html")
Example #15
0
def update_js():
    update_interval = config.UPDATE_INDEX_INTERVAL or 1
    div = "rede-content-div"
    target_url = url_for(".update")
    return render_layout("update.js", update_interval=update_interval, div=div, target_url=target_url, prefix="index_")
Example #16
0
def update():
    events = Event.query.all()
    return render_layout("content_index.html", events=events)
Example #17
0
def index():
    events = Event.query.all()
    return render_layout("index.html", events=events)
Example #18
0
def event_show():
    event_id = request.args.get("id", None)
    if event_id is not None:
        event = Event.query.filter_by(id=event_id).first()
        return render_layout("admin_event_show.html", event=event)
    return redirect(url_for(".index"))
Example #19
0
def statement():
    statements = Statement.query.all()
    return render_layout("admin_statement_index.html", statement=statement)
Example #20
0
def user():
    users = User.query.all()
    return render_layout("admin_user_index.html", users=users)
Example #21
0
def topic():
    topics = Topic.query.all()
    return render_layout("admin_topic_index.html", topics=topics)
Example #22
0
def event():
    events = Event.query.all()
    return render_layout("admin_event_index.html", events=events)
Example #23
0
def index():
    users = User.query.limit(10).all()
    events = Event.query.limit(10).all()
    return render_layout("admin_index.html", users=users, events=events)