コード例 #1
0
ファイル: views.py プロジェクト: kpx13/libfic
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))
コード例 #2
0
ファイル: views.py プロジェクト: kpx13/libfic
def edit_page(request, id):
    c = get_common_context(request)
    f = Work.get_by_id(id)
    if not ((f.author == request.user) or (f.is_collaborator(request.user))):
        return HttpResponseRedirect('/funfic/%s/' % id)
    c['title'] = u'Редактировать фанфик'
    if request.method == 'POST':
        form = AddWorkForm(request.POST, instance=f)
        collaborator = None
        if request.POST.get('collaborator'):
            try:
                collaborator = UserProfile.objects.get(nick=request.POST.get('collaborator')).user
            except:
                messages.error(request, u'Необходимо ввести правильный ник соавтора.')
        if form.is_valid():
            ff = form.save()
            if collaborator:
                ff.add_collaborator(collaborator)
            messages.success(request, u'Фанфик успешно отредактирован.')
            return HttpResponseRedirect('/cabinet/edit/%s/' % id)
        else:
            messages.error(request, u'Фанфик не отредактирован. Исправьте ошибки ниже.')
            print form.errors
    else:
        form = AddWorkForm(instance=f)
    c['form'] = form
    c['collaborator'] = f.get_collaborator()
    return render_to_response('cabinet/add.html', c, context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: kpx13/libfic
def add_part_page(request, id):
    c = get_common_context(request)
    c['title'] = u'Добавить часть к фанфику'
    work = Work.get_by_id(id)
    if not ((work.author == request.user) or (work.is_collaborator(request.user))):
        return HttpResponseRedirect('/funfic/%s/' % id)
    c['parts'] = work.get_content()
    if request.method=='POST':
        form = AddPartForm(request.POST)
        if form.is_valid():
            ff = form.save(commit=False)
            ff.work = work
            ff.number = int(request.POST['number']) + 1
            ff.public_on = request.POST.get('public_on', False)
            ff.save()
            work.last_editing_time = datetime.datetime.now()
            messages.success(request, u'Часть успешно добавлена.')
            History.add_record(request.user, ff)
            return HttpResponseRedirect('/cabinet/edit_part/%s/%s/' % (id, ff.id))
        else:
            messages.error(request, u'Часть не добавлен. Исправьте ошибки ниже.')
    else:
        form = AddPartForm()
    c['form'] = form
    c['is_adding'] = True
    return render_to_response('cabinet/add_part.html', c, context_instance=RequestContext(request))
コード例 #4
0
ファイル: views.py プロジェクト: kpx13/libfic
def delete_page(request, id):
    c = get_common_context(request)
    f = Work.get_by_id(id)
    if not (f.author == request.user):
        return HttpResponseRedirect('/funfic/%s/' % id)
    else:
        f.delete()
        messages.success(request, u'Фанфик успешно Удалён.')
        return HttpResponseRedirect('/cabinet/my-funfic/')
コード例 #5
0
ファイル: views.py プロジェクト: kpx13/libfic
def funfic_top_page(request, funfic_id):
    c = get_common_context(request)
    w = Work.get_by_id(funfic_id)
    if request.user.is_authenticated():
        if PersonalTop.add(request.user, w):
            messages.success(request, u'Работа успешно добавлена в Ваш личный топ.')
        else:
            messages.error(request, u'Эта работа уже находится у Вас в личном топе.')
    else:
        messages.error(request, u'Для выполнения этого действия необходимо авторизироваться.')
    return HttpResponseRedirect('/funfic/%s/' % funfic_id)
コード例 #6
0
ファイル: views.py プロジェクト: kpx13/libfic
def funfic_bookmark_page(request, funfic_id):
    c = get_common_context(request)
    w = Work.get_by_id(funfic_id)
    if request.user.is_authenticated():
        if Bookmark.add(request.user, w):
            messages.success(request, u'Работа успешно добавлена в закладки.')
        else:
            messages.error(request, u'Эта работа уже находится у Вас в закладках.')
    else:
        messages.error(request, u'Для выполнения этого действия необходимо авторизироваться.')
    return HttpResponseRedirect('/funfic/%s/' % funfic_id)
コード例 #7
0
ファイル: views.py プロジェクト: kpx13/libfic
def funfic_review_add_page(request, funfic_id):
    c = get_common_context(request)
    c['f'] = Work.get_by_id(funfic_id)
    if request.method == 'POST':
        review = request.POST.get('text', None)
        if review:
            if request.user.is_authenticated():
                Review(user=request.user,
                       work=c['f'],
                       name=request.POST.get('name', ''),
                       text=request.POST.get('text', ''),
                       ).save()
                messages.success(request, u'Ваша рецензия успешно добавлена.')
            else:
                messages.error(request, u'Для выполнения этого действия необходимо авторизироваться.')
            return HttpResponseRedirect('/funfic/%s/reviews/' % funfic_id)
    return render_to_response('funfic_review_add.html', c, context_instance=RequestContext(request))
コード例 #8
0
ファイル: views.py プロジェクト: kpx13/libfic
def funfic_part_page(request, funfic_id, part_id):
    c = get_common_context(request)
    c['f'] = Work.get_by_id(funfic_id)
    c['f'].inc_vizits()
    if request.method == 'POST':
        comment = request.POST.get('comment', None)
        if comment:
            if request.user.is_authenticated():
                Comment(user=request.user,
                        work_part=WorkPart.get_by_id(part_id),
                        text=comment).save()
                messages.success(request, u'Ваш комментарий успешно добавлен.')
                return HttpResponseRedirect('/funfic/%s/%s/' % (funfic_id, part_id))
            else:
                messages.error(request, u'Для выполнения этого действия необходимо авторизироваться.')

    c['funart'] = FunArt.get_by_work(c['f'])[:2]
    c['content'] = WorkPart.get_work_content(c['f'])
    c['part'] = WorkPart.get_by_id(part_id)
    c['its_mine'] = (c['f'].author == request.user) or (c['f'].is_collaborator(request.user))
    return render_to_response('funfic_part.html', c, context_instance=RequestContext(request))
コード例 #9
0
ファイル: views.py プロジェクト: kpx13/libfic
def edit_part_page(request, funfic_id, part_id):
    c = get_common_context(request)
    c['title'] = u'Редактирование части фанфика'
    work = Work.get_by_id(funfic_id)
    if not ((work.author == request.user) or (work.is_collaborator(request.user))):
        return HttpResponseRedirect('/funfic/%s/' % funfic_id)
    if request.method=='POST':
        form = AddPartForm(request.POST, instance=WorkPart.get_by_id(part_id))
        if form.is_valid():
            ff = form.save(commit=False)
            ff.public_on = request.POST.get('public_on', False)
            ff.save()
            work.last_editing_time = datetime.datetime.now()
            messages.success(request, u'Часть успешно изменена.')
            History.add_record(request.user, ff)
            return HttpResponseRedirect('/cabinet/edit_part/%s/%s/' % (funfic_id, part_id))
        else:
            messages.error(request, u'Часть не добавлен. Исправьте ошибки ниже.')
    else:
        form = AddPartForm(instance=WorkPart.get_by_id(part_id))
    c['form'] = form
    return render_to_response('cabinet/add_part.html', c, context_instance=RequestContext(request))
コード例 #10
0
ファイル: views.py プロジェクト: kpx13/libfic
def funfic_reviews_page(request, funfic_id):
    c = get_common_context(request)
    c['f'] = Work.get_by_id(funfic_id)
    return render_to_response('funfic_reviews.html', c, context_instance=RequestContext(request))