47 rights['show'] = [('checkIsSurveyReadable', grading_survey_logic)] |
48 rights['show'] = [('checkIsSurveyReadable', grading_survey_logic)] |
48 rights['create'] = ['checkIsUser'] |
49 rights['create'] = ['checkIsUser'] |
49 rights['edit'] = [('checkIsSurveyWritable', grading_survey_logic)] |
50 rights['edit'] = [('checkIsSurveyWritable', grading_survey_logic)] |
50 rights['delete'] = [('checkIsSurveyWritable', grading_survey_logic)] |
51 rights['delete'] = [('checkIsSurveyWritable', grading_survey_logic)] |
51 rights['list'] = ['checkDocumentList'] |
52 rights['list'] = ['checkDocumentList'] |
52 rights['pick'] = ['checkDocumentPick'] |
53 rights['take'] = ['checkIsDeveloper'] # TODO(ljvderijk) add Project check |
53 |
54 |
54 new_params = {} |
55 new_params = {} |
55 new_params['logic'] = grading_survey_logic |
56 new_params['logic'] = grading_survey_logic |
56 new_params['rights'] = rights |
57 new_params['rights'] = rights |
57 |
58 |
77 survey = Survey.get_by_key_name(survey_key_name) |
78 survey = Survey.get_by_key_name(survey_key_name) |
78 survey_logic.activateGrades(survey) |
79 survey_logic.activateGrades(survey) |
79 return |
80 return |
80 |
81 |
81 |
82 |
|
83 def _takeGet(self, request, template, context, params, entity, record, |
|
84 **kwargs): |
|
85 """Hook for the GET request for the Survey's take page. |
|
86 |
|
87 This method is called just before the GET page is shown. |
|
88 |
|
89 Args: |
|
90 template: the template used for this view |
|
91 entity: the Survey entity |
|
92 record: a SurveyRecord entity |
|
93 rest: see base.View.public() |
|
94 """ |
|
95 |
|
96 gradeField = self.addGradeField(entity, record) |
|
97 field_count = len(eval(entity.survey_content.schema).items()) |
|
98 context['survey_form'].fields.insert(field_count + 1, 'grade', gradeField) |
|
99 |
|
100 return super(View, self)._takeGet(request, template, context, |
|
101 params, entity, record, **kwargs) |
|
102 |
|
103 |
|
104 def addGradeField(self, survey, survey_record): |
|
105 """ adds a Grade Field to Survey. |
|
106 Used for mentor evaluations. |
|
107 |
|
108 params: |
|
109 survey: the survey being taken |
|
110 survey_record: an existing survey record for a user-project-survey combo, |
|
111 or None |
|
112 |
|
113 """ |
|
114 # Add a grade field determining if student passes or fails. |
|
115 # Activate grades handler should determine whether new status |
|
116 # is midterm_passed, final_passed, etc. |
|
117 grade_choices = (('pass', 'Pass'), ('fail', 'Fail')) |
|
118 grade_vals = { 'pass': True, 'fail': False } |
|
119 from django import forms |
|
120 gradeField = forms.fields.ChoiceField(choices=grade_choices, |
|
121 required=True, |
|
122 widget=forms.Select()) |
|
123 |
|
124 gradeField.choices.insert(0, (None, "Choose a Grade") ) |
|
125 if survey_record: |
|
126 for g in grade_choices: |
|
127 if grade_vals[g[0]] == survey_record.grade: |
|
128 gradeField.choices.insert(0, (g[0],g[1] + " (Saved)") ) |
|
129 gradeField.choices.remove(g) |
|
130 break; |
|
131 gradeField.show_hidden_initial = True |
|
132 |
|
133 return gradeField |
|
134 |
|
135 |
82 view = View() |
136 view = View() |
83 |
137 |
84 admin = decorators.view(view.admin) |
|
85 create = decorators.view(view.create) |
138 create = decorators.view(view.create) |
86 edit = decorators.view(view.edit) |
139 edit = decorators.view(view.edit) |
87 delete = decorators.view(view.delete) |
140 delete = decorators.view(view.delete) |
88 list = decorators.view(view.list) |
141 list = decorators.view(view.list) |
89 public = decorators.view(view.public) |
142 public = decorators.view(view.public) |
90 export = decorators.view(view.export) |
143 take = decorators.view(view.take) |
91 pick = decorators.view(view.pick) |
|
92 results = decorators.view(view.viewResults) |
|
93 json = decorators.view(view.exportSerialized) |
|