From b585d2e18ef015e9c6454364c7b30a086c381217 Mon Sep 17 00:00:00 2001 From: Ryan Herbert Date: Tue, 10 Nov 2020 14:48:38 +0000 Subject: [PATCH] mysql trickiness for file sizes --- server/web2py/applications/vidjil/models/SampleSet.py | 9 ++++----- .../web2py/applications/vidjil/models/sample_set_list.py | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/web2py/applications/vidjil/models/SampleSet.py b/server/web2py/applications/vidjil/models/SampleSet.py index ea6a80719..49134fde0 100644 --- a/server/web2py/applications/vidjil/models/SampleSet.py +++ b/server/web2py/applications/vidjil/models/SampleSet.py @@ -77,10 +77,9 @@ class SampleSet(object): def get_files_values(self, data): key = get_file_sizes_select() - tmp = [] if data._extra[key] is None else data._extra[key].split(',') - file_count = len(tmp) - sizes = [int(s.split(';')[1]) for s in tmp] - return file_count, sum(sizes) + size = 0 if data._extra[key] is None else data._extra[key] + file_count = data.file_count + return file_count, size def get_files(self, data): file_count, size = self.get_files_values(data) @@ -229,4 +228,4 @@ def get_group_names_select(): return "GROUP_CONCAT(DISTINCT auth_group.role)" def get_file_sizes_select(): - return "GROUP_CONCAT(DISTINCT (sequence_file.id || ';' || sequence_file.size_file))" + return "COUNT(DISTINCT sequence_file.id) * SUM(sequence_file.size_file) / COUNT(*)" diff --git a/server/web2py/applications/vidjil/models/sample_set_list.py b/server/web2py/applications/vidjil/models/sample_set_list.py index ea7d831c7..108ab3d71 100644 --- a/server/web2py/applications/vidjil/models/sample_set_list.py +++ b/server/web2py/applications/vidjil/models/sample_set_list.py @@ -56,6 +56,7 @@ class SampleSetList(): s_table.sample_set_id.with_alias('sample_set_id'), s_table.info.with_alias('info'), db.auth_user.last_name.with_alias('creator'), + db.sequence_file.id.count(True).with_alias('file_count'), group_file_sizes, group_configs, group_config_ids, -- GitLab