Skip to content

Commit 28ba17f

Browse files
Bekka592Rebekka Rossbergcweitat
authored
feat #8842: changed the attendee gender options (#8874)
* feat #8842: changed the attendee gender options * remove "Open" as option --------- Co-authored-by: Rebekka Rossberg <[email protected]> Co-authored-by: cweitat <[email protected]>
1 parent cc294d3 commit 28ba17f

File tree

10 files changed

+38
-33
lines changed

10 files changed

+38
-33
lines changed

app/components/forms/orders/order-form.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export default Component.extend(FormMixin, {
117117
rules: [
118118
{
119119
type : 'empty',
120-
prompt : this.l10n.t('Please select a gender.')
120+
prompt : this.l10n.t('Please select categories that describe your gender identity.')
121121
}
122122
]
123123
};
@@ -661,7 +661,7 @@ export default Component.extend(FormMixin, {
661661
return groupBy(requiredFixed.concat(customFields), field => field.get('form'));
662662
}),
663663

664-
genders : orderBy(genders, 'name'),
664+
genders : orderBy(genders, 'position'),
665665
ageGroups : orderBy(ageGroups, 'position'),
666666
countries : orderBy(countries, 'name'),
667667
years : orderBy(years, 'year'),
@@ -700,6 +700,9 @@ export default Component.extend(FormMixin, {
700700
},
701701
updateLanguageFormsSelection(checked, changed, selectedOptions, holder, field) {
702702
holder.set(field.fieldIdentifier, selectedOptions.map(select => select.value).join(','));
703+
},
704+
updateGendersSelection(checked, changed, selectedOptions, entity, field) {
705+
entity.set(field.fieldIdentifier, selectedOptions.map(select => select.value).join(','));
703706
}
704707
}
705708
});

app/components/widgets/forms/ui-checkbox-group.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export default class UiCheckboxGroupComponent extends Component {
5656
for (let i = 0; i < this.args.options.length; i++) {
5757
const item = this.args.options[i];
5858
const label = item.name;
59-
const value = item.code;
59+
const value = item.code ? item.code : item.name;
6060
const checked = this.isOptionChecked(value);
6161
const obj = EmberObject.create({
6262
label,

app/mixins/custom-form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ export default Mixin.create(MutableArray, {
446446
fieldIdentifier : 'gender',
447447
formID : _formID,
448448
form : 'attendee',
449-
type : 'select',
449+
type : 'checkbox',
450450
isRequired : false,
451451
isIncluded : false,
452452
isPublic : false,

app/models/custom-form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export default ModelBase.extend({
103103
instagram : tn.t('Instagram'),
104104
linkedin : tn.t('LinkedIn'),
105105
mastodon : tn.t('Mastodon'),
106-
gender : tn.t('Gender'),
106+
gender : tn.t('Which of these categories describe your gender identity? (check all that apply)'),
107107
acceptReceiveEmails : tn.t('Email consent'),
108108
acceptVideoRecording : tn.t('Photo & video & text consent'),
109109
acceptShareDetails : tn.t('Partner contact consent'),

app/templates/components/forms/orders/attendee-list.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
{{else if (eq field.type 'select')}}
5353
<span class="word-break">{{get holder field.identifierPath}}</span>
5454
{{else if (eq field.type 'checkbox')}}
55-
{{#if (or (eq field.fieldIdentifier "language_form_1") (eq field.fieldIdentifier "language_form_2"))}}
55+
{{#if (or (eq field.fieldIdentifier "language_form_1") (eq field.fieldIdentifier "language_form_2") (eq field.fieldIdentifier "gender"))}}
5656
<span class="word-break">{{get holder (concat field.fieldIdentifier '_name_mapping')}}</span>
5757
{{else}}
5858
<span class="word-break">

app/templates/components/forms/orders/order-form.hbs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -122,23 +122,12 @@
122122
{{/if}}
123123
{{/if}}
124124
{{else if (eq field.fieldIdentifier 'gender')}}
125-
<UiDropdown
126-
@class="search selection"
127-
@selected={{get holder field.identifierPath}}
128-
@onChange={{action (mut holder.gender)}} as |execute mapper|>
129-
<Input
130-
@type="hidden"
131-
@name={{if field.isRequired (concat field.fieldIdentifier "_required_" index) (concat field.fieldIdentifier "_" index)}} />
132-
<i class="dropdown icon"></i>
133-
<div class="default text">{{t 'Select your gender'}}</div>
134-
<div class="menu">
135-
{{#each this.genders as |gender|}}
136-
<div class="item" data-value="{{map-value mapper gender.name}}">
137-
{{gender.name}}
138-
</div>
139-
{{/each}}
140-
</div>
141-
</UiDropdown>
125+
<Widgets::Forms::UiCheckboxGroup
126+
@options={{genders}}
127+
@onChange={{action "updateGendersSelection"}}
128+
@entity={{holder}}
129+
@field={{field}}
130+
/>
142131
{{else if (eq field.fieldIdentifier 'country')}}
143132
<UiDropdown
144133
@class="search selection"

app/utils/dictionary/genders.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
export const genders = [
22
{
3-
name: 'Female'
3+
name : 'Man',
4+
isChecked : false
45
},
56
{
6-
name: 'Male'
7+
name : 'Woman',
8+
isChecked : false
79
},
810
{
9-
name: 'Diverse / Non-binary'
11+
name : 'Transgender',
12+
isChecked : false
1013
},
1114
{
12-
name: 'Other'
15+
name : 'Non-binary',
16+
isChecked : false
1317
},
1418
{
15-
name: 'Prefer not to share'
19+
name : 'Genderqueer',
20+
isChecked : false
21+
},
22+
{
23+
name : 'An identity not listed here',
24+
isChecked : false
25+
},
26+
{
27+
name : 'I prefer not to say',
28+
isChecked : false
1629
}
1730
];

tests/integration/components/public/featured-speaker-list-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module('Integration | Component | public/featured speaker list', function(hooks)
1616
photoUrl : 'https://image.ibb.co/ffRqs5/avatar.png',
1717
website : 'https://johndoe.com',
1818
city : 'Delhi',
19-
gender : 'female',
19+
gender : 'Woman',
2020
country : 'India',
2121
positionOrganisation : 'FOSSASIA',
2222
isFeatured : true,
@@ -33,7 +33,7 @@ module('Integration | Component | public/featured speaker list', function(hooks)
3333
photoUrl : 'https://image.ibb.co/ffRqs5/avatar.png',
3434
website : 'https://johndoe.com',
3535
city : 'Mumbai',
36-
gender : 'male',
36+
gender : 'Man',
3737
country : 'India',
3838
positionOrganisation : 'FOSSASIA',
3939
isFeatured : true,

tests/integration/components/public/speaker-item-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module('Integration | Component | public/speaker item', function(hooks) {
1313
photoUrl : 'https://image.ibb.co/ffRqs5/avatar.png',
1414
website : 'https://johndoe.com',
1515
city : 'Delhi',
16-
gender : 'female',
16+
gender : 'Woman',
1717
country : 'India',
1818
positionOrganisation : 'FOSSASIA',
1919
isFeatured : false,

tests/integration/components/public/speaker-list-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module('Integration | Component | public/speaker list', function(hooks) {
1616
photoUrl : 'https://image.ibb.co/ffRqs5/avatar.png',
1717
website : 'https://johndoe.com',
1818
city : 'Delhi',
19-
gender : 'female',
19+
gender : 'Woman',
2020
country : 'India',
2121
positionOrganisation : 'FOSSASIA',
2222
isFeatured : false,
@@ -33,7 +33,7 @@ module('Integration | Component | public/speaker list', function(hooks) {
3333
photoUrl : 'https://image.ibb.co/ffRqs5/avatar.png',
3434
website : 'https://johndoe.com',
3535
city : 'Mumbai',
36-
gender : 'male',
36+
gender : 'Man',
3737
country : 'India',
3838
positionOrganisation : 'FOSSASIA',
3939
isFeatured : false,

0 commit comments

Comments
 (0)