Example #1
0
def show_all_questions(request):
    """Show a list of all the questions currently in the databse."""

    user = request.user
    ci = RequestContext(request)
    context = {}
    if not is_moderator(user):
        raise Http404("You are not allowed to view this page !")

    if request.method == 'POST':
        if request.POST.get('delete') == 'delete':
            data = request.POST.getlist('question')
            if data is not None:
                question = Question.objects.filter(id__in=data, user_id=user.id).delete()

        if request.POST.get('upload') == 'upload':
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                questions_file = request.FILES['file']
                if questions_file.name.split('.')[-1] == "json":
                    questions_list = questions_file.read()
                    question = Question()
                    question.load_from_json(questions_list, user)
                else:
                    message = "Please Upload a JSON file"
                    context['message'] = message

        if request.POST.get('download') == 'download':
            question_ids = request.POST.getlist('question')
            if question_ids:
                question = Question()
                questions = question.dump_into_json(question_ids, user)
                response = HttpResponse(questions, content_type='text/json')
                response['Content-Disposition'] = 'attachment; filename=\
                                            "{0}_questions.json"'.format(user)
                return response
            else:
                msg = "Please select atleast one question"
                context['msg'] = msg

    questions = Question.objects.filter(user_id=user.id)
    form = QuestionFilterForm(user=user)
    upload_form = UploadFileForm()
    context['papers'] = []
    context['question'] = None
    context['questions'] = questions
    context['form'] = form
    context['upload_form'] = upload_form
    return my_render_to_response('yaksh/showquestions.html', context,
                                 context_instance=ci)