old_contents: from django import template
  
  from symposion.proposals.models import AdditionalSpeaker
  
  
  register = template.Library()
  
  
  class PendingProposalsNode(template.Node):
      
      @classmethod
      def handle_token(cls, parser, token):
          bits = token.split_contents()
          if len(bits) == 3 and bits[1] == "as":
              return cls(bits[2])
          else:
              raise template.TemplateSyntaxError("%r takes 'as var'" % bits[0])
      
      def __init__(self, context_var):
          self.context_var = context_var
      
      def render(self, context):
          request = context["request"]
          if request.user.speaker_profile:
              pending = AdditionalSpeaker.SPEAKING_STATUS_PENDING
              speaker = request.user.speaker_profile
              queryset = AdditionalSpeaker.objects.filter(speaker=speaker, status=pending)
              context[self.context_var] = [item.proposalbase for item in queryset]
          else:
              context[self.context_var] = None
          return u""
  
  
  @register.tag
  def pending_proposals(parser, token):
      """
      {% pending_proposals as pending_proposals %}
      """
      return PendingProposalsNode.handle_token(parser, token)
  
new_contents: from django import template
  
  from symposion.proposals.models import AdditionalSpeaker
  
  
  register = template.Library()
  
  
  class AssociatedProposalsNode(template.Node):
      
      @classmethod
      def handle_token(cls, parser, token):
          bits = token.split_contents()
          if len(bits) == 3 and bits[1] == "as":
              return cls(bits[2])
          else:
              raise template.TemplateSyntaxError("%r takes 'as var'" % bits[0])
      
      def __init__(self, context_var):
          self.context_var = context_var
      
      def render(self, context):
          request = context["request"]
          if request.user.speaker_profile:
              pending = AdditionalSpeaker.SPEAKING_STATUS_ACCEPTED
              speaker = request.user.speaker_profile
              queryset = AdditionalSpeaker.objects.filter(speaker=speaker, status=pending)
              context[self.context_var] = [item.proposalbase for item in queryset]
          else:
              context[self.context_var] = None
          return u""
  
  
  class PendingProposalsNode(template.Node):
      
      @classmethod
      def handle_token(cls, parser, token):
          bits = token.split_contents()
          if len(bits) == 3 and bits[1] == "as":
              return cls(bits[2])
          else:
              raise template.TemplateSyntaxError("%r takes 'as var'" % bits[0])
      
      def __init__(self, context_var):
          self.context_var = context_var
      
      def render(self, context):
          request = context["request"]
          if request.user.speaker_profile:
              pending = AdditionalSpeaker.SPEAKING_STATUS_PENDING
              speaker = request.user.speaker_profile
              queryset = AdditionalSpeaker.objects.filter(speaker=speaker, status=pending)
              context[self.context_var] = [item.proposalbase for item in queryset]
          else:
              context[self.context_var] = None
          return u""
  
  
  @register.tag
  def pending_proposals(parser, token):
      """
      {% pending_proposals as pending_proposals %}
      """
      return PendingProposalsNode.handle_token(parser, token)
  
  
  @register.tag
  def associated_proposals(parser, token):
      """
      {% associated_proposals as associated_proposals %}
      """
      return AssociatedProposalsNode.handle_token(parser, token)
  
  
subject: add associated proposals tag