From e7a0e8fe452d0adbc2bf564d94199416c213a86d Mon Sep 17 00:00:00 2001 From: Imad Bourouche Date: Tue, 18 Feb 2025 13:33:58 +0100 Subject: [PATCH] optimize metric calculation --- .../models/mod/semantic_artefact_catalog.rb | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/lib/ontologies_linked_data/models/mod/semantic_artefact_catalog.rb b/lib/ontologies_linked_data/models/mod/semantic_artefact_catalog.rb index 2f57ed7f..33cbd1a7 100644 --- a/lib/ontologies_linked_data/models/mod/semantic_artefact_catalog.rb +++ b/lib/ontologies_linked_data/models/mod/semantic_artefact_catalog.rb @@ -263,21 +263,9 @@ def self.valid_hash_code(inst, attr) private def calculate_attr_from_metrics(attr) - attr_to_get = attr.to_sym - submissions = LinkedData::Models::OntologySubmission.where.include(OntologySubmission.goo_attrs_to_load([attr_to_get])) - metrics_to_include = LinkedData::Models::Metric.goo_attrs_to_load([attr_to_get]) - LinkedData::Models::OntologySubmission.where.models(submissions).include(metrics: metrics_to_include).all - somme = 0 - submissions.each do |x| - if x.metrics - begin - somme += x.metrics.send(attr_to_get) - rescue - next - end - end + LinkedData::Models::Metric.where.include(attr).all.sum do |metric| + metric.loaded_attributes.include?(attr) ? metric.send(attr).to_i : 0 end - somme end end