removing some remnants of coach and plan
This commit is contained in:
@@ -281,7 +281,7 @@ def update_subscription(rower, data, method='up'):
|
|||||||
_ = credits.upgrade(amount_int, rower)
|
_ = credits.upgrade(amount_int, rower)
|
||||||
rower.planexpires = result.subscription.billing_period_end_date
|
rower.planexpires = result.subscription.billing_period_end_date
|
||||||
rower.teamplanexpires = 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.paymenttype = plan.paymenttype
|
||||||
rower.rowerplan = plan.shortname
|
rower.rowerplan = plan.shortname
|
||||||
rower.subscription_id = result.subscription.id
|
rower.subscription_id = result.subscription.id
|
||||||
@@ -293,19 +293,18 @@ def update_subscription(rower, data, method='up'):
|
|||||||
l=rower.user.last_name,
|
l=rower.user.last_name,
|
||||||
)
|
)
|
||||||
|
|
||||||
if rower.paidplan != 'coach':
|
try:
|
||||||
try:
|
coachgroup = rower.mycoachgroup
|
||||||
coachgroup = rower.mycoachgroup
|
except CoachingGroup.DoesNotExist: # pragma: no cover
|
||||||
except CoachingGroup.DoesNotExist: # pragma: no cover
|
coachgroup = CoachingGroup()
|
||||||
coachgroup = CoachingGroup()
|
coachgroup.save()
|
||||||
coachgroup.save()
|
rower.mycoachgroup = coachgroup
|
||||||
rower.mycoachgroup = coachgroup
|
rower.save()
|
||||||
rower.save()
|
|
||||||
|
|
||||||
athletes = Rower.objects.filter(
|
athletes = Rower.objects.filter(
|
||||||
coachinggroups__in=[rower.mycoachgroup]).distinct()
|
coachinggroups__in=[rower.mycoachgroup]).distinct()
|
||||||
for athlete in athletes: # pragma: no cover
|
for athlete in athletes: # pragma: no cover
|
||||||
athlete.coachinggroups.remove(rower.mycoachgroup)
|
athlete.coachinggroups.remove(rower.mycoachgroup)
|
||||||
|
|
||||||
if method == 'up':
|
if method == 'up':
|
||||||
transactions = result.subscription.transactions
|
transactions = result.subscription.transactions
|
||||||
|
|||||||
@@ -891,7 +891,7 @@ class PaidPlan(models.Model):
|
|||||||
|
|
||||||
active = models.BooleanField(default=True)
|
active = models.BooleanField(default=True)
|
||||||
|
|
||||||
clubsize = models.IntegerField(default=0)
|
clubsize = models.IntegerField(default=10)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{name} - {shortname} at {price:.2f} EURO ({paymenttype} payment)'.format(
|
return '{name} - {shortname} at {price:.2f} EURO ({paymenttype} payment)'.format(
|
||||||
@@ -1034,7 +1034,7 @@ class Rower(models.Model):
|
|||||||
|
|
||||||
planexpires = models.DateField(default=current_day)
|
planexpires = models.DateField(default=current_day)
|
||||||
teamplanexpires = 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))
|
protrialexpires = models.DateField(default=datetime.date(1970, 1, 1))
|
||||||
plantrialexpires = 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))
|
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)
|
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()
|
favchartlabelsx = axlabels.copy()
|
||||||
favchartlabelsy1 = axlabels.copy()
|
favchartlabelsy1 = axlabels.copy()
|
||||||
@@ -5186,7 +5180,7 @@ class AccountRowerForm(ModelForm):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
||||||
super(AccountRowerForm, self).__init__(*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')
|
self.fields.pop('offercoaching')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -214,8 +214,12 @@ def summaryfromsplitdata(splitdata, data, filename, sep='|', workouttype='rower'
|
|||||||
except (ZeroDivisionError, OverflowError): # pragma: no cover
|
except (ZeroDivisionError, OverflowError): # pragma: no cover
|
||||||
restpace = 0.
|
restpace = 0.
|
||||||
|
|
||||||
velo = totaldist/totaltime
|
try:
|
||||||
avgpower = 2.8*velo**(3.0)
|
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
|
if workouttype in ['bike', 'bikeerg']: # pragma: no cover
|
||||||
velo = velo/2.
|
velo = velo/2.
|
||||||
avgpower = 2.8*velo**(3.0)
|
avgpower = 2.8*velo**(3.0)
|
||||||
|
|||||||
@@ -50,26 +50,3 @@ class SimpleViewTest(TestCase):
|
|||||||
expected_url='/rowers/list-workouts/',
|
expected_url='/rowers/list-workouts/',
|
||||||
status_code=302,target_status_code=200)
|
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)
|
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
@@ -846,10 +846,6 @@ urlpatterns = [
|
|||||||
re_path(r'^purchasecheckouts/$', views.purchase_checkouts_view,
|
re_path(r'^purchasecheckouts/$', views.purchase_checkouts_view,
|
||||||
name='purchase_checkouts_view'),
|
name='purchase_checkouts_view'),
|
||||||
re_path(r'^starttrial/$', views.start_trial_view, name='start_trial_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(
|
re_path(r'^legal', TemplateView.as_view(
|
||||||
template_name='legal.html'), name='legal'),
|
template_name='legal.html'), name='legal'),
|
||||||
re_path(r'^register/$', views.rower_register_view,
|
re_path(r'^register/$', views.rower_register_view,
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ def plannedsessions_coach_icsemail_view(request, userid=0):
|
|||||||
startdate, enddate = get_dates_timeperiod(request)
|
startdate, enddate = get_dates_timeperiod(request)
|
||||||
startdate = startdate.date()
|
startdate = startdate.date()
|
||||||
enddate = enddate.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,
|
sps = get_sessions_manager(request.user, teamid=0,
|
||||||
enddate=enddate,
|
enddate=enddate,
|
||||||
startdate=startdate)
|
startdate=startdate)
|
||||||
@@ -82,7 +82,7 @@ def plannedsessions_coach_icsemail_view(request, userid=0):
|
|||||||
rowers = []
|
rowers = []
|
||||||
|
|
||||||
for ps in sps: # pragma: no cover
|
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')
|
rowers += ps.rower.all().exclude(rowerplan='freecoach')
|
||||||
else:
|
else:
|
||||||
rowers += ps.rower.filter(
|
rowers += ps.rower.filter(
|
||||||
|
|||||||
@@ -1392,9 +1392,9 @@ def iscoachmember(user):
|
|||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
if user.is_authenticated:
|
if user.is_authenticated:
|
||||||
if 'coach' in r.rowerplan:
|
if 'pro' in r.rowerplan:
|
||||||
return True
|
return True
|
||||||
elif r.coachtrialexpires >= timezone.now().date():
|
elif r.protrialexpires >= timezone.now().date():
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,6 @@ def team_view(request, team_id=0, userid=0):
|
|||||||
|
|
||||||
t = get_object_or_404(Team, pk=team_id)
|
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(
|
q = User.objects.filter(rower__isnull=False, rower__team__in=myteams).distinct(
|
||||||
).exclude(rower__team__name=t.name)
|
).exclude(rower__team__name=t.name)
|
||||||
mygroups = [request.user.rower.mycoachgroup]
|
mygroups = [request.user.rower.mycoachgroup]
|
||||||
@@ -176,7 +173,7 @@ def get_teams(request):
|
|||||||
rower=r).exclude(manager=request.user).order_by('name')
|
rower=r).exclude(manager=request.user).order_by('name')
|
||||||
|
|
||||||
if user_is_basic(request.user):
|
if user_is_basic(request.user):
|
||||||
otherteams = otherteams.filter(manager__rower__rowerplan='coach')
|
otherteams = otherteams.filter(manager__rower__rowerplan='pro')
|
||||||
|
|
||||||
return myteams, memberteams, otherteams
|
return myteams, memberteams, otherteams
|
||||||
|
|
||||||
@@ -224,7 +221,7 @@ def rower_teams_view(request): # pragma: no cover
|
|||||||
coaches = teams.rower_get_coaches(r)
|
coaches = teams.rower_get_coaches(r)
|
||||||
|
|
||||||
potentialcoaches = [
|
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 = [
|
offercoaches = [
|
||||||
r.user for r in Rower.objects.all().exclude(user=request.user) if r.can_coach()
|
r.user for r in Rower.objects.all().exclude(user=request.user) if r.can_coach()
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ def deactivate_user(request):
|
|||||||
r.paidplan = None
|
r.paidplan = None
|
||||||
r.teamplanexpires = timezone.now()
|
r.teamplanexpires = timezone.now()
|
||||||
r.planexpires = timezone.now()
|
r.planexpires = timezone.now()
|
||||||
r.clubsize = 0
|
r.clubsize = 10
|
||||||
r.rowerplan = 'basic'
|
r.rowerplan = 'basic'
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
@@ -142,40 +142,6 @@ def survey(request): # pragma: no cover
|
|||||||
|
|
||||||
return render(request, 'survey.html', context)
|
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()
|
@login_required()
|
||||||
def start_trial_view(request):
|
def start_trial_view(request):
|
||||||
@@ -212,40 +178,6 @@ def start_trial_view(request):
|
|||||||
return HttpResponseRedirect(url)
|
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()
|
@login_required()
|
||||||
def user_messages_delete_all(request, userid=0):
|
def user_messages_delete_all(request, userid=0):
|
||||||
|
|||||||
Reference in New Issue
Block a user