implemented ics export by email
This commit is contained in:
@@ -27,7 +27,7 @@ import codecs
|
||||
import isodate
|
||||
import re
|
||||
import cgi
|
||||
|
||||
from icalendar import Calendar, Event
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
@@ -160,6 +160,7 @@ from rowers.tasks import (
|
||||
handle_zip_file,handle_getagegrouprecords,
|
||||
handle_updatefitnessmetric,
|
||||
handle_update_empower,
|
||||
handle_sendemailics,
|
||||
handle_sendemail_userdeleted,
|
||||
)
|
||||
|
||||
@@ -1431,6 +1432,60 @@ def workout_tcxemail_view(request,id=0):
|
||||
|
||||
return response
|
||||
|
||||
@login_required()
|
||||
def plannedsessions_icsemail_view(request,userid=0):
|
||||
r = getrequestrower(request,userid=userid)
|
||||
startdate,enddate = get_dates_timeperiod(request)
|
||||
|
||||
sps = get_sessions(r,startdate=startdate,enddate=enddate)
|
||||
|
||||
cal = Calendar()
|
||||
cal.add('prodid','rowsandall')
|
||||
cal.add('version','1.0')
|
||||
|
||||
for ps in sps:
|
||||
event = Event()
|
||||
comment = '{d} {u} {c}'.format(
|
||||
d=ps.sessionvalue,
|
||||
u = ps.sessionunit,
|
||||
c = ps.criterium)
|
||||
event.add('summary',ps.name)
|
||||
event.add('dtstart',ps.preferreddate)
|
||||
event.add('dtend',ps.preferreddate)
|
||||
event['uid'] = 'plannedsession_'+str(ps.id)
|
||||
event.add('description',ps.comment)
|
||||
event.add('comment',comment)
|
||||
cal.add_component(event)
|
||||
|
||||
icsfilename = 'calendar_{id}.ics'.format(id=request.user.id)
|
||||
|
||||
with open(icsfilename,'wb') as f:
|
||||
f.write(cal.to_ical())
|
||||
|
||||
res = myqueue(queuehigh,handle_sendemailics,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
request.user.email,icsfilename,
|
||||
emailbounced = r.emailbounced
|
||||
)
|
||||
|
||||
|
||||
successmessage = "The calendar file was sent to you per email"
|
||||
messages.info(request,successmessage)
|
||||
url = reverse(plannedsessions_view,
|
||||
kwargs = {
|
||||
'userid':r.user.id,
|
||||
})
|
||||
startdatestring = startdate.strftime('%Y-%m-%d')
|
||||
enddatestring = enddate.strftime('%Y-%m-%d')
|
||||
url+='?when='+startdatestring+'/'+enddatestring
|
||||
|
||||
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
return response
|
||||
|
||||
|
||||
@login_required()
|
||||
def course_kmlemail_view(request,id=0):
|
||||
r = getrower(request.user)
|
||||
@@ -14542,7 +14597,6 @@ def plannedsession_teamedit_view(request,
|
||||
r = getrequestrower(request,userid=userid)
|
||||
|
||||
|
||||
|
||||
try:
|
||||
ps = PlannedSession.objects.get(id=sessionid)
|
||||
except PlannedSession.DoesNotExist:
|
||||
@@ -14576,7 +14630,7 @@ def plannedsession_teamedit_view(request,
|
||||
|
||||
|
||||
sps = list(set(sps))
|
||||
ids = [ps.id for ps in sps]
|
||||
ids = [pps.id for pps in sps]
|
||||
sps = PlannedSession.objects.filter(id__in=ids).order_by(
|
||||
"preferreddate","startdate","enddate")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user