)]}'
{"watcher/api/controllers/v1/action_plan.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        sample._audit_uuid \u003d \u0027abcee106-14d3-4515-b744-5a26885cf6f6\u0027"},{"line_number":256,"context_line":"        sample._efficacy_indicators \u003d [{\u0027description\u0027: \u0027Test indicator\u0027,"},{"line_number":257,"context_line":"                                        \u0027name\u0027: \u0027test_indicator\u0027,"},{"line_number":258,"context_line":"                                        \u0027unit\u0027: \u0027%\u0027}]"},{"line_number":259,"context_line":"        return cls._convert_with_links(sample, \u0027http://localhost:9322\u0027, expand)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_2c4a8826","line":258,"updated":"2016-06-08 10:21:32.000000000","message":"add sample._global_efficacy \u003d [] or {} ?","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        sample._audit_uuid \u003d \u0027abcee106-14d3-4515-b744-5a26885cf6f6\u0027"},{"line_number":256,"context_line":"        sample._efficacy_indicators \u003d [{\u0027description\u0027: \u0027Test indicator\u0027,"},{"line_number":257,"context_line":"                                        \u0027name\u0027: \u0027test_indicator\u0027,"},{"line_number":258,"context_line":"                                        \u0027unit\u0027: \u0027%\u0027}]"},{"line_number":259,"context_line":"        return cls._convert_with_links(sample, \u0027http://localhost:9322\u0027, expand)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_bf404308","line":258,"in_reply_to":"7aa08908_2c4a8826","updated":"2016-06-08 13:00:07.000000000","message":"Done","commit_id":"47666a5a145418265df77843d3d16e16f483e262"}],"watcher/decision_engine/solution/base.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        return self.efficacy.indicators"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def compute_global_efficacy(self):"},{"line_number":82,"context_line":"        \"\"\"Compute the global efficacy givena map of efficacy indicators"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        :param indicators_map: mapping between the indicator name and its value"},{"line_number":85,"context_line":"        :type indicators_map: dict {`str`: `object`}"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_acc2f8e6","line":82,"range":{"start_line":82,"start_character":39,"end_line":82,"end_character":45},"updated":"2016-06-08 10:21:32.000000000","message":"given a","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        return self.efficacy.indicators"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def compute_global_efficacy(self):"},{"line_number":82,"context_line":"        \"\"\"Compute the global efficacy givena map of efficacy indicators"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        :param indicators_map: mapping between the indicator name and its value"},{"line_number":85,"context_line":"        :type indicators_map: dict {`str`: `object`}"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_3f6c539b","line":82,"range":{"start_line":82,"start_character":39,"end_line":82,"end_character":45},"in_reply_to":"7aa08908_acc2f8e6","updated":"2016-06-08 13:00:07.000000000","message":"Done","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def compute_global_efficacy(self):"},{"line_number":82,"context_line":"        \"\"\"Compute the global efficacy givena map of efficacy indicators"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        :param indicators_map: mapping between the indicator name and its value"},{"line_number":85,"context_line":"        :type indicators_map: dict {`str`: `object`}"},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        return self.efficacy.compute_global_efficacy()"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_6cf77059","line":85,"range":{"start_line":84,"start_character":8,"end_line":85,"end_character":52},"updated":"2016-06-08 10:21:32.000000000","message":"to remove","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def compute_global_efficacy(self):"},{"line_number":82,"context_line":"        \"\"\"Compute the global efficacy givena map of efficacy indicators"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        :param indicators_map: mapping between the indicator name and its value"},{"line_number":85,"context_line":"        :type indicators_map: dict {`str`: `object`}"},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        return self.efficacy.compute_global_efficacy()"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_5f95df30","line":85,"range":{"start_line":84,"start_character":8,"end_line":85,"end_character":52},"in_reply_to":"7aa08908_6cf77059","updated":"2016-06-08 13:00:07.000000000","message":"Done","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        return self.efficacy.compute_global_efficacy()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def set_efficacy_indicators(self, **indicators_map):"},{"line_number":90,"context_line":"        \"\"\"Compute the global efficacy givena map of efficacy indicators"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param indicators_map: mapping between the indicator name and its value"},{"line_number":93,"context_line":"        :type indicators_map: dict {`str`: `object`}"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_cc9664ef","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":72},"updated":"2016-06-08 10:21:32.000000000","message":"bad docstring","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        return self.efficacy.compute_global_efficacy()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def set_efficacy_indicators(self, **indicators_map):"},{"line_number":90,"context_line":"        \"\"\"Compute the global efficacy givena map of efficacy indicators"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param indicators_map: mapping between the indicator name and its value"},{"line_number":93,"context_line":"        :type indicators_map: dict {`str`: `object`}"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_1f1b57cb","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":72},"in_reply_to":"7aa08908_cc9664ef","updated":"2016-06-08 13:00:07.000000000","message":"Done","commit_id":"47666a5a145418265df77843d3d16e16f483e262"}],"watcher/decision_engine/solution/efficacy.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            self.global_efficacy \u003d self._efficacy_spec.get_global_efficacy("},{"line_number":83,"context_line":"                self._indicators_mapping)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            indicators_specs_map \u003d {"},{"line_number":86,"context_line":"                indicator_spec.name: indicator_spec"},{"line_number":87,"context_line":"                for indicator_spec in self._efficacy_spec.indicators_specs}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            indicators \u003d []"},{"line_number":90,"context_line":"            for indicator_name, value in self._indicators_mapping.items():"},{"line_number":91,"context_line":"                related_indicator_spec \u003d indicators_specs_map[indicator_name]"},{"line_number":92,"context_line":"                indicators.append("},{"line_number":93,"context_line":"                    Indicator("},{"line_number":94,"context_line":"                        name\u003drelated_indicator_spec.name,"},{"line_number":95,"context_line":"                        description\u003drelated_indicator_spec.description,"},{"line_number":96,"context_line":"                        unit\u003drelated_indicator_spec.unit,"},{"line_number":97,"context_line":"                        value\u003dvalue))"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"            self.indicators \u003d indicators"},{"line_number":100,"context_line":"        except Exception as exc:"},{"line_number":101,"context_line":"            LOG.exception(exc)"},{"line_number":102,"context_line":"            raise exception.GlobalEfficacyComputationError("}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_ffdae449","line":99,"range":{"start_line":85,"start_character":0,"end_line":99,"end_character":40},"updated":"2016-06-08 10:21:32.000000000","message":"why this part is not in set_efficacy_indicators() method  ?","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            self.global_efficacy \u003d self._efficacy_spec.get_global_efficacy("},{"line_number":83,"context_line":"                self._indicators_mapping)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            indicators_specs_map \u003d {"},{"line_number":86,"context_line":"                indicator_spec.name: indicator_spec"},{"line_number":87,"context_line":"                for indicator_spec in self._efficacy_spec.indicators_specs}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            indicators \u003d []"},{"line_number":90,"context_line":"            for indicator_name, value in self._indicators_mapping.items():"},{"line_number":91,"context_line":"                related_indicator_spec \u003d indicators_specs_map[indicator_name]"},{"line_number":92,"context_line":"                indicators.append("},{"line_number":93,"context_line":"                    Indicator("},{"line_number":94,"context_line":"                        name\u003drelated_indicator_spec.name,"},{"line_number":95,"context_line":"                        description\u003drelated_indicator_spec.description,"},{"line_number":96,"context_line":"                        unit\u003drelated_indicator_spec.unit,"},{"line_number":97,"context_line":"                        value\u003dvalue))"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"            self.indicators \u003d indicators"},{"line_number":100,"context_line":"        except Exception as exc:"},{"line_number":101,"context_line":"            LOG.exception(exc)"},{"line_number":102,"context_line":"            raise exception.GlobalEfficacyComputationError("}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_df0a6f25","line":99,"range":{"start_line":85,"start_character":0,"end_line":99,"end_character":40},"in_reply_to":"7aa08908_ffdae449","updated":"2016-06-08 13:00:07.000000000","message":"Because set_efficacy_indicators() is a function that may not be called in the case where not efficacy indicator has been defined. In such a case, we would call this method without having validated the indicators beforehand.\nAn alternative I had was to validate it twice, but IMHO it is better to do it in only one place.","commit_id":"47666a5a145418265df77843d3d16e16f483e262"}],"watcher/objects/action_plan.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        self._from_db_object(self, db_action_plan)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def destroy(self, context\u003dNone):"},{"line_number":197,"context_line":"        \"\"\"Delete the Action from the DB."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        :param context: Security context. NOTE: This should only"},{"line_number":200,"context_line":"                        be used internally by the indirection_api."}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_8d744868","line":197,"range":{"start_line":197,"start_character":22,"end_line":197,"end_character":28},"updated":"2016-06-08 10:21:32.000000000","message":"Action Plan","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        self._from_db_object(self, db_action_plan)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def destroy(self, context\u003dNone):"},{"line_number":197,"context_line":"        \"\"\"Delete the Action from the DB."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        :param context: Security context. NOTE: This should only"},{"line_number":200,"context_line":"                        be used internally by the indirection_api."}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_6a2c5799","line":197,"range":{"start_line":197,"start_character":22,"end_line":197,"end_character":28},"in_reply_to":"7aa08908_8d744868","updated":"2016-06-08 13:00:07.000000000","message":"Done","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"88e165da46940c88f655ed51be403fdf83fdbf2b","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        related_efficacy_indicators \u003d indicator_objects.EfficacyIndicator.list("},{"line_number":274,"context_line":"            context\u003dself._context,"},{"line_number":275,"context_line":"            filters\u003d{\"efficacy_indicator_plan_uuid\": self.uuid})"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        # Cascade soft_delete of related efficacy indicators"},{"line_number":278,"context_line":"        for related_efficacy_indicator in related_efficacy_indicators:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_8dfba8c0","line":275,"range":{"start_line":275,"start_character":22,"end_line":275,"end_character":50},"updated":"2016-06-08 10:21:32.000000000","message":"action_plan_uuid","commit_id":"47666a5a145418265df77843d3d16e16f483e262"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ce8e8f0021a4272a58c73b9100807d7a2f058bc3","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        related_efficacy_indicators \u003d indicator_objects.EfficacyIndicator.list("},{"line_number":274,"context_line":"            context\u003dself._context,"},{"line_number":275,"context_line":"            filters\u003d{\"efficacy_indicator_plan_uuid\": self.uuid})"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        # Cascade soft_delete of related efficacy indicators"},{"line_number":278,"context_line":"        for related_efficacy_indicator in related_efficacy_indicators:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_a53dd0de","line":275,"range":{"start_line":275,"start_character":22,"end_line":275,"end_character":50},"in_reply_to":"7aa08908_8dfba8c0","updated":"2016-06-08 13:00:07.000000000","message":"Done","commit_id":"47666a5a145418265df77843d3d16e16f483e262"}]}
