diff --git a/src/teams/migrations/0012_teammember_responsible.py b/src/teams/migrations/0012_teammember_responsible.py new file mode 100644 index 00000000..72ac8139 --- /dev/null +++ b/src/teams/migrations/0012_teammember_responsible.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2017-04-02 21:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('teams', '0011_auto_20170402_1608'), + ] + + operations = [ + migrations.AddField( + model_name='teammember', + name='responsible', + field=models.BooleanField(default=False), + ), + ] diff --git a/src/teams/models.py b/src/teams/models.py index e580129e..d243e00e 100644 --- a/src/teams/models.py +++ b/src/teams/models.py @@ -57,11 +57,19 @@ class Team(CampRelatedModel): else: return "Membership Pending" + @property + def responsible(self): + if TeamMember.objects.filter(team=self, responsible=True).exists(): + return TeamMember.objects.filter(team=self, responsible=True) + else: + return self.area.responsible.all() + class TeamMember(models.Model): user = models.ForeignKey('auth.User') team = models.ForeignKey('teams.Team') approved = models.BooleanField(default=False) + responsible = models.BooleanField(default=False) def __str__(self): return '{} is {} member of team {}'.format(self.user, '' if self.approved else 'an unapproved', self.team) diff --git a/src/teams/templates/team_detail.html b/src/teams/templates/team_detail.html index bb874a5e..89e561ee 100644 --- a/src/teams/templates/team_detail.html +++ b/src/teams/templates/team_detail.html @@ -24,7 +24,7 @@ Team: {{ team.name }} | {{ block.super }}

{{ team.area.name }} Area:

This team is under the {{ team.area.name }} area. The following people are responsible for the {{ team.area.name }} area:

diff --git a/src/teams/templates/team_list.html b/src/teams/templates/team_list.html index 0276a940..833adb5e 100644 --- a/src/teams/templates/team_list.html +++ b/src/teams/templates/team_list.html @@ -37,7 +37,7 @@ Teams | {{ block.super }} {{ team.area.name }} Area - {% for resp in team.area.responsible.all %} + {% for resp in team.responsible.all %} {{ resp.get_full_name|default:"Unnamed" }}{% if not forloop.last %},{% endif %}
{% endfor %}