teams model tweaks and initial dashboard

This commit is contained in:
James Tauber 2012-07-28 18:10:15 -04:00
parent 2d9f065232
commit 283ac696ef
2 changed files with 38 additions and 13 deletions

View file

@ -8,9 +8,9 @@ from django.contrib.auth.models import Permission, User
TEAM_ACCESS_CHOICES = [
(1, "open"),
(2, "by application"),
(3, "by invitation")
("open", "open"),
("application", "by application"),
("invitation", "by invitation")
]
@ -19,7 +19,7 @@ class Team(models.Model):
slug = models.SlugField(unique=True)
name = models.CharField(max_length=100)
description = models.TextField(blank=True)
access = models.IntegerField(choices=TEAM_ACCESS_CHOICES)
access = models.CharField(max_length=20, choices=TEAM_ACCESS_CHOICES)
permissions = models.ManyToManyField(Permission, blank=True)
created = models.DateTimeField(default=datetime.datetime.now, editable=False)
@ -28,20 +28,20 @@ class Team(models.Model):
MEMBERSHIP_STATE_CHOICES = [
(1, "applied"),
(2, "invited"),
(3, "declined"),
(4, "rejected"),
(5, "member"),
(6, "manager"),
("applied", "applied"),
("invited", "invited"),
("declined", "declined"),
("rejected", "rejected"),
("member", "member"),
("manager", "manager"),
]
class Membership(models.Model):
user = models.ForeignKey(User)
team = models.ForeignKey(Team)
state = models.IntegerField(choices=MEMBERSHIP_STATE_CHOICES)
user = models.ForeignKey(User, related_name="memberships")
team = models.ForeignKey(Team, related_name="memberships")
state = models.CharField(max_length=20, choices=MEMBERSHIP_STATE_CHOICES)
message = models.TextField(blank=True)

View file

@ -121,4 +121,29 @@
</p>
</div>
</div>
<div class="dashboard-panel">
<div class="dashboard-panel-header">
<i class="icon-group"></i>
<h3>{% trans "Teams" %}</h3>
</div>
<div class="dashboard-panel-content">
{% if user.memberships.exists %}
<h4>Your Teams</h4>
<ul>
{% for membership in user.memberships.all %}
<li>
{% if membership.state == "manager" %}
<a href="#">{{ membership.team.name }}</a>
{% else %}
{{ membership.team.name }}
{% endif %}
<span class="badge">{{ membership.get_state_display }}</span>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% endblock %}