Skip to content

Add team page#697

Open
davehorsfall wants to merge 8 commits intofeat/events-updatefrom
feat/team-page
Open

Add team page#697
davehorsfall wants to merge 8 commits intofeat/events-updatefrom
feat/team-page

Conversation

@davehorsfall
Copy link
Copy Markdown
Collaborator

@davehorsfall davehorsfall commented Apr 17, 2026

Description

This PR adds a team page that is constructed from a CSV list of team members. The list will split people into two groups.

  1. Active team members
  2. Contributors

The active team members should include more details. The contributors will just be a list. I've added myself, Aleks and Adrian initially. We need to add others to the team list, and populate their details.

image

Fixes # (issue)

Type of change

  • Documentation (non-breaking change that adds or improves the documentation)
  • New feature (non-breaking change which adds functionality)
  • Optimization (non-breaking, back-end change that speeds up the code)
  • Technical work (non-breaking, change which is work as part of a new feature)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (whatever its nature)

Key checklist

  • All tests pass (eg. python -m pytest)
  • The documentation builds and looks OK (eg. mkdocs serve)
  • Pre-commit hooks run successfully (eg. pre-commit run --all-files)

Further checks

  • Code is commented, particularly in hard-to-understand areas
  • Tests added or an issue has been opened to tackle that in the future. (Indicate issue here: # (issue))

Copilot AI review requested due to automatic review settings April 17, 2026 14:47
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “Team” page to the Django main app, backed by a CSV file and rendered via a new template and route.

Changes:

  • Add TeamPageView that reads data/team.csv and provides team_members / contributors template context.
  • Register /team/ route in main/urls.py.
  • Add main/pages/team.html, new team CSV data, and team member images.

Reviewed changes

Copilot reviewed 4 out of 8 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
main/views/page_views.py Adds TeamPageView that parses CSV and populates template context.
main/urls.py Adds the team/ URL route.
main/templates/main/pages/team.html Introduces the Team page template for members + contributors.
data/team.csv Adds team/contributor data source for the Team page.
main/static/assets/img/team/dave-horsfall.webp Adds team member image asset.
main/static/assets/img/team/aleksandra-nenadic.webp Adds team member image asset.
main/static/assets/img/team/adrian-dallesandro.webp Adds team member image asset.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread main/templates/main/pages/team.html Outdated
Comment on lines +35 to +57
<li class="list-inline-item">
<a href="{{ member.github }}"
target="_blank"
class="text-decoration-none px-1">
<i class="fa-brands fa-github"></i>
</a>
</li>
{% endif %}
{% if member.twitter %}
<li class="list-inline-item">
<a href="{{ member.twitter }}"
target="_blank"
class="text-decoration-none px-1">
<i class="fa-brands fa-twitter"></i>
</a>
</li>
{% endif %}
{% if member.linkedin %}
<li class="list-inline-item">
<a href="{{ member.linkedin }}"
target="_blank"
class="text-decoration-none px-1">
<i class="fa-brands fa-linkedin"></i>
Comment thread main/views/page_views.py Outdated
Comment on lines +162 to +171
def _safe_get(row: list[str], index: int | None) -> str:
if index is None or index >= len(row):
return ""
return row[index].strip()

def _safe_int(value: str, default: int = 999) -> int:
try:
return int(value)
except (TypeError, ValueError):
return default
Comment thread main/views/page_views.py
Comment on lines +149 to +156
class TeamPageView(TemplateView):
"""View that renders the team page from CSV."""

template_name = "main/pages/team.html"

def get_context_data(self, **kwargs: Mapping[str, Any]) -> dict[str, Any]:
"""Add grouped team and contributor data to the template context."""
context = super().get_context_data(**kwargs)
Comment thread main/templates/main/pages/team.html Outdated
Comment thread main/templates/main/pages/team.html
Comment thread main/views/page_views.py
Comment on lines +158 to +159
csv_path = Path("data/team.csv")
team_members: list[dict[str, Any]] = []
Comment thread main/views/page_views.py Outdated
Comment thread data/team.csv Outdated
Copy link
Copy Markdown
Contributor

@anenadic anenadic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may have been fixed on some of the other branches but "Our team" link in the footer points to the events page.

Otherwise - great stuff @davehorsfall.

Copy link
Copy Markdown
Collaborator

@AdrianDAlessandro AdrianDAlessandro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the page! Although I think the logic could do with another attempt to make it simpler. A couple of things to do still:

  • Update the link in the footer to point to this page.
  • Include photos of all the Team members or label them as contributors, instead (see image below)
  • Include a test for this view
Image

Comment thread main/templates/main/pages/team.html Outdated
Comment thread data/team.csv Outdated
Comment thread main/static/assets/img/team/adrian-dalessandro.webp
Comment thread main/views/page_views.py Outdated
Comment thread main/views/page_views.py Outdated
Comment thread main/views/page_views.py Outdated
Comment thread main/views/page_views.py Outdated
Comment thread main/templates/main/pages/team.html Outdated
@anenadic
Copy link
Copy Markdown
Contributor

We need to add @PhilReedData's role as the Engagement Lead of DIRECT @AdrianDAlessandro @davehorsfall

@PhilReedData
Copy link
Copy Markdown
Contributor

We need to add @PhilReedData's role as the Engagement Lead of DIRECT @AdrianDAlessandro @davehorsfall

I have added myself in the branch.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 24, 2026

Codecov Report

❌ Patch coverage is 10.34483% with 26 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
main/views/page_views.py 10.34% 26 Missing ⚠️

📢 Thoughts on this report? Let us know!

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.

5 participants