Touched a ton of files to finally standardize on having trailing
final newlines, as best practice recommends and so our devs stop
accidentally fighting each other over it.
This was performed automatically with the following:
git ls-files -z '*.py' | while IFS= read -rd '' f; \
do tail -c1 < "$f" | read -r _ || echo >> "$f"; done
git ls-files -z '*.css' | while IFS= read -rd '' f; \
do tail -c1 < "$f" | read -r _ || echo >> "$f"; done
Proximate cause of 500 error on frontpage is that `Query` has no
such method `remove(...)`. Merely removing the line can't guarantee
identical logic, but I'm not quite clear if explicit removal from the
Query pseudo-collection is necessary, or if the final `pins` variable
after `Query.all()` will be appropriately filtered. It appears to
work right in practice, and the risk of expired pins persisting for
one extra pageload for only one user seems relatively minor.
* poll rework
* forgot to do joinedload on comments
* Fix logic errors with voting, SQL syntax.
Kitchen sink commit from review of poll-rework changes:
1. Fix seed-db.sql syntax error.
2. Fix SQL patch file duplication of *submissions* tables rather
than one set of submissions and one for comments.
3. Start makeshift SQL patch folder, since this is a large change
that contributors may wish to apply to their local instances.
4. Fix checkbox (non-`exclusive`) polls being unable to be
unchecked. For consistency with `exclusive` polls, they should.
5. Fix changing the option of an `exclusive` poll when both
exclusive and non-exclusive options are present in one comment/
post causing the non-exclusive options to become unchecked.
(which, by my reading of SQLAlchemy `Query.one_or_none()`
really could break quite badly in some cases).
* link relationships with their counterparts
* small modification to poll unchecking
Co-authored-by: TLSM <duolsm@outlook.com>