diff --git a/smash/web/models/study_subject.py b/smash/web/models/study_subject.py index 97c8e6708453242663fcd2016f3e44d32c789af6..d1807814503eac61e967646ce8381e375bbd70ca 100644 --- a/smash/web/models/study_subject.py +++ b/smash/web/models/study_subject.py @@ -179,23 +179,26 @@ class StudySubject(models.Model): ) def sort_matched_screening_first(self, pattern, reverse=False): - parts = self.screening_number.split(';') - matches, reminder = [], [] - for part in parts: - chunks = part.strip().split('-') - if len(chunks) == 2: - letter, number = chunks - tupl = (letter, int(number)) - else: - logger.warn('There are {} chunks in some parts of this screening_number: |{}|.'.format( - len(chunks), self.screening_number)) - tupl = (part.strip(), None) - if pattern is not None and pattern in part: - matches.append(tupl) - else: - reminder.append(tupl) - - return matches + sorted(reminder, reverse=reverse) + if self.screening_number is None: + return None + + parts = self.screening_number.split(';') + matches, reminder = [], [] + for part in parts: + chunks = part.strip().split('-') + if len(chunks) == 2: + letter, number = chunks + tupl = (letter, int(number)) + else: + logger.warn('There are {} chunks in some parts of this screening_number: |{}|.'.format( + len(chunks), self.screening_number)) + tupl = (part.strip(), None) + if pattern is not None and pattern in part: + matches.append(tupl) + else: + reminder.append(tupl) + + return matches + sorted(reminder, reverse=reverse) @staticmethod def check_nd_number_regex(regex_str):