From 27792fefc38edc74e8268a9f61231db19c877d9a Mon Sep 17 00:00:00 2001 From: Zambom Date: Tue, 4 Oct 2016 23:06:34 -0300 Subject: [PATCH] Adding post and answer post forms (Post functionality too ) [Issue: #86] --- forum/static/js/forum.js | 62 +++++++++++++++++++++++++++++++------------------------------- forum/templates/forum/forum_view.html | 40 +++++++++++++++++++++++++++++++++++++++- forum/urls.py | 2 +- forum/views.py | 3 +++ 4 files changed, 74 insertions(+), 33 deletions(-) diff --git a/forum/static/js/forum.js b/forum/static/js/forum.js index 319b41a..2d5515a 100644 --- a/forum/static/js/forum.js +++ b/forum/static/js/forum.js @@ -1,3 +1,8 @@ +/* +* +* Function to get a cookie stored on browser +* +*/ function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie !== '') { @@ -16,6 +21,31 @@ function getCookie(name) { /* * +* Defining action of the form to make a post in forum +* +*/ +$(document).ready(function (){ + var frm = $('#form_post'); + frm.submit(function () { + $.ajax({ + type: frm.attr('method'), + url: frm.attr('action'), + data: frm.serialize(), + success: function (data) { + $("#posts_list").append(data); + frm[0].reset(); + }, + error: function(data) { + console.log(frm.serialize()); + console.log('Error'); + } + }); + return false; + }); +}); + +/* +* * Function to load create forum's form and set the submit function * */ @@ -59,39 +89,9 @@ function createForum(url, topic) { /* * -* Function to load forum to modal +* Function to delete a forum * */ -function showForum(url, forum_id) { - $.ajax({ - url: url, - data: {'forum_id': forum_id}, - success: function(data) { - $(".forum_topics").html(data); - - var frm = $('#form_post'); - frm.submit(function () { - $.ajax({ - type: frm.attr('method'), - url: frm.attr('action'), - data: frm.serialize(), - success: function (data) { - $("#posts_list").append(data); - frm[0].reset(); - }, - error: function(data) { - console.log(frm.serialize()); - console.log('Error'); - } - }); - return false; - }); - } - }); - - $('#forumModal').modal(); -} - function delete_forum(url, forum, message) { alertify.confirm(message, function(){ var csrftoken = getCookie('csrftoken'); diff --git a/forum/templates/forum/forum_view.html b/forum/templates/forum/forum_view.html index 7f8b8d5..d41245f 100644 --- a/forum/templates/forum/forum_view.html +++ b/forum/templates/forum/forum_view.html @@ -59,7 +59,45 @@

{% trans 'Opened in' %}: {{ forum.create_date }}

- +
+
+
+ {% csrf_token %} + {% for field in form %} + {% if field.field.widget.input_type == 'hidden' %} + {% render_field field class='form-control' value=forum.id %} + {% else %} +
+
+ {% render_field field class='form-control' placeholder="Post a message" %} + {{ field.help_text }} + {% if field.errors %} +
+
+ +
+ {% endif %} + + + +
+
+ {% endif %} + {% endfor %} +
+
+
{% list_posts request forum %}
diff --git a/forum/urls.py b/forum/urls.py index 0131c56..89e2f57 100644 --- a/forum/urls.py +++ b/forum/urls.py @@ -5,7 +5,6 @@ from . import views urlpatterns = [ url(r'^$', views.ForumIndex.as_view(), name='index'), - url(r'^(?P[\w_-]+)/$', views.ForumDetailView.as_view(), name='view'), url(r'^create/$', views.CreateForumView.as_view(), name='create'), url(r'^delete/(?P[\w_-]+)/$', views.ForumDeleteView.as_view(), name='delete'), url(r'^render_forum/([\w_-]+)/$', views.render_forum, name='render_forum'), @@ -17,4 +16,5 @@ urlpatterns = [ url(r'^post_deleted/$', views.post_deleted, name='deleted_post'), url(r'^post_answers/$', views.PostAnswerIndex.as_view(), name='post_answers'), url(r'^reply_post/$', views.CreatePostAnswerView.as_view(), name='reply_post'), + url(r'^(?P[\w_-]+)/$', views.ForumDetailView.as_view(), name='view'), ] diff --git a/forum/views.py b/forum/views.py index ddf08e3..c33dd1d 100644 --- a/forum/views.py +++ b/forum/views.py @@ -74,6 +74,7 @@ class ForumDetailView(LoginRequiredMixin, generic.DetailView): context = super(ForumDetailView, self).get_context_data(**kwargs) forum = get_object_or_404(Forum, slug = self.kwargs.get('slug')) + context['form'] = PostForm() context['forum'] = forum context['title'] = forum.name @@ -145,6 +146,8 @@ class PostAnswerIndex(LoginRequiredMixin, generic.ListView): return context class CreatePostAnswerView(LoginRequiredMixin, generic.edit.CreateView): + login_url = reverse_lazy("core:home") + redirect_field_name = 'next' template_name = 'post_answers/post_answer_form.html' form_class = PostAnswerForm -- libgit2 0.21.2