docs: def get_context_data(self, *args, **kwargs):
          '''
          Context:
              If GET parameters are given:
              - search_text
              - form (FilterBillsForm)
              - long_description
              - description
              - get_params
              Otherwise, the only context item is an unbound FilterBillsForm.
  
          Templates:
              - Are specified in subclasses.
          '''
          context = super(RelatedBillsList, self).get_context_data(*args,
                                                                   **kwargs)
          metadata = context['metadata']
          FilterBillsForm = get_filter_bills_form(metadata)
  
          if self.request.GET:
              form = FilterBillsForm(self.request.GET)
              search_text = form.data.get('search_text')
              context.update(search_text=search_text)
              context.update(form=FilterBillsForm(self.request.GET))
  
              # human readable description of search
              description = []
              if metadata:
                  description.append(metadata['name'])
              else:
                  description = ['Search All']
              long_description = []
              chamber = form.data.get('chamber')
              session = form.data.get('session')
              type = form.data.get('type')
              status = form.data.getlist('status')
              subjects = form.data.getlist('subjects')
              sponsor = form.data.get('sponsor__leg_id')
              if chamber:
                  if metadata:
                      description.append(metadata['chambers'][chamber]['name']
                                        )
                  else:
                      description.extend([chamber.title(), 'Chamber'])
              description.append((type or 'Bill') + 's')
              if session:
                  description.append(
                      '(%s)' %
                      metadata['session_details'][session]['display_name']
                  )
              if 'signed' in status:
                  long_description.append('which have been signed into law')
              elif 'passed_upper' in status and 'passed_lower' in status:
                  long_description.append('which have passed both chambers')
              elif 'passed_lower' in status:
                  chamber_name = (metadata['chambers']['lower']['name']
                                  if metadata else 'lower chamber')
                  long_description.append('which have passed the ' +
                                          chamber_name)
              elif 'passed_upper' in status:
                  chamber_name = (metadata['chambers']['upper']['name']
                                  if metadata else 'upper chamber')
                  long_description.append('which have passed the ' +
                                          chamber_name)
              if sponsor:
                  leg = db.legislators.find_one({'_all_ids': sponsor},
                                                fields=('full_name', '_id'))
                  leg = leg['full_name']
                  long_description.append('sponsored by ' + leg)
              if subjects:
                  long_description.append('related to ' + ', '.join(subjects))
              if search_text:
                  long_description.append(u'containing the term "{0}"'.format(
                      search_text))
              context.update(long_description=long_description)
          else:
              if metadata:
                  description = [metadata['name'], 'Bills']
              else:
                  description = ['All Bills']
              context.update(form=FilterBillsForm())
  
          context.update(description=' '.join(description))
  
          # Add the correct path to paginated links.
          params = list(self.request.GET.lists())
          for k, v in params[:]:
              if k == 'page':
                  params.remove((k, v))
          get_params = urllib.urlencode(params, doseq=True)
          context['get_params'] = get_params
  
          # Add the abbr.
          context['abbr'] = self.kwargs['abbr']
          return context