SQL request in GetMessaginPreferences does not join on digest value, so, for a given patron, if you request his messaging preferences for a given message, it returns 2 rows, one with digest=On and the other with digest=Off rather than juste one corresponding to the Digest preference of the patron.
Created attachment 54826 [details] [review] Bug 10227 : Fix GetMessagingPreferences when digest is possible
This bug is a bit tricky to test, as the result is somehow random, depending on the order of rows returned by sql request. You've got to change the preferences several times to see bad results. Enable EnhancedMessaging preferences Set preferences for a borrower or a category. run misc/cronjobs/advance_notices.pl and look in message_queue table the letter_code of the generated messages. Change digest selection and do the test again several times Without patch, for message where digest is allowed (Advance_Notice, Item_Due), for a borrower or a category with 'wants_digest' selected, GetBorrowerMessagingPreferences returns sometimes letter_code with DGST and sometimes not. With the patch, letter_code returned is always correct depending on digest selected or not
Created attachment 55385 [details] [review] Bug 10227 : Fix GetMessagingPreferences when digest is possible This bug is a bit tricky to test, as the result is somehow random, depending on the order of rows returned by sql request. You've got to change the preferences several times to see bad results. Enable EnhancedMessaging preferences Set preferences for a borrower or a category. run misc/cronjobs/advance_notices.pl and look in message_queue table the letter_code of the generated messages. Change digest selection and do the test again several times Without patch, for message where digest is allowed (Advance_Notice, Item_Due), for a borrower or a category with 'wants_digest' selected, GetBorrowerMessagingPreferences returns sometimes letter_code with DGST and sometimes not. With the patch, letter_code returned is always correct depending on digest selected or not Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Created attachment 55513 [details] [review] Bug 10227 : Fix GetMessagingPreferences when digest is possible This bug is a bit tricky to test, as the result is somehow random, depending on the order of rows returned by sql request. You've got to change the preferences several times to see bad results. Enable EnhancedMessaging preferences Set preferences for a borrower or a category. run misc/cronjobs/advance_notices.pl and look in message_queue table the letter_code of the generated messages. Change digest selection and do the test again several times Without patch, for message where digest is allowed (Advance_Notice, Item_Due), for a borrower or a category with 'wants_digest' selected, GetBorrowerMessagingPreferences returns sometimes letter_code with DGST and sometimes not. With the patch, letter_code returned is always correct depending on digest selected or not Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Pushed to master for 16.11, thanks Sophie!