usgo/agagd

django_tables2 is brittle; any bad cross references break.

Closed this issue · 5 comments

amj commented

E.g., if a member has a unparseable chapter set, the link crossref will fail and bring down the whole list. Unfortunate.

Either better error handling or a different table framework?

I think in the short term we may want to look at dealing with django_tables2. In the long term, we may want or need to consider replacing our use of django_tables2.

@duckpunch any additional thoughts?

I think in the short term we may want to look at dealing with django_tables2.

Do we have examples of where this fails, per the ticket? Might be good to have something explicit we're trying to fix.

If there's nothing explicitly broken, we can probably recast this ticket for the longer term consideration.

In the long term, we may want or need to consider replacing our use of django_tables2.

Seems reasonable. Seems there are a few paths here. One is to embrace a frontend that includes a build step (e.g. npm). Another is to avoid the build step and write javascript like it's 2005.

The former might be nice since it would allow us to leverage all manner of libraries. That said, it wouldn't play really well with collectstatic (though there may yet be more libraries to help deal with that). It would make development a pain, too.

The latter might be nice for its simplicity. A library like htmx could be a good fit with Django.

Sticking with an approach like django_tables2 probably limits how rich our frontend could be. It's also tied to the Django ORM (the downside which produced this ticket).

All that said, my vote goes to the static javascript without the additional build step. Further, I think we should only take on that work alongside some other frontend ticket that might benefit (like #148).

The latter might be nice for its simplicity. A library like htmx could be a good fit with Django.

I wonder if we should address this as one big pull or a smaller set of incremental pulls seeing as we will need to add quite a few endpoints for htmx to be supported.

django_tables2 will be removed as part of the Redesign - Milestone.

Closing, for now. Resolution can be found in beta.