app/soc/logic/models/survey.py
changeset 2455 a023b71ce125
parent 2453 9b8f3240e3bf
child 2459 accd8ba94b44
equal deleted inserted replaced
2454:849956450d69 2455:a023b71ce125
   428     """
   428     """
   429 
   429 
   430     super(Logic, self).__init__(model=model, base_model=base_model,
   430     super(Logic, self).__init__(model=model, base_model=base_model,
   431                                 scope_logic=scope_logic)
   431                                 scope_logic=scope_logic)
   432 
   432 
       
   433 class ResultsLogic(work.Logic):
       
   434   """Logic methods for the Survey model
       
   435   """
       
   436 
       
   437   def __init__(self, model=SurveyRecord,
       
   438                base_model=Work, scope_logic=linkable_logic):
       
   439     """Defines the name, key_name and model for this entity.
       
   440     """
       
   441 
       
   442     super(ResultsLogic, self).__init__(model=model, base_model=base_model,
       
   443                                 scope_logic=scope_logic)
       
   444 
       
   445   def getKeyValuesFromEntity(self, entity):
       
   446     """See base.Logic.getKeyNameValues.
       
   447     """
       
   448 
       
   449     return [entity.prefix, entity.scope_path, entity.link_id]
       
   450 
       
   451   def getKeyValuesFromFields(self, fields):
       
   452     """See base.Logic.getKeyValuesFromFields.
       
   453     """
       
   454 
       
   455     return [fields['prefix'], fields['scope_path'], fields['link_id']]
       
   456 
       
   457   def getKeyFieldNames(self):
       
   458     """See base.Logic.getKeyFieldNames.
       
   459     """
       
   460 
       
   461     return ['prefix', 'scope_path', 'link_id']
       
   462 
       
   463   def isDeletable(self, entity):
       
   464     """See base.Logic.isDeletable.
       
   465     """
       
   466 
       
   467     return not entity.home_for
       
   468 
       
   469   def _updateField(self, entity, entity_properties, name):
       
   470     """Special logic for role. If state changes to active we flush the sidebar.
       
   471     """
       
   472 
       
   473     value = entity_properties[name]
       
   474 
       
   475     if (name == 'is_featured') and (entity.is_featured != value):
       
   476       sidebar.flush()
       
   477 
       
   478     home_for = entity.home_for
       
   479     if (name != 'home_for') and home_for:
       
   480       home.flush(home_for)
       
   481     return True
       
   482 
   433 
   483 
   434 logic = Logic()
   484 logic = Logic()
   435 project_logic = ProjectLogic()
   485 project_logic = ProjectLogic()
   436 grading_logic = GradingProjectLogic()
   486 grading_logic = GradingProjectLogic()
       
   487 results_logic = ResultsLogic()