From 0cc080b5cfb0c33f7916adf030d2f2d1a44bb206 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 14 Feb 2017 22:25:49 +0100 Subject: [PATCH] adding sharing behavior as a team setting --- rowers/models.py | 10 +++++++++- rowers/teams.py | 7 ++++--- rowers/templates/teamcreate.html | 15 ++++++++++++--- rowers/templates/teamedit.html | 13 +++++++++++-- rowers/views.py | 8 ++++++-- 5 files changed, 42 insertions(+), 11 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 755b3ede..41083237 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -104,19 +104,27 @@ class Team(models.Model): ('private','private'), ('open','open'), ) + + viewchoices = ( + ('coachonly','Coach Only'), + ('allmembers','All Members') + ) + name = models.CharField(max_length=150,unique=True,verbose_name='Team Name') notes = models.CharField(blank=True,max_length=200,verbose_name='Team Purpose') manager = models.ForeignKey(User) private = models.CharField(max_length=30,choices=choices,default='open', verbose_name='Team Type') + viewing = models.CharField(max_length=30,choices=viewchoices,default='allmembers',verbose_name='Sharing Behavior') + def __unicode__(self): return self.name class TeamForm(ModelForm): class Meta: model = Team - fields = ['name','notes','private'] + fields = ['name','notes','private','viewing'] widgets = { 'notes': forms.Textarea, } diff --git a/rowers/teams.py b/rowers/teams.py index eadc2dc1..9891facb 100644 --- a/rowers/teams.py +++ b/rowers/teams.py @@ -43,7 +43,7 @@ def handle_add_workouts_team(ws,t): return 1 -def update_team(t,name,manager,private,notes): +def update_team(t,name,manager,private,notes,viewing): if t.manager != manager: return (0,'You are not the manager of this team') try: @@ -51,16 +51,17 @@ def update_team(t,name,manager,private,notes): t.manager = manager t.private = private t.notes = notes + t.viewing = viewing t.save() except IntegrityError: return (0,'Team name duplication') return (1,'Team Updated') -def create_team(name,manager,private='open',notes=''): +def create_team(name,manager,private='open',notes='',viewing='allmembers'): # needs some error testing try: t = Team(name=name,manager=manager,notes=notes, - private=private) + private=private,viewing=viewing) t.save() r = Rower.objects.get(user=manager) res = add_member(t.id,r) diff --git a/rowers/templates/teamcreate.html b/rowers/templates/teamcreate.html index 557e366b..4d4e6a98 100644 --- a/rowers/templates/teamcreate.html +++ b/rowers/templates/teamcreate.html @@ -4,9 +4,11 @@ {% block title %}New Team{% endblock %} {% block content %} -
+
+

Create a new Team

+
-

Create a new Team

+ {% if form.errors %}

Please correct the error{{ form.errors|pluralize }} below. @@ -21,7 +23,14 @@

- + +
diff --git a/rowers/templates/teamedit.html b/rowers/templates/teamedit.html index 4d037b22..b8ea6366 100644 --- a/rowers/templates/teamedit.html +++ b/rowers/templates/teamedit.html @@ -4,9 +4,11 @@ {% block title %}New Team{% endblock %} {% block content %} -
+
+

Edit Team {{ team.name }}

+
-

Edit Team {{ team.name }}

+ {% if form.errors %}

Please correct the error{{ form.errors|pluralize }} below. @@ -21,6 +23,13 @@

+ diff --git a/rowers/views.py b/rowers/views.py index 663bd326..9a2006be 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5432,7 +5432,9 @@ def team_edit_view(request,id=0): notes = cd['notes'] manager = request.user private = cd['private'] - res,message=teams.update_team(t,name,manager,private,notes) + viewing = cd['viewing'] + res,message=teams.update_team(t,name,manager,private,notes, + viewing) if res: url = reverse(team_view, kwargs={ @@ -5470,7 +5472,9 @@ def team_create_view(request): notes = cd['notes'] manager = request.user private = cd['private'] - res,message=teams.create_team(name,manager,private,notes) + viewing = cd['viewing'] + res,message=teams.create_team(name,manager,private,notes, + viewing) url = reverse(rower_teams_view) response = HttpResponseRedirect(url) return response