def avg_diff(request): if request.user.is_superuser: return HttpResponseRedirect('/admin') user = request.user if user.profile.status == 'left': return HttpResponseRedirect('/accounts/logout/') if not user.profile.has_address(): return HttpResponseRedirect('/profile/address/edit/') form = CalendarForm(request.POST or None) if form.is_valid(): year = request.POST.get('year') month = request.POST.get('month') else: year = date.today().year month = date.today().month user = request.user address = user.profile.address total = address.monthly_total(year, month) avg = address.monthly_avg(year, month) users = user.profile.get_housemates(year, month) when = date.today() today = when.strftime("%A %d, %B %Y") header_date = date(int(year), int(month), 1) avg_diff = dict((usr.username, \ {'total': usr.profile.monthly_total(year, month), \ 'diff': usr.profile.monthly_total(year,month)-address.monthly_avg(year,month), \ 'absent': usr.profile.is_absent(year,month)}) for usr in users) return render_to_response('avg_diff.html', \ {'form': form, 'avg_diff': avg_diff, 'avg': avg, 'total': total, \ 'year':year, 'month':month, 'today':today, \ 'header_date':header_date},context_instance=RequestContext(request))
def create_calendar(request): if request.method == "POST": form = CalendarForm(request.POST) if form.is_valid(): calendar = form.save() return HttpResponseRedirect(reverse("view_calendar", args=[calendar.id])) else: form = CalendarForm() return render(request, 'create_calendar.html', {'form': form})
def post(self, request, year, month): """ Extrai o formulário `forms.CalendarForm` do POST. Se o formulário for válido, redireciona pra URL correspondente ao seu mês/ano. Caso não seja, repassa o formulário inválido e o mês/ano atuais pra `EventsCalendarView.render`. Argumentos: - request - year: string; o ano passado pela URL - month: string; o mês passado pela URL """ form = CalendarForm(request.POST) if form.is_valid(): year = "{0:04d}".format(int(form.cleaned_data['year'])) month = "{0:02d}".format(int(form.cleaned_data['month'])) url = reverse("calendario:events_calendar", args=(year, month)) return redirect(url) else: return self.render(request, year, month, form)
def get(self, request, year, month): """ Cria um formulário vazio e o repassa pra `EventsCalendarView.render`, junto com os outros argumentos. Argumentos: - request - year: string; o ano passado pela URL - month: string; o mês passado pela URL """ form = CalendarForm() return self.render(request, year, month, form)