delete and add activities
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from .integrations import SyncIntegration, NoTokenError, create_or_update_syncrecord, get_known_ids
|
||||
from rowers.models import Rower, User, Workout, TombStone
|
||||
from rowers.models import Rower, User, Workout, TombStone, PlannedSession
|
||||
from rowingdata import rowingdata
|
||||
|
||||
from rowers import mytypes
|
||||
@@ -467,3 +467,112 @@ class IntervalsIntegration(SyncIntegration):
|
||||
ps.save()
|
||||
|
||||
return 1
|
||||
|
||||
def update_calendar(self, r, event, *args, **kwargs):
|
||||
try:
|
||||
records = event["events"]
|
||||
except KeyError:
|
||||
records = []
|
||||
|
||||
for record in records:
|
||||
id = record['id']
|
||||
data = {}
|
||||
try:
|
||||
pss = PlannedSession.objects.filter(intervals_icu_id=id)
|
||||
if pss.count() > 0:
|
||||
ps = pss[0]
|
||||
data = self.update_plannedsession(ps, record)
|
||||
else:
|
||||
data = self.get_plannedsession(id)
|
||||
ps = PlannedSession(
|
||||
manager=r.user,
|
||||
intervals_icu_id=id,
|
||||
)
|
||||
ps.save()
|
||||
ps.rower.add(r)
|
||||
except PlannedSession.DoesNotExist:
|
||||
continue
|
||||
|
||||
# got data
|
||||
if data:
|
||||
ps.name = data['name']
|
||||
ps.comment = data['description']
|
||||
ps.startdate = arrow.get(data['start_date_local']).datetime
|
||||
ps.enddate = arrow.get(data['end_date_local']).datetime
|
||||
ps.preferreddate = arrow.get(data['start_date_local']).datetime
|
||||
ps.sessionsport = mytypes.intervalsmappinginv[data['type']]
|
||||
ps.sessiontype = 'session'
|
||||
ps.save()
|
||||
try:
|
||||
timetarget = data['time_target']
|
||||
except KeyError:
|
||||
timetarget = None
|
||||
if timetarget is None:
|
||||
try:
|
||||
timetarget = data['moving_time']
|
||||
except KeyError:
|
||||
timetarget = None
|
||||
if timetarget is None:
|
||||
timetarget = 3600
|
||||
timetarget = int(timetarget)/60.
|
||||
ps.sessionvalue = timetarget
|
||||
ps.save()
|
||||
if data['category'].lower() == 'workout':
|
||||
ps.fitfile = data['fitfile']
|
||||
ps.save()
|
||||
ps.update_steps()
|
||||
if data['category'].lower() == 'target':
|
||||
ps.sessiontype = 'cycletarget'
|
||||
ps.sessionvalue = int(data['time_target'])/60.
|
||||
ps.enddate = ps.startdate + datetime.timedelta(days=6)
|
||||
ps.save()
|
||||
|
||||
try:
|
||||
deleted_records = event["deleted_events"]
|
||||
except KeyError:
|
||||
deleted_records = []
|
||||
|
||||
for record in deleted_records:
|
||||
id = record['id']
|
||||
try:
|
||||
pss = PlannedSession.objects.filter(intervals_icu_id=id)
|
||||
if r.intervals_delete_plannedsession and pss.count() > 0:
|
||||
for ps in pss:
|
||||
ps.delete()
|
||||
except PlannedSession.DoesNotExist:
|
||||
continue
|
||||
|
||||
return 1
|
||||
|
||||
def import_activities(self, event, *args, **kwargs):
|
||||
try:
|
||||
record = event["activity"]
|
||||
except KeyError:
|
||||
records = []
|
||||
|
||||
try:
|
||||
id = record['id']
|
||||
result = self.get_workout(id)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
return 1
|
||||
|
||||
def delete_activities(self, event, *args, **kwargs):
|
||||
try:
|
||||
record = event["activity"]
|
||||
except KeyError:
|
||||
records = []
|
||||
|
||||
try:
|
||||
id = record['id']
|
||||
try:
|
||||
w = Workout.objects.get(uploadedtointervals=id)
|
||||
if w.user == self.rower:
|
||||
w.delete()
|
||||
except Workout.DoesNotExist:
|
||||
pass
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
return 1
|
||||
|
||||
Reference in New Issue
Block a user