src/cm/views/texts.py
changeset 274 e49623f99d02
parent 254 94afd8e00c74
child 279 46b0773c20c1
equal deleted inserted replaced
273:05d59fd34d00 274:e49623f99d02
    13 from cm.utils import get_among, get_among, get_int
    13 from cm.utils import get_among, get_among, get_int
    14 from cm.utils.html import on_content_receive
    14 from cm.utils.html import on_content_receive
    15 from cm.utils.comment_positioning import compute_new_comment_positions, \
    15 from cm.utils.comment_positioning import compute_new_comment_positions, \
    16     insert_comment_markers
    16     insert_comment_markers
    17 from cm.utils.spannifier import spannify
    17 from cm.utils.spannifier import spannify
    18 from cm.utils.diff import diff_match_patch2
       
    19 from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, redirect
    18 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.export import content_export2, content_export
    19 from cm.views.export import content_export2, content_export
    21 from cm.views.user import AnonUserRoleForm, cm_login
    20 from cm.views.user import AnonUserRoleForm, cm_login
    22 from difflib import unified_diff
    21 from difflib import unified_diff
    23 from django import forms
    22 from django import forms
   499                                             v1.content,
   498                                             v1.content,
   500                                             v2.content)
   499                                             v2.content)
   501     if mode=='1':
   500     if mode=='1':
   502         # alternate diff
   501         # alternate diff
   503         #from cm.utils.diff import text_diff
   502         #from cm.utils.diff import text_diff
       
   503         from cm.utils.diff import diff_match_patch2        
   504         dif = diff_match_patch2()
   504         dif = diff_match_patch2()
   505         content = dif.diff_prettyHtml_one_way(dif.diff_main(v1.get_content(), v2.get_content()), mode='ins_del')
   505         content = dif.diff_prettyHtml_one_way(dif.diff_main(v1.get_content(), v2.get_content()), mode='ins_del')
   506 
   506 
   507     template_dict = {
   507     template_dict = {
   508                      'text' : text,
   508                      'text' : text,
   593                     except StopIteration:
   593                     except StopIteration:
   594                         break
   594                         break
   595                 minus, plus = diff_decorate(minus, plus)
   595                 minus, plus = diff_decorate(minus, plus)
   596                 
   596                 
   597                 
   597                 
   598                 minus, plus = '<br />'.join(minus), '<br />'.join(plus)                
   598                 minus, plus = '<br />'.join(minus), '<br />'.join(plus)
       
   599                 from cm.utils.diff import diff_match_patch2
   599                 dif = diff_match_patch2()
   600                 dif = diff_match_patch2()
   600                 res_diff1 = dif.diff_main(minus, plus)
   601                 res_diff1 = dif.diff_main(minus, plus)
   601                 dif.diff_cleanupSemantic(res_diff1)
   602                 dif.diff_cleanupSemantic(res_diff1)
   602                 p = dif.diff_prettyHtml_one_way(res_diff1, 1)
   603                 p = dif.diff_prettyHtml_one_way(res_diff1, 1)
   603                 minus = dif.diff_prettyHtml_one_way(res_diff1, 2)
   604                 minus = dif.diff_prettyHtml_one_way(res_diff1, 2)