Skip to content

Commit

Permalink
RDISCROWD-5531 Disable sort. Update themes. (#799)
Browse files Browse the repository at this point in the history
* Disable sort.
Update themes.

* Remove unused code.

* Removed obsolete test.
  • Loading branch information
kbecker42 committed Dec 14, 2022
1 parent 1422fe8 commit a66d296
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 83 deletions.
41 changes: 0 additions & 41 deletions pybossa/cache/projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,45 +139,6 @@ def search_lock_status_sorting_result():

return tasks

def search_completed_by_sorting_result():
tasks = []

sql_order_by = order_by
sql_query = sql + sql_order.format(sql_order_by) + sql_limit_offset

# Modify SQL to sort by the task_run user name, by querying for the task_run.user_id and
# finally joining with user.id and retrieving user.name for sorting. Example:
"""
SELECT task.id,
coalesce(ct, 0) as n_task_runs, task.n_answers, ft, completed_by_id, usr.name,
priority_0, task.created, task.calibration,
task.user_pref, task.worker_filter, task.worker_pref
FROM "user" as usr, task
LEFT OUTER JOIN
(SELECT task_id, COUNT(task_run.id) AS ct,
MAX(finish_time) as ft, user_id as completed_by_id FROM "user" as usr, task_run
WHERE project_id=:project_id GROUP BY task_id, completed_by_id) AS log_counts
ON task.id=log_counts.task_id
WHERE task.project_id=:project_id AND usr.id = completed_by_id ORDER BY usr.name asc LIMIT :limit OFFSET :offset
"""
sql_query = sql_query.replace(', ft,', ', ft, completed_by_id, usr.name,')
sql_query = sql_query.replace('MAX(finish_time) as ft FROM task_run',
'MAX(finish_time) as ft, user_id as completed_by_id FROM task_run')
sql_query = sql_query.replace('GROUP BY task_id', 'GROUP BY task_id, completed_by_id')
sql_query = sql_query.replace('ORDER BY completed_by',
'AND usr.id = completed_by_id ORDER BY usr.name')
sql_query = sql_query.replace('FROM task', 'FROM "user" as usr, task')
sql_query = sql_query.replace("COUNT(id)", "COUNT(task_run.id)")

params["offset"] = max(params["offset"], 0)
params["limit"] -= len(tasks)

results = session.execute(text(sql_query), params)

tasks.extend([format_task(row) for row in results])

return tasks

order_by = args.get('order_by') or ""
tasks = []
total_count = task_count(project_id, args)
Expand Down Expand Up @@ -286,8 +247,6 @@ def search_completed_by_sorting_result():

if "lock_status" in order_by and locked_tasks_in_project:
tasks = search_lock_status_sorting_result()
elif "completed_by" in order_by:
tasks = search_completed_by_sorting_result()
else:
# if not sort by lock_status or locked_tasks_in_project is empty/None,
# sort by the column "order_by"
Expand Down
2 changes: 1 addition & 1 deletion pybossa/themes/default
41 changes: 0 additions & 41 deletions test/test_web.py
Original file line number Diff line number Diff line change
Expand Up @@ -9656,47 +9656,6 @@ def test_browse_task_display_info_columns(self):
assert "Completed By</th>" in str(res.data), "Missing column 'Completed By' in task browse table."
assert "T Tester," in str(res.data), "Missing Completed By values in task browse table."

@with_context
def test_browse_task_display_info_columns_sort_completed_by(self):
"""Test browse task with display info columns sorted by completed_by column."""
# Initialize a project.
self.create()
self.delete_task_runs()

# Set the user password and admin.
user = db.session.query(User).get(2)
user.set_password('1234')
user.admin = True
user_repo.save(user)

# Create a project and task.
project = db.session.query(Project).first()
project.allow_anonymous_contributors = True
db.session.add(project)
db.session.commit()

# Retrieve the first task.
task = db.session.query(Task).filter(Project.id == project.id).first()

# Add task results.
for i in range(10):
task_run = TaskRun(project_id=project.id, task_id=task.id,
user_id=user.id,
info={'answer': i})
db.session.add(task_run)
db.session.commit()
res = self.app.get('api/project/%s/newtask' % project.id)

# Sign-in as an admin user.
csrf = self.get_csrf('/account/signin')
res = self.signin(email=user.email_addr, password='1234', csrf=csrf)

# Load the task browse page with specific displayable columns.
res = self.app.get('project/%s/tasks/browse?display_columns=["task_id","priority","pcomplete","lock_status","completed_by"]&order_by=completed_by+desc' % (project.short_name), follow_redirects=True)

# Confirm the correct columns are displayed.
assert "class=\" sort-desc sortable\" data-sort=\"completed_by\"" in str(res.data), "Missing sorted column indicator (sort-desc) on Completed By."

@with_context
def test_browse_task_display_info_columns_sort_priority(self):
"""Test browse task with display info columns sorted by priority column."""
Expand Down

0 comments on commit a66d296

Please sign in to comment.