Exemple #1
0
def funfic_main_page(request, funfic_id):
    c = get_common_context(request)
    if request.method == 'POST':
        if request.POST.get('action') == 'rating':
            if request.user.is_authenticated():
                try:
                    mark = int(request.POST.get('mark'))
                    mark_st = int(request.POST.get('mark_st'))
                    mark_sz = int(request.POST.get('mark_sz'))
                    mark_pr = int(request.POST.get('mark_pr'))
                    Rating.add(request.user, Work.get_by_id(funfic_id), mark, mark_st, mark_sz, mark_pr)
                    messages.success(request, u'Рейтинг успешно изменен.')
                except:
                    messages.error(request, u'Введите корректные значения.')
                return HttpResponseRedirect('/funfic/%s/' % funfic_id)
            else:
                messages.error(request, u'Голосовать могут только авторизованные пользователи.')

    c['f'] = Work.get_by_id(funfic_id)
    c['funart'] = FunArt.get_by_work(c['f'])[:2]
    c['content'] = WorkPart.get_work_content(c['f'])
    c['f'].inc_vizits()
    c['its_mine'] = (c['f'].author == request.user) or (c['f'].is_collaborator(request.user)) if request.user.is_authenticated() else False
    c['recommend'] = Work.objects.all().order_by('-mark')[0:5]
    return render_to_response('funfic_main.html', c, context_instance=RequestContext(request))
Exemple #2
0
def statistics_page(request):
    import datetime
    c = get_common_context(request)
    c['title'] = u'Статистика аккаунта'
    if request.method == 'POST':
        try:
            date_from = datetime.datetime.strptime(request.POST.get('date_from', ''),'%d.%m.%Y')
            date_to = datetime.datetime.strptime(request.POST.get('date_to', ''),'%d.%m.%Y')
        except:
            messages.error(request, u'Необходимо выбрать даты')
            return HttpResponseRedirect('/cabinet/statistics/')
        if date_from > date_to:
            dd = date_from
            date_from = date_to
            date_to = dd
        funfics = Work.get_by_author(request.user)
        c['date_from'] = date_from.strftime('%d.%m.%Y')
        c['date_to'] = date_to.strftime('%d.%m.%Y')
        td = datetime.timedelta(days=1)
        result = []
        curr = date_from
        while curr <= date_to:
            stat = []
            for f in funfics:
                print curr, f.id, Review.get_count_by_work_date_range(f, curr, curr+td)
                curr_stat = {
                                'funfic': f,
                                'reviews': Review.get_count_by_work_date_range(f, curr, curr+td),
                                'comments': Comment.get_count_by_work_date_range(f, curr, curr+td),
                                'bookmarks': Bookmark.get_count_by_work_date_range(f, curr, curr+td),
                             }
                curr_stat.update(Rating.get_count_by_work_date_range(f, curr, curr+td))
                stat.append(curr_stat)
            result.append((curr.date(), stat))
            curr = curr + td
        c['statistics'] = result
    return render_to_response('cabinet/statistics.html', c, context_instance=RequestContext(request))