Commit b4a4de0b71df0831f69c75aac77292f857a2f8af

Authored by Gustavo
1 parent 97fc3606

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):
... ...