def create_print_issue_pdf(): """Create or update pdf for the current issue""" issue = current_issue() editions = [('', PAGES_GLOB), ('_mag', MAG_PAGES_GLOB)] results = [] for suffix, globpattern in editions: pdf_name = OUTPUT_PDF_NAME.format(issue=issue, suffix=suffix) issue_name = '{issue.number}/{issue.date.year}{suffix}'.format( suffix=suffix, issue=issue) logger.info('Creating pdf: {}'.format(issue_name)) tmp_bundle_file = tempfile.NamedTemporaryFile(suffix='.pdf') try: create_web_bundle(filename=tmp_bundle_file.name, globpattern=globpattern) except RuntimeWarning as warning: logger.info(str(warning)) continue try: # pdf_lookfor = pdf_name.split('.')[0] # print(pdf_name, pdf_lookfor) print_issue = PrintIssue.objects.get(pdf__endswith=pdf_name) except PrintIssue.DoesNotExist: print_issue = PrintIssue() with open(tmp_bundle_file.name, 'rb') as src: pdf_content = ContentFile(src.read()) print_issue.pdf.save(pdf_name, pdf_content, save=False) # print_issue.issue_name = issue_name print_issue.save() logger.info('New bundle file: {}'.format(pdf_name)) results.append(pdf_name) return results
def create_print_issue_pdf(issue, **kwargs): """Create or update pdf for the current issue""" if isinstance(issue, int): issue = Issue.objects.get(id=issue) editions = [('', PAGES_GLOB), ('_mag', MAG_PAGES_GLOB)] results = [] for suffix, fileglob in editions: pdf_name = OUTPUT_PDF_NAME.format(issue=issue, suffix=suffix) logger.info('Creating pdf: {}'.format(pdf_name)) tmp_bundle_file = tempfile.NamedTemporaryFile(suffix='.pdf') try: create_web_bundle( issue=issue, filename=tmp_bundle_file.name, fileglob=fileglob, **kwargs, ) except RuntimeWarning as warning: logger.info(str(warning)) continue try: print_issue = PrintIssue.objects.get(pdf__contains=pdf_name) except PrintIssue.DoesNotExist: print_issue = PrintIssue() with open(tmp_bundle_file.name, 'rb') as src: pdf_content = ContentFile(src.read()) print_issue.pdf.save(pdf_name, pdf_content, save=False) print_issue.issue = issue print_issue.save() logger.info('New bundle file: {}'.format(pdf_name)) results.append(pdf_name) return results
def create_print_issue_pdf(): """Create or update pdf for the current issue""" issue = current_issue() editions = [('', PAGES_GLOB), ('_mag', MAG_PAGES_GLOB)] results = [] for suffix, globpattern in editions: pdf_name = OUTPUT_PDF_NAME.format(issue=issue, suffix=suffix) issue_name = '{issue.number}/{issue.date.year}{suffix}'.format( suffix=suffix, issue=issue) logger.info('Creating pdf: {}'.format(issue_name)) tmp_bundle_file = tempfile.NamedTemporaryFile(suffix='.pdf') try: create_web_bundle( filename=tmp_bundle_file.name, globpattern=globpattern) except RuntimeWarning as warning: logger.info(str(warning)) continue try: # pdf_lookfor = pdf_name.split('.')[0] # print(pdf_name, pdf_lookfor) print_issue = PrintIssue.objects.get(pdf__endswith=pdf_name) except PrintIssue.DoesNotExist: print_issue = PrintIssue() with open(tmp_bundle_file.name, 'rb') as src: pdf_content = ContentFile(src.read()) print_issue.pdf.save(pdf_name, pdf_content, save=False) # print_issue.issue_name = issue_name print_issue.save() logger.info('New bundle file: {}'.format(pdf_name)) results.append(pdf_name) return results