Private
Public Access
1
0
This commit is contained in:
Sander Roosendaal
2019-04-07 13:33:35 +02:00
30 changed files with 3205 additions and 635 deletions

View File

@@ -54,7 +54,7 @@ from rowers.models import strokedatafields
#allowedcolumns = [item[0] for item in rowingmetrics]
allowedcolumns = [key for key,value in strokedatafields.items()]
from async_messages import messages as a_messages
#from async_messages import messages as a_messages
import os
import zipfile
import pandas as pd
@@ -920,12 +920,6 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
for key, value in checks.items():
if not value:
allchecks = 0
if consistencychecks:
a_messages.error(
r.user, 'Failed consistency check: ' + key + ', autocorrected')
else:
pass
# a_messages.error(r.user,'Failed consistency check: '+key+', not corrected')
except ZeroDivisionError:
pass
@@ -1148,9 +1142,6 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
# submit email task to send email about breakthrough workout
if isbreakthrough:
a_messages.info(
r.user, 'It looks like you have a new breakthrough workout'
)
if r.getemailnotifications and not r.emailbounced:
job = myqueue(queuehigh,handle_sendemail_breakthrough,
w.id,
@@ -1161,7 +1152,6 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
# submit email task to send email about breakthrough workout
if ishard:
a_messages.info(r.user, 'That was a pretty hard workout')
if r.getemailnotifications and not r.emailbounced:
job = myqueue(queuehigh,handle_sendemail_hard,
w.id,
@@ -1733,7 +1723,7 @@ def getsmallrowdata_db(columns, ids=[], doclean=True, workstrokesonly=True):
row = rdata(w.csvfilename)
try:
row.set_instroke_metrics()
except AttributeError:
except (AttributeError,TypeError):
pass
try:

View File

@@ -42,7 +42,7 @@ def login_required_message(function=None, message=default_message):
to the log-in page if necessary.
"""
actual_decorator = user_passes_test(
lambda u: u.is_authenticated(),
lambda u: u.is_authenticated,
message=message,
)
if function:

View File

@@ -90,6 +90,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
try:
datafilename = datafile.name
fileformat = get_file_type('media/' + datafilename)
raise ValueError
except IOError:
datafilename = datafile.name + '.gz'
fileformat = get_file_type('media/' + datafilename)
@@ -108,11 +109,8 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
print('Fileformat = ',fileformat)
if fileformat == 'unknown':
# extension = datafilename[-4:].lower()
# fcopy = "media/"+datafilename[:-4]+"_copy"+extension
# with open('media/'+datafilename, 'r') as f_in, open(fcopy, 'w') as f_out:
# shutil.copyfileobj(f_in,f_out)
f,e = os.path.splitext(datafilename)
if fileformat == 'unknown' and 'txt' not in e:
fcopy = "media/"+datafilename
if not testing:
if settings.CELERY:

View File

@@ -14,7 +14,7 @@ import io
from django.core.management.base import BaseCommand
from django_mailbox.models import Message, MessageAttachment,Mailbox
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.conf import settings
from django.utils import timezone
@@ -213,7 +213,9 @@ class Command(BaseCommand):
testing = False
cntr = 0
for attachment in attachments:
extension = attachment.document.name[-3:].lower()
filename, extension = os.path.splitext(attachment.document.name)
extension = extension.lower()
# extension = attachment.document.name[-3:].lower()
try:
message = Message.objects.get(id=attachment.message_id)
if message.encoded:

View File

@@ -9,6 +9,7 @@ queuelow = django_rq.get_queue('low')
from rowers.tasks import handle_updatefitnessmetric,handle_sendemail_expired
from rowers.mytypes import otwtypes
from django.contrib import messages
from django.http import HttpResponse
def getrower(user):
try:
@@ -70,11 +71,18 @@ def do_update(user,mode='rower',days=42):
class PowerTimeFitnessMetricMiddleWare(object):
def process_request(self, request):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# Code to be executed before the view is called
if request.user.is_authenticated():
if request.user.is_authenticated:
result = do_update(request.user,mode='rower')
result = do_update(request.user,mode='water')
response = self.get_response(request)
return response
from django.shortcuts import redirect
@@ -93,8 +101,11 @@ allowed_paths = [
]
class GDPRMiddleWare(object):
def process_request(self, request):
if request.user.is_authenticated() and request.path not in allowed_paths:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.user.is_authenticated and request.path not in allowed_paths:
r = getrower(request.user)
nexturl = request.path
if 'optin' in nexturl:
@@ -104,9 +115,16 @@ class GDPRMiddleWare(object):
'/rowers/me/gdpr-optin/?next=%s' % nexturl
)
response = self.get_response(request)
return response
class RowerPlanMiddleWare(object):
def process_request(self, request):
if request.user.is_authenticated() and request.user.rower.rowerplan != 'basic':
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.user.is_authenticated and request.user.rower.rowerplan != 'basic':
if request.user.rower.paymenttype == 'single':
if request.user.rower.planexpires < timezone.now().date():
messg = 'Your paid plan has expired. We have reset you to a free basic plan.'
@@ -122,3 +140,6 @@ class RowerPlanMiddleWare(object):
r.user.last_name,
str(r.planexpires))
response = self.get_response(request)
return response

View File

@@ -1014,7 +1014,7 @@ class BasePlannedSessionFormSet(BaseFormSet):
# Check if workout is owned by this user
def checkworkoutuser(user,workout):
if user.is_anonymous():
if user.is_anonymous:
return False
try:
r = Rower.objects.get(user=user)
@@ -1034,7 +1034,7 @@ def checkworkoutuser(user,workout):
# Check if workout may be viewed by this user
def checkworkoutuserview(user,workout):
if user.is_anonymous():
if user.is_anonymous:
return False
try:
r = Rower.objects.get(user=user)

View File

@@ -298,7 +298,7 @@ def handle_check_race_course(self,
rowdata = rowdata[rowdata['time']>splitsecond]
# we may want to expand the time (interpolate)
rowdata['dt'] = rowdata['time'].apply(
lambda x: safetimedelta(seconds=x)
lambda x: safetimedelta(x)
)
rowdata = rowdata.resample('100ms',on='dt').mean()
rowdata = rowdata.interpolate()
@@ -624,7 +624,7 @@ def handle_calctrimp(id,
df2['time'] = df2[' ElapsedTime (sec)']
df2['time'] = df2['time'].apply(
lambda x:safetimedelta(seconds=x)
lambda x:safetimedelta(x)
)
duration = df['TimeStamp (sec)'].max()-df['TimeStamp (sec)'].min()

View File

@@ -14,7 +14,6 @@ django.setup()
import time
from celery import app
from django_rq import job
from async_messages import message_user,messages
from rowers.models import Workout
from django.contrib.auth.models import User

View File

@@ -8,7 +8,7 @@
<ul class="main-content">
<li class="grid_2 frontitem">
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<table>
<tr>

View File

@@ -88,7 +88,7 @@ def secondstotimestring(tdelta):
@register.filter
def existing_customer(user):
if user.is_anonymous():
if user.is_anonymous:
return False
else:
return payments.is_existing_customer(user.rower)

View File

@@ -53,7 +53,7 @@ from mock import Mock, patch
import pandas as pd
import rowers.c2stuff as c2stuff
from django.core.urlresolvers import reverse, reverse_lazy
from django.urls import reverse, reverse_lazy
import json
import numpy as np

View File

@@ -6,13 +6,12 @@ from __future__ import unicode_literals
#from __future__ import print_function
from .statements import *
from django.test import SimpleTestCase, override_settings
#@pytest.mark.django_db
class TestErrorPages(TestCase):
def test_error_handlers(self):
self.assertTrue(urls.handler404.endswith('.error404_view'))
self.assertTrue(urls.handler500.endswith('.error500_view'))
factory = RequestFactory()
request = factory.get('/')
response = error404_view(request)
@@ -26,3 +25,22 @@ class TestErrorPages(TestCase):
response = error400_view(request)
self.assertEqual(response.status_code, 400)
# ROOT_URLCONF must specify the module that contains handler403 = ...
#@override_settings(ROOT_URLCONF=__name__)
class CustomErrorHandlerTests(TestCase):
def setUp(self):
self.c = Client()
def test_handler_workout_notfound(self):
response = self.c.get('/rowers/workout/121/')
# Make assertions on the response here. For example:
self.assertEqual(response.status_code, 404)
self.assertIn('We could not find' ,str(response.content))
# def test_handler_500(self):
# response = self.c.get('/500/')
# # Make assertions on the response here. For example:
# self.assertEqual(response.status_code, 500)
# self.assertIn('The site developer' ,str(response.content))

View File

@@ -59,8 +59,6 @@ class ViewTest(TestCase):
form = DocumentsForm(form_data,file_data)
response = self.c.post('/rowers/workout/upload/', form_data, follow=True)
f.close()
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
@@ -69,6 +67,7 @@ class ViewTest(TestCase):
response = self.c.get('/rowers/workout/'+encoded1+'/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
response = self.c.get('/rowers/workout/'+encoded1+'/edit/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
@@ -77,6 +76,7 @@ class ViewTest(TestCase):
self.assertEqual(response.status_code, 200)
f.close()
response = self.c.get('/rowers/workout/'+encoded1+'/workflow/',
@@ -157,8 +157,7 @@ class ViewTest(TestCase):
response = self.c.post('/rowers/workout/upload/', form_data, follow=True)
f.close()
self.assertRedirects(response, expected_url='/rowers/workout/'+encoded1+'/edit/',
status_code=302,target_status_code=200)
@@ -167,7 +166,8 @@ class ViewTest(TestCase):
response = self.c.get('/rowers/workout/'+encoded1+'/', form_data, follow=True)
self.assertEqual(response.status_code, 200)
f.close()
w = Workout.objects.get(id=1)
f_to_be_deleted = w.csvfilename
try:

View File

@@ -25,7 +25,7 @@ tpapilocation = "https://api.trainingpeaks.com"
from celery import Celery,app
from django_rq import job
import time
from async_messages import message_user,messages
#from async_messages import message_user,messages
oauth_data = {
'client_id': TP_CLIENT_ID,

View File

@@ -349,7 +349,7 @@ def upload_options(body):
uploadoptions = {}
body = cleanbody(body)
try:
yml = (yaml.load(body))
yml = (yaml.safe_load(body))
if yml and 'fromuploadform' in yml:
return yml
try:

File diff suppressed because it is too large Load Diff

View File

@@ -172,8 +172,8 @@ def histo(request,theuser=0,
promember=0
mayedit=0
if not request.user.is_anonymous():
result = request.user.is_authenticated() and ispromember(request.user)
if not request.user.is_anonymous:
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember = 1
@@ -269,9 +269,9 @@ def cum_flex_data(
if theuser == 0:
theuser = request.user.id
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -369,9 +369,9 @@ def histo_data(
if theuser == 0:
theuser = request.user.id
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -575,8 +575,8 @@ def cum_flex(request,theuser=0,
promember=0
mayedit=0
if not request.user.is_anonymous():
result = request.user.is_authenticated() and ispromember(request.user)
if not request.user.is_anonymous:
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember = 1
@@ -694,7 +694,7 @@ def rankings_view(request,theuser=0,
theuser = request.user.id
promember=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
if r.birthdate:
age = calculate_age(r.birthdate)
@@ -706,7 +706,7 @@ def rankings_view(request,theuser=0,
else:
worldclasspower = None
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -1047,7 +1047,7 @@ def rankings_view2(request,theuser=0,
promember=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
wcdurations = []
wcpower = []
@@ -1114,7 +1114,7 @@ def rankings_view2(request,theuser=0,
request.session['options'] = options
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -1466,9 +1466,9 @@ def otwrankings_view(request,theuser=0,
theuser = request.user.id
promember=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = Rower.objects.get(user=request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -1872,9 +1872,9 @@ def oterankings_view(request,theuser=0,
promember=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = Rower.objects.get(user=request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -3420,9 +3420,9 @@ def cumstats(request,theuser=0,
if theuser == 0:
theuser = request.user.id
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1

View File

@@ -5,31 +5,40 @@ from __future__ import unicode_literals
from rowers.views.statements import *
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
from django.test import SimpleTestCase, override_settings
from django.urls import path
def servererror_view(request):
raise ValueError
# Custom error pages with Rowsandall headers
def error500_view(request):
response = render_to_response('500.html', {},
context_instance = RequestContext(request))
response = render(request,'500.html', {},status=500)
# context_instance = RequestContext(request))
response.status_code = 500
return response
def error404_view(request):
response = render_to_response('404.html', {},
context_instance = RequestContext(request))
response = render(request,'404.html', {},status=404)
# context_instance = RequestContext(request))
response.status_code = 404
return response
def error400_view(request):
response = render_to_response('400.html', {},
context_instance = RequestContext(request))
response = render(request,'400.html', {},status=400)
# context_instance = RequestContext(request))
response.status_code = 400
return response
def error403_view(request):
response = render_to_response('403.html', {},
context_instance = RequestContext(request))
def error403_view(request,*args, **kwargs):
response = render(request,'403.html', {},status=403)
# context_instance = RequestContext(request))
response.status_code = 403
return response

View File

@@ -11,7 +11,7 @@ def deactivate_user(request):
pk = request.user.id
user = User.objects.get(pk=pk)
user_form = DeactivateUserForm(instance=user)
if request.user.is_authenticated() and request.user.id == user.id:
if request.user.is_authenticated and request.user.id == user.id:
if request.method == "POST":
user_form = DeactivateUserForm(request.POST, instance=user)
if user_form.is_valid():
@@ -80,7 +80,7 @@ def remove_user(request):
pk = request.user.id
user = User.objects.get(pk=pk)
user_form = DeleteUserForm(instance=user)
if request.user.is_authenticated() and request.user.id == user.id:
if request.user.is_authenticated and request.user.id == user.id:
if request.method == "POST":
user_form = DeleteUserForm(request.POST,instance=user)
if user_form.is_valid():

View File

@@ -6,7 +6,7 @@ from __future__ import unicode_literals
from rowers.views.statements import *
def paidplans_view(request):
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = request.user.rower
if r.paymentprocessor != 'braintree' and r.paymenttype == 'recurring':
messages.error(request,'Automated payment processing is currently only available through BrainTree (by PayPal). You are currently on a recurring payment plan with PayPal. Contact the site administrator at support@rowsandall.com before you proceed')

View File

@@ -495,7 +495,7 @@ def virtualevents_view(request):
races = (races1 | races2).order_by("startdate","start_time")
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
else:
r = None
@@ -687,7 +687,7 @@ def virtualevent_disqualify_view(request,raceid=0,recordid=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -724,7 +724,7 @@ def virtualevent_view(request,id=0):
results = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
else:
r = None
@@ -757,7 +757,7 @@ def virtualevent_view(request,id=0):
)
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -907,7 +907,7 @@ def virtualevent_ranking_view(request,id=0):
results = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
else:
r = None
@@ -940,7 +940,7 @@ def virtualevent_ranking_view(request,id=0):
)
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -1247,7 +1247,7 @@ def virtualevent_addboat_view(request,id=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -1401,7 +1401,7 @@ def virtualevent_register_view(request,id=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -1592,7 +1592,7 @@ def indoorvirtualevent_register_view(request,id=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -1940,7 +1940,7 @@ def virtualevent_edit_view(request,id=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -2039,7 +2039,7 @@ def indoorvirtualevent_edit_view(request,id=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']
@@ -2254,7 +2254,7 @@ def virtualevent_submit_result_view(request,id=0,workoutid=0):
buttons = []
if not request.user.is_anonymous():
if not request.user.is_anonymous:
if race_can_register(r,race):
buttons += ['registerbutton']

View File

@@ -61,10 +61,7 @@ from rowers.forms import (
disqualifiers,SearchForm,BillingForm,PlanSelectForm
)
try:
from django.core.urlresolvers import reverse, reverse_lazy
except ModuleNotFoundError:
from django.urls import reverse, reverse_lazy
from django.urls import reverse, reverse_lazy
from django.core.exceptions import PermissionDenied
from django.template import RequestContext
@@ -188,7 +185,7 @@ from rowers.tasks import (
)
from scipy.signal import savgol_filter
from django.shortcuts import render_to_response
#from django.shortcuts import render_to_response
try:
from Cookie import SimpleCookie
except ModuleNotFoundError:
@@ -269,7 +266,7 @@ def getfavorites(r,row):
return favorites,maxfav
def get_workout_default_page(request,id):
if request.user.is_anonymous():
if request.user.is_anonymous:
return reverse('workout_view',kwargs={'id':id})
else:
r = Rower.objects.get(user=request.user)
@@ -347,10 +344,10 @@ def getrequestplanrower(request,rowerid=0,userid=0,notpermanent=False):
def getrower(user):
try:
if user.is_anonymous():
if user.is_anonymous:
return None
except AttributeError:
if User.objects.get(id=user).is_anonymous():
if User.objects.get(id=user).is_anonymous:
return None
try:
r = Rower.objects.get(user=user)
@@ -768,7 +765,7 @@ def get_thumbnails(request,id):
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == row.user.user:
@@ -999,21 +996,21 @@ from rowers.models import (
# Check if a user is a Coach member
def iscoachmember(user):
if not user.is_anonymous():
if not user.is_anonymous:
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExist:
r = Rower(user=user)
r.save()
result = user.is_authenticated() and (r.rowerplan=='coach')
result = user.is_authenticated and (r.rowerplan=='coach')
else:
result = False
return result
def cancreateteam(user):
if user.is_anonymous():
if user.is_anonymous:
return False
try:
@@ -1022,7 +1019,7 @@ def cancreateteam(user):
r = Rower(user=user)
r.save()
if user.is_authenticated() and (r.rowerplan=='coach'):
if user.is_authenticated and (r.rowerplan=='coach'):
return True
elif user.is_athenticated() and r.rowerplan in ['plan','pro']:
ts = Team.objects.filter(manager=user)
@@ -1031,16 +1028,16 @@ def cancreateteam(user):
# Check if a user can create planned sessions
def hasplannedsessions(user):
if not user.is_anonymous():
if not user.is_anonymous:
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExist:
r = Rower(user=user)
r.save()
result = user.is_authenticated() and (r.rowerplan=='coach' or r.rowerplan=='plan')
result = user.is_authenticated and (r.rowerplan=='coach' or r.rowerplan=='plan')
if not result and r.plantrialexpires:
result = user.is_authenticated() and r.plantrialexpires >= datetime.date.today()
result = user.is_authenticated and r.plantrialexpires >= datetime.date.today()
else:
result = False
@@ -1050,14 +1047,14 @@ from rowers.utils import isprorower,ProcessorCustomerError
# Check if a user is a Pro member
def ispromember(user):
if not user.is_anonymous():
if user and not user.is_anonymous:
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExist:
r = Rower(user=user)
r.save()
result = user.is_authenticated() and isprorower(r)
result = user.is_authenticated and isprorower(r)
else:
result = False
return result

View File

@@ -15,9 +15,9 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
promember=0
mayedit=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == row.user.user:
@@ -100,9 +100,9 @@ def workout_histo_view(request,id=0):
promember=0
mayedit=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == w.user.user:
@@ -111,7 +111,7 @@ def workout_histo_view(request,id=0):
if not promember:
return HttpResponseRedirect("/rowers/about/")
res = interactive_histoall([w])
res = interactive_histoall([w],'power',False)
script = res[0]
div = res[1]
@@ -404,9 +404,9 @@ def workout_recalcsummary_view(request,id=0):
redirect_field_name=None)
def workouts_join_view(request):
promember=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -822,9 +822,9 @@ def virtualevent_compare_view(request,id=0):
results = []
promember = 0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
else:
@@ -1022,9 +1022,9 @@ def plannedsession_compare_view(request,id=0,userid=0):
@login_required()
def multi_compare_view(request,id=0,userid=0):
promember=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
@@ -1487,8 +1487,8 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
# Basic view of workout
def workout_view(request,id=0):
request.session['referer'] = absolute(request)['PATH']
if not request.user.is_anonymous():
if not request.user.is_anonymous:
rower = getrower(request.user)
else:
rower = None
@@ -2733,7 +2733,7 @@ def workout_workflow_view(request,id):
row = get_workout_permittedview(request.user,id)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == row.user.user:
@@ -2835,9 +2835,9 @@ def workout_flexchart3_view(request,*args,**kwargs):
promember=0
mayedit=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == row.user.user:
@@ -2888,7 +2888,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
else:
yparam2 = 'hr'
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
if favoritenr>=0 and r.showfavoritechartnotes:
try:
@@ -2918,7 +2918,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
workstrokesonly = False
if request.method == 'POST' and 'savefavorite' in request.POST:
if not request.user.is_anonymous():
if not request.user.is_anonymous:
workstrokesonly = request.POST['workstrokesonlysave']
reststrokes = not workstrokesonly
r = getrower(request.user)
@@ -3146,9 +3146,9 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""):
promember=0
mayedit=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == w.user.user:
@@ -3620,9 +3620,9 @@ def workout_map_view(request,id=0):
mapdiv = ""
mayedit=0
if not request.user.is_anonymous():
if not request.user.is_anonymous:
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
if request.user == w.user.user:
@@ -5253,9 +5253,9 @@ class WorkoutDelete(DeleteView):
mayedit=0
promember=0
if not self.request.user.is_anonymous():
if not self.request.user.is_anonymous:
r = getrower(self.request.user)
result = self.request.user.is_authenticated() and ispromember(self.request.user)
result = self.request.user.is_authenticated and ispromember(self.request.user)
if result:
promember=1
if self.request.user == self.object.user.user: