Example #1
0
    def validate(self, doc):
        if doc.get('created'):
            doc['created'] = validateDate(doc.get('created'), 'created')

        if doc.get('approach') in {'default', ''}:
            del doc['approach']

        if doc.get('score') is not None and doc.get('overallScore') is None:
            scoring.computeAverageScores(doc['score'])
            phase = self.model('phase', 'covalic').load(
                ############################  /opt/covalic/girder/girder/utility/model_importer.py
                ############################  class ModelImporter(object):  def model(model, plugin=None):
                ############################  model name is 'phase', plugin name is 'covalic'
                doc['phaseId'],
                force=True)
            doc['overallScore'] = scoring.computeOverallScore(doc, phase)
            doc['latest'] = True

            Model.update(self,
                         query={
                             'phaseId': doc['phaseId'],
                             'creatorId': doc['creatorId'],
                             'approach': doc.get('approach'),
                             'latest': True
                         },
                         update={'$set': {
                             'latest': False
                         }})

        return doc
Example #2
0
    def validate(self, doc):
        if doc.get('created'):
            doc['created'] = validateDate(doc.get('created'), 'created')

        if doc.get('approach') in {'default', ''}:
            del doc['approach']

        if doc.get('score') is not None and doc.get('overallScore') is None:
            scoring.computeAverageScores(doc['score'])
            phase = self.model('phase', 'covalic').load(doc['phaseId'],
                                                        force=True)
            doc['overallScore'] = scoring.computeOverallScore(doc, phase)
            doc['latest'] = True

            Model.update(self,
                         query={
                             'phaseId': doc['phaseId'],
                             'creatorId': doc['creatorId'],
                             'approach': doc.get('approach'),
                             'latest': True
                         },
                         update={'$set': {
                             'latest': False
                         }})

        return doc
Example #3
0
    def recomputeOverallScores(self, phase):
        """
        Recompute all of the overall score values for the submissions of a
        given phase. This might be fairly expensive, so it should only be done
        if the metric identifiers or weighting values actually change.

        :param phase: The phase to recompute all submissions on.
        """
        for submission in self.getAllSubmissions(phase):
            if submission.get('score'):
                submission['overallScore'] = scoring.computeOverallScore(
                    submission, phase)
                self.save(submission, validate=False)
Example #4
0
    def recomputeOverallScores(self, phase):
        """
        Recompute all of the overall score values for the submissions of a
        given phase. This might be fairly expensive, so it should only be done
        if the metric identifiers or weighting values actually change.

        :param phase: The phase to recompute all submissions on.
        """
        for submission in self.getAllSubmissions(phase):
            if submission.get('score'):
                submission['overallScore'] = scoring.computeOverallScore(
                    submission, phase)
                self.save(submission, validate=False)
Example #5
0
    def validate(self, doc):
        if doc.get('score') is not None and doc.get('overallScore') is None:
            scoring.computeAverageScores(doc['score'])
            phase = self.model('phase', 'challenge').load(
                doc['phaseId'], force=True)
            doc['overallScore'] = scoring.computeOverallScore(doc, phase)
            doc['latest'] = True

            Model.update(self, query={
                'phaseId': doc['phaseId'],
                'creatorId': doc['creatorId'],
                'latest': True
            }, update={
                '$set': {'latest': False}
            })

        return doc