@@ -528,16 +528,14 @@ def cancel_submission(submission):
528528 remove_submission_files (submission )
529529
530530def rename_submission_files (submission , prev_rev , new_rev ):
531- from ietf .submit .forms import SubmissionManualUploadForm
532- for ext in list (SubmissionManualUploadForm .base_fields .keys ()):
531+ for ext in settings .IDSUBMIT_FILE_TYPES :
533532 source = os .path .join (settings .IDSUBMIT_STAGING_PATH , '%s-%s.%s' % (submission .name , prev_rev , ext ))
534533 dest = os .path .join (settings .IDSUBMIT_STAGING_PATH , '%s-%s.%s' % (submission .name , new_rev , ext ))
535534 if os .path .exists (source ):
536535 os .rename (source , dest )
537536
538537def move_files_to_repository (submission ):
539- from ietf .submit .forms import SubmissionManualUploadForm
540- for ext in list (SubmissionManualUploadForm .base_fields .keys ()):
538+ for ext in settings .IDSUBMIT_FILE_TYPES :
541539 source = os .path .join (settings .IDSUBMIT_STAGING_PATH , '%s-%s.%s' % (submission .name , submission .rev , ext ))
542540 dest = os .path .join (settings .IDSUBMIT_REPOSITORY_PATH , '%s-%s.%s' % (submission .name , submission .rev , ext ))
543541 if os .path .exists (source ):
@@ -622,18 +620,24 @@ def get_draft_meta(form, saved_files):
622620 file_name = saved_files
623621 abstract = None
624622 file_size = None
623+ xml2rfc .log .write_out = open (os .devnull , "w" )
624+ xml2rfc .log .write_err = open (os .devnull , "w" )
625625 if form .cleaned_data ['xml' ]:
626+ try :
627+ xmlroot = form .xmltree .getroot ()
628+ xml_version = xmlroot .get ('version' , '2' )
629+ if xml_version == '3' :
630+ prep = xml2rfc .PrepToolWriter (form .xmltree , quiet = True )
631+ form .xmltree .tree = prep .prep ()
632+ except Exception as e :
633+ raise ValidationError ("Error from xml2rfc (prep): %s" % e )
626634 if not ('txt' in form .cleaned_data and form .cleaned_data ['txt' ]):
627635 file_name ['txt' ] = os .path .join (settings .IDSUBMIT_STAGING_PATH , '%s-%s.txt' % (form .filename , form .revision ))
628636 try :
629- xmlroot = form .xmltree .getroot ()
630- xml_version = xmlroot .get ('version' , '2' )
631637 if xml_version != '3' :
632638 pagedwriter = xml2rfc .PaginatedTextRfcWriter (form .xmltree , quiet = True )
633639 pagedwriter .write (file_name ['txt' ])
634640 else :
635- prep = xml2rfc .PrepToolWriter (form .xmltree , quiet = True )
636- form .xmltree .tree = prep .prep ()
637641 writer = xml2rfc .TextWriter (form .xmltree , quiet = True )
638642 writer .write (file_name ['txt' ])
639643 log .log ("In %s: xml2rfc %s generated %s from %s (version %s)" %
@@ -643,8 +647,22 @@ def get_draft_meta(form, saved_files):
643647 os .path .basename (file_name ['xml' ]),
644648 xml_version ))
645649 except Exception as e :
646- raise ValidationError ("Error from xml2rfc: %s" % e )
650+ raise ValidationError ("Error from xml2rfc (text) : %s" % e )
647651 file_size = os .stat (file_name ['txt' ]).st_size
652+ if xml_version == '3' :
653+ try :
654+ file_name ['html' ] = os .path .join (settings .IDSUBMIT_STAGING_PATH , '%s-%s.html' % (form .filename , form .revision ))
655+ writer = xml2rfc .HtmlWriter (form .xmltree , quiet = True )
656+ writer .write (file_name ['html' ])
657+ form .file_types .append ('.html' )
658+ log .log ("In %s: xml2rfc %s generated %s from %s (version %s)" %
659+ ( os .path .dirname (file_name ['xml' ]),
660+ xml2rfc .__version__ ,
661+ os .path .basename (file_name ['html' ]),
662+ os .path .basename (file_name ['xml' ]),
663+ xml_version ))
664+ except Exception as e :
665+ raise ValidationError ("Error from xml2rfc (html): %s" % e )
648666 # Some meta-information, such as the page-count, can only
649667 # be retrieved from the generated text file. Provide a
650668 # parsed draft object to get at that kind of information.
0 commit comments