CW26 hack day#716
Conversation
Add fixture to populate database with framework v2.0
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Issue templates refactor
Make mysqlclient a production-only requirement
Add the tools, languages and methodologies page
# Conflicts: # dev-requirements.txt # doc-requirements.txt # requirements.txt
|
@TinyMarsh Can you approve this PR? It's a combination of most of the PRs from the CW26 hack day, which were all individually approved on the day. I've brought it up to date with |
There was a problem hiding this comment.
Pull request overview
This PR bundles the changes produced during the CW26 hack day, including dependency/packaging updates (moving mysqlclient to a production-only extra), new framework UI/navigation for “Tools, languages and methodologies”, and repository maintenance updates (fixtures + issue templates).
Changes:
- Split MySQL support into a production-only dependency set and introduced
prod-requirements.txt(plus Docker/README updates). - Added a new “Tools, languages and methodologies” framework page (view, URL, navbar entry) and updated table rendering/styles + tests.
- Added/updated contributor tooling assets: fixtures README, pre-commit exclusions, and GitHub issue templates migrated to YAML forms.
Reviewed changes
Copilot reviewed 20 out of 22 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
tests/main/test_tables.py |
Updates table tests for renamed table classes and new tool table rendering. |
tests/main/test_main_views.py |
Updates navbar/page rendering assertions for the new framework page and new table markup. |
requirements.txt |
Removes mysqlclient from core requirements. |
README.md |
Documents Python 3.12+ requirement, first-time migrate, and fixture loading. |
pyproject.toml |
Moves mysqlclient into a prod optional dependency extra. |
prod-requirements.txt |
Adds compiled production requirements including mysqlclient. |
main/views/page_views.py |
Renames learning resources table class usage and adds a new table-backed page view. |
main/urls.py |
Adds a route for tools/languages/methodologies page under the framework section. |
main/templates/main/snippets/navbar.html |
Adds the new framework dropdown entry and adjusts roles link text. |
main/templates/main/pages/tools-languages-methodologies.html |
Introduces a new page template rendering the new table. |
main/tables.py |
Renames/refactors table classes, adds shared render helpers, and introduces a new table. |
Dockerfile |
Switches container install to production requirements. |
doc-requirements.txt |
Removes mysqlclient from docs requirements. |
direct_webapp/fixtures/README.md |
Documents how to create/update/load fixtures. |
dev-requirements.txt |
Removes mysqlclient from dev requirements. |
.pre-commit-config.yaml |
Excludes the large fixture JSON from codespell. |
.github/ISSUE_TEMPLATE/technical_work.yml |
Adds YAML issue form for technical work. |
.github/ISSUE_TEMPLATE/technical_work.md |
Removes legacy Markdown issue template. |
.github/ISSUE_TEMPLATE/feature_request.yml |
Adds YAML issue form for feature requests. |
.github/ISSUE_TEMPLATE/feature_request.md |
Removes legacy Markdown issue template. |
.github/ISSUE_TEMPLATE/bug_report.yml |
Clarifies environment info requested in bug reports. |
Comments suppressed due to low confidence (1)
main/tables.py:44
- These docstrings still reference the old table/model names (e.g.,
LearningResourcesTable). Updating them will prevent confusion when navigating the renamed tables.
class LearningResourceTable(tables.Table):
"""Table class for the LearningResources model."""
skill_set = tables.ManyToManyColumn(verbose_name="Skills")
class Meta:
"""Meta options for the LearningResourcesTable."""
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| COPY requirements.txt . | ||
| RUN pip install --no-cache-dir -r requirements.txt | ||
| RUN pip install --no-cache-dir -r prod-requirements.txt |
| <li class="breadcrumb-item active" aria-current="page">Tools, languages and methodologies</li> | ||
| {% endblock breadcrumb_items %} | ||
| {% block content %} | ||
| <section id="learning-resources"> |
| return mark_safe( | ||
| " ".join(format_html(badge_html, val) for val in value.split(",")) | ||
| ) |
| class ToolLanguageMethodologyTable(tables.Table): | ||
| """Table class for the LearningResources model.""" | ||
|
|
||
| skill_set = tables.ManyToManyColumn(verbose_name="Skills") | ||
|
|
||
| class Meta: | ||
| """Meta options for the LearningResourcesTable.""" | ||
|
|
Description
This PR contains all the changes made at the Collaborations Workshop 2026 Hack Day.
It needs to be reviewed before merging into main. These are the relevant PRs:
Type of change
Key checklist
python -m pytest)mkdocs serve)pre-commit run --all-files)Further checks