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')
def create_question(request): if request.method == 'POST': form = CreateQuestion(request.POST) if form.is_valid(): cd = form.cleaned_data question = cd['question'] tags = cd['tags'] question_tlt = cd['question_title'] q = Question(question_text=question, question_title=question_tlt, pub_date=timezone.now(), creator=request.user, tags_list=tags) q.save() for t in tags.split(','): if len(t) > 0: try: print "Text : " + t print len(t) my_tag = Tags.objects.get(tag_text=t) except (KeyError, Tags.DoesNotExist): tag_create = Tags(tag_text=t) tag_create.save() q.tags.add(tag_create) else: q.tags.add(my_tag) return HttpResponseRedirect('/forum/') else: form = CreateQuestion() return render(request, 'forum/create_question.html', {'form': form})
def test_question_form(user): from forum.forms import QuestionForm from forum.models import Question instance = Question() instance.course = mommy.make('Course', slug='dbsql') instance.user = user data = { 'title': 'Test Title', 'text': 'asljf asdfhuas dfasdflashfdlusafdlsafdlsa filasdflisalfdiayslfdnsalfdyaslifd', } form = QuestionForm(instance=instance, data=data) assert form.is_valid() is True, form.errors form.save() assert Question.objects.filter(slug='test-title').exists() data = { 'title': '', 'text': 'asljf asdfhuas dfasdflashfdlusafdlsafdlsa filasdflisalfdiayslfdnsalfdyaslifd', } form = QuestionForm(data=data) assert form.is_valid() is False data = { 'title': 'Test Title', 'text': '', } form = QuestionForm(data=data) assert form.is_valid() is False
def process_data(self, **data): processed_data = self.create_revision_data(True, **data) if 'added_at' in data: processed_data['added_at'] = data['added_at'] question = Question(author=self.user, **processed_data) question.save() self.node = question
def post(self, request, **kwargs): form = AskQuestionForm(data=request.POST, instance=Question(author=request.user)) if form.is_valid(): question = form.save() return redirect('forum:question', question_id=question.id) kwargs['form'] = form return super().get(request, **kwargs)
def process_data(self, **data): processed_data = self.create_revision_data(True, **data) if 'added_at' in data: processed_data['added_at'] = data['added_at'] question = Question(author=self.user, **processed_data) question.save() self.node = question messages.info(REQUEST_HOLDER.request, self.describe(self.user))
def add_question(request, course_id): if request.method == 'POST': question_title = request.POST['question_title'] question_content = request.POST['question_content'] new_question = Question(title=question_title, content=question_content, course=Course.objects.get(id=course_id), user=request.user, time=datetime.datetime.now()) new_question.save() return HttpResponseRedirect("/course/" + str(course_id))
def post(self, request, *args, **kwargs): new_question = Question() course = get_object_or_404(Course, slug=self.kwargs['course_slug']) new_question.course = course new_question.user = request.user form = QuestionForm(instance=new_question, **self.get_form_kwargs()) if form.is_valid(): form.save() self.success_url = reverse_lazy('forum_question', kwargs={'slug': new_question.slug}) return self.form_valid(form) else: return self.form_invalid(form)
def post_question(request): if not request.user.is_authenticated: return redirect("/login/") if request.method=="POST": text = request.POST.get('editordata') cat = request.POST.get('category') question = Question(question = text, category = cat, author=request.user) mp.track(request.user.username, 'New question', {"Link":"http://127.0.0.1:8000/", "Question": f"{question.question}"}) question.save() return redirect("/discussion/") question = Question.objects.all().order_by('-datetime') return render(request, "forum/discussion.html", {"question" : question})
def process_data(self, **data): processed_data = self.create_revision_data(True, **data) if 'added_at' in data: processed_data['added_at'] = data['added_at'] question = Question(author=self.user, **processed_data) question.save() #BEGIN #Linking OSQA node with Magnate zinnia entry from zinnia.models.entry import Entry try: entry_id = int(data['entry_id']) # not processed_data question.about_entries.create(entry=Entry.objects.get(pk=entry_id)) except (KeyError, ValueError, Entry.DoesNotExist) as e: pass #END self.node = question messages.info(REQUEST_HOLDER.request, self.describe(self.user))
def process_data(self, **data): processed_data = self.create_revision_data(True, **data) if 'added_at' in data: processed_data['added_at'] = data['added_at'] question = Question(author=self.user, **processed_data) question.save() if 'invites' in data: question.invites = data['invites'].strip() for inviter_name in question.invites.split(): try: inviter = User.objects.get(username=inviter_name) except User.DoesNotExist: if isidvalid(inviter_name): inviter = User(username=userid, email=(userid+ u'@synopsys.com'), real_name=userid, email_isvalid=True) inviter.save() else: continue question.whitelist.add(inviter) self.node = question messages.info(REQUEST_HOLDER.request, self.describe(self.user))