Skip to content

Commit

Permalink
RDISCROWD-4878 ask browse bulk edit state not updating (#777)
Browse files Browse the repository at this point in the history
* RDISCROWD-4878 ask browse bulk edit state not updating

* update SHA
  • Loading branch information
XiChenn committed Sep 21, 2022
1 parent b4c5647 commit 9f40c6e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pybossa/themes/default
3 changes: 3 additions & 0 deletions pybossa/view/projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -1873,6 +1873,9 @@ def bulk_update_assign_worker(short_name):
if task_id is not None:
t = task_repo.get_task_by(project_id=project.id,
id=int(task_id))
# Skip gold task for bulk assign users; allow single assign users for gold task
if bool(t.gold_answers) and len(task_ids) > 1:
continue
# add new users
user_pref = t.user_pref or {}
assign_user = user_pref.get("assign_user", [])
Expand Down
14 changes: 13 additions & 1 deletion test/test_view/test_assign_task_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ def test_bulk_priority_update(self):
res_data = json.loads(res.data)
assert task1.priority_0 == .5, task1.priority_0


@with_context
def test_get_assign_workers_by_bulk(self):
"""Test get assign worker by bulk."""
Expand All @@ -122,6 +121,8 @@ def test_get_assign_workers_by_bulk(self):
task_repo.update(task1)
task2 = TaskFactory.create(project=project)
task_repo.update(task2)
task3 = TaskFactory.create(project=project, gold_answers={'answer': 1})
task_repo.update(task3)

# Assign user to all tasks by filter.
req_data = dict(filters='{"add":[{"fullname":"' + user1.fullname + '","email":"' + user1.email_addr + '"}],"remove":[]}')
Expand All @@ -139,6 +140,17 @@ def test_get_assign_workers_by_bulk(self):
assert user1.email_addr in emails
assert user2.email_addr in emails

# Test bulk assign users: skip gold task
req_data = {
"add": [{"fullname": user1.fullname, "email": user1.email_addr}],
"remove": [],
"filters": json.dumps({"changed": False})}
res = self.app.post(url, content_type='application/json',
data=json.dumps(req_data), follow_redirects=True,
headers={'X-CSRFToken': csrf})
res_data = json.loads(res.data)
assert len(res_data["assign_users"]) == 2

@with_context
def test_update_assign_workers_by_task_id(self):
"""Test update assign worker by task id."""
Expand Down

0 comments on commit 9f40c6e

Please sign in to comment.