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 |
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) |