Commit 701f8716 by Rocky Duan

only show edit button when user can edit

parent e301be4a
...@@ -78,9 +78,23 @@ def forum_form_discussion(request, course_id, discussion_id): ...@@ -78,9 +78,23 @@ def forum_form_discussion(request, course_id, discussion_id):
def render_single_thread(request, course_id, thread_id): def render_single_thread(request, course_id, thread_id):
def get_annotated_content_info(thread, user_id):
infos = {}
def _annotate(content):
infos[str(content['id'])] = {
'editable': str(content['user_id']) == str(user_id), # TODO may relax this to instructors
}
for child in content['children']:
_annotate(child)
_annotate(thread)
return infos
thread = comment_client.get_thread(thread_id, recursive=True)
context = { context = {
'thread': comment_client.get_thread(thread_id, recursive=True), 'thread': thread,
'user_info': comment_client.get_user_info(request.user.id, raw=True), 'user_info': comment_client.get_user_info(request.user.id, raw=True),
'annotated_content_info': json.dumps(get_annotated_content_info(thread=thread, user_id=request.user.id)),
'tags': comment_client.get_threads_tags(raw=True), 'tags': comment_client.get_threads_tags(raw=True),
'course_id': course_id, 'course_id': course_id,
} }
......
...@@ -197,7 +197,7 @@ Discussion = ...@@ -197,7 +197,7 @@ Discussion =
else else
view = { view = {
id: id id: id
showWatchCheckbox: $discussionContent.parent(".thread").attr("_id") not in $$user_info.subscribed_thread_ids showWatchCheckbox: $discussionContent.parents(".thread").attr("_id") not in $$user_info.subscribed_thread_ids
} }
$discussionContent.append Mustache.render Discussion.replyTemplate, view $discussionContent.append Mustache.render Discussion.replyTemplate, view
Markdown.makeWmdEditor $local(".reply-body"), "-reply-body-#{id}", Discussion.urlFor('upload') Markdown.makeWmdEditor $local(".reply-body"), "-reply-body-#{id}", Discussion.urlFor('upload')
...@@ -339,6 +339,11 @@ Discussion = ...@@ -339,6 +339,11 @@ Discussion =
raw_text = $local(".content-body").html() raw_text = $local(".content-body").html()
converter = Markdown.getMathCompatibleConverter() converter = Markdown.getMathCompatibleConverter()
$local(".content-body").html(converter.makeHtml(raw_text)) $local(".content-body").html(converter.makeHtml(raw_text))
id = $content.attr("_id")
if not ($$annotated_content_info[id] || [])['editable']
$local(".discussion-edit").remove()
bindDiscussionEvents: (discussion) -> bindDiscussionEvents: (discussion) ->
$discussion = $(discussion) $discussion = $(discussion)
......
...@@ -14,4 +14,5 @@ ...@@ -14,4 +14,5 @@
var $$user_info = JSON.parse('${user_info | escape_quotes}'); var $$user_info = JSON.parse('${user_info | escape_quotes}');
var $$course_id = "${course_id}"; var $$course_id = "${course_id}";
var $$tags = JSON.parse("${tags | escape_quotes}"); var $$tags = JSON.parse("${tags | escape_quotes}");
var $$annotated_content_info = JSON.parse("${annotated_content_info | escape_quotes}");
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment