Page MenuHomePhabricator

Create a basic list of all events with Event Registration
Open, In Progress, Needs TriagePublic

Description

As a Wikimedian, I want to be able to see a list of all events with event registration, so that I can learn about upcoming events that may interest me or peruse past events to see what organizing activity has been going on in the movement.

Background: In an effort to make events on the wikis more discoverable, we can start by making the events that use event registration more discoverable. Since a) we already have basic data on events via event registration, and b) we already have a basic structure for displaying events (from the organizer view) on Special:MyEvents, we can format this data in a way that is viewable by all users on the wikis. This should be viewable to everyone, whether or not they are logged in.

Acceptance Criteria:

  • Display a list of events that use Event Registration on Special:AllEvents
  • This page should be viewable to all users without needing to be logged in on a wiki that has the CampaignEvents extension enabled
  • The special page should have four main sections, which are:
    • Search bar
      • The user should be able to search for an event by name in the search bar
      • Once the user inputs information in the search bar and clicks "Apply filters," they should see the search results in the event list below that match the search criteria
    • Date picker
      • The user should be able to select a past month to see events in the past
        • Note: The design just shows one date-picker, but I think it may be helpful to have two so you can search for events within a specific time period (for example, 'I want to see events between Jan 1 and May 1, 2018').
    • Dropdown to select meeting type
      • Options should be: all, online, in person, or hybrid (online & in person)
      • Default should be set to 'all'
    • The event list
      • The events should be sorted by month, with the default set to showing the current month followed by all other months that have upcoming events scheduled
      • The event list should include:
        • Event name with event page
        • Event time
        • Event date
        • Event timezone
        • Meeting type
        • Organizer(s)

Data we may include later in the Event List, but it is out of scope for this work:

  • For later: Event topic(s) (we can potentially start with the topics from the Newcomer Homepage)
  • For later: Event location (may not be great right now, since we don't have geocoding support) -> perhaps for later
  • For later: When we release to more wikis, we'll want a column for the wiki of the event

Design
Design specs

image.png (1×1 px, 204 KB)

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
ifried updated the task description. (Show Details)
ifried updated the task description. (Show Details)

Change 992408 had a related patch set uploaded (by Mhorsey; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] [WIP] Event pager

https://gerrit.wikimedia.org/r/992408

I did a first review pass for this, but this task has no acceptance criteria and no link to the latest design specs; hence, I cannot know if what I'm reviewing is correct or not. In particular, I have the following questions/remarks:

  • What should the "filter" form look like exactly? The screenshot in the task description seems to assume a JS-based form which is not going to be possible here. The form will be more like the one on Special:Contributions.
    • All fields in that form also need a label, which is missing in the screenshot
  • What should the name (and, consequently, description) of the page be? ListEvents, EventList, AllEvents, etc.
  • What timezone should the page use? (day and month headers, search field, dates shown in each entry, etc.)
    • The prototype has Timezone labels suggesting that each event could use its own timezone. That's doable, but things will appear as if they're out of order (e.g., an event happening at 15:00 Europe/Rome will appear before an event happening at 10:00 America/San Francisco; which is the correct ordering, but perhaps confusing at first glance)
  • What's the default state of the form? I would guess that the start date should be today, and the event meeting type should be "Any"; but it's just that, a guess.

Ah, yes, @Daimona! Thanks for pointing this out. This is probably because this ticket grew out of the offsite hackathon, and then it was never formalized. Let me take a look at improving the ticket today and then get back to you.

And @gonyeahialam: Can you give a link to the design spec?

Made some updates to the design based on some of the past feedback

image.png (1×1 px, 199 KB)

Thanks for these updates, @gonyeahialam!

As next steps, I talked with Gregory today about the fact that he would be finding time to meet with @MHorsey-WMF to discuss the designs.

@gonyeahialam on some browsers, the side-by-side input style is not possible. Would it be acceptable to have them fall back to a vertical column as in the screenshots I sent you? Also, this design doesn't contain the "number of results" filter that is currently implemented, would you like that removed?

@ifried There is no validation detailed here, is this something that we need to include? @Daimona suggested at bare minimum a check to see if the start date is before the end date.

Change #1015031 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Rename RL module for Special:MyEvents

https://gerrit.wikimedia.org/r/1015031

Thanks for pointing out the question of validation, @MHorsey-WMF!

Yes, I think it makes sense to start with at least ensuring that the start date is before the end date. Do we already have validation text from when the organizer configures event registration that we can use for this scenario, or would we need new validation text written?

Change #1015031 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Rename RL module for Special:MyEvents

https://gerrit.wikimedia.org/r/1015031

Change #992408 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Add Special:AllEvents to list all events

https://gerrit.wikimedia.org/r/992408

Change #1019347 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Minor fixes for Special:AllEvents

https://gerrit.wikimedia.org/r/1019347

Change #1019347 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Minor fixes for Special:AllEvents

https://gerrit.wikimedia.org/r/1019347

vaughnwalters subscribed.

Hey Michelle, here are some QA findings.

The following points all come from The event list portion of the AC:

  • The event list
    • The events should be sorted by month, with the default set to showing the current month followed by all other months that have upcoming events scheduled
    • The event list should include:
      • Event name with event page
      • Event time
      • Event date
      • Event timezone
      • Meeting type
      • Organizer(s)

1 For this AC:

The events should be sorted by month, with the default set to showing the current month followed by all other months that have upcoming events scheduled

According to this, we only want to show upcoming events, so we should not show events that have ended. Example

Screenshot 2024-04-18 at 11.25.34 AM.png (1×1 px, 216 KB)


2 For this AC:

The events should be sorted by month, with the default set to showing the current month followed by all other months that have upcoming events scheduled

This should be sorted first by year and then by month. In this example, an event starting may 1 2025 are in the same location in the event list as an event starting may 1 2030

Screenshot 2024-04-18 at 11.07.29 AM.png (792×1 px, 114 KB)


3 Event time Each event list event should include Event time


4 Each event list event should include Event timezone


5 Organizer(s) Right now only one organizer is shown per event, regardless of how many organizers the event has. Example.



6 On smaller breakpoints, for events that the title wraps to a second line, It breaks the layout. The dates should all align with each other vertically regardless of the length of the title:

Screenshot 2024-04-18 at 9.18.37 AM.png (1×1 px, 259 KB)
Screenshot 2024-04-18 at 11.16.35 AM.png (1×1 px, 326 KB)

7 If there is a really long title that doesn't have spaces, it will overflow off the side of the page.

Screenshot 2024-04-18 at 9.28.48 AM.png (1×3 px, 439 KB)


8 Button per the AC should have the text Search on it. It currently says Apply filters. Not sure if this change actually should be made though or if the AC should just change for this one. @ifried do you have an opinion on this?

@vaughnwalters Thanks, I'll get these looked at.

WRT the text, @gonyeahialam sent me some amendments, I don't think they were added to the AC though.

The design spec is up to date but the AC for the button text isn't updated. It should be Apply filter. @MHorsey-WMF @vaughnwalters

Change #1023892 had a related patch set uploaded (by Mhorsey; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] Take year into account for sorting on Special:AllEvents

https://gerrit.wikimedia.org/r/1023892

Change #1023893 had a related patch set uploaded (by Mhorsey; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] Add time to event row on Special:AllEvents

https://gerrit.wikimedia.org/r/1023893

Change #1023894 had a related patch set uploaded (by Mhorsey; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] Add timezone to row on Special:AllEvents

https://gerrit.wikimedia.org/r/1023894

Change #1023895 had a related patch set uploaded (by Mhorsey; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] fix spacing issue on Special:AllEvents

https://gerrit.wikimedia.org/r/1023895

Change #1023896 had a related patch set uploaded (by Mhorsey; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] Fix word wrapping in long event names on Special:AllEvents

https://gerrit.wikimedia.org/r/1023896

Change #1023891 had a related patch set uploaded (by Daimona Eaytoy; author: Mhorsey):

[mediawiki/extensions/CampaignEvents@master] Use correct default startDate value on special:AllEvents

https://gerrit.wikimedia.org/r/1023891

Change #1023891 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Use correct default startDate value on special:AllEvents

https://gerrit.wikimedia.org/r/1023891

There seem to be some confusion in the AC about time zones. I had asked about it in T353382#9581351 but it wasn't answered, so here we are. This special page uses dates/times in three places: date selectors, day/month headers, and individual event times. For each one of them, we need to know what time zone they should be in.

  • Date selectors: can be UTC, wiki timezone, or user time zone. There are pros and cons to each option, which also depend on what time zone is chosen for individual events. Note that, if date selectors use UTC but I'm in (e.g.) UTC+2, and it's currently 1:00 for me, the default start date when opening the page will be yesterday's date (from my perspective), because I'm ahead of UTC. There would be a similar problem if using the wiki time zone.
  • Day/month headers: should use whatever we use for individual events. If the day header's timezone doesn't match the event's timezone, then there might be a mismatch if the event begins close to the day start/end. For instance, if day headers use UTC, and an event uses UTC+2, and that event begins at 1:00 UTC+2, the day header would show the previous day from the UTC+2 perspective. Likewise, if the month and day headers use different time zones, there would be mismatches near the end/beginning of each month.
  • Individual events: can use the event's own time zone, or the user's timezone (falling back to the wiki time zone); can be differentiated by event type like we do elsewhere (i.e., user timezone for online and hybrid events, and event timezone for in-person events). If using the event's timezone, thing will seem to be out of order as described in T353382#9581351; I'm unsure how clear this would be, but certainly it wouldn't be wrong. If using the user's time zone, things would be in order from the user's perspective, but then do we need a "Timezone: XXX" line for each event as in the prototype?

@Daimona I think this is a product question, and with @ifried being away and the existing line of instruction being "Just get something sensible deployed" we can make a decision on these in her absence.

my 2c is that we should use UTC for everything *for now* and adjust at a later date, but make that clear somewhere in the text.

I'd also appreciate input from @VPuffetMichel

Also, rather than solving for this specific case, can we try to come up with a more general rule?

@vaughnwalters has suggested we simply leave the time off for now to get this over the line and then raise tickets once we make a final decision, I am inclined to agree.

It seems like a good place to start as we want to show this event list to everyone to get feedback.
We can iteratively refine this if needed.

@Daimona I think this is a product question, and with @ifried being away and the existing line of instruction being "Just get something sensible deployed" we can make a decision on these in her absence.

Agreed.

my 2c is that we should use UTC for everything *for now* and adjust at a later date, but make that clear somewhere in the text.

That works for me; using the user's timezone everywhere also works for me; I wouldn't consider other options for the time being. I'm unsure how to make that clear though.

Also, rather than solving for this specific case, can we try to come up with a more general rule?

Don't we have one? Using the user's timezone for online and hybrid events, and the event timezone otherwise. That's what EventTimeFormatter does. My question is whether we want to do the same here (the caveat being that the ordering might seem wrong even though it isn't).

@vaughnwalters has suggested we simply leave the time off for now to get this over the line and then raise tickets once we make a final decision, I am inclined to agree.

In the same spirit, could we also leave the time zone off and make a separate task for it? This clearly needs more thought and it would be nice to mark the initial work, represented by this task, as done.

Change #1023893 abandoned by Mhorsey:

[mediawiki/extensions/CampaignEvents@master] Add time to event row on Special:AllEvents

Reason:

Redo at a later date when timezone questions are resolved

https://gerrit.wikimedia.org/r/1023893

Change #1023894 abandoned by Mhorsey:

[mediawiki/extensions/CampaignEvents@master] Add timezone to row on Special:AllEvents

Reason:

redo later when timezone questions are resolved

https://gerrit.wikimedia.org/r/1023894

Change #1023895 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Fix spacing issue on Special:AllEvents

https://gerrit.wikimedia.org/r/1023895

Change #1023896 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Fix word wrapping in long event names on Special:AllEvents

https://gerrit.wikimedia.org/r/1023896

Change #1023892 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Take year into account for sorting on Special:AllEvents

https://gerrit.wikimedia.org/r/1023892

I think we need to think about how we do the filtering by date here. For example, if an event starts Jan 1 2024 and goes through Dec 31 2024, but we set our filter to start at today's date (April 29, 2024) that event will currently not show up even though it is an active event. Instead of displaying events that start on the date of the filter, it should show events that are active on the date of the "From" filter. Thoughts on this? The way it is set up now, it excludes events that are active and ongoing events because they do not start on the Start date selector of the filter. See gif below.

Screen Recording 2024-04-29 at 3.48.03 PM.gif (1×2 px, 1 MB)

Thoughts?

I think we need to think about how we do the filtering by date here. For example, if an event starts Jan 1 2024 and goes through Dec 31 2024, but we set our filter to start at today's date (April 29, 2024) that event will currently not show up even though it is an active event. Instead of displaying events that start on the date of the filter, it should show events that are active on the date of the "From" filter. Thoughts on this? The way it is set up now, it excludes events that are active and ongoing events because they do not start on the Start date selector of the filter. See gif below.

Screen Recording 2024-04-29 at 3.48.03 PM.gif (1×2 px, 1 MB)

Thoughts?

@vaughnwalters Yes this is how it should be. I think it was discussed before but didn't enter the AC.

@vaughnwalters The date picker is labelled "From" and so I think the current behaviour makes sense. I feel like at this point we should move forward and see what the community think.

I think we should move forward with the event list as is (using the start date).
Our goal is to get feedback and iterate based on the feedback.

We can create another task for the filtering as you suggested @vaughnwalters and we can prioritize that when needed. The task will remind us to have a discussion about it.

Here are some remaining QA findings to discuss at backlog grooming to decide what to fix before socializing the release of this new feature 🎉 :

These two are UI bugs:
T363859: Special:AllEvents should display the entire word "September"
T363864: Special:AllEvents long usernames should wrap on smaller breakpoints.


This one doesn't meet current AC of this parent ticket, but I think it requires further discussion before making any change as it could introduce UI issues:
T363863: Special:AllEvents displays only one organizer per event.

This is to discuss potential UX improvements for start date filtering:
T363865: Discuss start date filtering options on Special:AllEvents


Because we decided to leave out Event time and Event timezone for now, the two tickets below are followup tickets to decide how to deal with that:
T363866: Special:AllEvents each event list event should include Event time.
T363867: Special:AllEvents each event list event should include Event timezone.

thanks so much for the comprehensive details @vaughnwalters , seeing everything itemised like this is really helpful!

T363859 - This is a simple fix and should be done
T363864 - I think this is an edge case and shouldn't prevent us socialising this
T363863 - You're right that this needs discussion, but also I don't think it should hold us up

the others IIRC we have agreed to continue without.