Add primary comment support
This commit is contained in:
		
							
								
								
									
										5
									
								
								forms.py
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								forms.py
									
									
									
									
									
								
							| @@ -23,3 +23,8 @@ class UserForm(ModelForm): | |||||||
|     class Meta: |     class Meta: | ||||||
|         model = User |         model = User | ||||||
|         exclude = ('is_staff', 'is_active', 'last_login', 'last_joined', 'user_permissions', 'groups', 'date_joined') |         exclude = ('is_staff', 'is_active', 'last_login', 'last_joined', 'user_permissions', 'groups', 'date_joined') | ||||||
|  |  | ||||||
|  | class CommentForm(ModelForm): | ||||||
|  |     class Meta: | ||||||
|  |         model = Comment | ||||||
|  |         exclude = ('post', 'parent', 'date') | ||||||
|   | |||||||
| @@ -42,9 +42,7 @@ class Post(Index): | |||||||
|                 node.removeChild(node.childNodes[0]) |                 node.removeChild(node.childNodes[0]) | ||||||
|             node.appendChild(dom.createTextNode(post.title)) |             node.appendChild(dom.createTextNode(post.title)) | ||||||
|  |  | ||||||
|     def generate(self, blog, src, output): |     def generate(self, blog, src, output, posts): | ||||||
|         from dynastie.models import Post, Blog |  | ||||||
|  |  | ||||||
|         hooks = {'post' : self._createPost, |         hooks = {'post' : self._createPost, | ||||||
|                  'meta' : self.createMetas} |                  'meta' : self.createMetas} | ||||||
|  |  | ||||||
| @@ -52,16 +50,14 @@ class Post(Index): | |||||||
|             self.addError('No _post.html found, exiting') |             self.addError('No _post.html found, exiting') | ||||||
|             return self.report |             return self.report | ||||||
|  |  | ||||||
|  |         if not os.path.exists(output + '/post'): | ||||||
|  |             os.mkdir(output + '/post') | ||||||
|  |  | ||||||
|         try: |         try: | ||||||
|             dom = parse(src + '/_post.html') |             dom = parse(src + '/_post.html') | ||||||
|         except xml.dom.DOMException as e: |         except xml.dom.DOMException as e: | ||||||
|             self.addError('Error parsing _post.html : ' + e) |             self.addError('Error parsing _post.html : ' + e) | ||||||
|             return self.report |             return self.report | ||||||
|              |  | ||||||
|         if not os.path.exists(output + '/post'): |  | ||||||
|             os.mkdir(output + '/post') |  | ||||||
|  |  | ||||||
|         posts = Post.objects.all() |  | ||||||
|  |  | ||||||
|         for post in posts: |         for post in posts: | ||||||
|             #print 'Generate ' + filename |             #print 'Generate ' + filename | ||||||
| @@ -80,6 +76,13 @@ class Post(Index): | |||||||
|  |  | ||||||
|         return self.report |         return self.report | ||||||
|  |  | ||||||
|  |     def generate(self, blog, src, output): | ||||||
|  |         from dynastie.models import Post, Blog | ||||||
|  |  | ||||||
|  |         posts = Post.objects.all() | ||||||
|  |  | ||||||
|  |         return self.generate(blog, src, output, hooks, dom, posts) | ||||||
|  |  | ||||||
|     def createPreview(self, values, dom, root, node): |     def createPreview(self, values, dom, root, node): | ||||||
|         now = datetime.datetime.now() |         now = datetime.datetime.now() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -257,8 +257,8 @@ class Post(models.Model): | |||||||
|  |  | ||||||
| class Comment(models.Model): | class Comment(models.Model): | ||||||
|     post = models.ForeignKey(Post) |     post = models.ForeignKey(Post) | ||||||
|     parent = models.ForeignKey('Comment') |     parent = models.ForeignKey('self', null=True) | ||||||
|     date = models.DateField(max_length=255) |     date = models.DateTimeField(max_length=255) | ||||||
|     author = models.CharField(max_length=255) |     author = models.CharField(max_length=255) | ||||||
|     email = models.EmailField(max_length=255) |     email = models.EmailField(max_length=255) | ||||||
|     the_comment = models.TextField(max_length=255) |     the_comment = models.TextField(max_length=255) | ||||||
|   | |||||||
| @@ -5,9 +5,11 @@ | |||||||
| {% if categories|length == 0 %} | {% if categories|length == 0 %} | ||||||
| <b>Any category available</b><br/><br/> | <b>Any category available</b><br/><br/> | ||||||
| {% else %} | {% else %} | ||||||
|  | <table> | ||||||
| {% for category in categories %} | {% for category in categories %} | ||||||
|     <hr><hl>{{ category.id }}</hl><hl>{{ category.name }}</hl><hl><a href="/category/edit/{{ category.id }}">Edit</a></hl>{% if user.is_superuser %}<hl><a href="/category/delete/{{ category.id }}">Delete</a></hl>{% endif %}</hr> |     <tr><td>{{ category.id }}</td><td>{{ category.name }}</td><td><a href="/category/edit/{{ category.id }}">Edit</a></td>{% if user.is_superuser %}<td><a href="/category/delete/{{ category.id }}">Delete</a></td>{% endif %}</tr> | ||||||
| {% endfor %} | {% endfor %} | ||||||
|  | </table> | ||||||
| {% endif %} | {% endif %} | ||||||
| {% if user.is_superuser %} | {% if user.is_superuser %} | ||||||
|     <li><a href="/category/add">Add a category</a></li> |     <li><a href="/category/add">Add a category</a></li> | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								templates/edit_comment.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								templates/edit_comment.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | {% extends "templates/base.html" %} | ||||||
|  |  | ||||||
|  | {% block content %} | ||||||
|  | <form action="/comment/edit/{{ comment.id }}" method="post"> | ||||||
|  | {% csrf_token %} | ||||||
|  | {{ form.as_p }} | ||||||
|  | <input type="submit" name="edit" value="Edit" /><input type="submit" name="cancel" value="Cancel" /> | ||||||
|  | </form> | ||||||
|  | {% endblock %} | ||||||
| @@ -14,4 +14,20 @@ | |||||||
|   <textarea name="content" class="mceAdvanced">{{ content }}</textarea> |   <textarea name="content" class="mceAdvanced">{{ content }}</textarea> | ||||||
| <input type="submit" name="edit" value="Edit" /><input type="button" name="preview" value="Preview" onClick="previewPost();"/><input type="submit" name="cancel" value="Cancel" /> | <input type="submit" name="edit" value="Edit" /><input type="button" name="preview" value="Preview" onClick="previewPost();"/><input type="submit" name="cancel" value="Cancel" /> | ||||||
| </form> | </form> | ||||||
|  | <div class="comments"> | ||||||
|  | {% for comment_list in comments %} | ||||||
|  | {% for comment in comment_list %} | ||||||
|  |      <div class="comment"> | ||||||
|  |        <div class="infos"> | ||||||
|  | 	 <a href="/comment/edit/{{ comment.id }}">#{{ comment.id }}</a> <span class="author">{{ comment.author }}</span>  <span class="mail">{{ comment.email|default:"no mail" }}</span>  <span class="date">{{ comment.date|date:"D d M Y" }}<span> <a href="/comment/delete/{{ comment.id }}">delete</a> | ||||||
|  |        </div> | ||||||
|  |        <div class="content"> | ||||||
|  | 	 {{ comment.the_comment }} | ||||||
|  |        </div> | ||||||
|  | {% endfor %} | ||||||
|  | {% for comment in comment_list %} | ||||||
|  |        </div> | ||||||
|  | {% endfor %} | ||||||
|  | </div> | ||||||
|  | {% endfor %}  | ||||||
| {% endblock %} | {% endblock %} | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ | |||||||
| {% else %} | {% else %} | ||||||
| <table> | <table> | ||||||
| {% for post in posts %} | {% for post in posts %} | ||||||
|     <tr><td><a href="/post/edit/{{ post.id }}">{{ post.id }}</a></td><td>{{ post.title }}</td><td>{{ post.category.name }}</td><td>{{ post.creation_date }}</td><td>{{ post.modification_date }}</td><td>{{ post.published }}</td><td>{{ post.front_page }}</td><td><a href="/post/delete/{{ post.id }}">Delete</a></td></tr> |     <tr><td><a href="/post/edit/{{ post.id }}">{{ post.id }}</a></td><td>{{ post.title }}</td><td>{{ post.category.name }}</td><td>{{ post.creation_date }}</td><td>{{ post.modification_date }}</td><td>{{ post.published }}</td><td>{{ post.front_page }}</td><td>{{ comments|hash:cur_id|default_if_none:"0" }} comment{{ comments|hash:cur_id|pluralize }}</td><td><a href="/post/delete/{{ post.id }}">Delete</a></td></tr> | ||||||
| {% endfor %} | {% endfor %} | ||||||
| {% endif %} | {% endif %} | ||||||
| </table> | </table> | ||||||
|   | |||||||
| @@ -17,7 +17,9 @@ | |||||||
| {% else %} | {% else %} | ||||||
| <table> | <table> | ||||||
| {% for post in posts %} | {% for post in posts %} | ||||||
|     <tr><td><a href="/post/edit/{{ post.id }}">{{ post.id }}</a></td><td>{{ post.title }}</td><td>{{ post.category.name }}</td><td>{{ post.creation_date }}</td><td>{{ post.modification_date }}</td><td>{{ post.published }}</td><td>{{ post.front_page }}</td><td><a href="/post/delete/{{ post.id }}">Delete</a></td></tr> | {% with post.id as cur_id %} | ||||||
|  |     <tr><td><a href="/post/edit/{{ post.id }}">{{ post.id }}</a></td><td>{{ post.title }}</td><td>{{ post.category.name }}</td><td>{{ post.creation_date }}</td><td>{{ post.modification_date }}</td><td>{{ post.published }}</td><td>{{ post.front_page }}</td><td>{{ comments|hash:cur_id|default_if_none:"0" }} comment{{ comments|hash:cur_id|pluralize }}</td><td><a href="/post/delete/{{ post.id }}">Delete</a></td></tr> | ||||||
|  |     {% endwith %} | ||||||
| {% endfor %} | {% endfor %} | ||||||
| {% endif %} | {% endif %} | ||||||
| </table> | </table> | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								urls.py
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								urls.py
									
									
									
									
									
								
							| @@ -28,6 +28,9 @@ urlpatterns = patterns('', | |||||||
|     url(r'^preview/(\d+)$',       'dynastie.views.preview',      name='preview'), |     url(r'^preview/(\d+)$',       'dynastie.views.preview',      name='preview'), | ||||||
|     url(r'^tinyMCEExternalList/post/add/(\d+)$', 'dynastie.views.tinymcelist_add',  name='tinymce'), |     url(r'^tinyMCEExternalList/post/add/(\d+)$', 'dynastie.views.tinymcelist_add',  name='tinymce'), | ||||||
|     url(r'^tinyMCEExternalList/post/edit/(\d+)$', 'dynastie.views.tinymcelist_edit',  name='tinymce'), |     url(r'^tinyMCEExternalList/post/edit/(\d+)$', 'dynastie.views.tinymcelist_edit',  name='tinymce'), | ||||||
|  |     url(r'^comment/add/(\d+)/(\d+)$',   'dynastie.views.add_comment',   name='add_comment'), | ||||||
|  |     url(r'^comment/edit/(\d+)$',  'dynastie.views.edit_comment',  name='edit_comment'), | ||||||
|  |     url(r'^comment/delete/(\d+)$','dynastie.views.delete_comment',name='delete_comment'), | ||||||
|     # url(r'^dynastie/', include('dynastie.foo.urls')), |     # url(r'^dynastie/', include('dynastie.foo.urls')), | ||||||
|  |  | ||||||
|     # Uncomment the admin/doc line below to enable admin documentation: |     # Uncomment the admin/doc line below to enable admin documentation: | ||||||
|   | |||||||
							
								
								
									
										236
									
								
								views.py
									
									
									
									
									
								
							
							
						
						
									
										236
									
								
								views.py
									
									
									
									
									
								
							| @@ -4,10 +4,50 @@ from django.shortcuts import render | |||||||
| from django.contrib.auth import authenticate, login, logout | from django.contrib.auth import authenticate, login, logout | ||||||
| from django.http import HttpResponseRedirect, HttpResponse, Http404 | from django.http import HttpResponseRedirect, HttpResponse, Http404 | ||||||
| from django.contrib.auth.decorators import login_required | from django.contrib.auth.decorators import login_required | ||||||
|  | from django.views.decorators.csrf import csrf_exempt | ||||||
| from django.forms.models import inlineformset_factory | from django.forms.models import inlineformset_factory | ||||||
| from dynastie.models import * | from dynastie.models import * | ||||||
| from dynastie.forms import * | from dynastie.forms import * | ||||||
|  |  | ||||||
|  | from django.template.defaultfilters import register | ||||||
|  | from django.template import Variable, VariableDoesNotExist | ||||||
|  |  | ||||||
|  | @register.filter | ||||||
|  | def hash(object, attr): | ||||||
|  |     pseudo_context = { 'object' : object } | ||||||
|  |     try: | ||||||
|  |         value = Variable('object.%s' % attr).resolve(pseudo_context) | ||||||
|  |     except VariableDoesNotExist: | ||||||
|  |         value = None | ||||||
|  |     return value | ||||||
|  |  | ||||||
|  | def have_I_right(request, blog_id=None, post_id=None): | ||||||
|  |     b = None | ||||||
|  |     p = None | ||||||
|  |  | ||||||
|  |     if not post_id is None: | ||||||
|  |         p = Post.objects.filter(pk=post_id) | ||||||
|  |          | ||||||
|  |         if p is None: | ||||||
|  |             raise Http404 | ||||||
|  |  | ||||||
|  |         p = p[0] | ||||||
|  |  | ||||||
|  |         blog_id = p.blog.id | ||||||
|  |  | ||||||
|  |     if not blog_id is None: | ||||||
|  |         if not request.user.is_superuser: | ||||||
|  |             b = Blog.objects.filter(pk=blog_id).filter(writers=request.user.id)[0] | ||||||
|  |         else: | ||||||
|  |             b = Blog.objects.get(pk=post.blog.id) | ||||||
|  |      | ||||||
|  |         if b is None: | ||||||
|  |             raise Http404 | ||||||
|  |  | ||||||
|  |         b = b | ||||||
|  |  | ||||||
|  |     return (b, p) | ||||||
|  |  | ||||||
| def index(request): | def index(request): | ||||||
|     if request.user.is_authenticated(): |     if request.user.is_authenticated(): | ||||||
|             return HttpResponseRedirect('/blog') |             return HttpResponseRedirect('/blog') | ||||||
| @@ -19,7 +59,11 @@ def index(request): | |||||||
|             login_failed = True |             login_failed = True | ||||||
|         else: |         else: | ||||||
|             login(request, user) |             login(request, user) | ||||||
|             return HttpResponseRedirect('/blog') |             print request.GET | ||||||
|  |             if 'next' in request.GET: | ||||||
|  |                 return HttpResponseRedirect(request.GET['next']) | ||||||
|  |             else: | ||||||
|  |                 return HttpResponseRedirect('/blog') | ||||||
|  |  | ||||||
|     c = {'auth_key': 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\ |     c = {'auth_key': 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\ | ||||||
|              'login_failed' : login_failed} |              'login_failed' : login_failed} | ||||||
| @@ -213,7 +257,15 @@ def view_blog(request, blog_id): | |||||||
|     b = Blog.objects.get(pk=blog_id) |     b = Blog.objects.get(pk=blog_id) | ||||||
|     form = BlogForm(instance=b) |     form = BlogForm(instance=b) | ||||||
|      |      | ||||||
|     c = {'blog' : b, 'posts' : posts, 'form' : form} |     comments = Comment.objects.all() | ||||||
|  |     dict_comments = {} | ||||||
|  |     for comment in comments: | ||||||
|  |         if not str(comment.post.id) in dict_comments: | ||||||
|  |             dict_comments[str(comment.post.id)] = 1 | ||||||
|  |         else: | ||||||
|  |             dict_comments[str(comment.post.id)] = dict_comments[comment.post.id] + 1 | ||||||
|  |  | ||||||
|  |     c = {'blog' : b, 'posts' : posts, 'form' : form, 'comments' : dict_comments} | ||||||
|  |  | ||||||
|     return render(request, 'templates/view_blog.html', c) |     return render(request, 'templates/view_blog.html', c) | ||||||
|  |  | ||||||
| @@ -249,10 +301,7 @@ def edit_blog(request, blog_id): | |||||||
| @login_required | @login_required | ||||||
| def add_post(request, blog_id): | def add_post(request, blog_id): | ||||||
|     if not request.user.is_superuser: |     if not request.user.is_superuser: | ||||||
|         b = Blog.objects.filter(id=blog_id).filter(writers=request.user.id)[0] |         (b,) = have_I_right(request, blog_id) | ||||||
|      |  | ||||||
|         if b is None: |  | ||||||
|             raise Http404 |  | ||||||
|  |  | ||||||
|     if request.method == 'POST': # If the form has been submitted... |     if request.method == 'POST': # If the form has been submitted... | ||||||
|         if 'add' in request.POST: |         if 'add' in request.POST: | ||||||
| @@ -277,22 +326,11 @@ def add_post(request, blog_id): | |||||||
|  |  | ||||||
| @login_required | @login_required | ||||||
| def edit_post(request, post_id): | def edit_post(request, post_id): | ||||||
|  |     (b, post) = have_I_right(request, None, post_id) | ||||||
|     post = Post.objects.get(pk=post_id) |     post = Post.objects.get(pk=post_id) | ||||||
|  |  | ||||||
|     if post is None: |  | ||||||
|         raise Http404 |  | ||||||
|  |  | ||||||
|     title = post.title |     title = post.title | ||||||
|  |     blog_id = b.id | ||||||
|     blog_id = post.blog.id |  | ||||||
|  |  | ||||||
|     if not request.user.is_superuser: |  | ||||||
|         b = Blog.objects.filter(pk=post.blog.id).filter(writers=request.user.id)[0] |  | ||||||
|      |  | ||||||
|         if b is None: |  | ||||||
|             raise Http404 |  | ||||||
|     else: |  | ||||||
|         b = Blog.objects.get(pk=post.blog.id) |  | ||||||
|  |  | ||||||
|     if request.method == 'POST': # If the form has been submitted... |     if request.method == 'POST': # If the form has been submitted... | ||||||
|         if 'edit' in request.POST: |         if 'edit' in request.POST: | ||||||
| @@ -321,24 +359,32 @@ def edit_post(request, post_id): | |||||||
|     else: |     else: | ||||||
|         content = 'Empty post' |         content = 'Empty post' | ||||||
|  |  | ||||||
|  |     comments = Comment.objects.filter(post=post).order_by('date') | ||||||
|  |  | ||||||
|  |     comment_list_list = [] | ||||||
|  |     for comment in comments: | ||||||
|  |         print comment.date | ||||||
|  |         try: | ||||||
|  |             if comment.parent.id is None: | ||||||
|  |                 comment_list_list.append([comment]) | ||||||
|  |             else: | ||||||
|  |                 for comment_list in comment_list_list: | ||||||
|  |                     if comment_list[0] == comment.parent: | ||||||
|  |                         comment_list[0].append(comment) | ||||||
|  |                         break | ||||||
|  |         except Comment.DoesNotExist: | ||||||
|  |             comment_list_list.append([comment]) | ||||||
|  |  | ||||||
|     return render(request, 'edit_post.html', { |     return render(request, 'edit_post.html', { | ||||||
|         'form': form, 'post_id' : post_id, 'content' : content, |         'form': form, 'post_id' : post_id, 'content' : content, | ||||||
|         'blog_id' : blog_id |         'blog_id' : blog_id, 'comments' : comment_list_list | ||||||
|     }) |     }) | ||||||
|  |  | ||||||
| @login_required | @login_required | ||||||
| def delete_post(request, post_id): | def delete_post(request, post_id): | ||||||
|     post = Post.objects.get(pk=post_id) |     (b, post) = have_I_right(request, None, post_id) | ||||||
|  |  | ||||||
|     if post is None: |     blog_id = b.id | ||||||
|         raise Http404 |  | ||||||
|  |  | ||||||
|     b = Blog.objects.filter(writers=request.user.id).filter(pk=post.blog.pk) |  | ||||||
|      |  | ||||||
|     if b is None: |  | ||||||
|         raise Http404 |  | ||||||
|  |  | ||||||
|     blog_id = post.blog.pk |  | ||||||
|  |  | ||||||
|     post.delete() |     post.delete() | ||||||
|  |  | ||||||
| @@ -346,13 +392,7 @@ def delete_post(request, post_id): | |||||||
|  |  | ||||||
| @login_required | @login_required | ||||||
| def generate(request, blog_id): | def generate(request, blog_id): | ||||||
|     if not request.user.is_superuser: |     (b, post) = have_I_right(request, blog_id) | ||||||
|         b = Blog.objects.filter(id=blog_id).filter(writers=request.user.id)[0] |  | ||||||
|     else: |  | ||||||
|         b = Blog.objects.get(pk=blog_id) |  | ||||||
|  |  | ||||||
|     if b is None: |  | ||||||
|         raise Http404 |  | ||||||
|  |  | ||||||
|     b.create_paths() |     b.create_paths() | ||||||
|     report = b.generate() |     report = b.generate() | ||||||
| @@ -374,13 +414,7 @@ def preview(request, blog_id): | |||||||
|               'content' : request.POST['content'] |               'content' : request.POST['content'] | ||||||
|               } |               } | ||||||
|  |  | ||||||
|     if not request.user.is_superuser: |     (b, ) = have_I_right(request, blog_id) | ||||||
|         b = Blog.objects.filter(id=blog_id).filter(writers=request.user.id)[0] |  | ||||||
|     else: |  | ||||||
|         b = Blog.objects.get(pk=blog_id) |  | ||||||
|  |  | ||||||
|     if b is None: |  | ||||||
|         raise Http404 |  | ||||||
|  |  | ||||||
|     b.create_paths() |     b.create_paths() | ||||||
|  |  | ||||||
| @@ -435,34 +469,122 @@ def _tinymcelist(request, b, year, month): | |||||||
|  |  | ||||||
| @login_required | @login_required | ||||||
| def tinymcelist_add(request, blog_id): | def tinymcelist_add(request, blog_id): | ||||||
|     from datetime import datetime |  | ||||||
|  |  | ||||||
|     now = datetime.now() |     now = datetime.now() | ||||||
|     year = now.year |     year = now.year | ||||||
|     month = now.month |     month = now.month | ||||||
|     b = Blog.objects.filter(pk=blog_id).filter(writers=request.user.id)[0] |  | ||||||
|     if b is None: |     try: | ||||||
|  |         (b, ) = have_I_right(request, blog_id) | ||||||
|  |     except Http404: | ||||||
|         return HttpResponse('', content_type='application/x-javascript') |         return HttpResponse('', content_type='application/x-javascript') | ||||||
|  |  | ||||||
|     ret = _tinymcelist(request, b, year, month) |     ret = _tinymcelist(request, b, year, month) | ||||||
|  |  | ||||||
|     print 'Ret1 ' + ret |  | ||||||
|  |  | ||||||
|     return HttpResponse(ret, content_type='application/x-javascript') |     return HttpResponse(ret, content_type='application/x-javascript') | ||||||
|  |  | ||||||
| @login_required | @login_required | ||||||
| def tinymcelist_edit(request, post_id): | def tinymcelist_edit(request, post_id): | ||||||
|     post = Post.objects.filter(pk=post_id) |     try: | ||||||
|     if post is None: |         (b, post) = have_I_right(request, None, post_id) | ||||||
|         return HttpResponse('', content_type='application/x-javascript') |     except Http404: | ||||||
|     b = Blog.objects.filter(pk=post.blog).filter(writers=request.user.id)[0] |  | ||||||
|     if b is None: |  | ||||||
|         return HttpResponse('', content_type='application/x-javascript') |         return HttpResponse('', content_type='application/x-javascript') | ||||||
|  |  | ||||||
|     year = post.creation_date.year() |     year = post.creation_date.year() | ||||||
|     month = post.creation_date.month() |     month = post.creation_date.month() | ||||||
|  |  | ||||||
|     ret = _tinymcelist(request, b, year, month) |     ret = _tinymcelist(request, b, year, month) | ||||||
|  |  | ||||||
|     print 'Ret2 ' + ret |  | ||||||
|  |  | ||||||
|     return HttpResponse(ret, content_type='application/x-javascript') |     return HttpResponse(ret, content_type='application/x-javascript') | ||||||
|  |  | ||||||
|  | @csrf_exempt | ||||||
|  | def add_comment(request, post_id, parent_id): | ||||||
|  |     from dynastie.generators import post | ||||||
|  |  | ||||||
|  |     ref = request.META['HTTP_REFERER'] | ||||||
|  |  | ||||||
|  |     post = Post(pk=post_id) | ||||||
|  |     if post is None: | ||||||
|  |         return HttpResponseRedirect(ref) | ||||||
|  |  | ||||||
|  |     blog = post.blog | ||||||
|  |  | ||||||
|  |     if parent_id != 0: | ||||||
|  |         parentComment = Comment(pk=parent_id) | ||||||
|  |         if parentComment is None: | ||||||
|  |             return HttpResponseRedirect(ref) | ||||||
|  |     else: | ||||||
|  |         parentComment = None | ||||||
|  |  | ||||||
|  |     if request.POST['author'] == '' or request.POST['the_comment'] == '': | ||||||
|  |         print 'Error on author or the_comment' | ||||||
|  |         return HttpResponseRedirect(ref) | ||||||
|  |  | ||||||
|  |     comment = Comment(post=post, parent=parentComment, date=datetime.now(), author=request.POST['author'],\ | ||||||
|  |                           email=request.POST['email'], the_comment=request.POST['the_comment']) | ||||||
|  |     comment.save() | ||||||
|  |  | ||||||
|  |     engine = globals()['post'] | ||||||
|  |     blog.create_paths() | ||||||
|  |  | ||||||
|  |     for name, obj in inspect.getmembers(engine): | ||||||
|  |         if inspect.isclass(obj) and obj.__module__.startswith("dynastie") \ | ||||||
|  |                 and obj.__module__.endswith("post"): | ||||||
|  |             e = obj() | ||||||
|  |             content = e.generate(blog, b.src_path, b.output_path, post) | ||||||
|  |             break | ||||||
|  |  | ||||||
|  |     # Send emails | ||||||
|  |  | ||||||
|  |     return HttpResponseRedirect(ref) | ||||||
|  |      | ||||||
|  |      | ||||||
|  |  | ||||||
|  | @login_required | ||||||
|  | def edit_comment(request, comment_id): | ||||||
|  |     comment = Comment(pk=comment_id) | ||||||
|  |     if comment is None: | ||||||
|  |         return Http404 | ||||||
|  |  | ||||||
|  |     (b, post) = have_I_right(request, None, comment.post.id) | ||||||
|  |     post_id = post.id | ||||||
|  |  | ||||||
|  |     if request.method == 'POST': # If the form has been submitted... | ||||||
|  |         if 'edit' in request.POST: | ||||||
|  |             form = UserForm(request.POST) # A form bound to the POST data | ||||||
|  |             if form.is_valid(): # All validation rules pass | ||||||
|  |                 form = form.save() | ||||||
|  |                 user = User.objects.get(pk=form.id) | ||||||
|  |                 user.set_password(request.POST['password']) | ||||||
|  |                 user.save() | ||||||
|  |             # Process the data in form.cleaned_data | ||||||
|  |             # ... | ||||||
|  |                 return HttpResponseRedirect('/post/edit/' + str(post_id)) | ||||||
|  |         else: | ||||||
|  |             return HttpResponseRedirect('/post/edit/' + str(post_id)) | ||||||
|  |          | ||||||
|  |     else: | ||||||
|  |         form = CommentForm() # An unbound form | ||||||
|  |  | ||||||
|  |     return render(request, 'edit_comment.html', { | ||||||
|  |         'form': form, 'comment':comment | ||||||
|  |     }) | ||||||
|  |  | ||||||
|  | @login_required | ||||||
|  | def delete_comment(request, comment_id): | ||||||
|  |     comment = Comment(pk=comment_id) | ||||||
|  |     if comment is None: | ||||||
|  |         return Http404 | ||||||
|  |  | ||||||
|  |     (b, post) = have_I_right(request, None, comment.post.id) | ||||||
|  |  | ||||||
|  |     post_id = post.id | ||||||
|  |  | ||||||
|  |     childs = Comment.objects.filter(parent=comment) | ||||||
|  |  | ||||||
|  |     for child in childs: | ||||||
|  |         child.parent = comment.parent | ||||||
|  |         child.save() | ||||||
|  |  | ||||||
|  |     comment.delete() | ||||||
|  |  | ||||||
|  |     return HttpResponseRedirect('/post/edit/' + str(post_id)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user