Commit b4a4de0b71df0831f69c75aac77292f857a2f8af
1 parent
97fc3606
Exists in
master
and in
2 other branches
Changes in new_window view and update view of the bulletin
Showing
1 changed file
with
58 additions
and
1 deletions
Show diff stats
bulletin/views.py
... | ... | @@ -63,8 +63,32 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
63 | 63 | |
64 | 64 | return super(NewWindowView, self).dispatch(request, *args, **kwargs) |
65 | 65 | |
66 | + def post(self, request, *args, **kwargs): | |
67 | + difficulties = self.request.POST.get('difficulties', None) | |
68 | + | |
69 | + slug = self.kwargs.get('slug', '') | |
70 | + bulletin = get_object_or_404(Bulletin, slug=slug) | |
71 | + | |
72 | + self.object = bulletin | |
73 | + | |
74 | + if not difficulties is None and not difficulties == "": | |
75 | + message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
76 | + | |
77 | + brodcast_dificulties(self.request, message, bulletin.topic.subject) | |
78 | + | |
79 | + messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) | |
80 | + return self.render_to_response(context = self.get_context_data()) | |
81 | + else: | |
82 | + messages.error(self.request, message = _("You should inform some difficulty")) | |
83 | + return self.render_to_response(context = self.get_context_data()) | |
84 | + | |
66 | 85 | def get_context_data(self, **kwargs): |
67 | 86 | context = super(NewWindowView, self).get_context_data(**kwargs) |
87 | + context['title'] = self.object.name | |
88 | + | |
89 | + context['topic'] = self.object.topic | |
90 | + context['subject'] = self.object.topic.subject | |
91 | + | |
68 | 92 | |
69 | 93 | self.log_context['category_id'] = self.object.topic.subject.category.id |
70 | 94 | self.log_context['category_name'] = self.object.topic.subject.category.name |
... | ... | @@ -85,6 +109,32 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
85 | 109 | |
86 | 110 | self.request.session['log_id'] = Log.objects.latest('id').id |
87 | 111 | |
112 | + topic = self.object.topic | |
113 | + | |
114 | + meta_geral = Goals.objects.get(topic=topic) | |
115 | + metas = GoalItem.objects.filter(goal = meta_geral) | |
116 | + metas_pessoais = [] | |
117 | + n_submeteu = False | |
118 | + for m in metas: | |
119 | + if MyGoals.objects.filter(item = m, user = self.request.user).exists(): | |
120 | + metas_pessoais.append(MyGoals.objects.get(item = m, user = self.request.user)) | |
121 | + n_submeteu = False | |
122 | + else: | |
123 | + n_submeteu = True | |
124 | + | |
125 | + itens_da_meta = sorted(list(metas), key = lambda met: met.id) | |
126 | + metas_pessoais = sorted(list(metas_pessoais), key = lambda me: me.id) | |
127 | + lista_metas = [{'description':geral.description, 'desejada':geral.ref_value} for geral in itens_da_meta ] | |
128 | + | |
129 | + for x in range(len(lista_metas)): | |
130 | + if n_submeteu: | |
131 | + lista_metas[x]['estabelecida'] = lista_metas[x]['desejada'] | |
132 | + else: | |
133 | + lista_metas[x]['estabelecida'] = metas_pessoais[x].value | |
134 | + | |
135 | + context['metas'] = lista_metas | |
136 | + | |
137 | + | |
88 | 138 | return context |
89 | 139 | |
90 | 140 | class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
... | ... | @@ -164,7 +214,7 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
164 | 214 | for m in metas: |
165 | 215 | if MyGoals.objects.filter(item = m, user = self.request.user).exists(): |
166 | 216 | metas_pessoais.append(MyGoals.objects.get(item = m, user = self.request.user)) |
167 | - n_submeteu = False | |
217 | + n_submeteu = False | |
168 | 218 | else: |
169 | 219 | n_submeteu = True |
170 | 220 | |
... | ... | @@ -474,6 +524,13 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): |
474 | 524 | context['topic'] = topic |
475 | 525 | context['subject'] = topic.subject |
476 | 526 | |
527 | + meta_geral = Goals.objects.get(topic=topic) | |
528 | + metas = GoalItem.objects.filter(goal = meta_geral) | |
529 | + itens_da_meta = sorted(list(metas), key = lambda met: met.id) | |
530 | + alunos = sorted(list(meta_geral.topic.subject.students.all()), key = lambda e: e.id) | |
531 | + create_excel_file(alunos, itens_da_meta,meta_geral) | |
532 | + context['goal_file'] = str(meta_geral.slug)+".xls" | |
533 | + | |
477 | 534 | return context |
478 | 535 | |
479 | 536 | def get_success_url(self): | ... | ... |