L10n:Dashboard/Apps/Profile

From MozillaWiki
Jump to: navigation, search

The profile app is supposed to help drivers to get in touch with localizers. (This needs a sexy name, still.)

The initial implementation is in bug 542901.

This should be done in chunks of similar importance, and visibility.

Requirements (unfinished)

  • Keep email address for contact
  • Name and sex to use to address the volunteer
    • (sethb) Can we separate the Name into First Name, Last Name
    • Or Personal Name, Family Name
  • Map to ldap account (not sure if for all)
  • editable by localizer (now this requires ldap)
  • optional phone number
    • format should include country code (e.g. +XX YYY ZZZ ZZZZ)
  • timezone
  • role, owner/peer, for what project, for which locale
  • send out mail to a selected set (extra permissions required)

Other info we could collect

  • mailing address
  • t-shirt size

Design

There might be take-aways at django-addressbook, not sure.

Lets wrap these into models:

Contact

We're still requiring login via ldap, and as long as we do, we get a bunch of information from there, including an email address, first name, and last name. The email addresses are not always good, so let's have one to overwrite.

# visibility: owner, drivers
contact = models.EmailField (None)
sex = models.CharField (male, female, None)

PhoneContact

This is different to just Contact, it should be more restricted, and it should only affect owners (possible a peer) that want to be blocking a release. Might be worth splitting the phone and the timezone to allow for more than one phone number, perhaps with tag and comment?

# visibility: owner, drivers
phone = // international phone number
timezone = models.CharField (check out django-timezones)

Role

This is actually really public data, and somewhat a replacement for the wiki stuff.

Project is interesting, could be an AppVersion or something else. GenericRelation perhaps? Or just string

# visibility: public
user = models.ForeignKey(django.contrib.auth.models.User)
locale = models.ForeignKey(life.models.Locale)
role = models.CharField (owner, peer, more?)
project = Resolves to project.

ShipShirt

Not sure if this is one model, but I'd like to punt this off to an updated version of this app anyway, if not a different app.


Ideas

  • it could also give us some basic info on the activity of the account on l10n_site. Last 5 actions, last login time etc.