Pronouns: he/him
Babel: it-N, en-3, fr-1, de-1
Note: I use this account for both work-related and volunteer activities. Everything that I do tagged with Campaign-Tools or related to the CampaignEvents extension is in my work capacity, and everything else is in my volunteer capacity, unless otherwise stated.
User Details
- User Since
- May 18 2017, 10:49 AM (369 w, 5 d)
- Availability
- Available
- IRC Nick
- Daimona
- LDAP User
- Daimona Eaytoy
- MediaWiki User
- Daimona Eaytoy [ Global Accounts ]
Today
Yesterday
Hey @ifried, I have two minor questions that came up in code review.
- Should the two notices ("This wiki does not have invitation lists enabled" and "You are not allowed to use invitation lists") end with a full stop? This isn't very clear in the AC.
- What should happen if a logged-out user visits the Special:GenerateInvitationList page and the feature is not enabled? Should we tell them that the feature is disabled, or should we ask them to login, and then tell them that it's disabled? I think the first, but I'd like to hear your thoughts on this.
I think a way to test this would be to 1) confirm that there's a substantial reduction in the number of queries, especially when showing many events (can be quickly seen in the debug toolbar), and 2) verify that the information shown is still correct.
Fri, Jun 14
Thank you. Is this ready for DBA review then?
Thu, Jun 13
I was going through this again, and I have a few questions/thoughts:
- AIUI, "worklist" is just the list of articles. "Invitation list" is the list of users to invite, and we're also using this term to identify the combination of worklists + users. But then, shouldn't ce_worklists actually be called ce_invitation_lists? ce_worklists_articles is maybe fine, though I'm unsure about the plural in "worklists". ce_worklists_users would presumably be ce_invitation_list_users?
- Who should be able to view a given invitation list? I thought it would only be the person who created the list itself (not the event). If so, we should store the creator of the list in the ce_worklists table, else we don't know who each list belongs to.
- Thinking about indices. In SpecialMyInvitationLists, we'll need to filter by user and, optionally, wiki. So, I think we'll need a composite index on user + wiki (in this order). I don't think the application needs an index on the wiki alone, but unsure about whether it's needed for analytics. The other indices seem sufficient (I think we'll only need primary keys and the indices on invitation list IDs).
- There's also the page ID question that was discussed in code review, which should go with the DBA review.
Things we are currently checking:
- article names must be valid (i.e., no special characters that are not allowed in page titles)
- page must exist
- page must be in the mainspace
Wed, Jun 12
(Also: the fix should be live in... A few days I think. It needs to wait for the next l10n update. But it can be easily verified locally by updating the translation of the campaignevents-edit-field-tracking-tools message in sw.json)
There was an extra linebreak in the Swahili translation of that message. The next line was also starting with a space, which is interpreted by the wikitext parser as a literal (<pre>) section. I've fixed that. (CC @Jadnapa)
@cmelo Another thing I realized while we were discussing T356683: we need to store the wiki where the invitation list was generated. This would allow us to only display local invitation lists in Special:MyInvitationLists. The current schema only stores the wiki of the event page, but that field might be absent.
Tue, Jun 11
- Show events that already started and are ongoing
Discussed today. We will run three queries to get: 1) all the creators, 2) more organizers to show, 3) the number of organizers for each event. This will be done before processing individual rows (e.g., in preprocessResult). We will also use LinkBatch to run existence checks for all the user page links. The data will be stored inside the class and looked up when building the individual rows.
Mon, Jun 10
Ohhhhhhh I see. It seems to be caused by the AutoScroll extension I have installed. It's weird because it's the first time in a few years that I'm having this kind of issue. At any rate, it seems like I don't need that extension anymore nowadays, so I've disabled it and things are good.
This is reproducible in phan demo, and it's a known limitation. Phan does not track context-based restrictions on the union type of a property, except for property of $this. So, in your example, when the doSubStuff call is encountered, phan reads the type of the argument ($w->stuff) from the property declaration, which is nullable, and does not remember about the conditional right above. That would only be done if $stuff were a property of the current class, like in this demo. I think there's a task upstream but I can't find it; I only found a mention in https://github.com/phan/phan/issues/4611#issuecomment-968352849.
Fri, Jun 7
Participant questions are enabled everywhere and cannot be turned off. Is there something in particular that isn't working?
Thu, Jun 6
I agree -- I was sort of hinting that in my comment above («similar to the subpage navigation menu»), but I wasn't quite sure what that might look like in practice, so I didn't expand on it. One thing to keep in mind with standard subpages is that you can have an arbitrarily (?) large number of levels, and presumably that wouldn't work well with buttons, as they take up a lot of space. Still, it makes a lot of sense to somehow reuse the same logic, as we're really talking about almost identical flows.
Wed, Jun 5
Mon, Jun 3
I see. Here's my understanding of what happened.
They created an event page and attached the PE dashboard link in the process of enabling registration.
Fri, May 31
I think "a few minutes" should work too.
Thu, May 30
Wed, May 29
"Closed" and "ended" are two separate concept, one is a status you can set explicitly, the other is a consequence of the event end date.
Mon, May 27
Note that the bug is currently not reproducible with the event linked in the task description, because it has ended.
Fri, May 24
@gonyeahialam One question from T364606#9831082: should the meeting type and organizers always be on separate lines, even when there's just an organizer?
I think we need to be clear on what we want to expose exactly. APIs in the usual sense can only be accessed via HTTP(S), so you could use them in a JS gadget, but not in a lua module. Exposing this kind of list in Lua might be doable but needs to be thought out carefully. If the goal is to let people make their own event lists, we could make Special:AllEvents transcludable instead, and allow filtering via parameters passed in the transclusion.
Thu, May 23
I've reviewed the schema again given all the conversations that happened recently, but I still feel like there's a lot I don't know and/or we haven't talked about and that makes it difficult to tell whether something would work.
Patch above has been merged, but tagged with the parent task.
Wed, May 22
@vaughnwalters This can only be tested locally by running php maintenance/run.php CampaignEvents:GenerateInvitationList. The limits on the number of articles and users should be easy to test. The one for the number of revisions would be harder, but I don't think it needs to be tested for specifically.