コード例 #1
0
ファイル: views.py プロジェクト: Averroes/aemanager
def topic_create(request):
    if request.method == 'POST':
        topicForm = TopicForm(request.POST, prefix="topic")
        messageForm = MessageForm(request.POST, prefix="message")
        if topicForm.is_valid() and messageForm.is_valid():
            topic = topicForm.save(commit=False)
            topic.author = request.user
            topic.creation_date = datetime.datetime.now()
            topic.save()
            message = messageForm.save(commit=False)
            message.author = request.user
            message.creation_date = datetime.datetime.now()
            message.topic = topic
            message.save()

            domain = Site.objects.get_current().domain
            mail_subject = _('A new topic has been posted')
            mail_message = _('%(topic)s : %(topic_url)s') % {'topic': topic.title,
                                                             'topic_url': 'https://%s%s' % (domain, reverse('topic_detail', kwargs={'id': topic.id}))}
            mail_admins(mail_subject, mail_message, fail_silently=(not settings.DEBUG))

            messages.success(request, _('The topic has been saved successfully'))
            return redirect(reverse('topic_detail', kwargs={'id': topic.id}))
        else:
            messages.error(request, _('Data provided are invalid'))
    else:
        topicForm = TopicForm(prefix="topic")
        messageForm = MessageForm(prefix="message")

    return render_to_response('topic/create.html',
                              {'active': 'help',
                               'title': _('New topic'),
                               'topicForm': topicForm,
                               'messageForm': messageForm},
                               context_instance=RequestContext(request))
コード例 #2
0
    def post(self, request, topic_id, *args, **kwargs):
        message_form = MessageForm(request.POST)
        topic = get_object_or_404(Topic, pk=topic_id)
        section = topic.section
        messages = topic.message_set.all()
        if message_form.is_valid():
            message_form.instance.user = request.user
            message_form.instance.topic = topic
            message_form.save()

        return render(request, 'forum/topic.html',
                      {'section': section, 'topic': topic, 'messages': messages,
                       'message_form': message_form})
コード例 #3
0
ファイル: views.py プロジェクト: Averroes/aemanager
def topic_detail(request, id):
    topic = get_object_or_404(Topic, pk=id)
    topic.views += 1
    topic.save()
    title = unicode(topic)

    message_list = topic.messages.all()

    paginator = Paginator(message_list, 25)

    # Make sure page request is an int. If not, deliver first page.
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1

    # If page request (9999) is out of range, deliver last page of results.
    try:
        answers = paginator.page(page)
    except (EmptyPage, InvalidPage):
        answers = paginator.page(paginator.num_pages)


    if request.method == 'POST':
        messageForm = MessageForm(request.POST, prefix="message")
        if messageForm.is_valid():
            message = messageForm.save(commit=False)
            message.author = request.user
            message.creation_date = datetime.datetime.now()
            message.topic = topic
            message.save()

            MessageNotification.objects.filter(message__topic=topic).delete()
            MessageNotification.objects.create(message=message)

            messages.success(request, _('The message has been saved successfully'))
            return redirect("%s?page=-1#last" % (reverse('topic_detail', kwargs={'id': topic.id})))
        else:
            messages.error(request, _('Data provided are invalid'))
    else:
        messageForm = MessageForm(prefix="message")

    return render_to_response('topic/detail.html',
                              {'active': 'help',
                               'title': title,
                               'topic': topic,
                               'answers': answers,
                               'messageForm': messageForm},
                               context_instance=RequestContext(request))
コード例 #4
0
    def post(self, request, topic_id, *args, **kwargs):
        message_form = MessageForm(request.POST)
        topic = get_object_or_404(Topic, pk=topic_id)
        section = topic.section
        messages = topic.message_set.all()
        if message_form.is_valid():
            message_form.instance.user = request.user
            message_form.instance.topic = topic
            message_form.save()

        return render(
            request, 'forum/topic.html', {
                'section': section,
                'topic': topic,
                'messages': messages,
                'message_form': message_form
            })
コード例 #5
0
 def get(self, request, topic_id, *args, **kwargs):
     topic = get_object_or_404(Topic, pk=topic_id)
     section = topic.section
     messages = topic.message_set.all()
     message_form = MessageForm(initial={'topic': topic})
     return render(
         request, 'forum/topic.html', {
             'section': section,
             'topic': topic,
             'messages': messages,
             'message_form': message_form
         })
コード例 #6
0
ファイル: views.py プロジェクト: firesalp/aemanager
def topic_detail(request, id):
    topic = get_object_or_404(Topic, pk=id)
    topic.views += 1
    topic.save()
    title = unicode(topic)

    message_list = topic.messages.all()

    paginator = Paginator(message_list, 25)

    # Make sure page request is an int. If not, deliver first page.
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1

    # If page request (9999) is out of range, deliver last page of results.
    try:
        answers = paginator.page(page)
    except (EmptyPage, InvalidPage):
        answers = paginator.page(paginator.num_pages)

    if request.method == 'POST':
        messageForm = MessageForm(request.POST, prefix="message")
        if messageForm.is_valid():
            message = messageForm.save(commit=False)
            message.author = request.user
            message.creation_date = datetime.datetime.now()
            message.topic = topic
            message.save()

            MessageNotification.objects.filter(message__topic=topic).delete()
            MessageNotification.objects.create(message=message)

            messages.success(request,
                             _('The message has been saved successfully'))
            return redirect("%s?page=-1#last" %
                            (reverse('topic_detail', kwargs={'id': topic.id})))
        else:
            messages.error(request, _('Data provided are invalid'))
    else:
        messageForm = MessageForm(prefix="message")

    return render_to_response('topic/detail.html', {
        'active': 'help',
        'title': title,
        'topic': topic,
        'answers': answers,
        'messageForm': messageForm
    },
                              context_instance=RequestContext(request))
コード例 #7
0
ファイル: views.py プロジェクト: firesalp/aemanager
def topic_create(request):
    if request.method == 'POST':
        topicForm = TopicForm(request.POST, prefix="topic")
        messageForm = MessageForm(request.POST, prefix="message")
        if topicForm.is_valid() and messageForm.is_valid():
            topic = topicForm.save(commit=False)
            topic.author = request.user
            topic.creation_date = datetime.datetime.now()
            topic.save()
            message = messageForm.save(commit=False)
            message.author = request.user
            message.creation_date = datetime.datetime.now()
            message.topic = topic
            message.save()

            domain = Site.objects.get_current().domain
            mail_subject = _('A new topic has been posted')
            mail_message = _('%(topic)s : %(topic_url)s') % {
                'topic':
                topic.title,
                'topic_url':
                'https://%s%s' %
                (domain, reverse('topic_detail', kwargs={'id': topic.id}))
            }
            mail_admins(mail_subject,
                        mail_message,
                        fail_silently=(not settings.DEBUG))

            messages.success(request,
                             _('The topic has been saved successfully'))
            return redirect(reverse('topic_detail', kwargs={'id': topic.id}))
        else:
            messages.error(request, _('Data provided are invalid'))
    else:
        topicForm = TopicForm(prefix="topic")
        messageForm = MessageForm(prefix="message")

    return render_to_response('topic/create.html', {
        'active': 'help',
        'title': _('New topic'),
        'topicForm': topicForm,
        'messageForm': messageForm
    },
                              context_instance=RequestContext(request))
コード例 #8
0
 def get_comment_form(self):
     from forum.forms import MessageForm
     return MessageForm(initial={'parent': self.id})