441 |
441 |
442 @has_perm_on_text('can_view_text') |
442 @has_perm_on_text('can_view_text') |
443 def text_history_version(request, key, version_key): |
443 def text_history_version(request, key, version_key): |
444 text = get_text_by_keys_or_404(key) |
444 text = get_text_by_keys_or_404(key) |
445 text_version = get_textversion_by_keys_or_404(version_key, key=key) |
445 text_version = get_textversion_by_keys_or_404(version_key, key=key) |
|
446 text_versions = text.get_versions() |
|
447 first_version = text_versions[len(text_versions) - 1] |
446 template_dict = {'text' : text, |
448 template_dict = {'text' : text, |
447 'text_version' : text_version, |
449 'text_version' : text_version, |
448 'embed_code' : embed_html(key, 'id="text_view_frame" name="text_view_frame"', version_key), |
450 'embed_code' : embed_html(key, 'id="text_view_frame" name="text_view_frame"', version_key), |
|
451 'first_version':first_version, |
449 } |
452 } |
450 return render_to_response('site/text_history_version.html', |
453 return render_to_response('site/text_history_version.html', |
451 template_dict, |
454 template_dict, |
452 context_instance=RequestContext(request)) |
455 context_instance=RequestContext(request)) |
453 |
456 |
468 #from cm.utils.diff import text_diff |
471 #from cm.utils.diff import text_diff |
469 from cm.utils.diff import diff_match_patch2 |
472 from cm.utils.diff import diff_match_patch2 |
470 dif = diff_match_patch2() |
473 dif = diff_match_patch2() |
471 content = dif.diff_prettyHtml_one_way(dif.diff_main(v1.get_content(), v2.get_content()), mode='ins_del') |
474 content = dif.diff_prettyHtml_one_way(dif.diff_main(v1.get_content(), v2.get_content()), mode='ins_del') |
472 |
475 |
|
476 text_versions = text.get_versions() |
|
477 first_version = text_versions[len(text_versions) - 1] |
473 template_dict = { |
478 template_dict = { |
474 'text' : text, |
479 'text' : text, |
475 'v1': v1, |
480 'v1': v1, |
476 'v2': v2, |
481 'v2': v2, |
477 'content' : content.strip(), |
482 'content' : content.strip(), |
478 'empty' : '<table class="diff"><tbody></tbody></table>'==content, |
483 'empty' : '<table class="diff"><tbody></tbody></table>'==content, |
|
484 'first_version':first_version, |
479 } |
485 } |
480 return render_to_response('site/text_history_compare.html', |
486 return render_to_response('site/text_history_compare.html', |
481 template_dict, |
487 template_dict, |
482 context_instance=RequestContext(request)) |
488 context_instance=RequestContext(request)) |
483 |
489 |
493 |
499 |
494 text_versions = text.get_versions() |
500 text_versions = text.get_versions() |
495 paginate_by = get_int(request.GET,'paginate',TEXT_PAGINATION) |
501 paginate_by = get_int(request.GET,'paginate',TEXT_PAGINATION) |
496 |
502 |
497 last_last_version = text_versions[1] if len(text_versions)>1 else None |
503 last_last_version = text_versions[1] if len(text_versions)>1 else None |
498 context = {'text':text, 'last_version':text.last_text_version, 'last_last_version':last_last_version} |
504 first_version = text_versions[len(text_versions) - 1] |
|
505 context = {'text':text, 'last_version':text.last_text_version, 'last_last_version':last_last_version, 'first_version':first_version} |
499 return object_list(request, text_versions, |
506 return object_list(request, text_versions, |
500 template_name = 'site/text_history.html', |
507 template_name = 'site/text_history.html', |
501 paginate_by = paginate_by, |
508 paginate_by = paginate_by, |
502 extra_context=context, |
509 extra_context=context, |
503 ) |
510 ) |