Skip to content

Conversation

@joshuastegmaier
Copy link
Collaborator

@joshuastegmaier joshuastegmaier commented Dec 26, 2025

https://staff.loc.gov/tasks/browse/CONCD-1412

This includes the changes for Node 20, in order to confirm there are no issues with that upgrade.

The upgrade did require some minor code changes, primarily to tests.

@github-actions
Copy link

🛡 Test Coverage Report 🛡

📜 Click to view full text coverage report
Name                                                                 Stmts   Miss Branch BrPart  Cover
------------------------------------------------------------------------------------------------------
concordia/__init__.py                                                    3      0      0      0   100%
concordia/admin/__init__.py                                            485      0     54      0   100%
concordia/admin/actions.py                                              96      0     22      0   100%
concordia/admin/filters.py                                             205      0     34      0   100%
concordia/admin/forms.py                                                73      0      2      0   100%
concordia/admin/utils.py                                                37      3     18      5    85%
concordia/admin/views.py                                               355      7     88      5    97%
concordia/admin_site.py                                                 10      0      0      0   100%
concordia/api_views.py                                                  72      0     32      0   100%
concordia/apps.py                                                       13      0      0      0   100%
concordia/authentication_backends.py                                    18      0      8      0   100%
concordia/celery.py                                                     24      0      6      0   100%
concordia/consumers.py                                                  14      0      0      0   100%
concordia/context_processors.py                                         20      0      4      0   100%
concordia/contextmanagers.py                                            15      0      2      0   100%
concordia/converters.py                                                  5      0      0      0   100%
concordia/decorators.py                                                 27      0      6      0   100%
concordia/exceptions.py                                                  6      0      0      0   100%
concordia/forms.py                                                      55      0      6      0   100%
concordia/logging.py                                                    78      0     34      0   100%
concordia/maintenance.py                                                18      0      8      0   100%
concordia/management/__init__.py                                         0      0      0      0   100%
concordia/management/commands/__init__.py                                0      0      0      0   100%
concordia/management/commands/ensure_initial_site_configuration.py      30      0     10      0   100%
concordia/management/commands/import_site_reports.py                    26      0      8      0   100%
concordia/management/commands/print_frontend_test_urls.py               20      0      4      0   100%
concordia/middleware.py                                                  8      0      2      0   100%
concordia/models.py                                                   1214      0    256      0   100%
concordia/parser.py                                                     67      0     14      0   100%
concordia/passwords/__init__.py                                          0      0      0      0   100%
concordia/passwords/validators.py                                       46      0     26      0   100%
concordia/signals/__init__.py                                            0      0      0      0   100%
concordia/signals/handlers.py                                          135      0     26      0   100%
concordia/signals/signals.py                                             3      0      0      0   100%
concordia/storage.py                                                    10      0      0      0   100%
concordia/tasks/__init__.py                                              0      0      0      0   100%
concordia/tasks/assets.py                                               83      0     34      0   100%
concordia/tasks/blog.py                                                 12      0      4      0   100%
concordia/tasks/housekeeping.py                                          9      0      0      0   100%
concordia/tasks/next_asset/__init__.py                                   0      0      0      0   100%
concordia/tasks/next_asset/renew.py                                     22      0      4      0   100%
concordia/tasks/next_asset/reviewable.py                                78      0     16      0   100%
concordia/tasks/next_asset/transcribable.py                             64      0     12      0   100%
concordia/tasks/reports/__init__.py                                      0      0      0      0   100%
concordia/tasks/reports/backfill.py                                     94      0     32      0   100%
concordia/tasks/reports/key_metrics.py                                 117      0     58      0   100%
concordia/tasks/reports/sitereport.py                                  211      0     22      0   100%
concordia/tasks/reservations.py                                         37      0      6      0   100%
concordia/tasks/resource.py                                             24      0      4      0   100%
concordia/tasks/retirement.py                                          114      0      8      0   100%
concordia/tasks/search_index.py                                         24      0      0      0   100%
concordia/tasks/thumbnails.py                                           42      0     10      0   100%
concordia/tasks/unusualactivity.py                                      33      0      6      0   100%
concordia/tasks/useractivity.py                                         76      0     12      0   100%
concordia/tasks/visualizations.py                                      117      0     22      0   100%
concordia/templatetags/__init__.py                                       0      0      0      0   100%
concordia/templatetags/concordia_filtering_tags.py                      18      0      4      0   100%
concordia/templatetags/concordia_media_tags.py                           6      0      0      0   100%
concordia/templatetags/concordia_querystring.py                         51      0     22      0   100%
concordia/templatetags/concordia_sharing_tags.py                         6      0      0      0   100%
concordia/templatetags/concordia_text_tags.py                           10      0      0      0   100%
concordia/templatetags/custom_math.py                                    6      0      0      0   100%
concordia/templatetags/group_list.py                                     7      0      0      0   100%
concordia/templatetags/reject_filter.py                                 13      0      4      0   100%
concordia/templatetags/truncation.py                                    37      0     14      0   100%
concordia/templatetags/visualization.py                                 16      0      2      0   100%
concordia/turnstile/__init__.py                                          0      0      0      0   100%
concordia/turnstile/context_processors.py                                5      0      0      0   100%
concordia/turnstile/fields.py                                           57      0     10      0   100%
concordia/turnstile/widgets.py                                          21      0      2      0   100%
concordia/utils/__init__.py                                             32      0      8      0   100%
concordia/utils/celery.py                                                7      0      0      0   100%
concordia/utils/constants.py                                             6      0      0      0   100%
concordia/utils/next_asset/__init__.py                                  12      0      0      0   100%
concordia/utils/next_asset/reviewable/__init__.py                        3      0      0      0   100%
concordia/utils/next_asset/reviewable/campaign.py                      106      0     28      0   100%
concordia/utils/next_asset/reviewable/topic.py                         106      0     28      0   100%
concordia/utils/next_asset/transcribable/__init__.py                     3      0      0      0   100%
concordia/utils/next_asset/transcribable/campaign.py                   136      0     60      0   100%
concordia/utils/next_asset/transcribable/topic.py                      143      0     62      0   100%
concordia/validators.py                                                 12      0      0      0   100%
concordia/version.py                                                     5      0      0      0   100%
concordia/views/__init__.py                                             34      0      4      0   100%
concordia/views/accounts.py                                            326      0     32      0   100%
concordia/views/ajax.py                                                313      0     70      0   100%
concordia/views/assets.py                                              255      0     64      0   100%
concordia/views/campaigns.py                                           156      0     32      0   100%
concordia/views/decorators.py                                           52      0      8      0   100%
concordia/views/items.py                                                67      0     10      0   100%
concordia/views/maintenance_mode.py                                     20      0      8      0   100%
concordia/views/projects.py                                             62      0     10      0   100%
concordia/views/rate_limit.py                                           13      0      4      0   100%
concordia/views/simple_pages.py                                         67      0     14      0   100%
concordia/views/topics.py                                               38      0      4      0   100%
concordia/views/utils.py                                               110      0     46      0   100%
concordia/views/visualizations.py                                       13      0      2      0   100%
concordia/widgets.py                                                     3      0      0      0   100%
configuration/__init__.py                                                0      0      0      0   100%
configuration/admin.py                                                  38      0     10      0   100%
configuration/apps.py                                                    6      0      0      0   100%
configuration/management/__init__.py                                     0      0      0      0   100%
configuration/management/commands/__init__.py                            0      0      0      0   100%
configuration/models.py                                                 46      0     12      0   100%
configuration/signals.py                                                11      0      0      0   100%
configuration/templatetags/__init__.py                                   0      0      0      0   100%
configuration/templatetags/configuration_tags.py                        11      0      0      0   100%
configuration/utils.py                                                  20      0      4      0   100%
configuration/validation.py                                             13      0      6      0   100%
exporter/__init__.py                                                     0      0      0      0   100%
exporter/admin.py                                                        0      0      0      0   100%
exporter/apps.py                                                         3      0      0      0   100%
exporter/exceptions.py                                                   6      0      0      0   100%
exporter/models.py                                                       0      0      0      0   100%
exporter/tabular_export/admin.py                                        27      0      2      0   100%
exporter/tabular_export/core.py                                        103      0     24      0   100%
exporter/utils.py                                                       29      0     16      0   100%
exporter/views.py                                                      162      0     20      0   100%
importer/__init__.py                                                     0      0      0      0   100%
importer/admin.py                                                      126      0     18      0   100%
importer/apps.py                                                         3      0      0      0   100%
importer/celery.py                                                      16      0      4      0   100%
importer/exceptions.py                                                   2      0      0      0   100%
importer/models.py                                                     119      0     14      0   100%
importer/tasks/__init__.py                                              13      0      2      0   100%
importer/tasks/assets.py                                                64      0     10      0   100%
importer/tasks/collections.py                                           57      0     18      0   100%
importer/tasks/decorators.py                                            38      0      6      0   100%
importer/tasks/images.py                                               115      0     22      0   100%
importer/tasks/items.py                                                233      0     60      0   100%
importer/utils/__init__.py                                               3      0      0      0   100%
importer/utils/excel.py                                                 17      0      8      0   100%
importer/utils/verify_images.py                                         14      0      2      0   100%
------------------------------------------------------------------------------------------------------
TOTAL                                                                 7993     10   1730     10    99%

@joshuastegmaier joshuastegmaier marked this pull request as ready for review December 30, 2025 15:00
@jkueloc jkueloc merged commit ed08397 into main Dec 30, 2025
7 checks passed
@joshuastegmaier joshuastegmaier deleted the CONCD-1412-jstegmaier-django-52 branch January 5, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants