-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpost.py
More file actions
88 lines (78 loc) · 2.61 KB
/
Copy pathpost.py
File metadata and controls
88 lines (78 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
from django.shortcuts import render_to_response, redirect, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponse
from django.utils import timezone
from main.models import Post
from main.forms import PostForm, DeletePostForm
from main.views.thread import view
from main.views.paging import page as home
from main.views.decorators import vospapiers
import json
@vospapiers
def raw(request, post_id):
post = get_object_or_404(Post, id=int(post_id), active=True)
infos = {
'id': str(post.id),
'author': str(post.author),
'created_at': str(post.created_at),
'updated_at': str(post.updated_at),
'parent': str(post.parent),
'old_post': str(post.old_post),
'picture': str(post.picture),
'content': str(post.content)
}
return HttpResponse(json.dumps(infos))
@vospapiers
def edit(request, post_id):
post = get_object_or_404(Post, id=int(post_id), active=True)
if request.method == 'POST':
form = PostForm(request.POST, request.FILES, instance=post)
if form.is_valid():
old = Post.objects.get(id=post.id)
old.id = None
old.active = False
old.save()
post = form.save(commit=False)
post.old_post = old
post.updated_at = timezone.now()
post.save()
return redirect(view, post.thread.id)
else:
form = PostForm(instance=post)
context = RequestContext(request, {
'post': post,
'form': form
})
return render_to_response('edit.html', context)
@vospapiers
def delete(request, post_id):
post = get_object_or_404(Post, id=int(post_id), active=True)
if request.method == 'POST':
form = DeletePostForm(request.POST, instance=post)
if form.is_valid():
for resp in post.responses:
resp.active = False
resp.save()
post.active = False
post.save()
if post.parent:
return redirect(view, post.parent.id)
return redirect(home)
else:
form = DeletePostForm(instance=post)
context = RequestContext(request, {
'post': post,
'form': form
})
return render_to_response('delete.html', context)
@vospapiers
def history(request, post_id):
post = get_object_or_404(Post, id=int(post_id), active=True)
hist = [post]
while hist[0].old_post:
hist.insert(0, hist[0].old_post)
context = RequestContext(request, {
'post': post,
'hist': hist
})
return render_to_response('history.html', context)