aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/admin/routes.py1
-rw-r--r--app/auth/routes.py2
-rw-r--r--app/main/routes.py2
-rw-r--r--app/models.py1
-rw-r--r--migrations/versions/ab06eac38963_mark_task_assigned_by_admin.py28
5 files changed, 33 insertions, 1 deletions
diff --git a/app/admin/routes.py b/app/admin/routes.py
index 518b3fc..98eb2fc 100644
--- a/app/admin/routes.py
+++ b/app/admin/routes.py
@@ -78,6 +78,7 @@ def manage_tasks():
return redirect(url_for("admin.manage_tasks"))
else:
task = Task(annotator_id=user.id, dataset_id=dataset.id)
+ task.admin_assigned = True
db.session.add(task)
db.session.commit()
flash("Task registered successfully.", "success")
diff --git a/app/auth/routes.py b/app/auth/routes.py
index 0556233..21b1a67 100644
--- a/app/auth/routes.py
+++ b/app/auth/routes.py
@@ -97,6 +97,8 @@ def login():
annotator_id=current_user.id, done=False
).all()
for task in user_tasks:
+ if task.admin_assigned:
+ continue
anns = Annotation.query.filter_by(task_id=task.id).all()
if len(anns) > 0:
flash(
diff --git a/app/main/routes.py b/app/main/routes.py
index 75959a0..8d2aa6e 100644
--- a/app/main/routes.py
+++ b/app/main/routes.py
@@ -56,7 +56,7 @@ def assign():
user_tasks = [t for t in user_tasks if not t.done]
# if the user has, for some reason, a unfinished assigned task, redirect to
- # that
+ # that. This can happen if the admin has assigned this task.
if len(user_tasks) > 0:
task = user_tasks[0]
return redirect(url_for("main.annotate", task_id=task.id))
diff --git a/app/models.py b/app/models.py
index 757a0ef..fc6cebd 100644
--- a/app/models.py
+++ b/app/models.py
@@ -102,6 +102,7 @@ class Task(db.Model):
dataset_id = db.Column(db.Integer, nullable=False)
done = db.Column(db.Boolean, nullable=False, default=False)
annotated_on = db.Column(db.DateTime, nullable=True)
+ admin_assigned = db.Column(db.Boolean, nullable=False, default=False)
user = db.relation("User")
annotator_id = db.Column(db.Integer, db.ForeignKey("user.id"))
diff --git a/migrations/versions/ab06eac38963_mark_task_assigned_by_admin.py b/migrations/versions/ab06eac38963_mark_task_assigned_by_admin.py
new file mode 100644
index 0000000..a68d5da
--- /dev/null
+++ b/migrations/versions/ab06eac38963_mark_task_assigned_by_admin.py
@@ -0,0 +1,28 @@
+"""mark task assigned by admin
+
+Revision ID: ab06eac38963
+Revises: 70fb9f3860b1
+Create Date: 2019-09-16 12:23:43.694821
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = 'ab06eac38963'
+down_revision = '70fb9f3860b1'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.add_column('task', sa.Column('admin_assigned', sa.Boolean(), nullable=False))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_column('task', 'admin_assigned')
+ # ### end Alembic commands ###