Merge branch 'feature/clubsize' into develop
This commit is contained in:
@@ -24,7 +24,7 @@ class RowerInline(admin.StackedInline):
|
||||
('Billing Details',
|
||||
{'fields':('street_address','city','postal_code','country','paymentprocessor','customer_id')}),
|
||||
('Rower Plan',
|
||||
{'fields':('paidplan','rowerplan','paymenttype','planexpires','teamplanexpires','protrialexpires','plantrialexpires',)}),
|
||||
{'fields':('paidplan','rowerplan','paymenttype','planexpires','teamplanexpires','protrialexpires','plantrialexpires','clubsize','offercoaching')}),
|
||||
('Rower Settings',
|
||||
{'fields':
|
||||
('gdproptin','gdproptindate','weightcategory','sex','adaptiveclass','birthdate','getemailnotifications',
|
||||
@@ -60,7 +60,7 @@ class RowerInline(admin.StackedInline):
|
||||
#class UserAdmin(UserAdmin):
|
||||
class UserAdmin(admin.ModelAdmin):
|
||||
inlines = (RowerInline,)
|
||||
list_display = ('username','email','first_name','last_name','rowerplan')
|
||||
list_display = ('username','email','first_name','last_name','rowerplan','clubsize')
|
||||
|
||||
fieldsets = (
|
||||
('Personal info',
|
||||
@@ -75,6 +75,9 @@ class UserAdmin(admin.ModelAdmin):
|
||||
def rowerplan(self, obj):
|
||||
return obj.rower.rowerplan
|
||||
|
||||
def clubsize(self, obj):
|
||||
return obj.rower.clubsize
|
||||
|
||||
class WorkoutAdmin(admin.ModelAdmin):
|
||||
list_display = ('date','user','name','workouttype','boattype')
|
||||
|
||||
|
||||
@@ -111,16 +111,20 @@ def remove_team(id):
|
||||
|
||||
def add_coach(coach,rower):
|
||||
# get coaching group
|
||||
|
||||
coachgroup = coach.mycoachgroup
|
||||
if coachgroup is None:
|
||||
coachgroup = CoachingGroup(name=coach.user.first_name)
|
||||
coachgroup.save()
|
||||
coach.mycoachgroup = coachgroup
|
||||
coach.save()
|
||||
|
||||
rower.coachinggroups.add(coach.mycoachgroup)
|
||||
|
||||
return (1,"Added Coach")
|
||||
if get_coach_club_size(coach)<coach.clubsize:
|
||||
rower.coachinggroups.add(coach.mycoachgroup)
|
||||
|
||||
return (1,"Added Coach")
|
||||
else:
|
||||
return (0,"Maximum number of athletes reached")
|
||||
|
||||
def add_member(id,rower):
|
||||
t= Team.objects.get(id=id)
|
||||
@@ -287,6 +291,15 @@ def create_request(team,user):
|
||||
|
||||
return (0,'Something went wrong in create_request')
|
||||
|
||||
def get_coach_club_size(coach):
|
||||
rs = Rower.objects.filter(coachinggroups__in=[coach.mycoachgroup])
|
||||
rekwests = CoachOffer.objects.filter(coach=coach)
|
||||
|
||||
result = len(rs)+len(rekwests)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
# request by coach to coach user
|
||||
def create_coaching_offer(coach,user):
|
||||
r = user.rower
|
||||
@@ -299,13 +312,15 @@ def create_coaching_offer(coach,user):
|
||||
while code in codes:
|
||||
code = uuid.uuid4().hex[:10].upper()
|
||||
|
||||
if coach.rowerplan == 'coach':
|
||||
if coach.rowerplan == 'coach' and get_coach_club_size(coach)<coach.clubsize:
|
||||
rekwest = CoachOffer(coach=coach,user=user,code=code)
|
||||
rekwest.save()
|
||||
|
||||
send_coacheerequest_email(rekwest)
|
||||
|
||||
return (rekwest.id,'The request was created')
|
||||
elif get_coach_club_size(coach)>=coach.clubsize:
|
||||
return(0,'You have reached the maximum number of athletes')
|
||||
|
||||
else:
|
||||
return (0,'You are not a coach')
|
||||
@@ -634,7 +649,7 @@ def process_coachrequest_code(coach,code):
|
||||
|
||||
result = add_coach(coach,rekwest.user.rower)
|
||||
if not result:
|
||||
return (result,"Something went wrong")
|
||||
return result
|
||||
else:
|
||||
send_coachrequest_accepted_email(rekwest)
|
||||
|
||||
@@ -655,7 +670,7 @@ def process_coachoffer_code(user,code):
|
||||
|
||||
result = add_coach(rekwest.coach,rekwest.user.rower)
|
||||
if not result:
|
||||
return (result,"Something went wrong")
|
||||
return result
|
||||
else:
|
||||
send_coachoffer_accepted_email(rekwest)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class PermissionsBasicsTests(TestCase):
|
||||
self.rcoach = Rower.objects.create(user=self.ucoach,
|
||||
birthdate=faker.profile()['birthdate'],
|
||||
gdproptin=True,gdproptindate=timezone.now(),
|
||||
rowerplan='coach')
|
||||
rowerplan='coach',clubsize=10)
|
||||
|
||||
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
|
||||
self.coachinggroup = CoachingGroup.objects.create()
|
||||
@@ -280,7 +280,7 @@ class PermissionsViewTests(TestCase):
|
||||
self.rcoach = Rower.objects.create(user=self.ucoach,
|
||||
birthdate=faker.profile()['birthdate'],
|
||||
gdproptin=True,gdproptindate=timezone.now(),
|
||||
rowerplan='coach')
|
||||
rowerplan='coach',clubsize=10)
|
||||
|
||||
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
|
||||
self.coachinggroup = CoachingGroup.objects.create()
|
||||
@@ -1009,7 +1009,7 @@ class PermissionsCoachingTests(TestCase):
|
||||
self.rcoach = Rower.objects.create(user=self.ucoach,
|
||||
birthdate=faker.profile()['birthdate'],
|
||||
gdproptin=True,gdproptindate=timezone.now(),
|
||||
rowerplan='coach')
|
||||
rowerplan='coach',clubsize=10)
|
||||
|
||||
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
|
||||
self.coachinggroup = CoachingGroup.objects.create()
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
@@ -189,7 +189,9 @@ def rower_teams_view(request,message='',successmessage=''):
|
||||
coachrequests = CoachRequest.objects.filter(coach=r)
|
||||
|
||||
invitedathletes = [rekwest.user for rekwest in mycoachoffers]
|
||||
invitedcoaches = [rekwest.coach for rekwest in mycoachrequests]
|
||||
invitedcoaches = [rekwest.coach for rekwest in mycoachrequests ]
|
||||
invitedcoaches += [rekwest.coach for rekwest in coachoffers]
|
||||
invitingathletes = [rekwest.user for rekwest in coachrequests]
|
||||
|
||||
coaches = teams.rower_get_coaches(r)
|
||||
|
||||
@@ -200,6 +202,7 @@ def rower_teams_view(request,message='',successmessage=''):
|
||||
]
|
||||
potentialcoaches = list(set(potentialcoaches+offercoaches))
|
||||
potentialcoaches = [c for c in potentialcoaches if c.rower not in invitedcoaches+coaches]
|
||||
potentialcoaches = [c for c in potentialcoaches if teams.get_coach_club_size(c.rower)<c.rower.clubsize]
|
||||
|
||||
|
||||
coachees = teams.coach_getcoachees(r)
|
||||
@@ -213,6 +216,7 @@ def rower_teams_view(request,message='',successmessage=''):
|
||||
else:
|
||||
potentialathletes = []
|
||||
|
||||
potentialathletes = [a for a in potentialathletes if a.user not in invitingathletes]
|
||||
|
||||
# clubsize = teams.count_invites(request.user)+teams.count_club_members(request.user)
|
||||
# max_clubsize = r.clubsize
|
||||
|
||||
Reference in New Issue
Block a user