Page MenuHomePhabricator

Have a special page for mentors to sign up
Closed, ResolvedPublic

Description

At the moment, the page that lists mentors is not really easy to create and maintain. We've been able to have this page made of wikitext, with some advice at the top, only because the page was manually created under supervision. And sometimes, some elements were missing: advice at the top, mentors' descriptions badly formatted, etc.

Scaling to more wikis en masse will make impossible to monitor that page creation. We need a special page integrated to the Growth experience to replace it.

Idea #1: a special page

This special page would display the list of all mentors.

Comments about requirements listed on description
  • Limit access. If a user hasn't reached a given threshold, they can't add their name to this page. (By default: 500 edits + 30 days of experience)

⚠ Such a change would be fairly trivial to introduce by using user rights, generally speaking. However, the specified defaults would make this a bit harder. 500/30 is enwiki's extended confirmed user group, adopted by few other wikis as well. However, it is not MediaWiki default. If we really want to use 500/30 rather than MediaWiki's native autoconfirmed group, we would have to introduce such a group globally. Technically speaking, that would not be a problem, but this could be a concern from the community perspective. @Trizek-WMF or @MMiller_WMF have probably some opinions about this.

✅ This should be easy. We can use MediaWiki's native user rights system, and assign this permission to some (default) group. I personally propose administrators, since bureaucrats are traditionally responsible for user rights management.

✅ That is trivial to do, and standard for special pages. We can even link to mw.org for docs, as we do with Special:ClaimMentee already.

  • Provide a field for mentors to add their description, matching the 240 characters limits we've set. This would also prevent any kind of wikitext formatting being added.

✅ No issues with this one.

  • Have a way to distinguish two roles: Teacher and Mentor (see T245639#6509843)

✅ Should be ok.

Implementation notes

It should be possible to store the information to user properties table (used for user preferences). However, I believe that it would be better to create a new database table for mentors, That would allow us to scale mentorship feature easily, add more information for each mentor, etc. easily, without having to re-think the whole model. Second reason is that storing it into the user_properties table would require us to search by up_value, which isn't something the table is built for.

Creating a new database table is something that's currently being tried by our team for add a link recommendations. The DBA team would be certainly happy to help, if needed.

How hard will this be?

Building the interface for the sign up form is easy. However, figuring out where to store the information about the list of mentors is tricky. We can try to edit the backend wiki page via the sign up form, which is hopeless, because wikitext is not structured. We can store it as an user property; that would mean we would have no ability to enforce who can be a mentor (ie. no permission checks), since anyone can edit their own user properties via the API. Third option would be creating a database table for mentors, which would fix all the issues with other methods, but it is not a trivial amount of work, and would probably require more than a week of work.

Idea #2: using Special:MentorDashboard

Now that we have the Mentor dashboard being built, we can imagine to have this dashboard as the sign-up page. We would rely on the database to actually sign up.

Possible path:

  1. a user wants to become a mentor
  2. they visit special:MentorDashboard
    1. this page can display some explainations about what it means to be a mentor, and what is expected.
      1. if they pass the threshold defined by the community (at the moment, the level of protection of the sign-up page), they have access to a button for the next step.
      2. If they don't, they get a message about the conditions
  3. the user is invited to define their personal message, and their mentor status (global or workshop). They are warned that, as soon as they click on "next" they will potentially get some questions soon!
  4. the dashboard is enabled, mentor is active.

The current sign-up page would not be necessary anymore, or should be transformed to become the "official" list of mentors with their description, with a possibly to see their activity, to spot inactive mentors, for newcomers to request to change mentors based on the existing choices...

Mentors can quit and reassign their mentees anytime, using the appropriate dashboard module.

Points of vigilence

Some wikis use the mentor's list talk page as a coordination page. We need to take these pages in consideration if we change the list format.

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/GrowthExperimentsmaster+1 -1
mediawiki/extensions/GrowthExperimentsmaster+1 -1
mediawiki/extensions/GrowthExperimentsmaster+27 -4
mediawiki/extensions/GrowthExperimentsmaster+3 -2
mediawiki/extensions/GrowthExperimentsmaster+2 -0
mediawiki/extensions/GrowthExperimentsmaster+102 -4
mediawiki/extensions/GrowthExperimentsmaster+241 -2
mediawiki/extensions/GrowthExperimentsmaster+113 -43
mediawiki/extensions/GrowthExperimentsmaster+22 -1
mediawiki/extensions/GrowthExperimentsmaster+31 -5
mediawiki/extensions/GrowthExperimentsmaster+141 -2
mediawiki/extensions/GrowthExperimentsmaster+2 -2
mediawiki/extensions/GrowthExperimentsmaster+369 -6
mediawiki/extensions/GrowthExperimentsmaster+2 -1
mediawiki/extensions/GrowthExperimentsmaster+3 -1
mediawiki/extensions/GrowthExperimentsmaster+7 -2
mediawiki/extensions/GrowthExperimentsmaster+9 -1
mediawiki/extensions/GrowthExperimentsmaster+370 -6
mediawiki/extensions/GrowthExperimentsmaster+11 -8
mediawiki/extensions/GrowthExperimentsmaster+8 -3
mediawiki/extensions/GrowthExperimentsmaster+689 -37
mediawiki/extensions/GrowthExperimentsmaster+758 -0
mediawiki/extensions/GrowthExperimentsmaster+27 -7
mediawiki/extensions/GrowthExperimentsmaster+94 -29
mediawiki/extensions/GrowthExperimentsmaster+31 -23
mediawiki/extensions/GrowthExperimentsmaster+336 -2
mediawiki/extensions/GrowthExperimentsmaster+1 -51
mediawiki/extensions/GrowthExperimentsmaster+75 -68
mediawiki/extensions/GrowthExperimentsmaster+1 K -846
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedTrizek-WMF
ResolvedTrizek-WMF
DeclinedTrizek-WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
OpenNone
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
OpenNone
ResolvedUrbanecm_WMF
ResolvedBUG REPORTUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedUrbanecm_WMF
ResolvedBUG REPORTkostajh
ResolvedBUG REPORTUrbanecm_WMF
In ProgressNone
In ProgressUrbanecm_WMF

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 791805 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] SpecialManageMentors: Add a link back after a mentor is removed

https://gerrit.wikimedia.org/r/791805

Change 799941 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] StructuredMentorWriter: Call setLogger()

https://gerrit.wikimedia.org/r/799941

Change 799941 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] StructuredMentorWriter: Call setLogger()

https://gerrit.wikimedia.org/r/799941

Change 800850 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Add managementors right to managementorship grant

https://gerrit.wikimedia.org/r/800850

Change 800850 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Add managementors right to managementorship grant

https://gerrit.wikimedia.org/r/800850

Change 800956 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] MentorTools: Make it possible for mentors to change their intro message

https://gerrit.wikimedia.org/r/800956

Change 802420 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] MentorTools: Make it possible to change one's auto-assignment status

https://gerrit.wikimedia.org/r/802420

Change 804772 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Mentor dashboard: Add link to Special:ManageMentors to resources module

https://gerrit.wikimedia.org/r/804772

Change 805470 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] [WIP] MentorMessageChangeDialog: Inform users about the maximum message length

https://gerrit.wikimedia.org/r/805470

Change 791455 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Add ApiManageMentorList

https://gerrit.wikimedia.org/r/791455

Change 807829 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] ApiManageMentorList: Empty message should mean default

https://gerrit.wikimedia.org/r/807829

Change 807829 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] ApiManageMentorList: Empty message should mean default

https://gerrit.wikimedia.org/r/807829

Change 800956 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] MentorTools: Make it possible for mentors to change their intro message

https://gerrit.wikimedia.org/r/800956

Change 804772 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Mentor dashboard: Add link to Special:ManageMentors to resources module

https://gerrit.wikimedia.org/r/804772

Change 805470 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] MentorMessageChangeDialog: Inform users about the maximum message length

https://gerrit.wikimedia.org/r/805470

Change 808976 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] [WIP] Add SpecialEnrollAsMentor

https://gerrit.wikimedia.org/r/808976

Change 808981 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Redirect non-mentor MentorDashboard visitors to Special:EnrollAsMentor

https://gerrit.wikimedia.org/r/808981

Change 802420 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] MentorTools: Make it possible to change one's auto-assignment status

https://gerrit.wikimedia.org/r/802420

Change 808976 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Add SpecialEnrollAsMentor

https://gerrit.wikimedia.org/r/808976

Change 810408 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] StructuredMentorProvider: Set sign up title to Special:EnrollAsMentor

https://gerrit.wikimedia.org/r/810408

Change 808981 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Redirect non-mentor MentorDashboard visitors to Special:EnrollAsMentor

https://gerrit.wikimedia.org/r/808981

Change 810969 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] SpecialEnrollAsMentor: Require login

https://gerrit.wikimedia.org/r/810969

Change 810970 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] StructuredMentorWriter: Disallow calling addMentor with anonymous user

https://gerrit.wikimedia.org/r/810970

Change 810971 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] SpecialEnrollAsMentor: Return Status instead of StatusValue

https://gerrit.wikimedia.org/r/810971

Change 810969 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] SpecialEnrollAsMentor: Require login

https://gerrit.wikimedia.org/r/810969

Change 810970 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] StructuredMentorWriter: Disallow calling addMentor with anonymous user

https://gerrit.wikimedia.org/r/810970

Change 810971 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] SpecialEnrollAsMentor: Return Status instead of StatusValue

https://gerrit.wikimedia.org/r/810971

Change 810408 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] StructuredMentorProvider: Set sign up title to Special:EnrollAsMentor

https://gerrit.wikimedia.org/r/810408

Change 812046 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] [i18n] Rework pretext in Special:EnrollAsMentor

https://gerrit.wikimedia.org/r/812046

Change 812046 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] [i18n] Rework pretext in Special:EnrollAsMentor

https://gerrit.wikimedia.org/r/812046

Change 849545 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Set GEMentorProvider to "structured" by default

https://gerrit.wikimedia.org/r/849545