added available teams template tag
This commit is contained in:
parent
c18fd7e378
commit
6e67b50501
5 changed files with 60 additions and 1 deletions
0
symposion/teams/templatetags/__init__.py
Normal file
0
symposion/teams/templatetags/__init__.py
Normal file
45
symposion/teams/templatetags/teams_tags.py
Normal file
45
symposion/teams/templatetags/teams_tags.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
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)
|
|
@ -11,6 +11,7 @@ def team_detail(request, slug):
|
|||
team = get_object_or_404(Team, slug=slug)
|
||||
if team.get_state_for_user(request.user) != "manager":
|
||||
raise Http404()
|
||||
|
||||
|
||||
return render(request, "teams/team_detail.html", {
|
||||
"team": team,
|
||||
})
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
{% load i18n %}
|
||||
{% load proposal_tags %}
|
||||
{% load teams_tags %}
|
||||
|
||||
{% block head_title %}Dashboard{% endblock %}
|
||||
|
||||
|
@ -144,6 +145,10 @@
|
|||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% available_teams as available_teams %}
|
||||
{% for team in available_team %}
|
||||
{{ team }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
8
symposion_project/templates/teams/team_detail.html
Normal file
8
symposion_project/templates/teams/team_detail.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% extends "site_base.html" %}
|
||||
|
||||
{% block head_title %}{{ team.name }}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<h1>{{ team.name }}</h1>
|
||||
|
||||
{% endblock %}
|
Loading…
Reference in a new issue