adding tombstones
This commit is contained in:
@@ -108,9 +108,16 @@ def get_c2_workouts(rower):
|
|||||||
for item in res.json()['data']:
|
for item in res.json()['data']:
|
||||||
alldata[item['id']] = item
|
alldata[item['id']] = item
|
||||||
|
|
||||||
knownc2ids = uniqify([
|
knownc2ids = [
|
||||||
w.uploadedtoc2 for w in Workout.objects.filter(user=rower)
|
w.uploadedtoc2 for w in Workout.objects.filter(user=rower)
|
||||||
])
|
]
|
||||||
|
|
||||||
|
tombstones = [
|
||||||
|
t.uploadedtoc2 for t in TombStone.objects.filter(user=rower)
|
||||||
|
]
|
||||||
|
|
||||||
|
knownc2ids = uniqify(knownc2ids+tombstones)
|
||||||
|
|
||||||
newids = [c2id for c2id in c2ids if not c2id in knownc2ids]
|
newids = [c2id for c2id in c2ids if not c2id in knownc2ids]
|
||||||
|
|
||||||
for c2id in newids:
|
for c2id in newids:
|
||||||
|
|||||||
@@ -2506,7 +2506,6 @@ class PlannedSessionFormSmall(ModelForm):
|
|||||||
boattypes = mytypes.boattypes
|
boattypes = mytypes.boattypes
|
||||||
|
|
||||||
# Workout
|
# Workout
|
||||||
@python_2_unicode_compatible
|
|
||||||
class Workout(models.Model):
|
class Workout(models.Model):
|
||||||
workouttypes = mytypes.workouttypes
|
workouttypes = mytypes.workouttypes
|
||||||
workoutsources = mytypes.workoutsources
|
workoutsources = mytypes.workoutsources
|
||||||
@@ -2611,7 +2610,28 @@ class Workout(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return stri
|
return stri
|
||||||
|
|
||||||
|
class TombStone(models.Model):
|
||||||
|
user = models.ForeignKey(Rower,on_delete=models.CASCADE)
|
||||||
|
uploadedtoc2 = models.IntegerField(default=0)
|
||||||
|
uploadedtostrava = models.BigIntegerField(default=0)
|
||||||
|
uploadedtosporttracks = models.BigIntegerField(default=0)
|
||||||
|
uploadedtounderarmour = models.BigIntegerField(default=0)
|
||||||
|
uploadedtotp = models.BigIntegerField(default=0)
|
||||||
|
uploadedtorunkeeper = models.BigIntegerField(default=0)
|
||||||
|
|
||||||
|
@receiver(models.signals.pre_delete,sender=Workout)
|
||||||
|
def create_tombstone_on_delete(sender, instance, **kwargs):
|
||||||
|
t = TombStone(
|
||||||
|
user=instance.user,
|
||||||
|
uploadedtoc2 = instance.uploadedtoc2,
|
||||||
|
uploadedtostrava = instance.uploadedtostrava,
|
||||||
|
uploadedtounderarmour = instance.uploadedtounderarmour,
|
||||||
|
uploadedtotp = instance.uploadedtotp,
|
||||||
|
uploadedtorunkeeper = instance.uploadedtorunkeeper,
|
||||||
|
)
|
||||||
|
t.save()
|
||||||
|
|
||||||
# delete files belonging to workout instance
|
# delete files belonging to workout instance
|
||||||
# related GraphImage objects should be deleted automatically
|
# related GraphImage objects should be deleted automatically
|
||||||
@receiver(models.signals.post_delete,sender=Workout)
|
@receiver(models.signals.post_delete,sender=Workout)
|
||||||
|
|||||||
@@ -165,9 +165,15 @@ def get_strava_workouts(rower):
|
|||||||
w.uploadedtostrava = int(stravaid)
|
w.uploadedtostrava = int(stravaid)
|
||||||
w.save()
|
w.save()
|
||||||
|
|
||||||
knownstravaids = uniqify([
|
knownstravaids = [
|
||||||
w.uploadedtostrava for w in Workout.objects.filter(user=rower)
|
w.uploadedtostrava for w in Workout.objects.filter(user=rower)
|
||||||
])
|
]
|
||||||
|
|
||||||
|
tombstones = [
|
||||||
|
t.uploadedtostrava for t in TombStone.objects.filter(user=rower)
|
||||||
|
]
|
||||||
|
|
||||||
|
knownstravaids = uniqify(knownstravaids+tombstones)
|
||||||
|
|
||||||
newids = [stravaid for stravaid in stravaids if not stravaid in knownstravaids]
|
newids = [stravaid for stravaid in stravaids if not stravaid in knownstravaids]
|
||||||
|
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user