From aed878d67753e0322bc3389756ae322445270ed2 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 6 Jun 2018 14:23:10 +0200 Subject: [PATCH] kml email working --- rowers/tasks.py | 21 +++++++++++++++ rowers/templates/course_view.html | 3 +++ rowers/templates/kmlemail.html | 13 ++++++++++ rowers/urls.py | 1 + rowers/views.py | 43 +++++++++++++++++++++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 rowers/templates/kmlemail.html diff --git a/rowers/tasks.py b/rowers/tasks.py index db000f94..b6fe15e2 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -749,6 +749,27 @@ def handle_sendemail_unrecognizedowner(useremail, userfirstname, return 1 +@app.task +def handle_sendemailkml(first_name, last_name, email, kmlfile,**kwargs): + + # send email with attachment + fullemail = first_name + " " + last_name + " " + "<" + email + ">" + subject = "File from Rowsandall.com" + + + d = {'first_name':first_name, + 'siteurl':siteurl, + } + + from_email = 'Rowsandall ' + + + res = send_template_email(from_email,[fullemail], + subject,'kmlemail.html',d, + attach_file=kmlfile,**kwargs) + + os.remove(kmlfile) + return 1 # Send email with TCX attachment @app.task diff --git a/rowers/templates/course_view.html b/rowers/templates/course_view.html index fa10318a..408dda86 100644 --- a/rowers/templates/course_view.html +++ b/rowers/templates/course_view.html @@ -26,6 +26,9 @@ +
diff --git a/rowers/templates/kmlemail.html b/rowers/templates/kmlemail.html new file mode 100644 index 00000000..437ca878 --- /dev/null +++ b/rowers/templates/kmlemail.html @@ -0,0 +1,13 @@ +{% extends "emailbase.html" %} + +{% block body %} +

Dear {{ first_name }},

+ +

+ Please find attached the requested KML course file. You can open this file in Google Earth +

+ +

+ Best Regards, the Rowsandall Team +

+{% endblock %} diff --git a/rowers/urls.py b/rowers/urls.py index b8d22ef1..ff7ba9e6 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -518,6 +518,7 @@ urlpatterns = [ url(r'^courses/(?P\d+)/edit$',views.course_edit_view, name='course_edit_view'), url(r'^courses/(?P\d+)/delete$',views.course_delete_view), + url(r'^courses/(?P\d+)/emailkml$',views.course_kmlemail_view), url(r'^courses/(?P\d+)/replace$',views.course_replace_view), url(r'^courses/(?P\d+)$',views.course_view), url(r'^courses/(?P\d+)/map$',views.course_map_view), diff --git a/rowers/views.py b/rowers/views.py index 1c41a8ba..554d9083 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -132,6 +132,7 @@ from rowers.tasks import handle_makeplot,handle_otwsetpower,handle_sendemailtcx, from rowers.tasks import ( handle_sendemail_unrecognized,handle_sendemailnewcomment, handle_sendemailsummary, + handle_sendemailkml, handle_sendemailnewresponse, handle_updatedps, handle_updatecp,long_test_task,long_test_task2, handle_zip_file,handle_getagegrouprecords, @@ -1847,6 +1848,48 @@ def workout_tcxemail_view(request,id=0): return response +@login_required() +def course_kmlemail_view(request,id=0): + r = getrower(request.user) + if r.emailbounced: + message = "Please check your email address first. Email to this address bounced." + messages.error(request,message) + return HttpResponseRedirect( + reverse(course_view, + kwargs = { + 'id':str(id), + }) + ) + + course = GeoCourse.objects.get(id=id) + + kmlstring = courses.coursetokml(course) + + kmlfilename = 'course_{id}.kml'.format(id=id) + + with open(kmlfilename,'w') as fop: + fop.write(kmlstring) + + res = myqueue(queuehigh,handle_sendemailkml, + r.user.first_name, + r.user.last_name, + r.user.email,kmlfilename, + emailbounced = r.emailbounced + ) + + + successmessage = "The KML file was sent to you per email" + messages.info(request,successmessage) + url = reverse(course_view, + kwargs = { + 'id':str(id), + }) + + response = HttpResponseRedirect(url) + + return response + + # Export workout to GPX and send to user's email address @login_required() def workout_gpxemail_view(request,id=0):