Closed Bug 1074989 Opened 10 years ago Closed 9 years ago

[user story] As a Helper, I can set a friendly name, my preferred languages, my preferred operator and my preferred handset, so that I can define my profile

Categories

(support.mozilla.org :: BuddyUp, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: atopal, Assigned: espressive)

References

Details

User Story

As a Helper, I can set a friendly name, my preferred languages, my preferred operator and my preferred handset, so that I can define my profile

Acceptance criteria:
* Helper can access his profile from the “Gears” button
* Helper can tap the “language” picker to open a list of languages and then select his preferred language. The Helper can validate his selected language.
- The default language is the language of the OS
* Helper can tap the “handset type” picker to open a list of handsets and then select as many handsets as he wants. Helper can validate selected handset types.
- The default handset type is “All”
- New questions with no handset type (<2.1 devices) will match the helper profile always
* Helper can tap the “operator” picker to open a list of operators and then select "All" or a specific operator. Helper can validate selected operators.
- The default operator is “All”
* Helper can tap the name section to edit the name
* Helper can hit “Done” to save the changes or “Cancel” to discard the changes
- From now on every question or comment submitted will use the new name 
- Previously submitted comments are updated with the new name
- From now on notifications on new questions will be filtered based on the language, operator and handset.

Attachments

(1 file)

As a Helper, I can set a friendly name, my preferred languages, my preferred operator and my preferred handset, so that I can define my profile
Depends on: 1074947
I have implemented the layout for the helper's profile. Currently I am using fake data for the view, below then are the fields we would require from the API that returns a helper's profile data.

Note: some of these might already exists but, to ensure nothing is missed, I am listing all fields here.

//--

Friendly Name
Number of questions answered by helper
Number of helpful up votes received by helper

New comment on thread notification (on/off)
New question reminder notification (on/off)

Locale
[need to be able to request a list of locales]

Device Type
[need to be able to request a list of devices]

Operator
[need to be able to request a list of operators]

//--

For all of these, we would need read/write access.
Will the profile contain a field indicating whether the user is a helper or a helpee?
After the meeting yesterday the following was decided in terms of the handsets and operators:

For operators, take it from their device, don’t let them choose.
  Default is “All”
  The other choice is the operator they are currently using
  If no operator, default to all and disable select

For handset we use a multiple choice selector
  We’ll use only the handset makers, not models
  Hermina will provide the list
Thinking more on comment 3, perhaps if we are using the create_user API, to auto generate a user, we can add a role=helpee to the response and if this user logged in with FxAccounts, the role will not be there (I assume) so we can take it as a role of helper. Thoughts?
Scratch comment 3 and comment 5, we can probably do these easier on the client side.
User Story: (updated)
User Story: (updated)
Assignee: nobody → schalk.neethling.bugs
Some questions below:

Acceptance criteria:

* Helper can tap the “language” picker to open a list of languages and then select his preferred language. The Helper can validate his selected language.

>> Where should we pull the list of available languages from? Is there an API, a native way on the device or, should this be hard coded in the app?

* Helper can tap the “operator” picker to open a list of operators and then select as many operators as he wants. Helper can validate selected operators.

>> Is this correct? Helper can select multiple operators? I was under the impressions that it is either all, or a specific operator.
Status: NEW → ASSIGNED
Flags: needinfo?(rtestard)
Flags: needinfo?(a.topal)
(In reply to Schalk Neethling [:espressive] from comment #7)
> Some questions below:
> 
> Acceptance criteria:
> 
> * Helper can tap the “language” picker to open a list of languages and then
> select his preferred language. The Helper can validate his selected language.
> 
> >> Where should we pull the list of available languages from? Is there an API, a native way on the device or, should this be hard coded in the app?
> 
I think I need Kadir's help here.
My understanding is that SUMO desktop currently limits access to the forum based on the URL you hit (https://support.mozilla.org/fr/products/firefox has no community support option).
The app will start with support of en, pt and es and it sounds like questions should only be supported in these languages (Kadir can probably confirm).
Under that assumption we should:
1 Only make the app available to users whose OS language is en, pt or es (helpee's language defaults to the OS language)
2 Let the helper select between en, pt or es to receive alerts on questions submitted in these languages

> * Helper can tap the “operator” picker to open a list of operators and then
> select as many operators as he wants. Helper can validate selected operators.
> 
> >> Is this correct? Helper can select multiple operators? I was under the impressions that it is either all, or a specific operator.
Yes, this seems to make better sense to implement this way, I'll change the AC
User Story: (updated)
Flags: needinfo?(rtestard)
User Story: (updated)
(In reply to Romain Testard [:RT] from comment #8)
> (In reply to Schalk Neethling [:espressive] from comment #7)
> > Some questions below:
> > 
> > Acceptance criteria:
> > 
> > * Helper can tap the “language” picker to open a list of languages and then
> > select his preferred language. The Helper can validate his selected language.
> > 
> > >> Where should we pull the list of available languages from? Is there an API, a native way on the device or, should this be hard coded in the app?
> > 
> I think I need Kadir's help here.
> My understanding is that SUMO desktop currently limits access to the forum
> based on the URL you hit (https://support.mozilla.org/fr/products/firefox
> has no community support option).
> The app will start with support of en, pt and es and it sounds like
> questions should only be supported in these languages (Kadir can probably
> confirm).
> Under that assumption we should:
> 1 Only make the app available to users whose OS language is en, pt or es
> (helpee's language defaults to the OS language)

Selecting a language for which we don't have any questions will result in an empty list, so it only makes sense to offer them languages that are active. For the start I think en, pt, es are as good as any. However you want to implement this is up to you.  


> 2 Let the helper select between en, pt or es to receive alerts on questions
> submitted in these languages

Not sure what this is about? Would we need several language pickers in this case?
Flags: needinfo?(a.topal) → needinfo?(rtestard)
While testing this, I see the server returns a 404 when we delete a setting that doesn't exist. That means we're falling into the .catch of our request_with_auth promise and so we're no setting the setting after deleting it.
Comment on attachment 8543878 [details] [review]
https://github.com/mozilla/buddyup/pull/46

I've left a few comments for a better separation of concerns. Also I can't r+ this until we have a better way to store those settings.
Attachment #8543878 - Flags: review?(anthony)
> 
> > 2 Let the helper select between en, pt or es to receive alerts on questions
> > submitted in these languages
> 
> Not sure what this is about? Would we need several language pickers in this
> case?

Yes it would imply a new language picker. Not for phase 1 but it seems we'll need this for later - I assume a significant number of helpers will be able to deal with questions in their phone OS language as well as english. Do you allow this currently on SUMO?
Flags: needinfo?(rtestard) → needinfo?(a.topal)
No, on SUMO we only present a single language per view. If you want to answer questions in another language, you have to switch over to that language. We might want to deviate from that in BuddyUp, but as you said, not for phase 1.
Flags: needinfo?(a.topal)
Depends on: 1118037
Attachment #8543878 - Flags: review?(anthony)
Blocks: 1118688
No longer blocks: 1118688
Depends on: 1118688
Comment on attachment 8543878 [details] [review]
https://github.com/mozilla/buddyup/pull/46

Can you please open a bug to remove the workaround once bug 1118037 is solved? It should depend on bug 1118037.
Attachment #8543878 - Flags: review?(anthony)
(In reply to Anthony Ricaud (:rik) from comment #15)
> Comment on attachment 8543878 [details] [review]
> https://github.com/mozilla/buddyup/pull/46
> 
> Can you please open a bug to remove the workaround once bug 1118037 is
> solved? It should depend on bug 1118037.

Done, https://bugzilla.mozilla.org/show_bug.cgi?id=1118851
Attachment #8543878 - Flags: review?(anthony)
Comment on attachment 8543878 [details] [review]
https://github.com/mozilla/buddyup/pull/46

Two comments have not been addressed and we need to send all values to the server.
Attachment #8543878 - Flags: review?(anthony)
Attachment #8543878 - Flags: review?(anthony)
Comment on attachment 8543878 [details] [review]
https://github.com/mozilla/buddyup/pull/46

All good to go after squashing.
Attachment #8543878 - Flags: review?(anthony) → review+
Commit merged https://github.com/ossreleasefeed/buddyup/commit/935ec25fec2a6fb339c38cc69fbde2f0469109e1

https://github.com/mozilla/buddyup/pull/46
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: