diff --git a/server/web2py/applications/vidjil/controllers/sample_set.py b/server/web2py/applications/vidjil/controllers/sample_set.py index 5d8ae5417dc239c3dd7b5a9d1b69735f0ab5b79d..2c808e11cf98a11cba81bdcaee411a96b4b547b5 100644 --- a/server/web2py/applications/vidjil/controllers/sample_set.py +++ b/server/web2py/applications/vidjil/controllers/sample_set.py @@ -212,7 +212,7 @@ def all(): if "filter" not in request.vars : request.vars["filter"] = "" - + result = helper.filter(request.vars['filter'], result) log.debug("run list (%.3fs) %s" % (time.time()-start, request.vars["filter"])) diff --git a/server/web2py/applications/vidjil/models/SampleSet.py b/server/web2py/applications/vidjil/models/SampleSet.py index 4e85bafab510d897a301e4cba784fe731659e98a..8b8d1b03004c5160c9bf1edd742bde7c4c7d3dcf 100644 --- a/server/web2py/applications/vidjil/models/SampleSet.py +++ b/server/web2py/applications/vidjil/models/SampleSet.py @@ -65,3 +65,8 @@ class SampleSet(object): &(db[self.type].id == data.id) &(db.results_file.sequence_file_id == db.sequence_file.id)).count() return data.data_count + + def filter(self, filter_str, data): + for row in data: + row['string'] = [row['name'], row['confs'], row['groups'], str(row['info'])] + return filter(lambda row : vidjil_utils.advanced_filter(row['string'], filter_str), data) diff --git a/server/web2py/applications/vidjil/models/patient.py b/server/web2py/applications/vidjil/models/patient.py index b7b026777965c8c9233585d7b1cec9eb1e56da58..b25821db47f125d02eafe7d8d0cf2cbcdcc3739d 100644 --- a/server/web2py/applications/vidjil/models/patient.py +++ b/server/web2py/applications/vidjil/models/patient.py @@ -13,3 +13,8 @@ class Patient(SampleSet): def get_birth(self, data): return "%s" % str(data.birth) if data.birth is not None else '' + + def filter(self, filter_str, data): + for row in data: + row['string'] = [row['last_name'], row['first_name'], row['confs'], row['groups'], str(row['birth']), str(row['info'])] + return filter(lambda row : vidjil_utils.advanced_filter(row['string'], filter_str), data) diff --git a/server/web2py/applications/vidjil/models/run.py b/server/web2py/applications/vidjil/models/run.py index fc2fe999e33881cdccf72987d29177679dc24506..4499fe576dc18715c5f0227cf81aaadc16df128c 100644 --- a/server/web2py/applications/vidjil/models/run.py +++ b/server/web2py/applications/vidjil/models/run.py @@ -15,3 +15,8 @@ class Run(SampleSet): def get_run_date(self, data): return data.run_date + + def filter(self, filter_str, data): + for row in data: + row['string'] = [row['name'], row['confs'], row['groups'], str(row['run_date']), str(row['info'])] + return filter(lambda row : vidjil_utils.advanced_filter(row['string'], filter_str), data) diff --git a/server/web2py/applications/vidjil/models/sample_set_list.py b/server/web2py/applications/vidjil/models/sample_set_list.py index 7d23d73e8534436fe60fc42a4a463fbf7e7c406d..e0fef6e78ff5a1558909c008ad1eb690b2797a2f 100644 --- a/server/web2py/applications/vidjil/models/sample_set_list.py +++ b/server/web2py/applications/vidjil/models/sample_set_list.py @@ -66,6 +66,7 @@ class SampleSetList(): for key, row in self.elements.iteritems(): row.most_used_conf = max(set(row.conf_id_list), key=row.conf_id_list.count) + row.confs = ", ".join(list(set(map(lambda elem: elem['name'], row.conf_list)))) def load_permitted_groups(self): query = db( diff --git a/server/web2py/applications/vidjil/views/sample_set/all.html b/server/web2py/applications/vidjil/views/sample_set/all.html index a6a19f44366ebae6ce571d342ccd2760a95bcbda..3b0a2dc704c2acd29d85bebc8b261e1b4f5caaeb 100644 --- a/server/web2py/applications/vidjil/views/sample_set/all.html +++ b/server/web2py/applications/vidjil/views/sample_set/all.html @@ -8,7 +8,7 @@