src/cm/views/texts.py
changeset 103 61fd17f9ab78
parent 74 c1b6828677db
child 105 f2ba05546abc
equal deleted inserted replaced
78:dda94db1149a 103:61fd17f9ab78
    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=':',