added inventory from test_permissions
This commit is contained in:
@@ -41,7 +41,7 @@ import datetime
|
||||
|
||||
#from rules.contrib.models import RulesModel
|
||||
|
||||
|
||||
from rowers.rower_rules import *
|
||||
|
||||
from rowers.rows import validate_file_extension
|
||||
from collections import OrderedDict
|
||||
@@ -330,12 +330,6 @@ class C2WorldClassAgePerformance(models.Model):
|
||||
|
||||
return thestring
|
||||
|
||||
def is_not_basic(user):
|
||||
if user.rower.rowerplan == 'basic':
|
||||
raise ValidationError(
|
||||
"Basic user cannot be team manager"
|
||||
)
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Team(models.Model):
|
||||
@@ -351,7 +345,7 @@ class Team(models.Model):
|
||||
|
||||
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, null=True,on_delete=models.CASCADE) # validators=[is_not_basic])
|
||||
manager = models.ForeignKey(User, null=True,on_delete=models.CASCADE)
|
||||
private = models.CharField(max_length=30,choices=choices,default='open',
|
||||
verbose_name='Team Type')
|
||||
|
||||
@@ -364,18 +358,15 @@ class Team(models.Model):
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
manager = self.manager
|
||||
if manager.rower.rowerplan == 'basic':
|
||||
if manager.rower.protrialexpires < datetime.date.today() and manager.rower.plantrialexpires < datetime.date.today():
|
||||
if not can_have_teams(manager):
|
||||
raise ValidationError(
|
||||
"Basic user cannot be team manager"
|
||||
)
|
||||
|
||||
if manager.rower.rowerplan in ['plan','pro']:
|
||||
otherteams = Team.objects.filter(manager=manager)
|
||||
if otherteams.count() >= 1:
|
||||
raise ValidationError(
|
||||
"Pro and Self-Coach users cannot have more than one team"
|
||||
)
|
||||
if not can_add_team(manager):
|
||||
raise ValidationError(
|
||||
"Pro and Self-Coach users cannot have more than one team"
|
||||
)
|
||||
|
||||
super(Team, self).save(*args,**kwargs)
|
||||
|
||||
@@ -910,6 +901,17 @@ class Rower(models.Model):
|
||||
def get_managed_teams(self):
|
||||
return Team.objects.filter(manager=self.user)
|
||||
|
||||
def get_coaches(self):
|
||||
coaches = []
|
||||
for group in self.coachinggroups.all():
|
||||
try:
|
||||
coach = Rower.objects.get(mycoachgroup=group)
|
||||
coaches.append(coach)
|
||||
except Rower.DoesNotExist:
|
||||
pass
|
||||
|
||||
return coaches
|
||||
|
||||
class DeactivateUserForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = User
|
||||
@@ -943,14 +945,14 @@ def check_teams_on_change(sender, **kwargs):
|
||||
instance = kwargs.pop('instance', None)
|
||||
action = kwargs.pop('action', None)
|
||||
pk_set = kwargs.pop('pk_set',None)
|
||||
if action == 'pre_add' and instance.rowerplan=='basic':
|
||||
if instance.protrialexpires < datetime.date.today() and instance.plantrialexpires < datetime.date.today():
|
||||
for id in pk_set:
|
||||
team = Team.objects.get(id=id)
|
||||
if team.manager.rower.rowerplan not in ['coach']:
|
||||
raise ValidationError(
|
||||
"You cannot join a team led by a Pro, Free Coach Plan or Self-Coach user"
|
||||
)
|
||||
if action == 'pre_add':
|
||||
#if instance.protrialexpires < datetime.date.today() and instance.plantrialexpires < datetime.date.today():
|
||||
for id in pk_set:
|
||||
team = Team.objects.get(id=id)
|
||||
if not can_join_team(instance,team):
|
||||
raise ValidationError(
|
||||
"You cannot join a team led by a Pro, Free Coach Plan or Self-Coach user"
|
||||
)
|
||||
|
||||
m2m_changed.connect(check_teams_on_change, sender=Rower.team.through)
|
||||
|
||||
@@ -1349,12 +1351,10 @@ class TrainingPlan(models.Model):
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
manager = self.manager
|
||||
|
||||
if manager.rowerplan in ['basic','pro']:
|
||||
if manager.plantrialexpires < timezone.now().date():
|
||||
raise ValidationError(
|
||||
"Basic user cannot have a training plan"
|
||||
)
|
||||
if not can_add_plan(manager):
|
||||
raise ValidationError(
|
||||
"Basic user cannot have a training plan"
|
||||
)
|
||||
|
||||
if self.enddate < self.startdate:
|
||||
startdate = self.startdate
|
||||
@@ -2084,11 +2084,10 @@ class PlannedSession(models.Model):
|
||||
|
||||
manager = self.manager
|
||||
if self.sessiontype not in ['race','indoorrace']:
|
||||
if manager.rower.rowerplan in ['basic','pro']:
|
||||
if manager.rower.plantrialexpires < timezone.now().date():
|
||||
raise ValidationError(
|
||||
"You must be a Self-Coach user or higher to create a planned session"
|
||||
)
|
||||
if not can_add_session(self.manager):
|
||||
raise ValidationError(
|
||||
"You must be a Self-Coach user or higher to create a planned session"
|
||||
)
|
||||
|
||||
|
||||
# sort units
|
||||
@@ -2666,7 +2665,7 @@ class Workout(models.Model):
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
user = self.user
|
||||
if self.user.rowerplan == 'freecoach':
|
||||
if not can_add_workout(self.user):
|
||||
raise forms.ValidationError("Free Coach User cannot have any workouts")
|
||||
|
||||
super(Workout, self).save(*args, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user