def text_history_compare(request, key, v1_version_key, v2_version_key, mode=''): text = get_text_by_keys_or_404(key) v1 = get_textversion_by_keys_or_404(v1_version_key, key=key) v2 = get_textversion_by_keys_or_404(v2_version_key, key=key) content = get_uniffied_inner_diff_table(v1.title, v2.title, _("by %(author)s") %{'author' : v1.get_name()}, _("by %(author)s") %{'author' : v2.get_name()}, v1.content, v2.content) if mode=='1': # alternate diff #from cm.utils.diff import text_diff from cm.utils.diff import diff_match_patch2 dif = diff_match_patch2() content = dif.diff_prettyHtml_one_way(dif.diff_main(v1.get_content(), v2.get_content()), mode='ins_del') text_versions = text.get_versions() first_version = text_versions[len(text_versions) - 1] template_dict = { 'text' : text, 'v1': v1, 'v2': v2, 'content' : content.strip(), 'empty' : '<table class="diff"><tbody></tbody></table>'==content, 'first_version':first_version, } return render_to_response('site/text_history_compare.html', template_dict, context_instance=RequestContext(request))
def text_view_frame(request, key, version_key=None, adminkey=None): text = get_text_by_keys_or_404(key) if version_key : text_version = get_textversion_by_keys_or_404(version_key, adminkey, key) else : text_version = text.get_latest_version() template_dict = {'text' : text, 'text_version' : text_version} return render_to_response('site/text_view_frame.html', template_dict, context_instance=RequestContext(request))
def text_view_comments(request, key, version_key=None, adminkey=None): text = get_text_by_keys_or_404(key) read_only = False if version_key : text_version = get_textversion_by_keys_or_404(version_key, adminkey, key) if settings.ALLOW_CLIENT_MODIF_ON_LAST_VERSION_ONLY : read_only = (text.last_text_version_id != text_version.id) else : text_version = text.get_latest_version() comments = get_viewable_comments(request, text_version.comment_set.filter(reply_to__isnull=True),text) filter_datas = get_filter_datas(request, text_version, text) get_params = simplejson.dumps(request.GET) wrapped_text_version, _ , _ = spannify(text_version.get_content()) from cm.models import ApplicationConfiguration categories = {} for i in range(1, 6): if text_version.__dict__['category_' + str(i)] == None or text_version.__dict__['category_' + str(i)].lower() != 'none': if text_version.__dict__['category_' + str(i)] != None and text_version.__dict__['category_' + str(i)] != '': categories[i] = text_version.__dict__['category_' + str(i)] else: if ApplicationConfiguration.get_key('workspace_category_' + str(i)) != None and ApplicationConfiguration.get_key('workspace_category_' + str(i)) != '': categories[i] = ApplicationConfiguration.get_key('workspace_category_' + str(i)) template_dict = { 'text' : text, 'text_version' : text_version, 'title' : text_version.title, # TODO use it ... 'get_params' : get_params, 'content' : wrapped_text_version, 'client_date_fmt' : settings.CLIENT_DATE_FMT, 'read_only' : read_only, } template_dict['json_comments'] = jsonize(comments, request) template_dict['json_filter_datas'] = jsonize(filter_datas, request) if categories: categories[0] = 'none' template_dict['categories'] = jsonize(categories, request) custom_css_str = ApplicationConfiguration.get_key('custom_css') if custom_css_str: custom_css = cssutils.parseString(custom_css_str) for css_rule in custom_css: if css_rule.type == css_rule.STYLE_RULE and css_rule.wellformed: css_rule.selectorText = "#textcontainer %s" %css_rule.selectorText template_dict['custom_css'] = custom_css.cssText template_dict['custom_font'] = ApplicationConfiguration.get_key('custom_font') template_dict['custom_titles_font'] = ApplicationConfiguration.get_key('custom_titles_font') return render_to_response('site/text_view_comments.html', template_dict, context_instance=RequestContext(request))
def text_history_version(request, key, version_key): text = get_text_by_keys_or_404(key) text_version = get_textversion_by_keys_or_404(version_key, key=key) text_versions = text.get_versions() first_version = text_versions[len(text_versions) - 1] template_dict = {'text' : text, 'text_version' : text_version, 'embed_code' : embed_html(key, 'id="text_view_frame" name="text_view_frame"', version_key), 'first_version':first_version, } return render_to_response('site/text_history_version.html', template_dict, context_instance=RequestContext(request))
def read(self, request, key, version_key): text_version = get_textversion_by_keys_or_404(version_key, key=key) setattr(text_version,'nb_comments',len(get_viewable_comments(request, text_version.comment_set.all(), text_version.text))) return text_version
def create(self, request, key, version_key): text_version = get_textversion_by_keys_or_404(version_key, key=key) text_version.delete() return rc.ALL_OK
def create(self, request, key, version_key): text_version = get_textversion_by_keys_or_404(version_key, key=key) new_text_version = text_version.text.revert_to_version(version_key) return {'version_key' : new_text_version.key , 'created': new_text_version.created}