#654 Name heuristics during CLA signing process
Closed: Fixed None Opened 15 years ago by spot.

Most of the remaining CLA rejections that I am having to do are around the Name field. Specifically, the following cases:

  1. User puts in a single string as a name, usually just their first name, e.g.
    Full Name: John
  2. User only puts their first initial of last name, e.g.
    Full Name: John D
    or
    Full Name: John D.

It would be very helpful to have heuristics that check for these specific cases (value of name is >1 space separated string) && (no string is a single character or a single character terminated with a period), during the CLA sign process.

I recognize that there are corner cases where someone may legally only have one name (Prince) or a single character name. I propose that if these heuristics are triggered, the error screen should describe why it couldn't sign the CLA, and add a new checkbox next to the name that says something like "This is correct, ignore the checks." We shouldn't have this by default because it will be confusing to others, and should only be necessary upon triggering one of these heuristics.

We should also be sure this checkbox's text and the new error messages are translated. If someone checks the override box, it should also flag the CLA so that I know that I need to confirm this corner case with the contributor.

I know this is complex, but it would help get the number of rejections much closer to zero on my end, and save me quite a bit of time and trouble.


I've evaluated how to do this. it looks like there will be a couple parts:

  1. Implement validators in cla.py. Errors will redirect to the cla index method().
  2. A new param will need to be added to control whether the [_] This really is my full legal name box is displayed.

This affects a minimum of two methods.

We probably also want to match the validators in cla.py with the validators and methods in user.py where the same values (human_name, telephone, etc) are being saved there.

I've checked in the validator for the human_name field. It's not hooked up to the controller methods yet. Things remaining to do::

  1. Implement the override checkbox on the forms that allow the human_name to be entered
  2. Add the validator to the controller methods that allow human_name to be set.
  3. The validator is a chained_validator (due to needing to check both the human_name field and the override field) so any controller that needs to use this validator will need to use a Schema for validator definition. That means that we will need to come up with validators for the other things as well. We can probably get away with just using validators.UnicodeString() for now, though, and worrying about creating validators that actually find invalid data at a later date.

Fixed. Thanks to Fraser S. Gutteridge for getting the code done.

Login to comment on this ticket.

Metadata