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 00000000..c8da5efc Binary files /dev/null and b/rowers/testdata/emails/testdata.ZIP differ