teams model tweaks and initial dashboard
This commit is contained in:
parent
2d9f065232
commit
283ac696ef
2 changed files with 38 additions and 13 deletions
|
@ -8,9 +8,9 @@ from django.contrib.auth.models import Permission, User
|
||||||
|
|
||||||
|
|
||||||
TEAM_ACCESS_CHOICES = [
|
TEAM_ACCESS_CHOICES = [
|
||||||
(1, "open"),
|
("open", "open"),
|
||||||
(2, "by application"),
|
("application", "by application"),
|
||||||
(3, "by invitation")
|
("invitation", "by invitation")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ class Team(models.Model):
|
||||||
slug = models.SlugField(unique=True)
|
slug = models.SlugField(unique=True)
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
description = models.TextField(blank=True)
|
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)
|
permissions = models.ManyToManyField(Permission, blank=True)
|
||||||
created = models.DateTimeField(default=datetime.datetime.now, editable=False)
|
created = models.DateTimeField(default=datetime.datetime.now, editable=False)
|
||||||
|
|
||||||
|
@ -28,20 +28,20 @@ class Team(models.Model):
|
||||||
|
|
||||||
|
|
||||||
MEMBERSHIP_STATE_CHOICES = [
|
MEMBERSHIP_STATE_CHOICES = [
|
||||||
(1, "applied"),
|
("applied", "applied"),
|
||||||
(2, "invited"),
|
("invited", "invited"),
|
||||||
(3, "declined"),
|
("declined", "declined"),
|
||||||
(4, "rejected"),
|
("rejected", "rejected"),
|
||||||
(5, "member"),
|
("member", "member"),
|
||||||
(6, "manager"),
|
("manager", "manager"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class Membership(models.Model):
|
class Membership(models.Model):
|
||||||
|
|
||||||
user = models.ForeignKey(User)
|
user = models.ForeignKey(User, related_name="memberships")
|
||||||
team = models.ForeignKey(Team)
|
team = models.ForeignKey(Team, related_name="memberships")
|
||||||
state = models.IntegerField(choices=MEMBERSHIP_STATE_CHOICES)
|
state = models.CharField(max_length=20, choices=MEMBERSHIP_STATE_CHOICES)
|
||||||
message = models.TextField(blank=True)
|
message = models.TextField(blank=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -121,4 +121,29 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</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 %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in a new issue