src/cm/views/texts.py
changeset 149 0f2c5744b39b
parent 145 fb5b1e6ad179
child 151 150cb6e76f30
equal deleted inserted replaced
148:03106bfa4845 149:0f2c5744b39b
     1 from cm.utils.embed import embed_html
     1 from cm.utils.embed import embed_html
     2 from cm.activity import register_activity
     2 from cm.activity import register_activity
     3 from cm.client import jsonize, get_filter_datas, edit_comment, remove_comment, \
     3 from cm.client import jsonize, get_filter_datas, edit_comment, remove_comment, \
     4     add_comment, RequestComplexEncoder, comments_thread, own_notify
     4     add_comment, RequestComplexEncoder, comments_thread, own_notify
     5 from cm.cm_settings import NEW_TEXT_VERSION_ON_EDIT
     5 from cm.cm_settings import NEW_TEXT_VERSION_ON_EDIT
     6 from cm.diff import text_diff as _text_diff, text_history as inner_text_history, \
       
     7     get_colors
       
     8 from cm.exception import UnauthorizedException
     6 from cm.exception import UnauthorizedException
     9 from cm.message import *
     7 from cm.message import *
    10 from cm.models import *
     8 from cm.models import *
    11 from django.forms.util import ErrorList
     9 from django.forms.util import ErrorList
    12 from cm.models_base import generate_key
    10 from cm.models_base import generate_key
   469     return render_to_response('site/text_history_version.html',
   467     return render_to_response('site/text_history_version.html',
   470                               template_dict,
   468                               template_dict,
   471                               context_instance=RequestContext(request))
   469                               context_instance=RequestContext(request))
   472 
   470 
   473 #@has_perm_on_text('can_view_text')
   471 #@has_perm_on_text('can_view_text')
   474 def text_history_compare(request, key, v1_version_key, v2_version_key):
   472 def text_history_compare(request, key, v1_version_key, v2_version_key, mode=''):
   475     text = get_text_by_keys_or_404(key)
   473     text = get_text_by_keys_or_404(key)
   476     v1 = get_textversion_by_keys_or_404(v1_version_key, key=key)
   474     v1 = get_textversion_by_keys_or_404(v1_version_key, key=key)
   477     v2 = get_textversion_by_keys_or_404(v2_version_key, key=key)
   475     v2 = get_textversion_by_keys_or_404(v2_version_key, key=key)
   478 
   476 
   479     content = get_uniffied_inner_diff_table(cleanup_textarea(v1.content), cleanup_textarea(v2.content))
   477     content = get_uniffied_inner_diff_table(cleanup_textarea(v1.content), cleanup_textarea(v2.content))
       
   478     if mode=='1':
       
   479         # alternate diff
       
   480         from cm.utils.diff import text_diff
       
   481         content = text_diff(v1.get_content(), v2.get_content())
   480 
   482 
   481     template_dict = {
   483     template_dict = {
   482                      'text' : text,
   484                      'text' : text,
   483                      'v1': v1,
   485                      'v1': v1,
   484                      'v2': v2,
   486                      'v2': v2,
   580 #    if admin:
   582 #    if admin:
   581 #         template_dict['adminkey'] = text.adminkey
   583 #         template_dict['adminkey'] = text.adminkey
   582 #         template_dict['admin'] = True          
   584 #         template_dict['admin'] = True          
   583 #    return render_to_response('site/text_history.html', template_dict, context_instance=RequestContext(request))
   585 #    return render_to_response('site/text_history.html', template_dict, context_instance=RequestContext(request))
   584 #
   586 #
   585 #def _text_history_version(request, text, admin=False):
       
   586 #    pass
       
   587 #    
       
   588 class TextVersionForm(ModelForm):
   587 class TextVersionForm(ModelForm):
   589     class Meta:
   588     class Meta:
   590         model = TextVersion
   589         model = TextVersion
   591         fields = ('title', 'content', 'format')
   590         fields = ('title', 'content', 'format')
   592 
       
   593 @has_perm_on_text('can_view_text')
       
   594 def text_diff(request, key, id_v1, id_v2):
       
   595     text = get_text_by_keys_or_404(key)
       
   596     text_version_1 = TextVersion.objects.get(pk=id_v1)
       
   597     text_version_2 = TextVersion.objects.get(pk=id_v2)
       
   598     content = _text_diff(text_version_1.get_content(), text_version_2.get_content())
       
   599     title = _text_diff(text_version_1.title, text_version_2.title)
       
   600     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))
       
   601 
       
   602 # commented out, unused suspected 
       
   603 #@has_perm_on_text('can_view_text')
       
   604 #def text_version(request, key, id_version):
       
   605 #    text = get_text_by_keys_or_404(key)
       
   606 #    text_version = TextVersion.objects.get(pk=id_version)
       
   607 #    # TODO : assert text_v in text ...
       
   608 #    # TODO : do not use db id    
       
   609 #    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))
       
   610 
   591 
   611 class EditTextForm(ModelForm):
   592 class EditTextForm(ModelForm):
   612     title = forms.CharField(label=_("Title"), widget=forms.TextInput)
   593     title = forms.CharField(label=_("Title"), widget=forms.TextInput)
   613     #format = forms.CharField(label=_("Format"))
   594     #format = forms.CharField(label=_("Format"))
   614     #content = forms.TextField(label=_("Content"))
   595     #content = forms.TextField(label=_("Content"))