Code Duplication    Length = 18-18 lines in 2 locations

bika/lims/browser/fields/resultsrangesfield.py 1 location

@@ 87-104 (lines=18) @@
84
        value = super(ResultsRangesField, self)._to_dict(value)
85
        return map(self.resolve_uid, value)
86
87
    def resolve_uid(self, raw_dict):
88
        """Returns a copy of the raw dictionary passed in, but with additional
89
        key "uid". It's value is inferred from "keyword" if present
90
        """
91
        value = raw_dict.copy()
92
        uid = value.get("uid")
93
        if api.is_uid(uid) and uid != "0":
94
            return value
95
96
        # uid key does not exist or is not valid, try to infere from keyword
97
        keyword = value.get("keyword")
98
        if keyword:
99
            query = dict(portal_type="AnalysisService", getKeyword=keyword)
100
            brains = api.search(query, SETUP_CATALOG)
101
            if len(brains) == 1:
102
                uid = api.get_uid(brains[0])
103
        value["uid"] = uid
104
        return value
105
106
107
registerField(ResultsRangesField, title="ResultsRanges",

bika/lims/browser/fields/aranalysesfield.py 1 location

@@ 200-217 (lines=18) @@
197
        # Return the original with no changes
198
        return rrs
199
200
    def resolve_uid(self, result_range):
201
        """Resolves the uid key for the result_range passed in if it does not
202
        exist when contains a keyword
203
        """
204
        value = result_range.copy()
205
        uid = value.get("uid")
206
        if api.is_uid(uid) and uid != "0":
207
            return value
208
209
        # uid key does not exist or is not valid, try to infere from keyword
210
        keyword = value.get("keyword")
211
        if keyword:
212
            query = dict(portal_type="AnalysisService", getKeyword=keyword)
213
            brains = api.search(query, SETUP_CATALOG)
214
            if len(brains) == 1:
215
                uid = api.get_uid(brains[0])
216
        value["uid"] = uid
217
        return value
218
219
    def add_analysis(self, instance, service, **kwargs):
220
        service_uid = api.get_uid(service)