app/soc/logic/models/student_proposal.py
changeset 1612 09bccdf6bdec
parent 1611 83e7b09ce959
child 1623 8b70d6bb3f8f
equal deleted inserted replaced
1611:83e7b09ce959 1612:09bccdf6bdec
    55     ranker.SetScore(entity.key().name(), [entity.score])
    55     ranker.SetScore(entity.key().name(), [entity.score])
    56 
    56 
    57     super(Logic, self)._onCreate(entity)
    57     super(Logic, self)._onCreate(entity)
    58 
    58 
    59   def _updateField(self, entity, entity_properties, name):
    59   def _updateField(self, entity, entity_properties, name):
    60     """Update the ranker if the score changes
    60     """Update the ranker if the score changes and keep the score within bounds.
    61     """
    61     """
    62 
    62 
    63     value = entity_properties[name]
    63     value = entity_properties[name]
    64 
    64 
    65     if name == 'score':
    65     if name == 'score':
       
    66       # keep the score within bounds
       
    67       min_score, max_score = student_proposal.DEF_SCORE
       
    68 
       
    69       value = max(min_score, min(value, max_score-1))
       
    70       entity_properties[name] = value
       
    71 
       
    72       # update the ranker
    66       fields = {'link_id': student_proposal.DEF_RANKER_NAME,
    73       fields = {'link_id': student_proposal.DEF_RANKER_NAME,
    67                 'scope': entity.org}
    74                 'scope': entity.org}
    68 
    75 
    69       ranker_root = ranker_logic.logic.getForFields(fields, unique=True)
    76       ranker_root = ranker_logic.logic.getForFields(fields, unique=True)
    70       ranker = ranker_logic.logic.getRootFromEntity(ranker_root)
    77       ranker = ranker_logic.logic.getRootFromEntity(ranker_root)
    71       ranker.SetScore(entity.key().name(), [value])
    78       ranker.SetScore(entity.key().name(), [value])
    72 
    79 
       
    80 
    73     return super(Logic, self)._updateField(entity, entity_properties, name)
    81     return super(Logic, self)._updateField(entity, entity_properties, name)
    74 
    82 
    75 
    83 
    76 logic = Logic()
    84 logic = Logic()