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

View File

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

View File

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

Binary file not shown.