Private
Public Access
1
0

it's a start

This commit is contained in:
Sander Roosendaal
2019-02-14 17:45:19 +01:00
parent e70bd6a627
commit 95afb04dd2
2 changed files with 94 additions and 25 deletions

View File

@@ -30,7 +30,7 @@ from django.utils import timezone
import pandas as pd import pandas as pd
from dateutil import parser from dateutil import parser
import datetime import datetime
from django.core.exceptions import ValidationError
from rowers.rows import validate_file_extension from rowers.rows import validate_file_extension
from collections import OrderedDict from collections import OrderedDict
from timezonefinder import TimezoneFinder from timezonefinder import TimezoneFinder
@@ -313,6 +313,13 @@ class C2WorldClassAgePerformance(models.Model):
return thestring return thestring
def is_not_basic(user):
if user.rower.rowerplan == 'basic':
raise ValidationError(
"Basic user cannot be team manager"
)
# For future Team functionality # For future Team functionality
class Team(models.Model): class Team(models.Model):
choices = ( choices = (
@@ -327,7 +334,7 @@ class Team(models.Model):
name = models.CharField(max_length=150,unique=True,verbose_name='Team Name') name = models.CharField(max_length=150,unique=True,verbose_name='Team Name')
notes = models.CharField(blank=True,max_length=200,verbose_name='Team Purpose') notes = models.CharField(blank=True,max_length=200,verbose_name='Team Purpose')
manager = models.ForeignKey(User, null=True) manager = models.ForeignKey(User, null=True, validators=[is_not_basic])
private = models.CharField(max_length=30,choices=choices,default='open', private = models.CharField(max_length=30,choices=choices,default='open',
verbose_name='Team Type') verbose_name='Team Type')

View File

@@ -1,10 +1,68 @@
from statements import * from statements import *
from django.utils import timezone
nu = datetime.datetime.now(tz=timezone.utc)
# set up # set up
import rowers.teams as teams
import rowers.plannedsessions as plannedsessions
@override_settings(TESTING=True)
class PermissionsBasicsTests(TestCase):
def setUp:
self.c = Client()
## Users - Pro, Basic, Coach & Self Coach ## Users - Pro, Basic, Coach & Self Coach
## Couple of workouts self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='coach')
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
self.factory = RequestFactory()
self.password = faker.word()
self.ucoach.set_password(self.password)
self.ucoach.save()
self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='plan')
self.uselfplan_workouts = WorkoutFactory.create_batch(5, user=self.rselfplan)
self.factory = RequestFactory()
self.password = faker.word()
self.uselfplan.set_password(self.password)
self.uselfplan.save()
self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
self.factory = RequestFactory()
self.password = faker.word()
self.upro.set_password(self.password)
self.upro.save()
self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(),
rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
self.factory = RequestFactory()
self.password = faker.word()
self.ubasic.set_password(self.password)
self.ubasic.save()
## TeamPro, TeamCoach, TeamSelfCoach ## TeamPro, TeamCoach, TeamSelfCoach
@@ -36,6 +94,10 @@ from statements import *
## Basic can join group led by Coach ## Basic can join group led by Coach
## Basic cannot manage a group
def test_basic_groupmanager(self):
self.assertRaises ...
# View based # View based
## Coach can have any number of groups ## Coach can have any number of groups