aboutsummaryrefslogtreecommitdiff
path: root/app/main/demo.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/main/demo.py')
-rw-r--r--app/main/demo.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/app/main/demo.py b/app/main/demo.py
index a126fd8..a5dbc0f 100644
--- a/app/main/demo.py
+++ b/app/main/demo.py
@@ -23,6 +23,7 @@ from app.main import bp
from app.main.forms import NextForm
from app.main.routes import RUBRIC
from app.utils.datasets import load_data_for_chart, get_demo_true_cps
+from app.utils.tasks import generate_user_task
LOGGER = logging.getLogger(__name__)
@@ -253,13 +254,21 @@ def redirect_user(demo_id, phase_id):
last_demo_id = max(DEMO_DATA.keys())
demo_last_phase_id = 3
if demo_id == last_demo_id and phase_id == demo_last_phase_id:
- # User is introduced.
+ # User is already introduced (happens if they redo the demo)
if current_user.is_introduced:
return redirect(url_for("main.index"))
+ # mark user as introduced
current_user.is_introduced = True
db.session.commit()
- # TODO: Assign real tasks to the user here.
+
+ # assign a task to the user
+ task = generate_user_task(current_user)
+ if task is None:
+ return redirect(url_for("main.index"))
+ db.session.add(task)
+ db.session.commit()
+
return redirect(url_for("main.index"))
elif phase_id == demo_last_phase_id:
demo_id += 1
@@ -352,7 +361,7 @@ def demo_annotate(demo_id):
if dataset is None:
LOGGER.error(
"Demo requested unavailable dataset: %s"
- % demo_data["dataset"]["name"]
+ % DEMO_DATA[demo_id]["dataset"]["name"]
)
flash(
"An internal error occured. The administrator has been notified. We apologise for the inconvenience, please try again later.",