docs: def document(request, abbr, session, bill_id, doc_id):
      '''
      Context:
          - abbr
          - session
          - bill
          - version
          - metadata
          - nav_active
  
      Templates:
          - billy/web/public/document.html
      '''
      # get fixed version
      fixed_bill_id = fix_bill_id(bill_id)
      # redirect if URL's id isn't fixed id without spaces
      if fixed_bill_id.replace(' ', '') != bill_id:
          return redirect('document', abbr=abbr, session=session,
                          bill_id=fixed_bill_id.replace(' ', ''), doc_id=doc_id)
  
      bill = db.bills.find_one({settings.LEVEL_FIELD: abbr, 'session': session,
                                'bill_id': fixed_bill_id})
  
      if not bill:
          raise Http404('No such bill.')
  
      for version in bill['versions']:
          if version['doc_id'] == doc_id:
              break
      else:
          raise Http404('No such document.')
  
      if not settings.ENABLE_DOCUMENT_VIEW.get(abbr, False):
          return redirect(version['url'])
  
      return render(request, templatename('document'),
                    dict(abbr=abbr, session=session, bill=bill, version=version,
                         metadata=bill.metadata, nav_active='bills'))