Skip to content

Commit f806a2a

Browse files
committed
Allow volunteers to select more than 10 mentor skillsets
1 parent 80fbfbf commit f806a2a

3 files changed

Lines changed: 14 additions & 14 deletions

File tree

pybot/endpoints/slack/actions/mentor_volunteer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ async def build_airtable_fields(action, request, user_info):
7474
airtable_fields = {
7575
"Slack Name": username,
7676
"Full Name": name,
77-
"Skillsets": request.skillsets,
77+
"Skillsets": request.skillsets[1:], # hack to filter out empty first option
7878
"Email": email,
7979
}
8080
return airtable_fields

pybot/endpoints/slack/message_templates/commands.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def mentor_request_blocks(services, mentors, skillsets):
6060
"text": {"type": "plain_text", "text": skillset},
6161
"value": skillset,
6262
}
63-
for skillset in skillsets
63+
for skillset in sorted(skillsets)
6464
],
6565
},
6666
},
@@ -181,14 +181,15 @@ def mentor_volunteer_blocks(skillsets: List[str]) -> List[dict]:
181181
"text": {"type": "plain_text", "text": skillset},
182182
"value": skillset,
183183
}
184-
for skillset in skillsets
184+
for skillset in sorted(skillsets)
185185
],
186186
},
187187
},
188188
{
189189
"type": "section",
190190
"block_id": "clear_volunteer_skillsets",
191191
"text": {"type": "mrkdwn", "text": "*Selected Skillsets*"},
192+
"fields": [{"type": "plain_text", "text": " ", "emoji": True}],
192193
"accessory": {
193194
"type": "button",
194195
"action_id": "clear_skillsets_btn",

pybot/endpoints/slack/message_templates/mentor_volunteer.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,26 @@ def __init__(self, raw_action: MutableMapping):
2121

2222
@property
2323
def skillsets(self) -> [str]:
24-
if self.skillset_fields:
25-
return [field["text"] for field in self.skillset_fields]
26-
return []
24+
skillset_field = self.skillset_field_text
25+
return skillset_field.split("\n")
2726

2827
@property
29-
def skillset_fields(self) -> list:
30-
return self.blocks[VolunteerBlockIndex.SELECTED_SKILLSETS].get("fields", [])
28+
def skillset_field_text(self) -> str:
29+
return self.blocks[VolunteerBlockIndex.SELECTED_SKILLSETS]["fields"][0]["text"]
30+
31+
@skillset_field_text.setter
32+
def skillset_field_text(self, value):
33+
self.blocks[VolunteerBlockIndex.SELECTED_SKILLSETS]["fields"][0]["text"] = value
3134

3235
def add_skillset(self, skillset: str) -> None:
3336
"""
3437
Appends the new skillset to the displayed skillsets
3538
"""
3639
if skillset not in self.skillsets:
37-
new_field = {"type": "plain_text", "text": skillset, "emoji": True}
38-
self.blocks[VolunteerBlockIndex.SELECTED_SKILLSETS].setdefault(
39-
"fields", []
40-
).append(new_field)
40+
self.skillset_field_text += f"\n{skillset}"
4141

4242
def clear_skillsets(self) -> None:
43-
if self.skillset_fields:
44-
del self.blocks[VolunteerBlockIndex.SELECTED_SKILLSETS]["fields"]
43+
self.skillset_field_text = " "
4544

4645
def validate_self(self):
4746
if not self.skillsets:

0 commit comments

Comments
 (0)