File diff c18fd7e378ab → 6e67b505013b
symposion/teams/templatetags/teams_tags.py
Show inline comments
 
new file 100644
 
from django import template
 

	
 
from symposion.teams.models import Team
 

	
 
register = template.Library()
 

	
 

	
 
class AvailableTeamsNode(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"]
 
        teams = []
 
        for team in Team.objects.all():
 
            print team
 
            state = team.get_state_for_user(request.user)
 
            if team.access == "open":
 
                if state in [None, "invited"]:
 
                    teams.append(team)
 
            elif team.access == "application":
 
                if state in [None, "invited", "applied"]:
 
                    teams.append(team)
 
            elif team.access == "invitation":
 
                if state == "invited":
 
                    teams.append(team)
 
        context[self.context_var] = teams
 
        return u""
 

	
 

	
 
@register.tag
 
def available_teams(parser, token):
 
    """
 
    {% available_teams as available_teams %}
 
    """
 
    return AvailableTeamsNode.handle_token(parser, token)