more refactorgoodies
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from abc import ABCMeta, ABC, abstractmethod
|
||||
from importlib import import_module
|
||||
from rowers.models import Rower, User
|
||||
from rowers.models import Rower, User, create_or_update_syncrecord
|
||||
from rowers.utils import NoTokenError,dologging
|
||||
|
||||
import requests
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from .integrations import SyncIntegration, NoTokenError
|
||||
from rowers.models import User, Rower, Workout, TombStone, SyncRecord
|
||||
from .integrations import SyncIntegration, NoTokenError, create_or_update_syncrecord
|
||||
from rowers.models import User, Rower, Workout, TombStone
|
||||
from django.db.utils import IntegrityError
|
||||
|
||||
from rowers import mytypes
|
||||
@@ -91,14 +91,7 @@ class NKIntegration(SyncIntegration):
|
||||
_ = self.open()
|
||||
r = self.rower
|
||||
|
||||
record = SyncRecord(
|
||||
rower = r,
|
||||
nkid = id,
|
||||
)
|
||||
try:
|
||||
record.save()
|
||||
except IntegrityError:
|
||||
return 0
|
||||
record = create_or_update_syncrecord(rower, None, nkid=id)
|
||||
|
||||
before = kwargs.get('before',0)
|
||||
after = kwargs.get('after',0)
|
||||
|
||||
@@ -3632,12 +3632,6 @@ class SyncRecord(models.Model):
|
||||
return super(SyncRecord, self).save(*args, **kwargs)
|
||||
|
||||
def create_or_update_syncrecord(rower, workout, **kwargs):
|
||||
records = SyncRecord.objects.filter(workout=workout,rower=rower)
|
||||
if records.count():
|
||||
record = records[0]
|
||||
else:
|
||||
record = SyncRecord(workout=workout, rower=rower)
|
||||
|
||||
try:
|
||||
kwargs.pop('rower')
|
||||
except KeyError:
|
||||
@@ -3648,14 +3642,36 @@ def create_or_update_syncrecord(rower, workout, **kwargs):
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
if workout:
|
||||
records = SyncRecord.objects.filter(workout=workout,rower=rower)
|
||||
if records.count():
|
||||
record = records[0]
|
||||
else:
|
||||
records = SyncRecord.objects.filter(**kwargs,rower=rower)
|
||||
if records.count():
|
||||
record = records[0]
|
||||
record.workout = workout
|
||||
else:
|
||||
record = SyncRecord(rower=rower, workout=workout)
|
||||
|
||||
else: # not workout
|
||||
records = SyncRecord.objects.filter(**kwargs, rower=rower)
|
||||
if records.count():
|
||||
record = records[0]
|
||||
else:
|
||||
record = SyncRecord(rower=rower)
|
||||
|
||||
|
||||
for field in record._meta.fields:
|
||||
value = kwargs.get(field.name, None)
|
||||
if value:
|
||||
print(field.name, value)
|
||||
setattr(record, field.name, value)
|
||||
|
||||
try:
|
||||
record.save()
|
||||
except IntegrityError:
|
||||
print('err')
|
||||
pass
|
||||
|
||||
return record
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user