##// END OF EJS Templates
Removed images directory. Removed old urls. Added a bit code for the views.
neko259 -
r4:42d786b3 default
parent child Browse files
Show More
@@ -1,18 +1,22 b''
1 from django.db import models
1 from django.db import models
2 from django.utils import timezone
2 from django.utils import timezone
3 from django.conf import settings
3
4 NO_PARENT = -1
5 NO_IP = '0.0.0.0'
6 UNKNOWN_UA = ''
7 DIR_IMAGES = 'images'
4
8
5 class PostManager(models.Manager):
9 class PostManager(models.Manager):
6
10
7 def create_post(self, title, text, image, parent_id = Post.NO_PARENT,
11 def create_post(self, title, text, image, parent_id = NO_PARENT,
8 ip = Post.NO_IP):
12 ip = NO_IP):
9 post = self.create(title = title,
13 post = self.create(title = title,
10 text = text,
14 text = text,
11 pub_date = timezone.now(),
15 pub_date = timezone.now(),
12 parent = parent_id,
16 parent = parent_id,
13 image = image,
17 image = image,
14 poster_ip = ip,
18 poster_ip = ip,
15 poster_user_agent='')
19 poster_user_agent = UNKNOWN_UA)
16
20
17 return post
21 return post
18
22
@@ -27,31 +31,27 b' class PostManager(models.Manager):'
27 for post in posts:
31 for post in posts:
28 self.delete_post(post)
32 self.delete_post(post)
29
33
34 class Tag(models.Model):
35 """
36 A tag is a text node assigned to the post. The tag serves as a board
37 section. There can be multiple tags for each message
38 """
39
40 name = models.CharField(max_length = 100)
41
30 class Post(models.Model):
42 class Post(models.Model):
31 '''
43 """A post is a message."""
32 A post is a message.
33 '''
34
35 NO_PARENT = -1
36 NO_IP = '0.0.0.0'
37
44
38 objects = PostManager()
45 objects = PostManager()
39
46
40 title = models.CharField(max_length = 100)
47 title = models.CharField(max_length = 100)
41 pub_time = models.DateTimeField()
48 pub_time = models.DateTimeField()
42 text = models.TextField()
49 text = models.TextField()
43 image = models.ImageField(upload_to = settings.IMAGES_PATH)
50 image = models.ImageField(upload_to = DIR_IMAGES)
44 poster_ip = models.IPAddressField()
51 poster_ip = models.IPAddressField()
45 poster_user_agent = models.TextField()
52 poster_user_agent = models.TextField()
46 parent = models.BigIntegerField()
53 parent = models.BigIntegerField()
47 tags = models.ForeignKey(Tag)
54 tags = models.ForeignKey(Tag)
48
55
49 def __unicode__(self):
56 def __unicode__(self):
50 return self.title + ' (' + self.text + ')'
57 return self.title + ' (' + self.text + ')' No newline at end of file
51
52 class Tag(models.Model):
53 '''
54 A tag is a text node assigned to the post. The tag serves as a board
55 section. There can be multiple tags for each message
56 '''
57 name = models.CharField(max_length = 100)
@@ -3,13 +3,12 b' from boards import views'
3
3
4 urlpatterns = patterns('',
4 urlpatterns = patterns('',
5 # /boards/
5 # /boards/
6 url(r'^$', views.index, name='index'),
6 url(r'^$', views.index, name = 'index'),
7 # /boards/board_name/
7 # /boards/tag/
8 url(r'^(?P<board_name>\w+)/$', views.board, name='board'),
8 url(r'^(?P<tag>\w+)/$', views.tag, name = 'tag'),
9 # /boards/board_name/thread_id/
9 # /boards/post_id/
10 url(r'^(?P<board_name>\w+)/(?P<thread_id>\w+)/$', views.thread,
10 url(r'^(?P<post>\w+)/$', views.thread, name = 'thread'),
11 name='thread'),
11 # /boards/tag/post/
12 # /boards/board_name/post/
12 url(r'^(?P<tag>\w+)/post.html$', views.new_post,
13 url(r'^(?P<board_name>\w+)/post.html$', views.post,
14 name='post'),
13 name='post'),
15 )
14 )
@@ -1,15 +1,26 b''
1 from django.http import HttpResponse
1 from django.http import HttpResponse
2 from django.shortcuts import render
3
2
4 from boards.models import Post
3 from boards.models import Post
4 import boards.models
5
5
6 def index(request):
6 def index(request):
7 return HttpResponse('Imageboard, motherfucker! Do you post to it?!')
7 return HttpResponse('Imageboard, motherfucker! Do you post to it?!')
8
8
9 def post(request):
9 def new_post(request):
10 """Add a new post (in thread or as a reply)."""
11
10 title = request.POST['title']
12 title = request.POST['title']
11 text = request.POST['text']
13 text = request.POST['text']
12
14
13 image = request.POST['image']
15 image = request.POST['image']
14
16
15 post = Post.objects.create_post(title = title, text = text, image = image)
17 post = Post.objects.create_post(title = title, text = text, image = image)
18
19 def tag(request):
20 """Get all tag threads (posts without a parent)."""
21
22 tag_name = request.GET['tag']
23
24 posts = Post.objects.filter(tag = tag, parent = boards.models.NO_PARENT)
25
26 # TODO Send a response with the post list No newline at end of file
@@ -153,5 +153,4 b' LOGGING = {'
153 }
153 }
154
154
155 # Custom imageboard settings
155 # Custom imageboard settings
156 MAX_POSTS_PER_THREAD = 100
156 MAX_POSTS_PER_THREAD = 100 No newline at end of file
157 IMAGES_PATH = "images" No newline at end of file
1 NO CONTENT: file was removed, binary diff hidden
NO CONTENT: file was removed, binary diff hidden
General Comments 0
You need to be logged in to leave comments. Login now