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)
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)
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)
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_")
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)
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)
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"))
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"))
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"))
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)
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"))
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"))
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_")
def update_time(): return render_layout("content_time.html")
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_")
def update(): events = Event.query.all() return render_layout("content_index.html", events=events)
def index(): events = Event.query.all() return render_layout("index.html", events=events)
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"))
def statement(): statements = Statement.query.all() return render_layout("admin_statement_index.html", statement=statement)
def user(): users = User.query.all() return render_layout("admin_user_index.html", users=users)
def topic(): topics = Topic.query.all() return render_layout("admin_topic_index.html", topics=topics)
def event(): events = Event.query.all() return render_layout("admin_event_index.html", events=events)
def index(): users = User.query.limit(10).all() events = Event.query.limit(10).all() return render_layout("admin_index.html", users=users, events=events)