21 '"Lennard de Rijk" <ljvderijk@gmail.com>', |
21 '"Lennard de Rijk" <ljvderijk@gmail.com>', |
22 ] |
22 ] |
23 |
23 |
24 |
24 |
25 from soc.logic.models import base |
25 from soc.logic.models import base |
|
26 from soc.logic.models import rankerroot as ranker_logic |
26 from soc.logic.models import student as student_logic |
27 from soc.logic.models import student as student_logic |
27 |
28 |
28 import soc.models.linkable |
29 import soc.models.linkable |
29 import soc.models.student_proposal |
30 import soc.models.student_proposal |
30 |
31 |
39 """ |
40 """ |
40 |
41 |
41 super(Logic, self).__init__(model=model, base_model=base_model, |
42 super(Logic, self).__init__(model=model, base_model=base_model, |
42 scope_logic=scope_logic) |
43 scope_logic=scope_logic) |
43 |
44 |
|
45 def _onCreate(self, entity): |
|
46 """Adds this proposal to the organization ranker entity |
|
47 """ |
|
48 |
|
49 fields = {'link_id': self_model.DEF_RANKER_NAME, |
|
50 'scope': entity.org} |
|
51 |
|
52 ranker_root = ranker_logic.logic.getForFields(fields, unique=True) |
|
53 ranker = ranker_logic.logic.getRootFromEntity(ranker_root) |
|
54 ranker.SetScore(entity.key().name(), [entity.score]) |
|
55 |
|
56 super(Logic, self)._onCreate(entity) |
|
57 |
|
58 def _updateField(self, entity, entity_properties, name): |
|
59 """Update the ranker if the score changes |
|
60 """ |
|
61 |
|
62 value = entity_properties[name] |
|
63 |
|
64 if name == 'score': |
|
65 fields = {'link_id': self_model.DEF_RANKER_NAME, |
|
66 'scope': entity.org} |
|
67 |
|
68 ranker_root = ranker_logic.logic.getForFields(fields, unique=True) |
|
69 ranker = ranker_logic.logic.getRootFromEntity(ranker_root) |
|
70 ranker.SetScore(entity.key().name(), [value]) |
|
71 |
|
72 return super(Logic, self)._updateField(entity, entity_properties, name) |
|
73 |
44 |
74 |
45 logic = Logic() |
75 logic = Logic() |