diff --git a/.gitignore b/.gitignore index 8b1d4df3..665c5589 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,11 @@ /htmlcov/ .coverage +# pytest stuff +/.pytest_cache/ +pytest.ini +conftest.py + # CSV files /media/ diff --git a/rowers/celery.py b/rowers/celery.py index 8ecc91a9..77d84ba3 100644 --- a/rowers/celery.py +++ b/rowers/celery.py @@ -30,7 +30,7 @@ app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) database_url = 'sqlite:///db.sqlite3' -@app.task(bind=True) -def debug_task(self): - print('Request: {0!r}'.format(self.request)) +#@app.task(bind=True) +#def debug_task(self): +# print('Request: {0!r}'.format(self.request)) diff --git a/rowers/forms.py b/rowers/forms.py index 8599496b..ffef4328 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -746,7 +746,8 @@ class PlanSelectForm(forms.Form): self.fields['plan'].empty_label = None if paymentprocessor: self.fields['plan'].queryset = PaidPlan.objects.filter( - paymentprocessor=paymentprocessor + paymentprocessor=paymentprocessor, + active=True ).exclude( shortname="basic" ).order_by( @@ -758,7 +759,8 @@ class PlanSelectForm(forms.Form): except AttributeError: amount = 0 self.fields['plan'].queryset = PaidPlan.objects.filter( - paymentprocessor=rower.paymentprocessor + paymentprocessor=rower.paymentprocessor, + active=True ).exclude( price__lte=amount ).order_by( diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index d1b88a42..2efc1487 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -673,6 +673,9 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower'): dates = [m.date for m in fitnessmetrics] mode = [m.workoutmode for m in fitnessmetrics] + if len(power4min) == 0: + return ['',''] + df = pd.DataFrame( {'power4min':power4min, 'power2k':power2k, diff --git a/rowers/mailprocessing.py b/rowers/mailprocessing.py index ee8b23a1..95077670 100644 --- a/rowers/mailprocessing.py +++ b/rowers/mailprocessing.py @@ -9,8 +9,8 @@ from rowers.tasks import ( ) from django_mailbox.models import Message, MessageAttachment,Mailbox -workoutmailbox = Mailbox.objects.get(name='workouts') -failedmailbox = Mailbox.objects.get(name='Failed') +#workoutmailbox = Mailbox.objects.get(name='workouts') +#failedmailbox = Mailbox.objects.get(name='Failed') from rowers.models import User, Rower, RowerForm diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 36f3553c..23b640b7 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -98,7 +98,7 @@ def processattachment(rower, fileobj, title, uploadoptions,testing=False): imagename=imagename ) try: - if workoutid: + if workoutid and not testing: if rower.getemailnotifications and not rower.emailbounced: email_sent = send_confirm( rower.user, title, link, @@ -196,18 +196,23 @@ class Command(BaseCommand): rowers = [] for rower in rowers: if extension == 'zip': - zip_file = zipfile.ZipFile(attachment.document) - for id,filename in enumerate(zip_file.namelist()): - datafile = zip_file.extract(filename, path='media/') - if id>0: - title = name+' ('+str(id+1)+')' - else: - title = name + try: + zip_file = zipfile.ZipFile(attachment.document) + for id,filename in enumerate(zip_file.namelist()): + datafile = zip_file.extract( + filename, path='media/') + if id>0: + title = name+' ('+str(id+1)+')' + else: + title = name - workoutid = processattachment( - rower, datafile, title, uploadoptions, - testing=testing - ) + workoutid = processattachment( + rower, datafile, title, uploadoptions, + testing=testing + ) + except: + print "Bad ZIP file" + print attachment.document.name else: # move attachment and make workout if testing: diff --git a/rowers/models.py b/rowers/models.py index ab8f822f..29322052 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -568,6 +568,8 @@ class PaidPlan(models.Model): choices=paymenttypes, ) + active = models.BooleanField(default=True) + clubsize = models.IntegerField(default=0) def __unicode__(self): diff --git a/rowers/payments.py b/rowers/payments.py index bbeb12f4..1e4304fa 100644 --- a/rowers/payments.py +++ b/rowers/payments.py @@ -10,30 +10,30 @@ def planstopaypal(): plan.external_id = None plan.save() -def initiaterowerplans(): - rowers = Rower.objects.filter(paymenttype = 'recurring',paidplan = None) - for r in rowers: - r.paymentprocessor = 'paypal' - r.save() +#def initiaterowerplans(): +# rowers = Rower.objects.filter(paymenttype = 'recurring',paidplan = None) +# for r in rowers: +# r.paymentprocessor = 'paypal' +# r.save() -def setrowerplans(): - rowers = Rower.objects.all() +#def setrowerplans(): +# rowers = Rower.objects.all() - for r in rowers: - paidplans = PaidPlan.objects.filter( - shortname = r.rowerplan, - paymenttype = r.paymenttype, - clubsize = r.clubsize, - paymentprocessor=r.paymentprocessor) +# for r in rowers: +# paidplans = PaidPlan.objects.filter( +# shortname = r.rowerplan, +# paymenttype = r.paymenttype, +# clubsize = r.clubsize, +# paymentprocessor=r.paymentprocessor) - if paidplans: - r.paidplan = paidplans[0] - r.save() - else: - try: - print 'Could not set plan for ',r.user.username - except: - pass +# if paidplans: +# r.paidplan = paidplans[0] +# r.save() +# else: +# try: +# print 'Could not set plan for ',r.user.username +# except: +# pass def is_existing_customer(rower): if rower.country is not None and rower.customer_id is not None and rower.country != '': diff --git a/rowers/plots.py b/rowers/plots.py index b57d263e..948ddd94 100644 --- a/rowers/plots.py +++ b/rowers/plots.py @@ -6,10 +6,10 @@ from rows import format_pace_tick, format_pace, format_time, format_time_tick # Formatting the distance tick marks -def format_dist_tick(x,pos=None): - km = x/1000. - template='%6.3f' - return template % (km) +#def format_dist_tick(x,pos=None): +# km = x/1000. +# template='%6.3f' +# return template % (km) # Utility to select reasonable y axis range diff --git a/rowers/templates/about_us.html b/rowers/templates/about_us.html index 1d64d9b4..c178aa32 100644 --- a/rowers/templates/about_us.html +++ b/rowers/templates/about_us.html @@ -93,7 +93,7 @@ and inspired by the RowPro Dan Burpee spreadsheet

We offer three plans. Click on the name of the plan to find out more: