16 from cm.utils.comment_positioning import compute_new_comment_positions, \ |
16 from cm.utils.comment_positioning import compute_new_comment_positions, \ |
17 insert_comment_markers |
17 insert_comment_markers |
18 from cm.utils.html import cleanup_textarea |
18 from cm.utils.html import cleanup_textarea |
19 from cm.utils.spannifier import spannify |
19 from cm.utils.spannifier import spannify |
20 from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, redirect |
20 from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, redirect |
21 from cm.views.export import content_export2 |
21 from cm.views.export import content_export2, content_export |
22 from cm.views.user import AnonUserRoleForm, cm_login |
22 from cm.views.user import AnonUserRoleForm, cm_login |
23 from difflib import unified_diff |
23 from difflib import unified_diff |
24 from django import forms |
24 from django import forms |
25 from django.conf import settings |
25 from django.conf import settings |
26 from django.contrib.auth import login as django_login |
26 from django.contrib.auth import login as django_login |
196 @has_perm_on_text('can_view_text') |
196 @has_perm_on_text('can_view_text') |
197 def text_view(request, key, adminkey=None): |
197 def text_view(request, key, adminkey=None): |
198 text = get_text_by_keys_or_404(key) |
198 text = get_text_by_keys_or_404(key) |
199 register_activity(request, "text_view", text=text) |
199 register_activity(request, "text_view", text=text) |
200 text_version = text.get_latest_version() |
200 text_version = text.get_latest_version() |
201 embed_code = embed_html(key, 'id="text_view_frame" name="text_view_frame"') |
201 embed_code = embed_html(key, 'id="text_view_frame" name="text_view_frame"', None, request.META.get('QUERY_STRING')) |
202 |
|
203 template_dict = { 'embed_code':embed_code, 'text' : text, 'text_version' : text_version, 'title' : text_version.title, 'content' : text_version.get_content()} |
202 template_dict = { 'embed_code':embed_code, 'text' : text, 'text_version' : text_version, 'title' : text_version.title, 'content' : text_version.get_content()} |
204 return render_to_response('site/text_view.html', template_dict, context_instance=RequestContext(request)) |
203 return render_to_response('site/text_view.html', template_dict, context_instance=RequestContext(request)) |
205 |
204 |
206 @has_perm_on_text('can_delete_text') |
205 @has_perm_on_text('can_delete_text') |
207 def text_delete(request, key): |
206 def text_delete(request, key): |
223 |
222 |
224 comments = get_viewable_comments(request, text_version.comment_set.filter(reply_to__isnull=True),text) |
223 comments = get_viewable_comments(request, text_version.comment_set.filter(reply_to__isnull=True),text) |
225 filter_datas = get_filter_datas(request, text_version, text) |
224 filter_datas = get_filter_datas(request, text_version, text) |
226 |
225 |
227 get_params = simplejson.dumps(request.GET) |
226 get_params = simplejson.dumps(request.GET) |
228 |
|
229 wrapped_text_version, _ , _ = spannify(text_version.get_content()) |
227 wrapped_text_version, _ , _ = spannify(text_version.get_content()) |
230 template_dict = {'text' : text, |
228 template_dict = {'text' : text, |
231 'text_version' : text_version, |
229 'text_version' : text_version, |
232 'title' : text_version.title, # TODO use it ... |
230 'title' : text_version.title, # TODO use it ... |
233 'get_params' : get_params, |
231 'get_params' : get_params, |
647 new_content = request.POST.get('content') |
645 new_content = request.POST.get('content') |
648 new_title = request.POST.get('title') |
646 new_title = request.POST.get('title') |
649 new_format = request.POST.get('format', text.last_text_version.format) |
647 new_format = request.POST.get('format', text.last_text_version.format) |
650 new_note = request.POST.get('note',None) |
648 new_note = request.POST.get('note',None) |
651 new_tags = request.POST.get('tags',None) |
649 new_tags = request.POST.get('tags',None) |
|
650 cancel_modified_scopes = (request.POST.get('cancel_modified_scopes',u'1') == u'1') |
652 version = text.get_latest_version() |
651 version = text.get_latest_version() |
653 version.edit(new_title, new_format, new_content, new_tags, new_note, True) |
652 version.edit(new_title, new_format, new_content, new_tags, new_note, True, cancel_modified_scopes) |
654 |
653 |
655 return version |
654 return version |
656 |
655 |
657 def save_new_version(self, text, request): |
656 def save_new_version(self, text, request): |
658 new_text_version = TextVersion.objects.duplicate(text.get_latest_version(), True) |
657 new_text_version = TextVersion.objects.duplicate(text.get_latest_version(), True) |
659 new_text_version.user = request.user if request.user.is_authenticated() else None |
658 new_text_version.user = request.user if request.user.is_authenticated() else None |
665 new_content = request.POST.get('content') |
664 new_content = request.POST.get('content') |
666 new_title = request.POST.get('title') |
665 new_title = request.POST.get('title') |
667 new_format = request.POST.get('format', text.last_text_version.format) |
666 new_format = request.POST.get('format', text.last_text_version.format) |
668 new_note = request.POST.get('note',None) |
667 new_note = request.POST.get('note',None) |
669 new_tags = request.POST.get('tags',None) |
668 new_tags = request.POST.get('tags',None) |
670 new_text_version.edit(new_title, new_format, new_content, new_tags, new_note, True) |
669 cancel_modified_scopes = (request.POST.get('cancel_modified_scopes',u'1') == u'1') |
|
670 new_text_version.edit(new_title, new_format, new_content, new_tags, new_note, True, cancel_modified_scopes) |
671 |
671 |
672 return new_text_version |
672 return new_text_version |
673 |
673 |
674 def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, |
674 def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, |
675 initial=None, error_class=ErrorList, label_suffix=':', |
675 initial=None, error_class=ErrorList, label_suffix=':', |