Exemplo n.º 1
0
def create(request: HttpRequest):
    """
    Create the question endpoint.

    Request content:
    {"subject": "My Subject", "body": "Text of my question", "user_id": 1}
    """
    if not request.user.is_authenticated:
        return HttpResponseForbidden(json.dumps(
            {'message': 'User must be authenticated'}),
                                     content_type='application/json')
    data = json.loads(request.body.decode('utf-8'))
    question = Question()
    if 'subject' in data:
        question.subject = data['subject']
    if 'body' in data:
        question.body = encrypt(data['body'], settings.TEXT_SECRET_CODE)
    question.user_id = request.user.id
    question.status = Question.TO_BE_APPROVED
    question.save()
    return HttpResponse(json.dumps({
        'subject':
        question.subject,
        'body':
        decrypt(question.body, settings.TEXT_SECRET_CODE),
        'user__first_name':
        request.user.first_name,
        'user__last_name':
        request.user.last_name,
        'answers': [],
        'id':
        question.id
    }),
                        content_type='application/json')
Exemplo n.º 2
0
def add_question(request):
    group_id = request.POST.get('group_id', False);
    #attempt to create question using parameters from POST
    try:
        q = Question(
            question_text=request.POST['question'], 
			body = request.POST['body'],
			pub_date=timezone.now(),
			user=request.user,
			subject=request.POST['subject']
            )
        if group_id:
            q.group = Group.objects.get(pk=group_id)
    except(KeyError, Question.DoesNotExist):
        return render(request, 'forum/index', {'error_message': "Question must not be empty!"})
    else:
	#allow for insertion of HTML in questions
        q.body = q.body.replace("\n", "<br/>")
        q.body = q.body.replace(" ", "&nbsp;")
        q.save()
        if group_id:
            return HttpResponseRedirect(reverse('groups:detail', args=(group_id)))
        return HttpResponseRedirect(reverse('forum:index'))