diff -r dbbd99172620 -r c8a95e540b79 src/cm/views/texts.py --- a/src/cm/views/texts.py Fri Dec 04 14:05:05 2009 +0100 +++ b/src/cm/views/texts.py Tue Dec 08 16:51:48 2009 +0100 @@ -1,3 +1,4 @@ +from cm.utils.embed import embed_html from cm.activity import register_activity from cm.client import jsonize, get_filter_datas, edit_comment, remove_comment, \ add_comment, RequestComplexEncoder, comments_thread, own_notify @@ -15,7 +16,7 @@ insert_comment_markers from cm.utils.html import cleanup_textarea from cm.utils.spannifier import spannify -from cm.views import get_keys_from_dict, get_text_by_keys_or_404, redirect +from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, redirect from cm.views.export import content_export2 from cm.views.user import AnonUserRoleForm, cm_login from difflib import unified_diff @@ -169,12 +170,12 @@ @has_perm_on_text('can_view_text') def text_view(request, key, adminkey=None): - text = get_text_by_keys_or_404(key) register_activity(request, "text_view", text=text) + text_version = text.get_latest_version() + embed_code = embed_html(key, 'id="text_view_frame" name="text_view_frame"') - text_version = text.get_latest_version() - template_dict = { 'text' : text, 'text_version' : text_version, 'title' : text_version.title, 'content' : text_version.get_content()} + template_dict = { 'embed_code':embed_code, 'text' : text, 'text_version' : text_version, 'title' : text_version.title, 'content' : text_version.get_content()} return render_to_response('site/text_view.html', template_dict, context_instance=RequestContext(request)) @has_perm_on_text('can_delete_text') @@ -188,10 +189,13 @@ return HttpResponse('') # no redirect because this is called by js @has_perm_on_text('can_view_text') # only protected by text_view / comment filtering done in view -def text_view_comments(request, key, adminkey=None): +def text_view_comments(request, key, version_key=None, adminkey=None): text = get_text_by_keys_or_404(key) - #TODO: stupid why restrict to latest ? - text_version = text.get_latest_version() + if version_key : + text_version = get_textversion_by_keys_or_404(version_key, adminkey, key) + else : + text_version = text.get_latest_version() + comments = get_viewable_comments(request, text_version.comment_set.filter(reply_to__isnull=True),text) filter_datas = get_filter_datas(request, text_version, text) @@ -222,6 +226,7 @@ #print request.POST elif request.POST: key = request.POST['key'] + version_key = request.POST['version_key'] text = Text.objects.get(key=key) ; #TODO: stupid why restrict to latest ? @@ -234,7 +239,7 @@ if function_name == 'editComment' : ret = edit_comment(request=request, key=key, comment_key=request.POST['comment_key']) elif function_name == 'addComment' : - ret = add_comment(request=request, key=key) + ret = add_comment(request=request, key=key, version_key=version_key) elif function_name == 'removeComment' : ret = remove_comment(request=request, key=key, comment_key=request.POST['comment_key']) @@ -398,11 +403,14 @@ context_instance=RequestContext(request)) @has_perm_on_text('can_view_text') -def text_view_frame(request, key, adminkey=None): +def text_view_frame(request, key, version_key=None, adminkey=None): text = get_text_by_keys_or_404(key) - text_version = text.get_latest_version() - template_dict = {'text' : text} + if version_key : + text_version = get_textversion_by_keys_or_404(version_key, adminkey, key) + else : + text_version = text.get_latest_version() + template_dict = {'text' : text, 'text_version' : text_version} return render_to_response('site/text_view_frame.html', template_dict, context_instance=RequestContext(request)) @@ -441,8 +449,10 @@ vv2 = None paired_versions.append((vv1, vv2, colors_dict.get(vv1.get_name(), '#D9D9D9'))) + embed_code = "" + content = "" if v1_nid and not v2_nid: - content = v1.get_content() + embed_code = embed_html(key, 'id="text_view_frame" name="text_view_frame"', v1.key) else: content = get_uniffied_inner_diff_table(cleanup_textarea(v1.content), cleanup_textarea(v2.content)) @@ -455,6 +465,7 @@ 'version1': v1, 'version2': v2, 'content' : content, + 'embed_code':embed_code, 'author_colors' : author_colors, } return render_to_response('site/text_history.html', template_dict, context_instance=RequestContext(request)) @@ -563,14 +574,14 @@ title = _text_diff(text_version_1.title, text_version_2.title) return render_to_response('site/text_view.html', {'text' : text, 'text_version_1' : text_version_1, 'text_version_2' : text_version_2, 'title' : title, 'content' : content}, context_instance=RequestContext(request)) - -@has_perm_on_text('can_view_text') -def text_version(request, key, id_version): - text = get_text_by_keys_or_404(key) - text_version = TextVersion.objects.get(pk=id_version) - # TODO : assert text_v in text ... - # TODO : do not use db id - return render_to_response('site/text_view.html', {'text' : text, 'text_version' : text_version, 'title' : text_version.title, 'content' : text_version.get_content()}, context_instance=RequestContext(request)) +# commented out, unused suspected +#@has_perm_on_text('can_view_text') +#def text_version(request, key, id_version): +# text = get_text_by_keys_or_404(key) +# text_version = TextVersion.objects.get(pk=id_version) +# # TODO : assert text_v in text ... +# # TODO : do not use db id +# return render_to_response('site/text_view.html', {'text' : text, 'text_version' : text_version, 'title' : text_version.title, 'content' : text_version.get_content()}, context_instance=RequestContext(request)) class EditTextForm(ModelForm): title = forms.CharField(label=_("Title"), widget=forms.TextInput)