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
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
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)
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