Private
Public Access
1
0

more refactorgoodies

This commit is contained in:
2023-07-18 22:24:10 +02:00
parent 250263b74c
commit 8f060ed5bb
4 changed files with 26 additions and 17 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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

Binary file not shown.