From 956124575614554d8f3826d8558b8ab812c9696f Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 7 Nov 2017 16:09:37 +0100 Subject: [PATCH] zip file now with enumerated workout title --- rowers/dataprep.py | 29 +++++++++++++++------ rowers/management/commands/processemail.py | 13 +++++++-- rowers/testdata/emails/testdata.ZIP | Bin 0 -> 8029 bytes 3 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 rowers/testdata/emails/testdata.ZIP diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 62ff6923..5771c12e 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -8,6 +8,8 @@ from rowingdata import rowingdata as rrdata from rowingdata import rower as rrower +from shutil import copyfile + from rowingdata import get_file_type, get_empower_rigging from rowers.tasks import handle_sendemail_unrecognized @@ -17,6 +19,7 @@ from pandas import DataFrame, Series from django.utils import timezone from django.utils.timezone import get_current_timezone +from django_mailbox.models import Message,Mailbox,MessageAttachment from time import strftime import arrow @@ -975,14 +978,24 @@ def new_workout_from_file(r, f2, inboard = 0.88 if len(fileformat) == 3 and fileformat[0] == 'zip': f_to_be_deleted = f2 - title = os.path.basename(f2) - res = myqueue( - queuelow, - handle_zip_file, - r.user.email, - title, - f2 - ) + workoutsbox = Mailbox.objects.filter(name='workouts')[0] + msg = Message(mailbox=workoutsbox, + from_header=r.user.email, + subject = title) + msg.save() + f3 = 'media/mailbox_attachments/'+f2[6:] + copyfile(f2,f3) + f3 = f3[6:] + a = MessageAttachment(message=msg,document=f3) + a.save() + +# res = myqueue( +# queuelow, +# handle_zip_file, +# r.user.email, +# title, +# f2 +# ) return -1, message, f2 diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 996d6bbc..4719bee3 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -93,6 +93,15 @@ def processattachment(rower, fileobj, title, uploadoptions,testing=False): return workoutid class Command(BaseCommand): + def add_arguments(self, parser): + parser.add_argument( + '--testing', + action='store_true', + dest='testing', + default=False, + help="Run in testing mode, don't send emails", + ) + """Run the Email processing command """ def handle(self, *args, **options): attachments = MessageAttachment.objects.all() @@ -119,9 +128,9 @@ class Command(BaseCommand): for rower in rowers: if extension == 'zip': zip_file = zipfile.ZipFile(attachment.document) - for filename in zip_file.namelist(): + for id,filename in enumerate(zip_file.namelist()): datafile = zip_file.extract(filename, path='media/') - title = os.path.basename(datafile) + title = name+' ('+str(id)+')' workoutid = processattachment( rower, datafile, title, uploadoptions, testing=testing diff --git a/rowers/testdata/emails/testdata.ZIP b/rowers/testdata/emails/testdata.ZIP new file mode 100644 index 0000000000000000000000000000000000000000..c8da5efc578c9eb2427a9e3ce080fb2bb6bac6fe GIT binary patch literal 8029 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 literal 0 HcmV?d00001