update related cards/forms on digest change (#68427) #1241

Merged
fpeters merged 1 commits from wip/68427-update-relations into main 2024-03-15 07:21:52 +01:00
Owner

(stockage de brouillon)

(stockage de brouillon)
fpeters force-pushed wip/68427-update-relations from b21bb6f69a to b829d25c0b 2024-03-09 15:02:43 +01:00 Compare
fpeters force-pushed wip/68427-update-relations from b829d25c0b to 8b76d2b46d 2024-03-09 17:24:12 +01:00 Compare
fpeters force-pushed wip/68427-update-relations from 8b76d2b46d to ad8c2b5213 2024-03-12 09:53:50 +01:00 Compare
fpeters force-pushed wip/68427-update-relations from ad8c2b5213 to 7ffbb1ccfe 2024-03-12 10:25:02 +01:00 Compare
fpeters force-pushed wip/68427-update-relations from 7ffbb1ccfe to caa1128381 2024-03-12 10:57:47 +01:00 Compare
fpeters reviewed 2024-03-12 11:24:08 +01:00
@ -608,3 +608,3 @@
carddef.data_class().wipe()
resp = app.get(formdef.data_class().select()[0].get_url())
assert resp.pyquery('.field-type-item .value').text() == 'Xattr%sY' % baz_id
assert resp.pyquery('.field-type-item .value').text() == 'Yattr%sZ' % baz_id
Author
Owner

Dans ce test on vérifiait le fallback sur la valeur stockée en _display en cas de suppression de la fiche; avec cette PR qui met à jour la valeur en _display ça ne marche plus pareil, on peut juste être content que la valeur s'affiche sans planter, ce qui était l'intention initiale de toute façon.

Dans ce test on vérifiait le fallback sur la valeur stockée en _display en cas de suppression de la fiche; avec cette PR qui met à jour la valeur en _display ça ne marche plus pareil, on peut juste être content que la valeur s'affiche sans planter, ce qui était l'intention initiale de toute façon.
@ -634,6 +635,7 @@ def test_form_page_item_with_variable_data_source_prefill(pub):
def test_form_page_item_with_card_with_custom_id_prefill(pub):
create_user(pub)
CardDef.wipe()
FormDef.wipe()
Author
Owner

Tests ajoutés récemment, il y a un carddata.store() exécuté avec les restes de reverse_relations sans rapport, il faut nettoyer correctement.

Tests ajoutés récemment, il y a un carddata.store() exécuté avec les restes de reverse_relations sans rapport, il faut nettoyer correctement.
@ -1331,0 +1510,4 @@
carddata1.store()
formdata.refresh_from_storage()
assert formdata.data['1_display'] == 'view-card1-change1'
Author
Owner

Vérification que sur une source de données sur une vue personnalisée, on obtient le résultat du digest template de la vue.

Vérification que sur une source de données sur une vue personnalisée, on obtient le résultat du digest template de la vue.
@ -1331,0 +1537,4 @@
carddef2.fields = [
ItemField(id='1', label='Test', varname='foo', data_source={'type': 'carddef:foo'}),
]
carddef2.digest_templates = {'default': 'bar-{{ form_var_foo }}'}
Author
Owner

Un digest template qui reprend la valeur _display d'une autre fiche, un changement sur la valeur de cette autre fiche amènera donc un changement sur cette fiche, le test vérifie que ça cascade bien ainsi.

Un digest template qui reprend la valeur _display d'une autre fiche, un changement sur la valeur de cette autre fiche amènera donc un changement sur cette fiche, le test vérifie que ça cascade bien ainsi.
@ -1331,0 +1621,4 @@
# check it will have stopped once getting back to carddata2
carddata2.refresh_from_storage()
assert carddata2.data['2_display'] == 'card1 card2 card1 None'
Author
Owner

Mais il faut éviter que la cascade culbute sans fin.

Mais il faut éviter que la cascade culbute sans fin.
@ -1331,0 +1673,4 @@
assert formdata.data['1_display'] == 'bar-card1'
formdata.just_created()
formdata.store()
formdef.remove_self()
Author
Owner

Il y avait une relation inverse vers ce formdef supprimé, il ne faudrait pas que la mise à jour se plante en allant le chercher.

Il y avait une relation inverse vers ce formdef supprimé, il ne faudrait pas que la mise à jour se plante en allant le chercher.
fpeters changed title from WIP: update related cards/formds on digest change (#68427) to update related cards/formds on digest change (#68427) 2024-03-12 11:24:15 +01:00
fpeters changed title from update related cards/formds on digest change (#68427) to update related cards/forms on digest change (#68427) 2024-03-12 11:25:42 +01:00
lguerin reviewed 2024-03-12 14:11:37 +01:00
wcs/carddata.py Outdated
@ -136,0 +140,4 @@
job = UpdateRelationsAfterJob(carddata=self)
if get_response():
job.store()
print(self, job.id)
Owner

un print qui traine

un print qui traine
fpeters marked this conversation as resolved
wcs/carddata.py Outdated
@ -136,0 +164,4 @@
update_related_seen = get_publisher()._update_related_seen
carddef = CardDef.get(self.kwargs['carddef_id'])
carddata = carddef.data_class().get(self.kwargs['carddata_id'])
Owner

et si le job est exécuté alors que la fiche en question a été supprimée ?

et si le job est exécuté alors que la fiche en question a été supprimée ?
Author
Owner

Ça serait vraiment pas de chance, mais en effet, j'ai géré la suppression de carddata ou carddef dans ce commit supplémentaire : aaedccb39f (il bouge un peu le dernier test, qui contenait un deuxième modèle de fiche pour rien).

Ça serait vraiment pas de chance, mais en effet, j'ai géré la suppression de carddata ou carddef dans ce commit supplémentaire : https://git.entrouvert.org/entrouvert/wcs/commit/aaedccb39f471556466d4747c6075c05b84c4402 (il bouge un peu le dernier test, qui contenait un deuxième modèle de fiche pour rien).
fpeters force-pushed wip/68427-update-relations from aaedccb39f to 737db3e1be 2024-03-12 14:48:54 +01:00 Compare
lguerin approved these changes 2024-03-12 15:00:53 +01:00
fpeters merged commit c77812450b into main 2024-03-15 07:21:52 +01:00
fpeters deleted branch wip/68427-update-relations 2024-03-15 07:21:52 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#1241
No description provided.