##// END OF EJS Templates
Added post url caching to cache post replies and id urls
neko259 -
r589:19bd0da8 default
parent child Browse files
Show More
@@ -65,14 +65,8 b' class ReflinkPattern(Pattern):'
65 ref_element = etree.Element('a')
65 ref_element = etree.Element('a')
66
66
67 post = posts[0]
67 post = posts[0]
68 if not post.is_opening():
69 link = reverse('thread', kwargs={
70 'post_id': post.thread_new.get_opening_post().id})\
71 + '#' + post_id
72 else:
73 link = reverse('thread', kwargs={'post_id': post_id})
74
68
75 ref_element.set('href', link)
69 ref_element.set('href', post.get_url())
76 ref_element.text = m.group(2)
70 ref_element.text = m.group(2)
77
71
78 return ref_element
72 return ref_element
@@ -9,6 +9,7 b' import hashlib'
9
9
10 from django.core.cache import cache
10 from django.core.cache import cache
11 from django.core.paginator import Paginator
11 from django.core.paginator import Paginator
12 from django.core.urlresolvers import reverse
12
13
13 from django.db import models, transaction
14 from django.db import models, transaction
14 from django.http import Http404
15 from django.http import Http404
@@ -23,6 +24,7 b' MAX_TITLE_LENGTH = 50'
23 APP_LABEL_BOARDS = 'boards'
24 APP_LABEL_BOARDS = 'boards'
24
25
25 CACHE_KEY_PPD = 'ppd'
26 CACHE_KEY_PPD = 'ppd'
27 CACHE_KEY_POST_URL = 'post_url'
26
28
27 POSTS_PER_DAY_RANGE = range(7)
29 POSTS_PER_DAY_RANGE = range(7)
28
30
@@ -307,6 +309,26 b' class Post(models.Model):'
307 thread.last_edit_time = edit_time
309 thread.last_edit_time = edit_time
308 thread.save()
310 thread.save()
309
311
312 def get_url(self):
313 """
314 Get full url to this post
315 """
316
317 cache_key = CACHE_KEY_POST_URL + str(self.id)
318 link = cache.get(cache_key)
319
320 if not link:
321 if not self.is_opening():
322 link = reverse('thread', kwargs={
323 'post_id': self.thread_new.get_opening_post().id}) + '#' + str(
324 self.id)
325 else:
326 link = reverse('thread', kwargs={'post_id': self.id})
327
328 cache.set(cache_key, link)
329
330 return link
331
310
332
311 class Thread(models.Model):
333 class Thread(models.Model):
312
334
@@ -1,4 +1,3 b''
1 from django.core.urlresolvers import reverse
2 from django.shortcuts import get_object_or_404
1 from django.shortcuts import get_object_or_404
3 from boards.models import Post
2 from boards.models import Post
4 from boards.views import thread, api
3 from boards.views import thread, api
@@ -24,14 +23,7 b' def post_url(*args, **kwargs):'
24
23
25 post = get_object_or_404(Post, id=post_id)
24 post = get_object_or_404(Post, id=post_id)
26
25
27 if not post.is_opening():
26 return post.get_url()
28 link = reverse('thread', kwargs={
29 'post_id': post.thread_new.get_opening_post().id}) + '#' + str(
30 post_id)
31 else:
32 link = reverse('thread', kwargs={'post_id': post_id})
33
34 return link
35
27
36
28
37 @register.simple_tag(name='image_actions')
29 @register.simple_tag(name='image_actions')
General Comments 0
You need to be logged in to leave comments. Login now