本文整理汇总了Python中reportlab.platypus.BaseDocTemplate.site_url方法的典型用法代码示例。如果您正苦于以下问题:Python BaseDocTemplate.site_url方法的具体用法?Python BaseDocTemplate.site_url怎么用?Python BaseDocTemplate.site_url使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reportlab.platypus.BaseDocTemplate
的用法示例。
在下文中一共展示了BaseDocTemplate.site_url方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _create_licence_renewal
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_licence_renewal(licence_renewal_buffer, licence, site_url):
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=every_page_frame, onPage=_create_header)
doc = BaseDocTemplate(licence_renewal_buffer, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.site_url = site_url
doc.build(_create_licence_renewal_elements(licence))
return licence_renewal_buffer
示例2: _create_cover_letter
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_cover_letter(cover_letter_buffer, licence, site_url):
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=every_page_frame, onPage=_create_header)
doc = BaseDocTemplate(cover_letter_buffer, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.site_url = site_url
elements = []
elements.append(Paragraph('Dear Sir/Madam', styles['Left']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Congratulations, your Wildlife Licensing application has been approved and the '
'corresponding licence has been issued.', styles['Left']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(
Paragraph("You'll find your licence document in this envelope. Please read it carefully.", styles['Left']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# Removed link to online system for beta
# elements.append(Paragraph('You also can access it from your Wildlife Licensing dashboard by copying and pasting '
# 'the following link in your browser:', styles['Left']))
# elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# elements.append(Paragraph(site_url, styles['Left']))
# elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# elements.append(Paragraph("Note: If you haven't been on the Wildlife Licensing site recently you might have to "
# "login first before using the provided link.", styles['Left']))
# elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
if licence.cover_letter_message:
for message in licence.cover_letter_message.split('\r\n'):
if message:
elements.append(Paragraph(message, styles['Left']))
else:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Best regards,', styles['Left']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Parks and Wildlife Customer Portal', styles['Left']))
doc.build(elements)
return cover_letter_buffer
示例3: _create_bulk_licence_renewal
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_bulk_licence_renewal(licences, site_url, buf=None):
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=every_page_frame,
onPage=lambda canvas, doc_: _create_header(canvas, doc_, draw_page_number=False))
if buf is None:
buf = BytesIO()
doc = BaseDocTemplate(buf, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.site_url = site_url
all_elements = []
for licence in licences:
all_elements += _create_licence_renewal_elements(licence)
all_elements.append(PageBreak())
doc.build(all_elements)
return doc
示例4: _create_bulk_licence_renewal
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_bulk_licence_renewal(licences, site_url, buf=None):
bulk_licence_renewal_frame = Frame(LETTER_PAGE_MARGIN, LETTER_PAGE_MARGIN, PAGE_WIDTH - 2 * LETTER_PAGE_MARGIN,
PAGE_HEIGHT - 160, id='BulkLicenceRenewalFrame')
bulk_licence_renewal_template = PageTemplate(id='BulkLicenceRenewalFrame', frames=bulk_licence_renewal_frame,
onPage=_create_letter_header_footer)
if buf is None:
buf = BytesIO()
doc = BaseDocTemplate(buf, pageTemplates=[bulk_licence_renewal_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.site_url = site_url
all_elements = []
for licence in licences:
all_elements += _create_letter_address(licence) + [Spacer(1, LETTER_ADDRESS_BUFFER_HEIGHT)] + \
_create_licence_renewal_elements(licence) + _create_letter_signature()
all_elements.append(PageBreak())
doc.build(all_elements)
return doc
示例5: _create_licence
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_licence(licence_buffer, licence, application, site_url, original_issue_date):
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=every_page_frame, onPage=_create_licence_header)
doc = BaseDocTemplate(licence_buffer, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.licence = licence
doc.site_url = site_url
licence_table_style = TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')])
elements = []
elements.append(Paragraph(licence.licence_type.act, styles['InfoTitleLargeCenter']))
elements.append(Paragraph(licence.licence_type.code.upper(), styles['InfoTitleLargeCenter']))
# cannot use licence get_title_with_variants because licence isn't saved yet so can't get variants
if application.variants.exists:
title = '{} ({})'.format(application.licence_type.name, ' / '.join(application.variants.all().
values_list('name', flat=True)))
else:
title = licence.licence_type.name
elements.append(Paragraph(title, styles['InfoTitleVeryLargeCenter']))
elements.append(Paragraph(licence.licence_type.statement, styles['InfoTitleLargeLeft']))
elements.append(Paragraph(licence.licence_type.authority, styles['InfoTitleLargeRight']))
# licence conditions
if application.conditions.exists():
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Conditions', styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
conditionList = ListFlowable(
[Paragraph(condition.text, styles['Left']) for condition in application.conditions.all()],
bulletFontName=BOLD_FONTNAME, bulletFontSize=MEDIUM_FONTSIZE)
elements.append(conditionList)
# purpose
if licence.purpose:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Purpose', styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
for purpose in licence.purpose.split('\r\n'):
if purpose:
elements.append(Paragraph(purpose, styles['Left']))
else:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# locations
if licence.locations:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Locations', styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
for location in licence.locations.split('\r\n'):
if location:
elements.append(Paragraph(location, styles['Left']))
else:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# authorised persons
authorised_persons = _get_authorised_person_names(application)
if len(authorised_persons) > 0:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Authorised Persons', styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
for ap in authorised_persons:
elements.append(Paragraph(ap, styles['Left']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# species
species = _get_species(application)
if len(species) > 0:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
section_width = (PAGE_WIDTH - (2 * PAGE_MARGIN) - 100) / 2
elements.append(Table([[Paragraph('Species', styles['BoldLeft']), Paragraph('Name', styles['BoldLeft']),
Paragraph('Count', styles['BoldLeft'])]],
colWidths=(100, section_width, section_width), style=licence_table_style))
for s in species:
elements.append(Table([['', Paragraph(s[0], styles['Left']), Paragraph(s[1], styles['Left'])]],
colWidths=(100, section_width, section_width), style=licence_table_style))
# additional information
if licence.additional_information:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Additional Information', styles['BoldLeft']))
for paragraph in licence.additional_information.split('\r\n'):
if paragraph:
elements.append(Paragraph(paragraph, styles['Left']))
else:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
#.........这里部分代码省略.........
示例6: _create_renewal
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_renewal(renewal_buffer, approval, proposal):
site_url = settings.SITE_URL
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=[every_page_frame], onPage=_create_approval_header)
doc = BaseDocTemplate(renewal_buffer, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.approval = approval
doc.site_url = site_url
approval_table_style = TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')])
elements = []
title = approval.title.encode('UTF-8')
# additional information
'''if approval.additional_information:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Additional Information', styles['BoldLeft']))
elements += _layout_paragraphs(approval.additional_information)'''
# delegation holds the dates, approvale and issuer details.
delegation = []
# proponent details
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
address = proposal.applicant.organisation.postal_address
address_paragraphs = [Paragraph(address.line1, styles['Left']), Paragraph(address.line2, styles['Left']),
Paragraph(address.line3, styles['Left']),
Paragraph('%s %s %s' % (address.locality, address.state, address.postcode), styles['Left']),
Paragraph(address.country.name, styles['Left'])]
delegation.append(Table([[[Paragraph('Licensee:', styles['BoldLeft']), Paragraph('Address', styles['BoldLeft'])],
[Paragraph(_format_name(approval.applicant),
styles['Left'])] + address_paragraphs]],
colWidths=(120, PAGE_WIDTH - (2 * PAGE_MARGIN) - 120),
style=approval_table_style))
expiry_date = approval.expiry_date.strftime(DATE_FORMAT)
full_name = proposal.submitter.get_full_name()
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('Dear {} '.format(full_name), styles['Left']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('This is a reminder that your approval: ', styles['Left']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
title_with_number = '{} - {}'.format(approval.lodgement_number, title)
delegation.append(Paragraph(title_with_number, styles['InfoTitleLargeLeft']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('is due to expire on {}'.format(expiry_date), styles['Left']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('Please note that if you have outstanding compliances these are required to be submitted before the approval can be renewed'
, styles['Left']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('If you have any queries, contact the {} '
'on {}.'.format(settings.DEP_NAME, settings.DEP_PHONE), styles['Left']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('Yours sincerely ', styles['Left']))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('DIRECTOR GENERAL', styles['Left']))
delegation.append(Paragraph('{}'.format(settings.DEP_NAME), styles['Left']))
elements.append(KeepTogether(delegation))
doc.build(elements)
return renewal_buffer
示例7: _create_approval
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_approval(approval_buffer, approval, proposal, copied_to_permit, user):
site_url = settings.SITE_URL
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=[every_page_frame], onPage=_create_approval_header)
doc = BaseDocTemplate(approval_buffer, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.approval = approval
doc.site_url = site_url
region = approval.region if hasattr(approval, 'region') else ''
district = approval.district if hasattr(approval, 'district') else ''
region_district = '{} - {}'.format(region, district) if district else region
approval_table_style = TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')])
elements = []
title = approval.title.encode('UTF-8')
#Organization details
address = proposal.applicant.organisation.postal_address
email = proposal.applicant.organisation.organisation_set.all().first().contacts.all().first().email
elements.append(Paragraph(email,styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph(_format_name(approval.applicant),styles['BoldLeft']))
elements.append(Paragraph(address.line1, styles['BoldLeft']))
elements.append(Paragraph(address.line2, styles['BoldLeft']))
elements.append(Paragraph(address.line3, styles['BoldLeft']))
elements.append(Paragraph('%s %s %s' % (address.locality, address.state, address.postcode), styles['BoldLeft']))
elements.append(Paragraph(address.country.name, styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph(approval.issue_date.strftime(DATE_FORMAT), styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
#elements.append(Paragraph(title, styles['InfoTitleVeryLargeCenter']))
#elements.append(Paragraph(approval.activity, styles['InfoTitleLargeLeft']))
elements.append(Paragraph('APPROVAL OF PROPOSAL {} {} TO UNDERTAKE DISTURBANCE ACTIVITY IN {}'.format(title, proposal.lodgement_number, region_district), styles['InfoTitleLargeLeft']))
#import ipdb; ipdb.set_trace()
#elements.append(Paragraph(approval.tenure if hasattr(approval, 'tenure') else '', styles['InfoTitleLargeRight']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('The submitted proposal {} {} has been assessed and approved. The approval is granted on the understanding that: '.format(title, proposal.lodgement_number), styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
list_of_bullets= []
list_of_bullets.append('The potential impacts of the proposal on values the department manages have been removed or minimised to a level \'As Low As Reasonably Practicable\' (ALARP) and the proposal is consistent with departmental objectives, associated management plans and the land use category/s in the activity area.')
list_of_bullets.append('Approval is granted for the period {} to {}. This approval is not valid if {} makes changes to what has been proposed or the proposal has expired. To change the proposal or seek an extension, the proponent must re-submit the proposal for assessment.'.format(approval.start_date.strftime(DATE_FORMAT), approval.expiry_date.strftime(DATE_FORMAT),_format_name(approval.applicant)))
list_of_bullets.append('The proponent accepts responsibility for advising {} of new information or unforeseen threats that may affect the risk of the proposed activity.'.format(settings.DEP_NAME_SHORT))
list_of_bullets.append('Information provided by {0} for the purposes of this proposal will not be provided to third parties without permission from {0}.'.format(settings.DEP_NAME_SHORT))
list_of_bullets.append('The proponent accepts responsibility for supervising and monitoring implementation of activity/ies to ensure compliance with this proposal. {} reserves the right to request documents and records demonstrating compliance for departmental monitoring and auditing.'.format(settings.DEP_NAME_SHORT))
list_of_bullets.append('Non-compliance with the conditions of the proposal may trigger a suspension or withdrawal of the approval for this activity.')
list_of_bullets.append('Management actions listed in Appendix 1 are implemented.')
understandingList = ListFlowable(
[ListItem(Paragraph(a, styles['Left']), bulletColour='black', value='circle') for a in list_of_bullets],
bulletFontName=BOLD_FONTNAME, bulletFontSize=SMALL_FONTSIZE, bulletType='bullet')
#bulletFontName=BOLD_FONTNAME
elements.append(understandingList)
# proposal requirements
requirements = proposal.requirements.all().exclude(is_deleted=True)
if requirements.exists():
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('The following requirements must be satisfied for the approval of the proposal not to be withdrawn:', styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
conditionList = ListFlowable(
[Paragraph(a.requirement, styles['Left']) for a in requirements.order_by('order')],
bulletFontName=BOLD_FONTNAME, bulletFontSize=MEDIUM_FONTSIZE)
elements.append(conditionList)
# if copied_to_permit:
# elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# elements.append(Paragraph('Assessor Comments', styles['BoldLeft']))
# elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
# for k,v in copied_to_permit:
# elements.append(Paragraph(v.encode('UTF-8'), styles['Left']))
# elements.append(Paragraph(k.encode('UTF-8'), styles['Left']))
# elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements += _layout_extracted_fields(approval.extracted_fields)
# additional information
'''if approval.additional_information:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Additional Information', styles['BoldLeft']))
elements += _layout_paragraphs(approval.additional_information)'''
# delegation holds the dates, approvale and issuer details.
delegation = []
# dates and licensing officer
# dates_licensing_officer_table_style = TableStyle([('VALIGN', (0, 0), (-2, -1), 'TOP'),
# ('VALIGN', (0, 0), (-1, -1), 'BOTTOM')])
#.........这里部分代码省略.........
示例8: _create_licence
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_licence(licence_buffer, licence, application):
site_url = settings.SITE_URL
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=[every_page_frame], onPage=_create_licence_header)
doc = BaseDocTemplate(licence_buffer, pageTemplates=[every_page_template], pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.licence = licence
doc.site_url = site_url
licence_table_style = TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')])
elements = []
title = licence.title.encode('UTF-8')
elements.append(Paragraph(title, styles['InfoTitleVeryLargeCenter']))
elements.append(Paragraph(licence.activity, styles['InfoTitleLargeLeft']))
elements.append(Paragraph(licence.region, styles['InfoTitleLargeLeft']))
elements.append(Paragraph(licence.tenure if licence.tenure else '', styles['InfoTitleLargeRight']))
# application conditions
if application.conditions.exists():
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Conditions', styles['BoldLeft']))
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
conditionList = ListFlowable(
[Paragraph(a.condition, styles['Left']) for a in application.conditions.order_by('order')],
bulletFontName=BOLD_FONTNAME, bulletFontSize=MEDIUM_FONTSIZE)
elements.append(conditionList)
elements += _layout_extracted_fields(licence.extracted_fields)
# additional information
'''if licence.additional_information:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Additional Information', styles['BoldLeft']))
elements += _layout_paragraphs(licence.additional_information)'''
# delegation holds the dates, licencee and issuer details.
delegation = []
# dates and licensing officer
dates_licensing_officer_table_style = TableStyle([('VALIGN', (0, 0), (-2, -1), 'TOP'),
('VALIGN', (0, 0), (-1, -1), 'BOTTOM')])
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
date_headings = [Paragraph('Date of Issue', styles['BoldLeft']), Paragraph('Valid From', styles['BoldLeft']),
Paragraph('Date of Expiry', styles['BoldLeft'])]
date_values = [Paragraph(licence.issue_date.strftime(DATE_FORMAT), styles['Left']),
Paragraph(licence.start_date.strftime(DATE_FORMAT), styles['Left']),
Paragraph(licence.expiry_date.strftime(DATE_FORMAT), styles['Left'])]
if licence.original_issue_date is not None:
date_headings.insert(0, Paragraph('Original Date of Issue', styles['BoldLeft']))
date_values.insert(0, Paragraph(licence.original_issue_date.strftime(DATE_FORMAT), styles['Left']))
delegation.append(Table([[date_headings, date_values]],
colWidths=(120, PAGE_WIDTH - (2 * PAGE_MARGIN) - 120),
style=dates_licensing_officer_table_style))
# proponent details
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
address = application.applicant.organisation.postal_address
address_paragraphs = [Paragraph(address.line1, styles['Left']), Paragraph(address.line2, styles['Left']),
Paragraph(address.line3, styles['Left']),
Paragraph('%s %s %s' % (address.locality, address.state, address.postcode), styles['Left']),
Paragraph(address.country.name, styles['Left'])]
delegation.append(Table([[[Paragraph('Licensee:', styles['BoldLeft']), Paragraph('Address', styles['BoldLeft'])],
[Paragraph(_format_name(licence.applicant),
styles['Left'])] + address_paragraphs]],
colWidths=(120, PAGE_WIDTH - (2 * PAGE_MARGIN) - 120),
style=licence_table_style))
delegation.append(Spacer(1, SECTION_BUFFER_HEIGHT))
delegation.append(Paragraph('Issued by a Wildlife Licensing Officer of the {} '
'under delegation from the Minister for Environment pursuant to section 133(1) '
'of the Conservation and Land Management Act 1984.'.format(settings.DEP_NAME), styles['Left']))
elements.append(KeepTogether(delegation))
doc.build(elements)
return licence_buffer
示例9: _create_licence
# 需要导入模块: from reportlab.platypus import BaseDocTemplate [as 别名]
# 或者: from reportlab.platypus.BaseDocTemplate import site_url [as 别名]
def _create_licence(licence_buffer, licence, application, site_url, original_issue_date):
every_page_frame = Frame(PAGE_MARGIN, PAGE_MARGIN, PAGE_WIDTH - 2 * PAGE_MARGIN,
PAGE_HEIGHT - 160, id='EveryPagesFrame')
every_page_template = PageTemplate(id='EveryPages', frames=every_page_frame, onPage=_create_header)
doc = BaseDocTemplate(licence_buffer, pageTemplates=[every_page_template],
pagesize=A4)
# this is the only way to get data into the onPage callback function
doc.licence = licence
doc.site_url = site_url
licence_table_style = TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')])
elements = []
elements.append(Paragraph(licence.licence_type.act, styles['InfoTitleLargeCenter']))
elements.append(Paragraph(licence.licence_type.code.upper(), styles['InfoTitleLargeCenter']))
elements.append(Paragraph(licence.licence_type.name, styles['InfoTitleVeryLargeCenter']))
elements.append(Paragraph(licence.licence_type.statement, styles['InfoTitleLargeLeft']))
elements.append(Paragraph(licence.licence_type.authority, styles['InfoTitleLargeRight']))
# licence conditions
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Paragraph('Conditions', styles['InfoTitleLargeCenter']))
conditionList = ListFlowable([Paragraph(condition.text, styles['Left']) for condition in application.conditions.all()],
bulletFontName=BOLD_FONTNAME, bulletFontSize=MEDIUM_FONTSIZE)
elements.append(conditionList)
# purpose
if licence.purpose:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
purposes = []
for purpose in licence.purpose.split('\r\n'):
if purpose:
purposes.append(Paragraph(purpose, styles['Left']))
else:
purposes.append(Spacer(1, SECTION_BUFFER_HEIGHT))
elements.append(Table([[Paragraph('Purpose', styles['BoldLeft']), purposes]],
colWidths=(100, PAGE_WIDTH - (2 * PAGE_MARGIN) - 100),
style=licence_table_style))
# authorised persons
authorised_persons = _get_authorised_person_names(application)
if len(authorised_persons) > 0:
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
authorized_persons = [Paragraph(ap, styles['Left']) for ap in authorised_persons]
elements.append(Table([[Paragraph('Authorised Persons', styles['BoldLeft']), authorized_persons]],
colWidths=(100, PAGE_WIDTH - (2 * PAGE_MARGIN) - 100),
style=licence_table_style))
# dates and licensing officer
dates_licensing_officer_table_style = TableStyle([('VALIGN', (0, 0), (-2, -1), 'TOP'),
('VALIGN', (0, 0), (-1, -1), 'BOTTOM')])
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
date_headings = [Paragraph('Date of Issue', styles['BoldLeft']), Paragraph('Valid From', styles['BoldLeft']),
Paragraph('Date of Expiry', styles['BoldLeft'])]
date_values = [Paragraph(licence.issue_date.strftime(DATE_FORMAT), styles['Left']),
Paragraph(licence.start_date.strftime(DATE_FORMAT), styles['Left']),
Paragraph(licence.end_date.strftime(DATE_FORMAT), styles['Left'])]
if original_issue_date is not None:
date_headings.insert(0, Paragraph('Original Date of Issue', styles['BoldLeft']))
date_values.insert(0, Paragraph(original_issue_date.strftime(DATE_FORMAT), styles['Left']))
elements.append(Table([[date_headings, date_values,
Paragraph('Licensing Officer', styles['BoldRight'])]],
colWidths=(120, PAGE_WIDTH - (2 * PAGE_MARGIN) - 200, 80),
style=dates_licensing_officer_table_style))
# licensee details
elements.append(Spacer(1, SECTION_BUFFER_HEIGHT))
address = application.applicant_profile.postal_address
address_paragraphs = [Paragraph(address.line1, styles['Left']), Paragraph(address.line2, styles['Left']),
Paragraph(address.line3, styles['Left']),
Paragraph('%s %s %s' % (address.locality, address.state, address.postcode), styles['Left']),
Paragraph(address.country.name, styles['Left'])]
elements.append(Table([[[Paragraph('Licensee:', styles['BoldLeft']), Paragraph('Address', styles['BoldLeft'])],
[Paragraph(render_user_name(application.applicant_profile.user), styles['Left'])] + address_paragraphs]],
colWidths=(120, PAGE_WIDTH - (2 * PAGE_MARGIN) - 120),
style=licence_table_style))
doc.build(elements)
return licence_buffer