D’accord, dans Network je vois que quand je Save, le get n’est appelé que sur les objets inlinés et pas sur mon objet père (CdpProduct).
Pour le père, p.values est encore défini avec les valeurs au moment du Save donc on passe directement dans le init.
listNav(_ => {
if (p.values)
init();
else {
ui.monitor(ctn, "get");
if (creation)
obj.getForCreate(param).then(init).catch(getError);
else if (p.copy)
obj.getForCopy(rowId, param).then(init).catch(getError);
else
obj.getForUpdate(rowId, param).then(init).catch(getError);
}
}
Après le Save, si je clique sur Reload, p.value est undefined et j’ai bien mon get avec mon pourcentage à jour.
Donc mon souci viendrait plutôt de l’absence du get plutôt que de l’ordre des Save ?
[EDIT] Si je regarde le retour de l’update, je vois qu’on est avant l’exécution du postSave des objets inlinés car le pourcentage n’a pas encore été recalculé.
Après clic sur Reload, c’est fait.
Pour moi c’est un comportement normal car même hors objet inliné, si j’avais un recalcul dans le postSave de mon objet, je ne l’aurais pas à l’écran avant un reload, non ?
Dans les logs, l’ordre des hook
Save du parent
com.simplicite.objects.CDP.CdpProduct|preSave||Event: EFE preSave CdpProduct
Save objets inlinés
com.simplicite.commons.CDP.CdpProductBlock|preSave||Event: EFE preSave objet inliné CdpPdtDescription
com.simplicite.commons.CDP.CdpProductBlock|postUpdate||Event: EFE postUpdate objet inliné CdpPdtDescription
→ J’imagine que c’est là que j’ai la Response à mon update, puis
Recalcul pourcentage parent
com.simplicite.objects.CDP.CdpProduct|calculateCompletion||Event: EFE calculateCompletion
com.simplicite.commons.CDP.CdpProductBlock|updateProductCompletion||Event: EFE save product
com.simplicite.objects.CDP.CdpProduct|preSave||Event: EFE preSave CdpProduct