Commit 37c7a084df45a7f0f4b2301dc76838ffef6c3cbf
1 parent
72479841
Exists in
master
and in
2 other branches
Adjusting bulletin view for non stundent users
Showing
1 changed file
with
64 additions
and
26 deletions
Show diff stats
bulletin/views.py
... | ... | @@ -55,6 +55,7 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
55 | 55 | template_name = 'bulletin/window_view.html' |
56 | 56 | model = Bulletin |
57 | 57 | context_object_name = 'bulletin' |
58 | + student = None | |
58 | 59 | |
59 | 60 | def dispatch(self, request, *args, **kwargs): |
60 | 61 | slug = self.kwargs.get('slug', '') |
... | ... | @@ -67,22 +68,30 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
67 | 68 | |
68 | 69 | def post(self, request, *args, **kwargs): |
69 | 70 | difficulties = self.request.POST.get('difficulties', None) |
71 | + user_selected = request.POST.get('selected_student', None) | |
70 | 72 | |
71 | 73 | slug = self.kwargs.get('slug', '') |
72 | 74 | bulletin = get_object_or_404(Bulletin, slug=slug) |
73 | 75 | |
74 | 76 | self.object = bulletin |
75 | 77 | |
76 | - if not difficulties is None and not difficulties == "": | |
77 | - message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
78 | + if has_subject_permissions(request.user, bulletin.topic.subject): | |
79 | + if not user_selected is None: | |
80 | + user = User.objects.get(email = user_selected) | |
81 | + self.student = user | |
82 | + else: | |
83 | + if not difficulties is None and not difficulties == "": | |
84 | + message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
78 | 85 | |
79 | - brodcast_dificulties(self.request, message, bulletin.topic.subject) | |
86 | + brodcast_dificulties(self.request, message, bulletin.topic.subject) | |
80 | 87 | |
81 | - messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) | |
82 | - return self.render_to_response(context = self.get_context_data()) | |
83 | - else: | |
84 | - messages.error(self.request, message = _("You should inform some difficulty")) | |
85 | - return self.render_to_response(context = self.get_context_data()) | |
88 | + messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) | |
89 | + return self.render_to_response(context = self.get_context_data()) | |
90 | + else: | |
91 | + messages.error(self.request, message = _("You should inform some difficulty")) | |
92 | + return self.render_to_response(context = self.get_context_data()) | |
93 | + | |
94 | + return self.render_to_response(context = self.get_context_data()) | |
86 | 95 | |
87 | 96 | def get_context_data(self, **kwargs): |
88 | 97 | context = super(NewWindowView, self).get_context_data(**kwargs) |
... | ... | @@ -115,14 +124,23 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
115 | 124 | |
116 | 125 | slug = self.kwargs.get('slug', '') |
117 | 126 | bulletin = get_object_or_404(Bulletin, slug=slug) |
127 | + students = User.objects.filter(subject_student = bulletin.topic.subject).order_by('social_name', 'username') | |
128 | + | |
129 | + if has_subject_permissions(self.request.user, bulletin.topic.subject): | |
130 | + if not self.student is None: | |
131 | + estudante = self.student | |
132 | + else: | |
133 | + estudante = students.first() | |
134 | + else: | |
135 | + estudante = self.request.user | |
118 | 136 | |
119 | 137 | meta_geral = Goals.objects.get(topic=topic) |
120 | 138 | metas = GoalItem.objects.filter(goal = meta_geral) |
121 | 139 | metas_pessoais = [] |
122 | 140 | n_submeteu = False |
123 | 141 | for m in metas: |
124 | - if MyGoals.objects.filter(item = m, user = self.request.user).exists(): | |
125 | - metas_pessoais.append(MyGoals.objects.get(item = m, user = self.request.user)) | |
142 | + if MyGoals.objects.filter(item = m, user = estudante).exists(): | |
143 | + metas_pessoais.append(MyGoals.objects.get(item = m, user = estudante)) | |
126 | 144 | n_submeteu = False |
127 | 145 | else: |
128 | 146 | n_submeteu = True |
... | ... | @@ -137,8 +155,8 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
137 | 155 | else: |
138 | 156 | lista_metas[x]['estabelecida'] = metas_pessoais[x].value |
139 | 157 | |
140 | - alcancadas, medias = read_excel_file(self.request.user,meta_geral,len(itens_da_meta),bulletin) | |
141 | - maximos, medianas, resultados,titulos = read_excel_file_indicators(self.request.user,bulletin) | |
158 | + alcancadas, medias = read_excel_file(estudante,meta_geral,len(itens_da_meta),bulletin) | |
159 | + maximos, medianas, resultados,titulos = read_excel_file_indicators(estudante,bulletin) | |
142 | 160 | |
143 | 161 | for x in range(len(lista_metas)): |
144 | 162 | lista_metas[x]['alcancada'] = alcancadas[x] |
... | ... | @@ -164,9 +182,10 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
164 | 182 | context['medianas'] = medianas |
165 | 183 | context['resultados'] = resultados |
166 | 184 | context['titulos'] = titulos |
185 | + context['student'] = self.request.POST.get('selected_student', students.first().email) | |
186 | + context['students'] = students | |
167 | 187 | |
168 | 188 | return context |
169 | - | |
170 | 189 | class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
171 | 190 | log_component = 'resources' |
172 | 191 | log_action = 'view' |
... | ... | @@ -179,6 +198,7 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
179 | 198 | template_name = 'bulletin/view.html' |
180 | 199 | model = Bulletin |
181 | 200 | context_object_name = 'bulletin' |
201 | + student = None | |
182 | 202 | |
183 | 203 | def dispatch(self, request, *args, **kwargs): |
184 | 204 | slug = self.kwargs.get('slug', '') |
... | ... | @@ -191,22 +211,30 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
191 | 211 | |
192 | 212 | def post(self, request, *args, **kwargs): |
193 | 213 | difficulties = self.request.POST.get('difficulties', None) |
214 | + user_selected = request.POST.get('selected_student', None) | |
194 | 215 | |
195 | 216 | slug = self.kwargs.get('slug', '') |
196 | 217 | bulletin = get_object_or_404(Bulletin, slug=slug) |
197 | 218 | |
198 | 219 | self.object = bulletin |
199 | 220 | |
200 | - if not difficulties is None and not difficulties == "": | |
201 | - message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
221 | + if has_subject_permissions(request.user, bulletin.topic.subject): | |
222 | + if not user_selected is None: | |
223 | + user = User.objects.get(email = user_selected) | |
224 | + self.student = user | |
225 | + else: | |
226 | + if not difficulties is None and not difficulties == "": | |
227 | + message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
202 | 228 | |
203 | - brodcast_dificulties(self.request, message, bulletin.topic.subject) | |
229 | + brodcast_dificulties(self.request, message, bulletin.topic.subject) | |
204 | 230 | |
205 | - messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) | |
206 | - return self.render_to_response(context = self.get_context_data()) | |
207 | - else: | |
208 | - messages.error(self.request, message = _("You should inform some difficulty")) | |
209 | - return self.render_to_response(context = self.get_context_data()) | |
231 | + messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) | |
232 | + return self.render_to_response(context = self.get_context_data()) | |
233 | + else: | |
234 | + messages.error(self.request, message = _("You should inform some difficulty")) | |
235 | + return self.render_to_response(context = self.get_context_data()) | |
236 | + | |
237 | + return self.render_to_response(context = self.get_context_data()) | |
210 | 238 | |
211 | 239 | def get_context_data(self, **kwargs): |
212 | 240 | context = super(InsideView, self).get_context_data(**kwargs) |
... | ... | @@ -238,13 +266,22 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
238 | 266 | topic = self.object.topic |
239 | 267 | slug = self.kwargs.get('slug', '') |
240 | 268 | bulletin = get_object_or_404(Bulletin, slug=slug) |
269 | + students = User.objects.filter(subject_student = bulletin.topic.subject).order_by('social_name', 'username') | |
270 | + if has_subject_permissions(self.request.user, bulletin.topic.subject): | |
271 | + if not self.student is None: | |
272 | + estudante = self.student | |
273 | + else: | |
274 | + estudante = students.first() | |
275 | + else: | |
276 | + estudante = self.request.user | |
277 | + | |
241 | 278 | meta_geral = Goals.objects.get(topic=topic) |
242 | 279 | metas = GoalItem.objects.filter(goal = meta_geral) |
243 | 280 | metas_pessoais = [] |
244 | 281 | n_submeteu = False |
245 | 282 | for m in metas: |
246 | - if MyGoals.objects.filter(item = m, user = self.request.user).exists(): | |
247 | - metas_pessoais.append(MyGoals.objects.get(item = m, user = self.request.user)) | |
283 | + if MyGoals.objects.filter(item = m, user = estudante).exists(): | |
284 | + metas_pessoais.append(MyGoals.objects.get(item = m, user = estudante)) | |
248 | 285 | n_submeteu = False |
249 | 286 | else: |
250 | 287 | n_submeteu = True |
... | ... | @@ -259,8 +296,8 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
259 | 296 | else: |
260 | 297 | lista_metas[x]['estabelecida'] = metas_pessoais[x].value |
261 | 298 | |
262 | - alcancadas, medias = read_excel_file(self.request.user,meta_geral,len(itens_da_meta),bulletin) | |
263 | - maximos, medianas, resultados,titulos = read_excel_file_indicators(self.request.user,bulletin) | |
299 | + alcancadas, medias = read_excel_file(estudante,meta_geral,len(itens_da_meta),bulletin) | |
300 | + maximos, medianas, resultados,titulos = read_excel_file_indicators(estudante,bulletin) | |
264 | 301 | |
265 | 302 | for x in range(len(lista_metas)): |
266 | 303 | lista_metas[x]['alcancada'] = alcancadas[x] |
... | ... | @@ -287,7 +324,8 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
287 | 324 | context['medianas'] = medianas |
288 | 325 | context['resultados'] = resultados |
289 | 326 | context['titulos'] = titulos |
290 | - | |
327 | + context['student'] = self.request.POST.get('selected_student', students.first().email) | |
328 | + context['students'] = students | |
291 | 329 | return context |
292 | 330 | |
293 | 331 | class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): | ... | ... |