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