If items are assigned to multiple courses, the "edit" links for a course item may pass the wrong course id. This is really a cosmetic issue. It appears that in Template Toolkit, if you reuse an existing variable name in a foreach loop, it will not create a new temporary variable but will instead re-use the existing variable leaving assigned at the end to the last assignment, just as it would in Perl code. This is not a problem when all items are assigned to one and only one course, but can cause issues when we loop through the other courses an item may be on. This is solved easily by renaming the variable used in the foreach loop to another unused name.
Created attachment 36776 [details] [review] Bug 13817 - Edit links on course items may point to the wrong course! If items are assigned to multiple courses, the "edit" links for a course item may pass the wrong course id. This is really a cosmetic issue. It appears that in Template Toolkit, if you reuse an existing variable name in a foreach loop, it will not create a new temporary variable but will instead re-use the existing variable leaving assigned at the end to the last assignment, just as it would in Perl code. This is not a problem when all items are assigned to one and only one course, but can cause issues when we loop through the other courses an item may be on. This is solved easily by renaming the variable used in the foreach loop to another unused name. Test Plan: 1) Apply this patch 2) Try the edit and delete links for an item on reserve for a course 3) No changes in behavior should be noted
Created attachment 37383 [details] [review] Bug 13817 - Edit links on course items may point to the wrong course! If items are assigned to multiple courses, the "edit" links for a course item may pass the wrong course id. This is really a cosmetic issue. It appears that in Template Toolkit, if you reuse an existing variable name in a foreach loop, it will not create a new temporary variable but will instead re-use the existing variable leaving assigned at the end to the last assignment, just as it would in Perl code. This is not a problem when all items are assigned to one and only one course, but can cause issues when we loop through the other courses an item may be on. This is solved easily by renaming the variable used in the foreach loop to another unused name. Test Plan: 1) Apply this patch 2) Try the edit and delete links for an item on reserve for a course 3) No changes in behavior should be noted Signed-off-by: Tom Misilo <misilot@fit.edu>
QA: Picking a trivial one now; spent hours in Search.pm :)
Created attachment 38057 [details] [review] Bug 13817 - Edit links on course items may point to the wrong course! If items are assigned to multiple courses, the "edit" links for a course item may pass the wrong course id. This is really a cosmetic issue. It appears that in Template Toolkit, if you reuse an existing variable name in a foreach loop, it will not create a new temporary variable but will instead re-use the existing variable leaving assigned at the end to the last assignment, just as it would in Perl code. This is not a problem when all items are assigned to one and only one course, but can cause issues when we loop through the other courses an item may be on. This is solved easily by renaming the variable used in the foreach loop to another unused name. Test Plan: 1) Apply this patch 2) Try the edit and delete links for an item on reserve for a course 3) No changes in behavior should be noted Signed-off-by: Tom Misilo <misilot@fit.edu> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Not so trivial to reproduce. With three courses and two items, I couldn't somehow. But the code looks good. Passed QA
Patch pushed to master. Thanks Kyle!
Pushed to 3.18.x will be in 3.18.7