more refactorgoodies
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from abc import ABCMeta, ABC, abstractmethod
|
from abc import ABCMeta, ABC, abstractmethod
|
||||||
from importlib import import_module
|
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
|
from rowers.utils import NoTokenError,dologging
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from .integrations import SyncIntegration, NoTokenError
|
from .integrations import SyncIntegration, NoTokenError, create_or_update_syncrecord
|
||||||
from rowers.models import User, Rower, Workout, TombStone, SyncRecord
|
from rowers.models import User, Rower, Workout, TombStone
|
||||||
from django.db.utils import IntegrityError
|
from django.db.utils import IntegrityError
|
||||||
|
|
||||||
from rowers import mytypes
|
from rowers import mytypes
|
||||||
@@ -91,14 +91,7 @@ class NKIntegration(SyncIntegration):
|
|||||||
_ = self.open()
|
_ = self.open()
|
||||||
r = self.rower
|
r = self.rower
|
||||||
|
|
||||||
record = SyncRecord(
|
record = create_or_update_syncrecord(rower, None, nkid=id)
|
||||||
rower = r,
|
|
||||||
nkid = id,
|
|
||||||
)
|
|
||||||
try:
|
|
||||||
record.save()
|
|
||||||
except IntegrityError:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
before = kwargs.get('before',0)
|
before = kwargs.get('before',0)
|
||||||
after = kwargs.get('after',0)
|
after = kwargs.get('after',0)
|
||||||
|
|||||||
@@ -3632,12 +3632,6 @@ class SyncRecord(models.Model):
|
|||||||
return super(SyncRecord, self).save(*args, **kwargs)
|
return super(SyncRecord, self).save(*args, **kwargs)
|
||||||
|
|
||||||
def create_or_update_syncrecord(rower, workout, **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:
|
try:
|
||||||
kwargs.pop('rower')
|
kwargs.pop('rower')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@@ -3648,14 +3642,36 @@ def create_or_update_syncrecord(rower, workout, **kwargs):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
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:
|
for field in record._meta.fields:
|
||||||
value = kwargs.get(field.name, None)
|
value = kwargs.get(field.name, None)
|
||||||
if value:
|
if value:
|
||||||
|
print(field.name, value)
|
||||||
setattr(record, field.name, value)
|
setattr(record, field.name, value)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
record.save()
|
record.save()
|
||||||
except IntegrityError:
|
except IntegrityError:
|
||||||
|
print('err')
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return record
|
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