diff -r 1d314f629611 -r b7a092a52eae src/cm/views/texts.py
--- a/src/cm/views/texts.py Tue Jul 31 16:37:23 2012 +0200
+++ b/src/cm/views/texts.py Mon Aug 06 13:42:15 2012 +0200
@@ -16,7 +16,7 @@
insert_comment_markers
from cm.utils.spannifier import spannify
from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, redirect
-from cm.views.export import content_export2, content_export, xml_export
+from cm.views.export import content_export2, xml_export
from cm.views.user import AnonUserRoleForm, cm_login
from difflib import unified_diff
from django import forms
@@ -324,9 +324,6 @@
comments = [] # whichcomments=="none"
if whichcomments == "filtered" or whichcomments == "all":
- #comments = text_version.comment_set.filter(reply_to__isnull=True)# whichcomments=="all"
- #comments = get_viewable_comments(request, text_version.comment_set.filter(reply_to__isnull=True), text, order_by=('start_wrapper','start_offset','end_wrapper','end_offset'))# whichcomments=="all"
-
_comments = text_version.comment_set.all()
if whichcomments == "filtered" :
filteredIds = []
@@ -338,36 +335,34 @@
comments = get_viewable_comments(request, _comments, text, order_by=('start_wrapper','start_offset','end_wrapper','end_offset'))# whichcomments=="all"
# decide to use pandoc or not
- if with_color :
- use_pandoc = False # pandoc wouldn't preserve comments scope background colors
- else :
- if format in ('markdown', 'latex', 'epub') :
- use_pandoc = True
- elif format in ('pdf', 'odt') :
- use_pandoc = (original_format == "markdown")
- elif format in ('docx', 'doc', 'html', 'xml') :
- use_pandoc = False
+ if format in ('markdown', 'latex', 'epub') :
+ use_pandoc = True
+ else:
+ use_pandoc = (original_format == 'markdown' or original_format == 'rst')
# correct attach path => real path
- if format in ('pdf','odt') :
+ if format in ('pdf', 'odt', 'doc', 'docx') :
original_content = from_html_links_to_abs_links(original_content)
if len(comments) == 0 : #want to bypass html conversion in this case
- return content_export2(request, original_content, text_version.title, original_format, format, use_pandoc, download_response)
+ # Prepends title
+ if original_format == 'html':
+ original_content = "
%s
%s" %(text_version.title, original_content)
+ elif original_format == 'markdown':
+ original_content = "%s\n======\n%s" %(text_version.title, original_content)
+ elif original_format == 'rst':
+ underline = '=' * len(text_version.title)
+ original_content = "%s\n%s\n%s" %(text_version.title, underline, original_content)
+
+ return content_export2(request, original_content, text_version.title, original_format, format, use_pandoc, download_response)
else : # case comments to be added
- #comments = comments.order_by('start_wrapper','start_offset','end_wrapper','end_offset')
html = pandoc_convert(original_content, original_format, 'html')
wrapped_text_version, _ , _ = spannify(html)
with_markers = True
marked_content = insert_comment_markers(wrapped_text_version, comments, with_markers, with_color)
-
+ # Prepends title
+ marked_content = "%s
%s" %(text_version.title, marked_content)
viewable_comments = comments_thread(request, text_version, text)
- # viewable_commentsnoreply = get_viewable_comments(request, commentsnoreply, text, order_by = ('start_wrapper','start_offset','end_wrapper','end_offset'))
- # viewable_comments = []
- # for cc in viewable_commentsnoreply :
- # viewable_comments += list_viewable_comments(request, [cc], text)
-
- # numerotation{ id --> numbered as a child}
extended_comments = {}
nb_children = {}
for cc in viewable_comments :
@@ -384,85 +379,13 @@
if cc.is_reply() :
cc.num = "%s.%s"%(extended_comments[cc.reply_to_id].num, cc.num)
- # viewable_comments += list_viewable_comments(request, viewable_commentsnoreply, text)
html_comments=render_to_string('site/macros/text_comments.html',{'comments':viewable_comments }, context_instance=RequestContext(request))
content = "%s%s"%(marked_content, html_comments)
content_format = "html"
- # impossible to satisfy because of color then no colors instead:
- if with_color and format in ('markdown', 'tex') : #TODO : add S5
- with_color = False
return content_export2(request, content, text_version.title, content_format, format, use_pandoc, download_response)
-def text_print(request, key, adminkey=None):
- text, admin = get_text_and_admin(key, adminkey)
-
- text_version = text.get_latest_version()
-
-# chosen default url behaviour is export all comments + bckcolor + pdf
- comments = Comment.objects.filter(text_version=text_version, reply_to__isnull=True)
-
- with_markers = True
- with_colors = True
- download_requested = True
- action = 'export' # client origine dialog
- requested_format = 'pdf' # requested output format
-
- if request.method == 'POST':
- # colors or not ?
- with_colors = (u'yes' == request.POST.get('p_color', u'no'))
-
- # restrict comments to ones that should be exported / printed
- p_comments = request.POST.get('p_comments')
- if p_comments == "filtered" or p_comments == "none" :
- filteredIds = [] # "none" case
- if p_comments == "filtered" :
- ll = request.POST.get('filteredIds').split(",")
- filteredIds = [ int(l) for l in ll if l]
-
- comments = comments.filter(id__in=filteredIds)
-
- # print or export ?
- action = request.POST.get('print_export_action')
- requested_format = request.POST.get('p_method')
-
- comments = comments.order_by('start_wrapper','start_offset','end_wrapper','end_offset')
-
- download_requested = (action == 'export') or (action == 'print' and requested_format != 'html')
-
- ori_format = text_version.format # BD : html or markdown for now ...
- src_format = ori_format # as expected by convert functions ...
- src = text_version.content
-
- if len(comments) > 0 and (with_markers or with_colors) :
- html = text_version.get_content()
- wrapped_text_version, _ , _ = spannify(html)
- marked_text_version = insert_comment_markers(wrapped_text_version, comments, with_markers, with_colors)
-
- src_format = 'html'
- src = marked_text_version
- html_comments=render_to_string('site/macros/text_comments.html',{'comments':comments}, context_instance=RequestContext(request))
- src += html_comments
-
- if download_requested :
- use_pandoc = (requested_format == 'html' or requested_format == 'markdown')
- return content_export(request, src, text_version.title, src_format, requested_format, use_pandoc)
- else : # action == 'print' and requested_format == 'html' (no colors)
- template_dict = {'text' : text,
- 'text_version' : text_version,
- 'title' : text_version.title, # TODO use it ...
- 'comments': comments,
- 'content' : marked_text_version,
- 'client_date_fmt' : settings.CLIENT_DATE_FMT
- }
- if admin:
- template_dict['adminkey'] = text.adminkey
- template_dict['admin'] = True
- return render_to_response('site/text_print.html',
- template_dict,
- context_instance=RequestContext(request))
-
@has_perm_on_text('can_view_text')
def text_view_frame(request, key, version_key=None, adminkey=None):
text = get_text_by_keys_or_404(key)