chrono: do not check uniqueness on id and source_id when updating
gitea/ants-hub/pipeline/head This commit looks good Details

This commit is contained in:
Benjamin Dauvergne 2023-06-12 18:16:56 +02:00
parent 674509af00
commit 631f060f71
2 changed files with 11 additions and 4 deletions

View File

@ -270,7 +270,9 @@ class RendezVousDisponibleView(View):
except Lieu.DoesNotExist:
# get existing pk and try a full_clean
pk = collectivite.lieux.filter(source_id=source_id).values_list('pk', flat=True).first()
Lieu(pk=pk, collectivite=collectivite, source_id=source_id, **payload).full_clean()
lieu = Lieu(pk=pk, collectivite=collectivite, source_id=source_id, **payload)
lieu._state.adding = False
lieu.full_clean()
# now update or create
lieu, created = collectivite.lieux.update_or_create(source_id=source_id, defaults=payload)
if created:
@ -293,7 +295,9 @@ class RendezVousDisponibleView(View):
except Collectivite.DoesNotExist:
# get existing pk and try a full_clean
pk = raccordement.collectivites.filter(source_id=source_id).values_list('pk', flat=True).first()
Collectivite(pk=pk, raccordement=raccordement, source_id=source_id, **payload).full_clean()
collectivite = Collectivite(pk=pk, raccordement=raccordement, source_id=source_id, **payload)
collectivite._state.adding = False
collectivite.full_clean()
# now update or create
collectivite, created = raccordement.collectivites.update_or_create(
source_id=source_id, defaults=payload

View File

@ -68,6 +68,9 @@ def test_rendez_vous_disponibles(django_app, db):
'collectivites': [
{
'id': 'col1',
'nom': 'Saint-Didier',
'url': 'https://saint-didier.fr/rdv2/',
'logo_url': 'https://saint-didier.fr/logo.png',
'lieux': [
{
'id': 'lieu1',
@ -87,7 +90,7 @@ def test_rendez_vous_disponibles(django_app, db):
'err': 0,
'data': {
'collectivites_created': 0,
'collectivites_updated': 0,
'collectivites_updated': 1,
'lieux_created': 1,
'lieux_updated': 0,
'lieux_deleted': 0,
@ -289,7 +292,7 @@ def test_rendez_vous_disponibles(django_app, db):
{
'id': 'col1',
'nom': 'Saint-Didier',
'url': 'https://saint-didier.fr/rdv/',
'url': 'https://saint-didier.fr/rdv2/',
'logo_url': 'https://saint-didier.fr/logo.png',
'created': '2023-03-03T10:00:00+00:00',
'last_update': '2023-03-03T10:00:00+00:00',