def new_thread(request, course_slug=None, document_id=None): if document_id is not None: document = get_object_or_404(Document, id=document_id) course = document.course else: course = get_object_or_404(Course, slug=course_slug) document = None if request.method == "POST": form = NewThreadForm(request.POST) if form.is_valid(): name = form.cleaned_data["name"] content = form.cleaned_data["content"] thread = Thread.objects.create(user=request.user, name=name, course=course, document=document) message = Message.objects.create(user=request.user, thread=thread, text=content) placement = {} for opt, typecast in Thread.PLACEMENT_OPTS.items(): if opt in request.POST: placement[opt] = typecast(request.POST[opt]) if len(placement) > 0: thread.placement = json.dumps(placement) thread.save() actions.follow(request.user, thread, actor_only=False) action.send(request.user, verb="a posté", action_object=thread, target=course, markdown=message.text) return HttpResponseRedirect(reverse("thread_show", args=[thread.id]) + "#message-" + str(message.id)) else: form = NewThreadForm() return render(request, "telepathy/new_thread.html", {"form": form, "course": course})
def new_thread(request, parent_id): parentNode = get_object_or_404(Node, id=parent_id) if request.method == 'POST': form = NewThreadForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] content = form.cleaned_data['content'] year = "{}-{}".format(current_year(), current_year() + 1) thread = Thread.objects.create(user=request.user, name=name, year=year) message = Message.objects.create(user=request.user, thread=thread, text=content) parentNode.add_child(thread) placement = {} for opt,typecast in Thread.PLACEMENT_OPTS.iteritems(): if opt in request.POST: placement[opt] = typecast(request.POST[opt]) if len(placement) > 0: thread.placement = json.dumps(placement) thread.save() if request.user.auto_follow: request.user.follow.add(thread) return HttpResponseRedirect(reverse('thread_show', args=[thread.id]) + "#message-" + str(message.id)) else: form = NewThreadForm() return render(request, 'new_thread.html', { 'form': form, 'parent': parentNode, })
def new_thread(request): form = NewThreadForm(request.POST) if form.is_valid(): name = escape(form.cleaned_data['name']) content = escape(form.cleaned_data['content']) parentNode = get_object_or_404(Node, id=form.cleaned_data['parentNode']) thread = Thread.objects.create(user=request.user.get_profile(), name=name) message = Message.objects.create(user=request.user.get_profile(), thread=thread, text=content) parentNode.add_child(thread) return HttpResponseRedirect(reverse('thread_show', args=[thread.id])) return HttpResponse('form invalid', 'text/html')
def new_thread(request, group_slug=None, document_id=None): if document_id is not None: document = get_object_or_404(Document, id=document_id) group = document.group else: group = get_object_or_404(Group, slug=group_slug) document = None if request.method == 'POST': form = NewThreadForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] content = form.cleaned_data['content'] thread = Thread.objects.create(user=request.user, name=name, group=group, document=document) message = Message.objects.create(user=request.user, thread=thread, text=content) placement = {} for opt, typecast in Thread.PLACEMENT_OPTS.items(): if opt in request.POST: placement[opt] = typecast(request.POST[opt]) if len(placement) > 0: thread.placement = json.dumps(placement) thread.save() actions.follow(request.user, thread, actor_only=False) action.send(request.user, verb="a posté", action_object=thread, target=group, markdown=message.text) return HttpResponseRedirect( reverse('thread_show', args=[thread.id]) + "#message-" + str(message.id)) else: form = NewThreadForm() return render(request, 'telepathy/new_thread.html', { 'form': form, 'group': group, })
def new_thread(request, parent_id): parentNode = get_object_or_404(Node, id=parent_id) if request.method == 'POST': form = NewThreadForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] content = form.cleaned_data['content'] year = "{}-{}".format(current_year(), current_year() + 1) thread = Thread.objects.create(user=request.user, name=name, year=year) message = Message.objects.create(user=request.user, thread=thread, text=content) parentNode.add_child(thread) placement = {} for opt, typecast in Thread.PLACEMENT_OPTS.iteritems(): if opt in request.POST: placement[opt] = typecast(request.POST[opt]) if len(placement) > 0: thread.placement = json.dumps(placement) thread.save() if request.user.auto_follow: request.user.follow.add(thread) return HttpResponseRedirect( reverse('thread_show', args=[thread.id]) + "#message-" + str(message.id)) else: form = NewThreadForm() return render(request, 'new_thread.html', { 'form': form, 'parent': parentNode, })
def document_show(request, pk): document = get_object_or_404(Document, pk=pk) if document.state != "DONE": return HttpResponseRedirect(reverse('group_show', args=(document.group.slug,))) context = { "document": document, "form": NewThreadForm(), } document.views = F('views') + 1 document.save(update_fields=['views']) return render(request, "documents/viewer.html", context)
def show_course(request, slug): if re.search(r'^\d+$', slug): course = get_object_or_404(Course, pk=slug) else: course = get_object_or_404(Course, slug=slug) course.thread_set, course.document_set = [], [] for child in course.children(): if type(child) == Thread: course.thread_set.append(child) elif type(child) == Document: course.document_set.append(child) #Thread.objects.filter(referer_content="course", referer_id=course.id) return render( request, "course.html", { "object": course, "upload_form": UploadFileForm(initial={"course": course}), "newthread_form": NewThreadForm(initial={"parentNode": course.id}) })
def document_show(request, id): document = get_object_or_404(Document, id=id) threads = filter(lambda x: x.get_real_instance_class() == Thread, document.children()) threads = map(lambda x: x.id, threads) threads = Thread.objects.filter(id__in=threads).annotate( Count('message')).select_related('user').prefetch_related('keywords') context = { "object": document, "parent": document.parent, "is_moderator": request.user.is_moderator(document.parent), "page_set": document.page_set.order_by('numero'), "form": NewThreadForm(), "threads": threads } document.views = F('views') + 1 document.save(update_fields=['views']) return render(request, "viewer.html", context)