Skip to content

Commit 8290190

Browse files
authored
Merge pull request #2211 from Kobzol/everyone
Add a page with everyone in the Rust Project, including alumni
2 parents ea4af22 + 21c0ecd commit 8290190

File tree

5 files changed

+108
-1
lines changed

5 files changed

+108
-1
lines changed

locales/en-US/governance.ftl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ governance-rfc-blurb = Each major decision in Rust starts as a Request for Comme
1111
governance-teams-header = Teams
1212
governance-wgs-header = Working Groups
1313
14+
governance-rust-project-link = Show all Rust team members
15+
1416
governance-archived-teams-header = Archived teams
1517
governance-archived-teams-description = Some past teams are no longer active. We call these "archived teams".
1618
governance-archived-teams-link = Show archived teams
@@ -31,3 +33,8 @@ governance-user-team-leader = Team leader
3133
governance-members-header = Members
3234
governance-alumni-header = Alumni
3335
governance-alumni-thanks = We also want to thank all past members for their invaluable contributions!
36+
37+
## governance/all-team-members.mbs
38+
governance-all-team-members-title = All Rust team members
39+
governance-all-team-members-intro = This section lists the members of currently active Rust teams.
40+
governance-all-team-members-alumni-intro = This section lists our team alumni.

src/render.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,18 @@ pub fn render_governance(render_ctx: &RenderCtx) -> anyhow::Result<()> {
219219
.render(dst_path)
220220
})?;
221221

222+
let all_team_members_data = render_ctx.teams.all_team_members();
223+
for_all_langs("governance/all-team-members.html", |dst_path, lang| {
224+
render_ctx
225+
.page(
226+
"governance/all-team-members",
227+
"governance-all-team-members-title",
228+
&all_team_members_data,
229+
lang,
230+
)
231+
.render(dst_path)
232+
})?;
233+
222234
Ok(())
223235
}
224236

src/teams.rs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use handlebars::{
33
Context, Handlebars, Helper, HelperResult, Output, RenderContext, RenderErrorReason,
44
};
55
use percent_encoding::{AsciiSet, NON_ALPHANUMERIC, utf8_percent_encode};
6-
use rust_team_data::v1::{BASE_URL, Team, TeamKind, Teams};
6+
use rust_team_data::v1::{BASE_URL, Team, TeamKind, TeamMember, Teams};
77
use serde::Serialize;
88
use std::cmp::Reverse;
99
use std::collections::HashMap;
@@ -204,6 +204,36 @@ impl RustTeams {
204204

205205
ArchivedTeams { teams }
206206
}
207+
208+
pub fn all_team_members(&self) -> AllTeamMembers {
209+
let mut alumni = HashMap::new();
210+
let mut active = HashMap::new();
211+
for team in &self.archived_teams {
212+
alumni.extend(team.members.iter().map(|m| (m.github_id, m)));
213+
alumni.extend(team.alumni.iter().map(|m| (m.github_id, m)));
214+
}
215+
for team in &self.teams {
216+
if team.name != "alumni" {
217+
alumni.extend(team.alumni.iter().map(|m| (m.github_id, m)));
218+
active.extend(team.members.iter().map(|m| (m.github_id, m)));
219+
}
220+
}
221+
222+
alumni.retain(|id, _| !active.contains_key(id));
223+
224+
let alumni = {
225+
let mut alumni = alumni.into_values().cloned().collect::<Vec<TeamMember>>();
226+
alumni.sort_by_key(|m| m.name.clone());
227+
alumni
228+
};
229+
let active = {
230+
let mut active = active.into_values().cloned().collect::<Vec<TeamMember>>();
231+
active.sort_by_key(|m| m.name.clone());
232+
active
233+
};
234+
235+
AllTeamMembers { active, alumni }
236+
}
207237
}
208238

209239
#[derive(Serialize)]
@@ -236,6 +266,12 @@ pub struct ArchivedTeams {
236266
teams: Vec<Team>,
237267
}
238268

269+
#[derive(Serialize)]
270+
pub struct AllTeamMembers {
271+
active: Vec<TeamMember>,
272+
alumni: Vec<TeamMember>,
273+
}
274+
239275
pub fn load_rust_teams() -> anyhow::Result<RustTeams> {
240276
println!("Downloading Team API data");
241277

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{{#*inline "member"}}
2+
<div class="w-100 w-25-l mb3 flex flex-row items-center">
3+
<a class="mr4 w3 h3 flex-shrink-0" href="https://github.com/{{member.github}}">
4+
<img class="w-100 h-100 bg-white br2"
5+
src="https://avatars.githubusercontent.com/{{member.github}}"
6+
alt="{{member.name}}">
7+
</a>
8+
<div>
9+
{{member.name}}
10+
<div class="f4">
11+
GitHub: <a href="https://github.com/{{member.github}}">{{member.github}}</a>
12+
</div>
13+
</div>
14+
</div>
15+
{{/inline}}
16+
17+
{{#*inline "page"}}
18+
<section class="green" style="padding-bottom: 10px;">
19+
<div class="w-100 mw-none mw-8-m mw9-l center f2">
20+
<p>{{fluent "governance-all-team-members-intro"}}</p>
21+
</div>
22+
</section>
23+
24+
<section class="green" style="padding-bottom: 15px;">
25+
<div class="w-100 mw-none mw-8-m mw9-l flex flex-column flex-row-l flex-wrap-l center">
26+
{{#each data.active as |member|}}
27+
{{> member member=member }}
28+
{{/each}}
29+
</div>
30+
</section>
31+
32+
<section class="red" style="padding-bottom: 10px;">
33+
<div class="w-100 mw-none mw-8-m mw9-l center f2">
34+
<p>{{fluent "governance-all-team-members-alumni-intro"}}</p>
35+
</div>
36+
</section>
37+
38+
<section class="red" style="padding-bottom: 15px;">
39+
<div class="w-100 mw-none mw-8-m mw9-l flex flex-column flex-row-l flex-wrap-l center">
40+
{{#each data.alumni as |member|}}
41+
{{> member member=member }}
42+
{{/each}}
43+
</div>
44+
</section>
45+
46+
{{/inline}}
47+
{{~> (lookup this "parent")~}}

templates/governance/index.html.hbs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@
3434
{{> governance/index-team team=team baseurl=../baseurl}}
3535
{{/each~}}
3636
</div>
37+
<div class="flex">
38+
<a href="{{baseurl}}/governance/all-team-members.html" class="center w-100 mw6 button button-secondary">
39+
{{fluent "governance-rust-project-link"}}
40+
</a>
41+
</div>
3742
</div>
3843
</section>
3944

0 commit comments

Comments
 (0)