From 43ef4f6482e61ffa0e27f18fc3a7bee0e92c8e17 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Wed, 22 Aug 2012 19:09:58 -0700 Subject: [PATCH] fixed recent threads & tags links --- lms/djangoapps/django_comment_client/helpers.py | 17 +++++++++-------- .../django_comment_client/mustache_helpers.py | 4 +++- lms/djangoapps/django_comment_client/utils.py | 6 ++++++ .../discussion/_recent_active_posts.html | 6 ++++-- lms/templates/discussion/_trending_tags.html | 4 +++- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/lms/djangoapps/django_comment_client/helpers.py b/lms/djangoapps/django_comment_client/helpers.py index 04411564e5..779ae3c9ee 100644 --- a/lms/djangoapps/django_comment_client/helpers.py +++ b/lms/djangoapps/django_comment_client/helpers.py @@ -33,21 +33,22 @@ def include_mustache_templates(): file_contents = map(read_file, filter(valid_file_name, os.listdir(mustache_dir))) return '\n'.join(map(wrap_in_tag, map(strip_file_name, file_contents))) - +def permalink(content): + if content['type'] == 'thread': + return reverse('django_comment_client.forum.views.single_thread', + args=[content['course_id'], content['commentable_id'], content['id']]) + else: + return reverse('django_comment_client.forum.views.single_thread', + args=[content['course_id'], content['commentable_id'], content['thread_id']]) + '#' + content['id'] def render_content(content, additional_context={}): content_info = { 'displayed_title': content.get('highlighted_title') or content.get('title', ''), 'displayed_body': content.get('highlighted_body') or content.get('body', ''), 'raw_tags': ','.join(content.get('tags', [])), + 'permalink': permalink(content), } - print content_info - if content['type'] == 'thread': - content_info['permalink'] = reverse('django_comment_client.forum.views.single_thread', - args=[content['course_id'], content['commentable_id'], content['id']]) - else: - content_info['permalink'] = reverse('django_comment_client.forum.views.single_thread', - args=[content['course_id'], content['commentable_id'], content['thread_id']]) + '#' + content['id'] + context = { 'content': merge_dict(content, content_info), content['type']: True, diff --git a/lms/djangoapps/django_comment_client/mustache_helpers.py b/lms/djangoapps/django_comment_client/mustache_helpers.py index c8e8e90c0a..1961bf5c90 100644 --- a/lms/djangoapps/django_comment_client/mustache_helpers.py +++ b/lms/djangoapps/django_comment_client/mustache_helpers.py @@ -1,3 +1,5 @@ +from .utils import url_for_tags as _url_for_tags + import django.core.urlresolvers as urlresolvers import urllib import sys @@ -14,7 +16,7 @@ def url_for_user(content, user_id): return urlresolvers.reverse('django_comment_client.forum.views.user_profile', args=[content['course_id'], user_id]) def url_for_tags(content, tags): # assume that attribute 'tags' is in the format u'a, b, c' - return urlresolvers.reverse('django_comment_client.forum.views.forum_form_discussion', args=[content['course_id']]) + '?' + urllib.urlencode({'tags': tags}) + return _url_for_tags(content['course_id'], tags) def close_thread_text(content): if content.get('closed'): diff --git a/lms/djangoapps/django_comment_client/utils.py b/lms/djangoapps/django_comment_client/utils.py index ec319b93a5..9e2f9c8a03 100644 --- a/lms/djangoapps/django_comment_client/utils.py +++ b/lms/djangoapps/django_comment_client/utils.py @@ -7,12 +7,14 @@ from django.http import HttpResponse from django.utils import simplejson from django.db import connection from django.conf import settings +from django.core.urlresolvers import reverse from django_comment_client.permissions import check_permissions_by_view from mitxmako import middleware import logging import operator import itertools +import urllib import pystache_custom as pystache @@ -188,6 +190,10 @@ def get_annotated_content_infos(course_id, thread, user, user_info): annotate(thread) return infos +# put this method in utils.py to avoid circular import dependency between helpers and mustache_helpers +def url_for_tags(course_id, tags): + return reverse('django_comment_client.forum.views.forum_form_discussion', args=[course_id]) + '?' + urllib.urlencode({'tags': tags}) + def render_mustache(template_name, dictionary, *args, **kwargs): template = middleware.lookup['main'].get_template(template_name).source return pystache.render(template, dictionary) diff --git a/lms/templates/discussion/_recent_active_posts.html b/lms/templates/discussion/_recent_active_posts.html index 8fdf7d95e7..baf505838d 100644 --- a/lms/templates/discussion/_recent_active_posts.html +++ b/lms/templates/discussion/_recent_active_posts.html @@ -1,12 +1,14 @@ +<%! import django_comment_client.helpers as helpers %> + % if recent_active_threads: diff --git a/lms/templates/discussion/_trending_tags.html b/lms/templates/discussion/_trending_tags.html index 2f9e874280..fea18c02dc 100644 --- a/lms/templates/discussion/_trending_tags.html +++ b/lms/templates/discussion/_trending_tags.html @@ -1,3 +1,5 @@ +<%! import django_comment_client.helpers as helpers %> + % if trending_tags: