Private
Public Access
1
0

removing some remnants of coach and plan

This commit is contained in:
2025-01-01 15:50:29 +01:00
parent fe517debdd
commit 56b2a1235c
10 changed files with 28 additions and 129 deletions

View File

@@ -281,7 +281,7 @@ def update_subscription(rower, data, method='up'):
_ = credits.upgrade(amount_int, rower)
rower.planexpires = result.subscription.billing_period_end_date
rower.teamplanexpires = result.subscription.billing_period_end_date
rower.clubsize = plan.clubsize
rower.clubsize = 10
rower.paymenttype = plan.paymenttype
rower.rowerplan = plan.shortname
rower.subscription_id = result.subscription.id
@@ -293,19 +293,18 @@ def update_subscription(rower, data, method='up'):
l=rower.user.last_name,
)
if rower.paidplan != 'coach':
try:
coachgroup = rower.mycoachgroup
except CoachingGroup.DoesNotExist: # pragma: no cover
coachgroup = CoachingGroup()
coachgroup.save()
rower.mycoachgroup = coachgroup
rower.save()
try:
coachgroup = rower.mycoachgroup
except CoachingGroup.DoesNotExist: # pragma: no cover
coachgroup = CoachingGroup()
coachgroup.save()
rower.mycoachgroup = coachgroup
rower.save()
athletes = Rower.objects.filter(
coachinggroups__in=[rower.mycoachgroup]).distinct()
for athlete in athletes: # pragma: no cover
athlete.coachinggroups.remove(rower.mycoachgroup)
athletes = Rower.objects.filter(
coachinggroups__in=[rower.mycoachgroup]).distinct()
for athlete in athletes: # pragma: no cover
athlete.coachinggroups.remove(rower.mycoachgroup)
if method == 'up':
transactions = result.subscription.transactions

View File

@@ -891,7 +891,7 @@ class PaidPlan(models.Model):
active = models.BooleanField(default=True)
clubsize = models.IntegerField(default=0)
clubsize = models.IntegerField(default=10)
def __str__(self):
return '{name} - {shortname} at {price:.2f} EURO ({paymenttype} payment)'.format(
@@ -1034,7 +1034,7 @@ class Rower(models.Model):
planexpires = models.DateField(default=current_day)
teamplanexpires = models.DateField(default=current_day)
clubsize = models.IntegerField(default=0)
clubsize = models.IntegerField(default=10)
protrialexpires = models.DateField(default=datetime.date(1970, 1, 1))
plantrialexpires = models.DateField(default=datetime.date(1970, 1, 1))
coachtrialexpires = models.DateField(default=datetime.date(1970, 1, 1))
@@ -1427,12 +1427,6 @@ def check_teams_on_change(sender, **kwargs):
m2m_changed.connect(check_teams_on_change, sender=Rower.team.through)
# @receiver(models.signals.post_save,sender=Rower)
# def auto_delete_teams_on_change(sender, instance, **kwargs):
# if instance.rowerplan != 'coach':
# teams = Team.objects.filter(manager=instance.user)
# for team in teams:
# team.delete()
favchartlabelsx = axlabels.copy()
favchartlabelsy1 = axlabels.copy()
@@ -5186,7 +5180,7 @@ class AccountRowerForm(ModelForm):
def __init__(self, *args, **kwargs):
super(AccountRowerForm, self).__init__(*args, **kwargs)
if 'coach' not in self.instance.rowerplan:
if 'pro' not in self.instance.rowerplan:
self.fields.pop('offercoaching')
try:

View File

@@ -214,8 +214,12 @@ def summaryfromsplitdata(splitdata, data, filename, sep='|', workouttype='rower'
except (ZeroDivisionError, OverflowError): # pragma: no cover
restpace = 0.
velo = totaldist/totaltime
avgpower = 2.8*velo**(3.0)
try:
velo = totaldist/totaltime
avgpower = 2.8*velo**(3.0)
except (ZeroDivisionError, OverflowError): # pragma: no cover
velo = 0
avgpower = 0
if workouttype in ['bike', 'bikeerg']: # pragma: no cover
velo = velo/2.
avgpower = 2.8*velo**(3.0)

View File

@@ -50,26 +50,3 @@ class SimpleViewTest(TestCase):
expected_url='/rowers/list-workouts/',
status_code=302,target_status_code=200)
def test_start_plantrial(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = '/rowers/startplantrial/'
response = self.c.get(url,follow=True)
self.assertRedirects(response,
expected_url='/rowers/list-workouts/',
status_code=302,target_status_code=200)
def test_start_coachtrial(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = '/rowers/startcoachtrial/'
response = self.c.get(url,follow=True)
self.assertRedirects(response,
expected_url='/rowers/list-workouts/',
status_code=302,target_status_code=200)

Binary file not shown.

View File

@@ -846,10 +846,6 @@ urlpatterns = [
re_path(r'^purchasecheckouts/$', views.purchase_checkouts_view,
name='purchase_checkouts_view'),
re_path(r'^starttrial/$', views.start_trial_view, name='start_trial_view'),
re_path(r'^startplantrial/$', views.start_plantrial_view,
name='start_plantrial_view'),
re_path(r'^startcoachtrial/$', views.start_coachtrial_view,
name='start_coachtrial_view'),
re_path(r'^legal', TemplateView.as_view(
template_name='legal.html'), name='legal'),
re_path(r'^register/$', views.rower_register_view,

View File

@@ -68,7 +68,7 @@ def plannedsessions_coach_icsemail_view(request, userid=0):
startdate, enddate = get_dates_timeperiod(request)
startdate = startdate.date()
enddate = enddate.date()
if 'coach' in request.user.rower.rowerplan:
if 'pro' in request.user.rower.rowerplan:
sps = get_sessions_manager(request.user, teamid=0,
enddate=enddate,
startdate=startdate)
@@ -82,7 +82,7 @@ def plannedsessions_coach_icsemail_view(request, userid=0):
rowers = []
for ps in sps: # pragma: no cover
if 'coach' in request.user.rower.rowerplan:
if 'pro' in request.user.rower.rowerplan:
rowers += ps.rower.all().exclude(rowerplan='freecoach')
else:
rowers += ps.rower.filter(

View File

@@ -1392,9 +1392,9 @@ def iscoachmember(user):
r.save()
if user.is_authenticated:
if 'coach' in r.rowerplan:
if 'pro' in r.rowerplan:
return True
elif r.coachtrialexpires >= timezone.now().date():
elif r.protrialexpires >= timezone.now().date():
return True

View File

@@ -21,9 +21,6 @@ def team_view(request, team_id=0, userid=0):
t = get_object_or_404(Team, pk=team_id)
# if r.rowerplan == 'basic' and t.manager.rower.rowerplan != 'coach':
# raise PermissionDenied("You need to be on a Paid Plan to see or join this team")
q = User.objects.filter(rower__isnull=False, rower__team__in=myteams).distinct(
).exclude(rower__team__name=t.name)
mygroups = [request.user.rower.mycoachgroup]
@@ -176,7 +173,7 @@ def get_teams(request):
rower=r).exclude(manager=request.user).order_by('name')
if user_is_basic(request.user):
otherteams = otherteams.filter(manager__rower__rowerplan='coach')
otherteams = otherteams.filter(manager__rower__rowerplan='pro')
return myteams, memberteams, otherteams
@@ -224,7 +221,7 @@ def rower_teams_view(request): # pragma: no cover
coaches = teams.rower_get_coaches(r)
potentialcoaches = [
t.manager for t in memberteams if t.manager not in coaches and 'coach' in t.manager.rower.rowerplan]
t.manager for t in memberteams if t.manager not in coaches and 'pro' in t.manager.rower.rowerplan]
offercoaches = [
r.user for r in Rower.objects.all().exclude(user=request.user) if r.can_coach()
]

View File

@@ -27,7 +27,7 @@ def deactivate_user(request):
r.paidplan = None
r.teamplanexpires = timezone.now()
r.planexpires = timezone.now()
r.clubsize = 0
r.clubsize = 10
r.rowerplan = 'basic'
r.save()
@@ -142,40 +142,6 @@ def survey(request): # pragma: no cover
return render(request, 'survey.html', context)
@login_required()
def start_coachtrial_view(request):
r = getrower(request.user)
if not can_start_coachtrial(request.user): # pragma: no cover
messages.error(request, 'You do not qualify for a coach trial')
url = '/rowers/paidplans'
return HttpResponseRedirect(url)
r.coachtrialexpires = timezone.now()+datetime.timedelta(13)
r.clubsize = 2
r.save()
url = reverse('workouts_view')
messages.info(request, 'We have started your 14 day coach trial period')
subject2 = "User started Coach Trial"
message2 = "User Started Coach Trial.\n"
message2 += request.user.email + "\n"
message2 += "User name: "+request.user.username
send_mail(subject2, message2,
'Rowsandall Server <info@rowsandall.com>',
['roosendaalsander@gmail.com'])
send_template_email('Rowsandall <info@rowsandall.com>',
[r.user.email],
'Welcome to the Rowsandall Coach Trial',
'coachtrialwelcome.html',
{'first_name': r.user.first_name,
'last_name': r.user.last_name})
return HttpResponseRedirect(url)
@login_required()
def start_trial_view(request):
@@ -212,40 +178,6 @@ def start_trial_view(request):
return HttpResponseRedirect(url)
@login_required()
def start_plantrial_view(request):
r = getrower(request.user)
if not can_start_plantrial(request.user): # pragma: no cover
messages.error(request, 'You do not qualify for a trial')
url = '/rowers/paidplans'
return HttpResponseRedirect(url)
r.plantrialexpires = timezone.now()+datetime.timedelta(13)
r.protrialexpires = timezone.now()+datetime.timedelta(13)
r.save()
url = reverse('workouts_view')
messages.info(request, 'We have started your 14 day trial period')
subject2 = "User started Plan Trial"
message2 = "User Started Plan Trial.\n"
message2 += request.user.email + "\n"
message2 += "User name: "+request.user.username
send_mail(subject2, message2,
'Rowsandall Server <info@rowsandall.com>',
['roosendaalsander@gmail.com'])
send_template_email('Rowsandall <info@rowsandall.com>',
[r.user.email],
'Welcome to the Rowsandall Self-Coach Trial',
'plantrialwelcome.html',
{'first_name': r.user.first_name,
'last_name': r.user.last_name})
return HttpResponseRedirect(url)
@login_required()
def user_messages_delete_all(request, userid=0):