Skip to content

Add timeline app#410

Open
aJanuary wants to merge 2 commits into
WorldconVotingSystems:mainfrom
aJanuary:add-timeline
Open

Add timeline app#410
aJanuary wants to merge 2 commits into
WorldconVotingSystems:mainfrom
aJanuary:add-timeline

Conversation

@aJanuary

@aJanuary aJanuary commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

This allows admins to configure a timeline that shows on the homepage. Events are rendered as bubbles with a label and the date shown beneath them. If the event is marked as complete, then the bubble is filled.

The date is a free-text field, allowing both specific dates (e.g. "Feb 12th 2016") and vague dates (e.g. "Early May 2026").

Because what events should be shown can be specific to a particular year and what that year's Hugo admin wants to communicate, there is no automation tied to the timeline. It is up to the admin to remember to update vague dates with more specific ones, and mark events as completed once they are done.

If no timeline events are configured, the timeline doesn't show, allowing the Hugo admin to opt in to whether they have the timeline or not.

image image image Screenshot From 2026-04-28 11-31-47 Screenshot From 2026-04-28 11-31-50

@aJanuary aJanuary force-pushed the add-timeline branch 3 times, most recently from 106096c to 70a8273 Compare April 27, 2026 13:41
@aJanuary

Copy link
Copy Markdown
Contributor Author

This is low stakes. I won't mind if this gets rejected out of hand or languishes on the review pile for a while.

@offbyone offbyone left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments that I'd want addressed before merging it.

Also, please add it somewhere in the docs.

(yes, the docs are a mess. I want to clean those up, but just have not yet got around to thinking through an organization. Put it somewhere in the admin section, as its own file for now)

# Convention admin utilities and seeding commands
"nomnom.convention_admin",
# Admin-configurable homepage timeline
"nomnom.timeline.apps.TimelineConfig",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit weird naming-wise; why is it not just nomnom.timeline?

{% load i18n waffle_tags %}
{% block content %}
<div class="container">
{% include "timeline/timeline.html" %}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look at other waffle tags; this should be enabled with a switch. There is an example of creating one in src/nomnom/canonicalize/migrations/0006_create_sankey_switch.py and the use of {% switch "advisory_votes" %} elsewhere in this file.

Comment thread src/nomnom/base/views.py Outdated


def index(request: HttpRequest) -> HttpResponse:
timeline_events = list(TimelineEvent.objects.all())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The better way to add this functionality is via the index_content_load signal; that way the base app doesn't have direct dependencies on the other apps. You can also make that load conditional on the switch too.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently index_content_load only triggers for authenticated users. Are we happy with the timeline only being visible for authenticated users?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That feels like a bug. I'm actually surprised.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aesthetically I don't love the way it works on mobile when there are more timeline events. Would it make sense to hide it behind an expanding details in some way, and be a vertical timeline when on mobile?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking of something like this where it shows the current and next event (specifically, the first transition from a completed to a non-completed event). Clicking/tapping it will open the full vertical timeline. Obviously needs a lot of tweaking to the spacing and gradients.

image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's the caveat that doing this sort of thing complicates the already slightly complicated CsS, especially doing it in an accessible way. So there's the question of whether you're okay taking on that extra maintenance burden.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, my CSS-fu is, uh, not great. If you think you can make this relatively idiot-resistant (not idiot-proof, since that's how you evolve better idiots :) ) then I'd be okay with it anyway.

@offbyone offbyone added the minor PRs that should result in a minor version bump (new small features) label Apr 27, 2026
This allows admins to configure a timeline that shows on the homepage.
Events are rendered as bubbles with a label and the date shown beneath
them. If the event is marked as complete, then the bubble is filled.

The date is a free-text field, allowing both specific dates (e.g. "Feb
12th 2016") and vague dates (e.g. "Early May 2026").

Because what events should be shown can be specific to a particular year
and what that year's Hugo admin wants to communicate, there is no
automation tied to the timeline. It is up to the admin to remember to
update vague dates with more specific ones, and mark events as completed
once they are done.

If no timeline events are configured, the timeline doesn't show,
allowing the Hugo admin to opt in to whether they have the timeline or
not.
Rather than allowing the timeline to wrap, on small screens switch
to a vertical view. In order to avoid taking up all the screen real
estate in the vertical view, default to rendering it collapsed so
only the "current" time is shown. This is the first transition from
a completed to a non-completed event. The timeline can then be
interacted with to toggle the non-collapsed view.
@offbyone

offbyone commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

I keep coming back to the fact that this makes more sense as a convention website item, not something data-driven. I think this should be in those places instead.

I think, thanks for the work, but I'm not going to add this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor PRs that should result in a minor version bump (new small features)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants