adding tombstones
This commit is contained in:
@@ -108,9 +108,16 @@ def get_c2_workouts(rower):
|
||||
for item in res.json()['data']:
|
||||
alldata[item['id']] = item
|
||||
|
||||
knownc2ids = uniqify([
|
||||
knownc2ids = [
|
||||
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]
|
||||
|
||||
for c2id in newids:
|
||||
|
||||
@@ -2506,7 +2506,6 @@ class PlannedSessionFormSmall(ModelForm):
|
||||
boattypes = mytypes.boattypes
|
||||
|
||||
# Workout
|
||||
@python_2_unicode_compatible
|
||||
class Workout(models.Model):
|
||||
workouttypes = mytypes.workouttypes
|
||||
workoutsources = mytypes.workoutsources
|
||||
@@ -2611,7 +2610,28 @@ class Workout(models.Model):
|
||||
)
|
||||
|
||||
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
|
||||
# related GraphImage objects should be deleted automatically
|
||||
@receiver(models.signals.post_delete,sender=Workout)
|
||||
|
||||
@@ -165,9 +165,15 @@ def get_strava_workouts(rower):
|
||||
w.uploadedtostrava = int(stravaid)
|
||||
w.save()
|
||||
|
||||
knownstravaids = uniqify([
|
||||
knownstravaids = [
|
||||
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]
|
||||
|
||||
|
||||
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