Source code for uw.local.print_.webui.requisition
"""Requisition-related URL handlers.
URL handlers for listing requisitions and viewing individual requisitions.
"""
from operator import attrgetter
from ll.xist.ns import html
from uw.web.html.format import make_table_format, format_datetime, format_return
from uw.web.wsgi.delegate import delegate_get_post
from uw.web.wsgi.function import return_html, return_pdf
@delegate_get_post
@return_html
def requisition_index (cursor):
"""Requisition index URL handler.
Displays a list of all requisitions in the system.
"""
result = [format_return ('Main Menu')]
requisitions = cursor.all_requisitions ()
result.append (format_requisitions (requisitions))
return 'Requisition Index', result
@delegate_get_post
@return_html
def requisition_view (cursor, requisition):
"""Requisition view URL handler.
Displays information about the in-context requisition, including a link to
the related job if any.
"""
result = [format_return ('Main Menu', 'Requisitions')]
result.append (html.p ('Arrived: ', format_datetime (requisition.requisition_arrived)))
result.append (html.p ('Download PDF: ', html.a ('%d bytes' % requisition.requisition_bytes, href="pdf")))
if requisition.job_id is None:
result.append (html.p ('This requisition is not associated with a job.'))
else:
result.append (html.p ('This requisition is associated with ', html.a ('Job %d' % requisition.job_id, href="../../job/%d/" % requisition.job_id), '.'))
return 'Requisition R%06d: %s' % (requisition.requisition_num, requisition.requisition_title), result
@return_pdf
def requisition_pdf (cursor, requisition):
"""Requisition PDF download URL handler.
Serves the saved PDF requisition document of the in-context requisition to
the client.
"""
pdf = cursor.execute_optional_value ("select requisition_pdf from nms_requisition_received where requisition_num = %(requisition_num)s", requisition_num=requisition.requisition_num)
if pdf is None:
raise status.HTTPNotFound ()
return (pdf, "newmediareq_R%06d.pdf" % requisition.requisition_num)