From 62c3f1d4e5620c46b4626fc7955c41fcd6c75441 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 30 Oct 2017 13:27:55 +0100 Subject: [PATCH] user can sort by birth date or id --- smash/web/api_views/subject.py | 6 ++++++ smash/web/static/js/subject.js | 3 ++- smash/web/tests/api_views/test_subject.py | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py index 02bd657c..6d1bb1f5 100644 --- a/smash/web/api_views/subject.py +++ b/smash/web/api_views/subject.py @@ -82,6 +82,10 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction): result = subjects_to_be_ordered.order_by(order_direction + 'postponed') elif order_column == "type": result = subjects_to_be_ordered.order_by(order_direction + 'type') + elif order_column == "id": + result = subjects_to_be_ordered.order_by(order_direction + 'id') + elif order_column == "date_born": + result = subjects_to_be_ordered.order_by(order_direction + 'date_born') elif order_column == "visit_1": result = order_by_visit(subjects_to_be_ordered, order_direction, 1) elif order_column == "visit_2": @@ -98,6 +102,8 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction): result = order_by_visit(subjects_to_be_ordered, order_direction, 7) elif order_column == "visit_8": result = order_by_visit(subjects_to_be_ordered, order_direction, 8) + else: + logger.warn("Unknown sort column: "+order_column) return result diff --git a/smash/web/static/js/subject.js b/smash/web/static/js/subject.js index 8453f7e9..bfee2f14 100644 --- a/smash/web/static/js/subject.js +++ b/smash/web/static/js/subject.js @@ -15,7 +15,8 @@ function createColumn(dataType, name, filter, visible, renderFunction) { function getColumns(type) { var result = []; - result.push(createColumn("id", "Id", null, false)); + // don't confuse end user + // result.push(createColumn("id", "Id", null, false)); result.push(createColumn("nd_number", "ND", "string_filter", true)); result.push(createColumn("screening_number", "Screening", "string_filter", true)); result.push(createColumn("first_name", "First name", "string_filter", true)); diff --git a/smash/web/tests/api_views/test_subject.py b/smash/web/tests/api_views/test_subject.py index b96c694f..b4b074f3 100644 --- a/smash/web/tests/api_views/test_subject.py +++ b/smash/web/tests/api_views/test_subject.py @@ -144,6 +144,24 @@ class TestApi(TestCase): self.check_subject_ordered("nd_number", [subject, subject2]) + def test_subjects_sort_id(self): + subject = self.subject + + subject2 = create_subject(2) + + self.check_subject_ordered("id", [subject, subject2]) + + def test_subjects_sort_date_born(self): + subject = self.subject + subject.date_born = get_today_midnight_date() + subject.save() + + subject2 = create_subject(2) + subject2.date_born = get_today_midnight_date() + datetime.timedelta(days=1) + subject2.save() + + self.check_subject_ordered("date_born", [subject, subject2]) + def test_subjects_sort_default_location(self): subject = self.subject -- GitLab