Example #1
0
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))
Example #2
0
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})
Example #3
0
    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)
Example #4
0
    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)