only show attend button if user is not already attending

This commit is contained in:
pstruebi
2022-06-15 12:41:43 +02:00
parent 7278054e95
commit cec54b66e5
4 changed files with 25 additions and 11 deletions

13
app.py
View File

@@ -2,7 +2,7 @@ import os
import logging
import json
from flask import Flask, render_template, g, request, url_for, flash, redirect
from flask import Flask, current_app, render_template, g, request, url_for, flash, redirect
from werkzeug.exceptions import abort
import calendar_interface
@@ -21,8 +21,9 @@ app.teardown_appcontext(db.close_db)
app.cli.add_command(db.init_db_command)
app.register_blueprint(auth.bp)
# first time start up masl token acquire for test purposes (raises if not successful)
calendar_interface.get_access_token()
# first time start up msal token acquire for test purposes (raises if not successful)
if not (app.config["DEBUG"] or app.config["TESTING"]):
calendar_interface.get_access_token()
@app.route('/')
@auth.login_required
@@ -30,7 +31,11 @@ def index():
events = calendar_interface.get_future_calendar_events().get("value")
calendar_interface.convert_datetimes(events)
# Check current users attendance in event
for event in events:
ret = calendar_interface.check_attendee_presence(event, g.user["email"])
event["user_attends"] = ret
logging.info("User %s attending: %s", g.user["email"], ret)
if events is None:
abort(404)
else:

View File

@@ -53,7 +53,7 @@ def register():
confirmation_add = current_app.config.get("CONFIRMATATION_EMAIL_ADD", email)
calendar_interface.send_mail(confirmation_add, subject, content)
flash("Registrierung erfolgreich.")
flash("Registrierung erfolgreich. Auf Freischaltung warten.")
return redirect(url_for("index"))
flash(error)

View File

@@ -165,6 +165,12 @@ def delte_attendee(data, email):
del data["attendees"][i]
break
def check_attendee_presence(data, email):
for d in data["attendees"]:
if d["emailAddress"]["address"] == email:
return True
return False
if __name__ == "__main__":

View File

@@ -13,12 +13,15 @@
{% endif %}
<h2>{{ event['subject'] }}</h2>
<a href="{{ url_for('attend', id=event['id']) }}">
<span class="badge badge-warning">Teilnehmen</span>
</a>
<a href="{{ url_for('unattend', id=event['id']) }}">
<span class="badge badge-warning">Abmelden</span>
</a>
{% if not event["user_attends"] %}
<a href="{{ url_for('attend', id=event['id']) }}">
<span class="badge badge-warning">Teilnehmen</span>
</a>
{% else %}
{# <a href="{{ url_for('unattend', id=event['id']) }}"> #}
<span class="badge badge-success">Nehme Teil</span>
{# </a> #}
{% endif %}
<span class="badge badge-primary">{{ event["start"]["time"] }}</span>
<span class="badge badge-primary">{{ event["duration"] }}</span>