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