- Update
wwdtm-theme
to set font weight for header and footer navigation links to 500
- Tweak responsive font sizing for
root
in wwdtm-theme
with a range of 14.5px and 16.75px
- Fix issue where Umami Analytics configuration was not read in properly, thus causing the snippet to be added to the rendered page when enabled
- Removed
utility.format_umami_analytics()
as it is no longer in use
- Re-add responsive font sizing for
:root
in wwdtm-theme
with a range of 14px and 16.5px
- Remove responsive font sizing for
:root
in wwdtm-theme
.
- Upgrade ruff from 0.7.0 to 0.7.4
- Frontend code refactor due to switching from Pure CSS to Bootstrap
- Replacing Pure CSS frontend toolkit with Bootstrap
- Refactor the frontend structure to use Bootstrap frontend components and conventions
- Include the required IBM Plex web fonts with the application to remove use of Google Fonts
- User interface changes
- Switch the design to match that of the Wait Wait Stats Page and the Wait Wait Graphs Site
- Make use of Bootstrap's responsive design functionality for a more consistent experience across mobile and desktop
- Remove "Home" from all navigational breadcrumbs
- Clean up the home page to only provide a table of contents and only display report descriptions on the index page for each section
- Remove shading for table cells that do not contain data
- Add tooltips to certain columns in Panelist Bluff the Listener and Show Panel Gender Mix reports to provide additional information
- Link to the corresponding location page on the Wait Wait Stats Page for each listed location in the "Locations: Average Scores" report
- Updating report method names, report template filenames and URLs for consistency
- The following table lists the reports that have been renamed and/or had their URLs changed
- Add the necessary redirects and update sitemap generation
- Update test scripts to reflect new method names, routes and redirects
Original Report Name |
Original Report URL |
New Report Name (if applicable) |
New Report URL |
Best Of Not My Job Guests |
/guests/best-of-only |
N/A |
/guests/best-of-only-not-my-job-guests |
Not My Job Scoring Exceptions |
/guests/scoring-exceptions |
N/A |
/guests/not-my-job-scoring-exceptions |
Not My Job Three Pointers |
/guests/three-pointers |
N/A |
/guests/not-my-job-three-pointers |
Original Report Name |
Original Report URL |
New Report Name (if applicable) |
New Report URL |
Average Score by Location |
/locations/average-scores |
Average Scores by Location |
/locations/average-scores-by-location |
Original Report Name |
Original Report URL |
New Report Name (if applicable) |
New Report URL |
Bluff the Listener Statistics |
/panelists/bluff-stats |
N/A |
/panelists/bluff-the-listener-statistics |
Bluff the Listener Statistics by Year |
/panelists/bluff-stats-by-year |
N/A |
/panelists/bluff-the-listener-statistics-by-year |
Debut by Year |
/panelists/debut-by-year |
Debuts by Year |
/panelists/debuts-by-year |
Panelist vs Panelist |
/panelists/panelist-pvp |
N/A |
/panelists/panelist-vs-panelist |
Panelist vs Panelist: All |
/panelists/panelist-pvp/all |
N/A |
/panelists/panelist-vs-panelist/all |
Perfect Score Counts |
/panelists/perfect-scores |
N/A |
/panelists/perfect-score-counts |
Statistics by Gender |
/panelists/gender-stats |
N/A |
/panelists/statistics-by-gender |
Statistics Summary |
/panelists/stats-summary |
N/A |
/panelists/statistics-summary |
Original Report Name |
Original Report URL |
New Report Name (if applicable) |
New Report URL |
Introductions |
/scorekeepers/introductions |
Scorekeeper Introductions |
/scorekeepers/scorekeeper-introductions |
Original Report Name |
Original Report URL |
New Report Name (if applicable) |
New Report URL |
High Scoring Shows |
/shows/high-scoring |
N/A |
/shows/high-scoring-shows |
Low Scoring Shows |
/shows/low-scoring |
N/A |
/shows/low-scoring-shows |
Not My Job Guests vs Bluff the Listener Win Ratios |
/shows/not-my-job-vs-bluffs |
N/A |
/shows/not-my-job-guests-vs-bluff-the-listener-win-ratios |
Search Shows by Multiple Panelists |
/shows/search-multiple-panelists |
N/A |
/shows/search-shows-by-multiple-panelists |
Show Counts by Year |
/shows/counts-by-year |
N/A |
/shows/show-counts-by-year |
Show Descriptions |
/shows/descriptions |
N/A |
/shows/show-descriptions |
Show Notes |
/shows/notes |
N/A |
/shows/show-notes |
Shows with a Guest Host |
/shows/guest-host |
N/A |
/shows/shows-with-guest-host |
Shows with a Guest Scorekeeper |
/shows/guest-scorekeeper |
N/A |
/shows/shows-with-guest-scorekeeper |
Shows with Perfect Panelist Scores |
/shows/perfect-panelist-scores |
N/A |
/shows/shows-with-perfect-panelist-scores |
- Replace Pure CSS 3.0.0 with Bootstrap 5.3.3
- Existing Pure CSS files will be preserved to prevent cached versions of the application from breaking
- Files related to Pure CSS will be removed in a future release
- Upgrade mysql-connector-python from 8.4.0 to 9.1.0
- Upgradew numpy from 2.1.0 to 2.1.2
- Upgrade black from 24.8.0 to 24.10.0
- Upgrade ruff from 0.6.9 to 0.7.0
- Increase minimum pytest version from 8.0 to 8.3 in
pyproject.toml
- Replace all references of
named_tuple=
in database cursors to dictionary=
due to cursors using NamedTuple
being marked for deprecation in future versions of MySQL Connector/Python
- Fix "Total Score" column for Panelist "First Appearance Wins" report where non-decimal scores were not populating
- Upgrade mysql-connector-python from 8.2.0 to 8.4.0
- Upgrade numpy from 1.26.4 to 2.1.0
- Upgrade pytz from 2024.1 to 2024.2
- Upgrade black from 24.4.2 to 24.8.0
- Upgrade pytest from 8.1.2 to 8.3.3
- Upgrade ruff from 0.6.7 to 0.6.9
- Add initial pytest coverage reporting using
pytest-cov
, which can be generated by running: pytest --cov=app tests/
- Fix Guest Scoring Exceptions report where an exception does not contain any notes
- Code cleanup and fix Pylint errors and warnings
- Upgrade black from 0.5.1 to 0.6.7
- Add show descriptions and show notes reports
- Fix issues reported by Pylint
- Upgrade gunicorn from 22.0.0 to 23.0.0
- Add support for Umami web analytics via
settings.umami_analytics
config object with the following keys:
Config Key |
Description |
_enabled |
Set value to true to enable adding Umami script tag (default: false ) |
url |
URL of the Umami analytics script |
data_website_id |
Umami Site ID |
data_auto_track |
Set value to false to disable auto event tracking (default: true ) |
data_host_url |
Override the location where Umami data is sent to |
data_domains |
Comma-delimited list of domains where the Umami script should be active |
- Change the database queries and application logic for the panelist "Perfect Score Counts" and "Single Appearance" reports to allow the application to experimentally support MariaDB 11.4.2
- Upgrade ruff from 0.3.6 to 0.5.1
- Upgrade black from 24.3.0 to 24.4.2
- Upgrade pytest from 8.1.1 to 8.1.2
- Upgrade flask from 3.0.0
- Upgrade gunicorn from 21.2.0 to 22.0.0
- Upgrade numpy from 1.26.3 to 1.26.4
- Upgrade pytz from 2023.3.post1 to 2024.1
- Upgrade ruff from 0.1.13 to 0.3.6
- Upgrade pytest from 7.4.4 to 8.1.1
- Upgrade black from 23.12.1 to 24.3.0
- Add type hints for a majority of the return types for routes and utility modules
- Replace use of
typing.Optional
and typing.Union
with the with the conventions documented in PEP-484 and PEP-604
- Change handling of
time_zone
configuration value to prevent use of pytz.timezone()
in function arguments
- Add support for project sponsorship links to Patreon and GitHub via
settings.patreon_url
and settings.github_sponsors_url
config keys
- Upgrade Markdown from 3.5.1 to 3.5.2
- Upgrade numpy from 1.26.0 to 1.26.3
- Switch to Ruff for code linting and formatting (with the help of Black)
- Upgrade pytest from 7.4.3 to 7.4.4
- Upgrade black from 23.11.0 to 23.12.1
- Addition of Panelist Bluff the Listener Statistics by Year report
- Fix a bug in the Panelist Single Appearance report where the panelists' ranking was not being rendered
- Upgrade Pure CSS from 2.3.2 to 3.0.0
- Upgrade Markdown from 3.4.3 to 3.5.1
- Migrate to using Ruff for linting and formatting
- Migrate use of
typing.Dict
, typing.List
and typing.Union
to dict
, list
and |
respectively
Starting with version 2.7.0, support for all versions of Python prior to 3.10 have been deprecated.
- Replace
dateutil.parser.parse
with datetime.datetime.strptime
- Upgrade MySQL Connector/Python from 8.0.33 to 8.2.0
- Upgrade numpy from 1.24.3 to 1.26.0
- Remove python-dateutil from dependencies
- Upgrade black from 23.10.1 to 23.11.0
- Remove
py38
and py39
from tool.black
in pyproject.toml
- Correct wording for the Low Scoring Shows report description to reflect that the report only includes shows with a panelist total score of less than 30 points
- Improve handling of conditions where shows have missing hosts, scorekeepers, panelists and guests for several show reports
- Upgrade Flask from 2.3.2 to 3.0.0
- Upgrade gunicorn from 20.1.0 to 21.2.0
- Upgrade pytz from 2023.3 to 2023.3.post1
- Upgrade pycodestyle from 2.11.0 to 2.11.1
- Upgrade pytest from 7.4.0 to 7.4.3
- Upgrade black from 23.7.0 to 23.10.1
- Add support for the new decimal panelist Lightning Fill-in-the-Blank start and correct columns,
panelistlrndstart_decimal
and panelistlrndcorrect_decimal
, respectively
- Optimize some of the template checks for
use_decimal_scores
- Add support for the new decimal panelist score column,
panelistscore_decimal
in the ww_showpnlmap
table of the Wait Wait Stats Database
- Add a
use_decimal_scores
setting in config.json
to enable or disable pulling data from the new column. The default is false
- All calculations that use of decimal scores, versus integer scores, use the Python Decimal data type
- Change the rounding of certain stats from 4 decimal places to 5 decimal places
- Upgrade NumPy from 1.24.2 to 1.24.3
- Upgrade black from 23.3.0 to 23.7.0
- Upgrade flake8 from 6.0.0 to 6.1.0
- Upgrade pycodestyle from 2.10.0 to 2.11.0
- Upgrade pytest from 7.3.1 to 7.4.0
- Fix issue with shows with empty details causing Low Scoring and High Scoring show reports to error out
- Add filter to Panelist Average Scores by Year database query to exclude any
NULL
values for panelist scores to prevent skewing of results
- Addition of Panelist Average Scores by Year and Panelist Average Scores by Year: All reports
- Modify CSS for Panelist Appearances by Year report to correct column sizes
- Add tooltips to each data cell in the Panelist Appearances by Year report to display the panelist name and year
- Fix issue where printing out Panelist Appearances by Year report from cropping out the table when page scaling is reduced
- Fixed typos in dropdown menus when choosing panelists
- Added tests for Panelist Average Scores by Year and Panelist Average Scores by Year: All reports
- Updated tests for Panelist Appearances by Year and Panelist vs Panelist reports
- Upgrade Flask from 2.2.3 to 2.3.2
- Correct sorting of "All Women Panel" report to sort by date
- Upgrade MySQL Connector/Python from 8.0.30 to 8.0.33
- Upgrade NumPy from 1.23.2 to 1.24.2
- Upgrade pytz from 2022.6 to 2023.3
- Upgrade Markdown from 3.4.1 to 3.4.3
- Move pytest configuration from
pytest.ini
into pyproject.toml
- Upgrade flake8 from 5.0.4 to 6.0.0
- Upgrade pycodestyle from 2.9.1 to 2.10.0
- Upgrade pytest from 7.2.0 to 7.3.1
- Upgrade black from 22.10.0 to 23.3.0
- Upgrade Pure CSS from 2.1.0 to 2.2.0
- Fix an issue in which adding a new host or scorekeeper entry in the database without a corresponding appearance record would cause the Host or Scorekeeper Appearances Summary reports to throw an error
- Upgrade Flask from 2.2.2 to 2.2.3
- Upgrade Werkzeug from 2.2.2 to 2.2.3 to fix a security vulnerability
- Addition of Not My Job Guests vs Bluff the Listener Win Ratios report
- Add missing sitemap entry for Panelists First Appearance Wins report
- Add missing entries into the panelists and shows sitemap template files
- Fix issues with sitemap generation and XML syntax in
shows.xml
and sitemap.xml
- Correct spelling of
app.shows.reports.search_multiple_panelists
module and references
- Remove unnecessary comments and general formatting clean-up
- Use
dict.get(key, default_value)
in app/__init__.py
to get/set configuration values in order to avoid application startup errors if configuration keys are not set
- Default value for
time_zone
is UTC
- Default values for any URL is an empty string
- Addition of Panelists First Appearance Wins report
- Adding
mastodon_url
and mastodon_user
configuration keys in the settings
section of the config file
- If the
mastodon_url
and mastodon_user
keys contain a value, insert a link with rel="me"
attribute for profile link validation, in the page footer
- Upgrade Flask from 2.2.0 to 2.2.2
- Upgrade Werkzeug from 2.2.1 to 2.2.2
- Upgrade pytz from 2022.2.1 to 2022.6
- Upgrade flake8 from 4.0.1 to 5.0.4
- Upgrade pycodestyle from 2.8.0 to 2.9.1
- Upgrade pytest from 7.1.2 to 7.2.0
- Upgrade black from 22.6.0 to 22.10.0
- Removed the unused
app/templates/core
directory and blank HTML files
- Updated Panelist Debut by Year report to include a list of years as part of a side navigation that appears on medium-sized and larger screens (>= 768 px)
- Fix an issue where the
time_zone
configuration value was being assigned to settings_config
twice, instead of being assigned to both settings_config
and database_config
- Upgrade MySQL Connector/Python from 8.0.28 to 8.0.30
- Upgrade NumPy from 1.22.3 to 1.23.2
- Upgrade pytz from 2022.1 to 2022.2.1
- Update SQL queries in panelists and shows reports to be compatible with the MySQL flag
ONLY_FULL_GROUP_BY
- Made changes to how gender is referenced in the Panel Gender Mix report and update the corresponding test
- Simplify the logic of the backing function for Panel Gender Mix report and template file
- Replace use of
FLASK_ENV
with FLASK_DEBUG
in runner.sh
- Upgrade Flask from 2.1.3 to 2.2.0
- Update blurb on the main index page
- Upgrade Flask from 2.0.2 to 2.1.3
- Upgrade Pure CSS from 2.0.6 to 2.1.0
- Include Grid (Responsive) module
- Use Werkzeug version 2.2.1
- Complete restructuring of the Flask application to use Blueprints design pattern
- This includes moving each section's template directories to live their respective section
- Core templates including core templates, errors and sitemaps still reside within the top-level templates directory
- Convert the application from using uWSGI to serve the application to Gunicorn to match the changes made with the Wait Wait Stats applications
- Changed section names from singular to plural to match the naming convention used by the Wait Wait Stats Page, Wait Wait API and Wait Wait Graphs applications:
v1 Section Name |
v2 Section Name |
guest |
guests |
host |
hosts |
location |
locations |
panelist |
panelists |
scorekeeper |
scorekeepers |
show |
shows |
- Add appropriate redirects for v1 to v2 URLs
- Previously, each section's reports code files lived under the
reports
module at the top-level of the application. The report code files now reside within their respective section
- Changed underscore in page name in URLs to hyphens
- Renamed
index.html
to _index.html
in all of the template folders
- Moved the
Panel Gender Mix
report from being under the Panelists
section to the more appropriate section, Shows
- Consolidation of report CSS files into global
style.css
- Standardize column widths across all reports
- Redesign the Panelist vs Panelist report use the same base temlate as other reports
- Enable Markdown handling for show notes fields in the respective reports
- Display
-
for table cells containing no data
- Change MySQL Connector cursor return type from
dict
to NamedTuple
where applicable
- Addition of
pytest
testing