[01:03] <StevenK> wgrant: https://code.launchpad.net/~stevenk/launchpad/do-not-validate-bugwatch-on-delete/+merge/191543
[01:04] <wgrant> StevenK: r=me
[01:09] <StevenK> wgrant: Javascript, since I've marked the MP as Needs Review?
[02:51] <StevenK> wgrant: What about your favourite topic, microservices and the releases of auditor{,fixture,client}?
[03:17] <wgrant> StevenK: Have you tested the JS for XSSes?
[03:18] <StevenK> I think it's okay in that respect.
[03:18] <wgrant> You thought so last time too :P
[03:19] <wgrant> But it looks much better this time
[04:08] <StevenK> wgrant: https://code.launchpad.net/~stevenk/launchpad/use-transitionToStatus-createManyTasks/+merge/191554
[04:17] <wgrant> StevenK: That's not clearly correct.
[04:17] <wgrant> StevenK: It'll now create items in the activity log and send emails.
[04:20] <StevenK> wgrant: I don't see anything in IBugTask.transitionToStatus() that notifies
[04:21] <wgrant> ah, right, it's the terribly broken subscriber model that does that.
[04:23] <StevenK> I can refactor out the reseting and setting attribute logic so that createManyTasks and transitionToStatus both call it.
[04:23] <wgrant> How expensive is transitionToStatus?
[04:25] <StevenK> It checks if the user can edit the status, switches the status and sets columns based on the status
[04:25] <wgrant> So, createManyTasks is meant to be vaguely efficient
[04:25] <StevenK> Sure
[04:25] <wgrant> It currently isn't great, because it calls a separate method to update the target name cache
[04:26] <wgrant> But transitionToStatus will make it a lot worse.
[04:28] <StevenK> :-(
[04:34] <StevenK> wgrant: But we're only updating a few columns of one row?
[04:35] <StevenK> Or is it the horrible zope subscribers that are defeating us?
[04:43] <wgrant> StevenK: Confused
[04:43] <wgrant> StevenK: You're making various auth queries, then setting a few columns on a row, for several rows.
[04:49] <StevenK> wgrant: So we refactor out the reset and setting logic out of transitionToStatus(), and then no auth queries.