diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py index 02bd657c15b2fb1ed366f1100b8f1643ae86f3a2..6d1bb1f598bf7371d94cb3e5a4e12a085f125306 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 8453f7e93f6e0db28e71aab6bb2fe08b9edbef9f..bfee2f14996e3bbf51dce37beb3796e0304d7993 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 b96c694f54f7ed06018e760c30f8ddd9f27462a5..b4b074f3f031cdcc26d84a5c6890ad084f0aff6f 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