src/cm/views/texts.py
changeset 453 1d314f629611
parent 450 81fa74c112b8
child 454 b7a092a52eae
equal deleted inserted replaced
452:8f1d6a6cd7f6 453:1d314f629611
    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.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
    19 from cm.views.export import content_export2, content_export
    19 from cm.views.export import content_export2, content_export, xml_export
    20 from cm.views.user import AnonUserRoleForm, cm_login
    20 from cm.views.user import AnonUserRoleForm, cm_login
    21 from difflib import unified_diff
    21 from difflib import unified_diff
    22 from django import forms
    22 from django import forms
    23 from django.conf import settings
    23 from django.conf import settings
    24 from django.contrib.auth import login as django_login
    24 from django.contrib.auth import login as django_login
   309 #NOTE : some arguments like : withcolor = "yes" + format = "markdown" are incompatible
   309 #NOTE : some arguments like : withcolor = "yes" + format = "markdown" are incompatible
   310 #http://localhost:8000/text/text_key_1/export/pdf/1/all/1
   310 #http://localhost:8000/text/text_key_1/export/pdf/1/all/1
   311 def text_export(request, key, format, download, whichcomments, withcolor, adminkey=None):
   311 def text_export(request, key, format, download, whichcomments, withcolor, adminkey=None):
   312     text, admin = get_text_and_admin(key, adminkey)
   312     text, admin = get_text_and_admin(key, adminkey)
   313     text_version = text.get_latest_version()
   313     text_version = text.get_latest_version()
       
   314 
       
   315     if format == 'xml':
       
   316       return xml_export(request, text_version, whichcomments) 
       
   317     
   314     original_content = text_version.content
   318     original_content = text_version.content
   315     original_format = text_version.format # BD : html or markdown for  now ...
   319     original_format = text_version.format # BD : html or markdown for  now ...
   316 
   320 
   317     download_response = download == "1"
   321     download_response = download == "1"
   318     with_color = withcolor == "1"
   322     with_color = withcolor == "1"
   319     
   323 
   320     comments = [] # whichcomments=="none"
   324     comments = [] # whichcomments=="none"
   321     
   325     
   322     if whichcomments == "filtered" or whichcomments == "all":
   326     if whichcomments == "filtered" or whichcomments == "all":
   323         #comments = text_version.comment_set.filter(reply_to__isnull=True)# whichcomments=="all"
   327         #comments = text_version.comment_set.filter(reply_to__isnull=True)# whichcomments=="all"
   324         #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"
   328         #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"
   339     else :
   343     else :
   340         if format in ('markdown', 'latex', 'epub') : 
   344         if format in ('markdown', 'latex', 'epub') : 
   341             use_pandoc = True
   345             use_pandoc = True
   342         elif format in ('pdf', 'odt') : 
   346         elif format in ('pdf', 'odt') : 
   343             use_pandoc = (original_format == "markdown")
   347             use_pandoc = (original_format == "markdown")
   344         elif format in ('docx', 'doc', 'html') :
   348         elif format in ('docx', 'doc', 'html', 'xml') :
   345             use_pandoc = False
   349             use_pandoc = False
   346 
   350 
   347     # correct attach path => real path
   351     # correct attach path => real path
   348     if format in ('pdf','odt') :        
   352     if format in ('pdf','odt') :        
   349         original_content = from_html_links_to_abs_links(original_content)
   353         original_content = from_html_links_to_abs_links(original_content)