コード例 #1
0
ファイル: writers.py プロジェクト: Arpaso/askbot-devel
def retag_question(request, id):
    """retag question view
    """
    question = get_object_or_404(models.Question, id = id)

    try:
        request.user.assert_can_retag_question(question)
        if request.method == 'POST':
            form = forms.RetagQuestionForm(question, request.POST)
            if form.is_valid():
                if form.has_changed():
                    request.user.retag_question(
                                        question = question,
                                        tags = form.cleaned_data['tags']
                                    )
                if request.is_ajax():
                    response_data = {
                        'success': True,
                        'new_tags': question.tagnames
                    }
                    data = simplejson.dumps(response_data)
                    return HttpResponse(data, mimetype="application/json")
                else:
                    return HttpResponseRedirect(question.get_absolute_url())
            elif request.is_ajax():
                response_data = {
                    'message': unicode(form.errors['tags']),
                    'success': False
                }
                data = simplejson.dumps(response_data)
                return HttpResponse(data, mimetype="application/json")
        else:
            form = forms.RetagQuestionForm(question)

        data = {
            'active_tab': 'questions',
            'question': question,
            'form' : form,
            'tags' : _get_tags_cache_json(),
        }
        return render_into_skin('question_retag.html', data, request)
    except exceptions.PermissionDenied, e:
        if request.is_ajax():
            response_data = {
                'message': unicode(e),
                'success': False
            }
            data = simplejson.dumps(response_data)
            return HttpResponse(data, mimetype="application/json")
        else:
            request.user.message_set.create(message = unicode(e))
            return HttpResponseRedirect(question.get_absolute_url())
コード例 #2
0
ファイル: writers.py プロジェクト: exezaid/askbot-devel
def edit_question(request, id):
    """edit question view
    """
    question = get_object_or_404(models.Question, id = id)
    latest_revision = question.get_latest_revision()
    revision_form = None
    try:
        request.user.assert_can_edit_question(question)
        if request.method == 'POST':
            if 'select_revision' in request.POST:#revert-type edit
                # user has changed revistion number
                revision_form = forms.RevisionForm(question, latest_revision, request.POST)
                if revision_form.is_valid():
                    # Replace with those from the selected revision
                    form = forms.EditQuestionForm(question,
                        models.QuestionRevision.objects.get(question=question,
                            revision=revision_form.cleaned_data['revision']))
                else:
                    form = forms.EditQuestionForm(question, latest_revision, request.POST)
            else:#new content edit
                # Always check modifications against the latest revision
                form = forms.EditQuestionForm(question, latest_revision, request.POST)
                if form.is_valid():
                    if form.has_changed():
                        request.user.edit_question(
                                            question = question,
                                            title = form.cleaned_data['title'],
                                            body_text = form.cleaned_data['text'],
                                            revision_comment = form.cleaned_data['summary'],
                                            tags = form.cleaned_data['tags'],
                                            wiki = form.cleaned_data.get('wiki', question.wiki)
                                        )
                    return HttpResponseRedirect(question.get_absolute_url())
        else:
            revision_form = forms.RevisionForm(question, latest_revision)
            form = forms.EditQuestionForm(question, latest_revision)

        data = {
            'active_tab': 'questions',
            'question': question,
            'revision_form': revision_form,
            'form' : form,
            'tags' : _get_tags_cache_json()
        }
        context = RequestContext(request, data)
        template = ENV.get_template('question_edit.html')
        return HttpResponse(template.render(context))

    except exceptions.PermissionDenied, e:
        request.user.message_set.create(message = unicode(e))
        return HttpResponseRedirect(question.get_absolute_url())
コード例 #3
0
def retag_question(request, id):
    """retag question view
    """
    question = get_object_or_404(models.Question, id=id)

    try:
        request.user.assert_can_retag_question(question)
        if request.method == 'POST':
            form = forms.RetagQuestionForm(question, request.POST)
            if form.is_valid():
                if form.has_changed():
                    request.user.retag_question(question=question,
                                                tags=form.cleaned_data['tags'])
                if request.is_ajax():
                    response_data = {
                        'success': True,
                        'new_tags': question.tagnames
                    }
                    data = simplejson.dumps(response_data)
                    return HttpResponse(data, mimetype="application/json")
                else:
                    return HttpResponseRedirect(question.get_absolute_url())
            elif request.is_ajax():
                response_data = {
                    'message': unicode(form.errors['tags']),
                    'success': False
                }
                data = simplejson.dumps(response_data)
                return HttpResponse(data, mimetype="application/json")
        else:
            form = forms.RetagQuestionForm(question)

        data = {
            'active_tab': 'questions',
            'question': question,
            'form': form,
            'tags': _get_tags_cache_json(),
        }
        return render_into_skin('question_retag.html', data, request)
    except exceptions.PermissionDenied, e:
        if request.is_ajax():
            response_data = {'message': unicode(e), 'success': False}
            data = simplejson.dumps(response_data)
            return HttpResponse(data, mimetype="application/json")
        else:
            request.user.message_set.create(message=unicode(e))
            return HttpResponseRedirect(question.get_absolute_url())
コード例 #4
0
ファイル: writers.py プロジェクト: Arpaso/askbot-devel
                return HttpResponseRedirect(reverse('user_signin_new_question'))
    else:
        #this branch is for the initial load of ask form
        form = forms.AskForm()
        if 'title' in request.GET:
            #normally this title is inherited from search query
            #but it is possible to ask with a parameter title in the url query
            form.initial['title'] = request.GET['title']
        else:
            #attempt to extract title from previous search query
            search_state = request.session.get('search_state',None)
            if search_state:
                query = search_state.query
                form.initial['title'] = query

    tags = _get_tags_cache_json()
    data = {
        'active_tab': 'ask',
        'form' : form,
        'tags' : tags,
        'email_validation_faq_url':reverse('faq') + '#validate',
    }
    return render_into_skin('ask.html', data, request)

@login_required
def retag_question(request, id):
    """retag question view
    """
    question = get_object_or_404(models.Question, id = id)

    try:
コード例 #5
0
def edit_question(request, id):
    """edit question view
    """
    question = get_object_or_404(models.Question, id=id)
    latest_revision = question.get_latest_revision()
    revision_form = None
    try:
        request.user.assert_can_edit_question(question)
        if request.method == 'POST':
            if 'select_revision' in request.POST:
                #revert-type edit - user selected previous revision
                revision_form = forms.RevisionForm(question, latest_revision,
                                                   request.POST)
                if revision_form.is_valid():
                    # Replace with those from the selected revision
                    rev_id = revision_form.cleaned_data['revision']
                    selected_revision = models.QuestionRevision.objects.get(
                        question=question, revision=rev_id)
                    form = forms.EditQuestionForm(question=question,
                                                  user=request.user,
                                                  revision=selected_revision)
                else:
                    form = forms.EditQuestionForm(request.POST,
                                                  question=question,
                                                  user=request.user,
                                                  revision=latest_revision)
            else:  #new content edit
                # Always check modifications against the latest revision
                form = forms.EditQuestionForm(
                    request.POST,
                    question=question,
                    revision=latest_revision,
                    user=request.user,
                )
                if form.is_valid():
                    if form.has_changed():

                        if form.cleaned_data['reveal_identity']:
                            question.remove_author_anonymity()

                        is_anon_edit = form.cleaned_data['stay_anonymous']
                        is_wiki = form.cleaned_data.get('wiki', question.wiki)
                        request.user.edit_question(
                            question=question,
                            title=form.cleaned_data['title'],
                            body_text=form.cleaned_data['text'],
                            revision_comment=form.cleaned_data['summary'],
                            tags=form.cleaned_data['tags'],
                            wiki=is_wiki,
                            edit_anonymously=is_anon_edit,
                        )
                    return HttpResponseRedirect(question.get_absolute_url())
        else:
            #request type was "GET"
            revision_form = forms.RevisionForm(question, latest_revision)
            form = forms.EditQuestionForm(question=question,
                                          revision=latest_revision,
                                          user=request.user)

        data = {
            'page_class': 'edit-question-page',
            'active_tab': 'questions',
            'question': question,
            'revision_form': revision_form,
            'form': form,
            'tags': _get_tags_cache_json()
        }
        return render_into_skin('question_edit.html', data, request)

    except exceptions.PermissionDenied, e:
        request.user.message_set.create(message=unicode(e))
        return HttpResponseRedirect(question.get_absolute_url())
コード例 #6
0
                    reverse('user_signin_new_question'))
    else:
        #this branch is for the initial load of ask form
        form = forms.AskForm()
        if 'title' in request.GET:
            #normally this title is inherited from search query
            #but it is possible to ask with a parameter title in the url query
            form.initial['title'] = request.GET['title']
        else:
            #attempt to extract title from previous search query
            search_state = request.session.get('search_state', None)
            if search_state:
                query = search_state.query
                form.initial['title'] = query

    tags = _get_tags_cache_json()
    data = {
        'active_tab': 'ask',
        'page_class': 'ask-page',
        'form': form,
        'tags': tags,
        'email_validation_faq_url': reverse('faq') + '#validate',
    }
    return render_into_skin('ask.html', data, request)


@login_required
def retag_question(request, id):
    """retag question view
    """
    question = get_object_or_404(models.Question, id=id)
コード例 #7
0
ファイル: writers.py プロジェクト: NorthIsUp/askbot-devel
def edit_question(request, id):
    """edit question view
    """
    question = get_object_or_404(models.Question, id = id)
    latest_revision = question.get_latest_revision()
    revision_form = None
    try:
        request.user.assert_can_edit_question(question)
        if request.method == 'POST':
            if 'select_revision' in request.POST:
                #revert-type edit - user selected previous revision
                revision_form = forms.RevisionForm(
                                                question,
                                                latest_revision,
                                                request.POST
                                            )
                if revision_form.is_valid():
                    # Replace with those from the selected revision
                    rev_id = revision_form.cleaned_data['revision']
                    selected_revision = models.QuestionRevision.objects.get(
                                                        question = question,
                                                        revision = rev_id
                                                    )
                    form = forms.EditQuestionForm(
                                            question = question,
                                            user = request.user,
                                            revision = selected_revision
                                        )
                else:
                    form = forms.EditQuestionForm(
                                            request.POST,
                                            question = question,
                                            user = request.user,
                                            revision = latest_revision
                                        )
            else:#new content edit
                # Always check modifications against the latest revision
                form = forms.EditQuestionForm(
                                        request.POST,
                                        question = question,
                                        revision = latest_revision,
                                        user = request.user,
                                    )
                if form.is_valid():
                    if form.has_changed():

                        if form.cleaned_data['reveal_identity']:
                            question.remove_author_anonymity()

                        is_anon_edit = form.cleaned_data['stay_anonymous']
                        is_wiki = form.cleaned_data.get('wiki', question.wiki)
                        request.user.edit_question(
                            question = question,
                            title = form.cleaned_data['title'],
                            body_text = form.cleaned_data['text'],
                            revision_comment = form.cleaned_data['summary'],
                            tags = form.cleaned_data['tags'],
                            wiki = is_wiki, 
                            edit_anonymously = is_anon_edit,
                        )
                    return HttpResponseRedirect(question.get_absolute_url())
        else:
            #request type was "GET"
            revision_form = forms.RevisionForm(question, latest_revision)
            form = forms.EditQuestionForm(
                                    question = question,
                                    revision = latest_revision,
                                    user = request.user
                                )

        data = {
            'page_class': 'edit-question-page',
            'active_tab': 'questions',
            'question': question,
            'revision_form': revision_form,
            'form' : form,
            'tags' : _get_tags_cache_json()
        }
        return render_into_skin('question_edit.html', data, request)

    except exceptions.PermissionDenied, e:
        request.user.message_set.create(message = unicode(e))
        return HttpResponseRedirect(question.get_absolute_url())