users: Fix creating users with initial set of groups
Fixes: #2409 (closed).
When creating a user if one or more groups is selected, creation fails. This is because the fields contains group choices as (name, label) tuples instead of (group_id, label) tuples as expected by the many-to-many field mapping mechanism in ModelField class. Fix this by using the same mechanism used in UserUpdateForm, which is to reuse the base class form field (but adjust some properties).
Tests:
- During first boot
- Django groups are fully created when form is accessed with blank database
- In user creation/modify form:
- Label appears are 'Permissions'
- Choices appear fully and as 'Description (Group name)'
- Help text is correct.
- Choices are sorted on group name.
- Django groups are fully created when form is accessed when a new group is added to code.
- User can have no groups
- Widget is multiple checkbox widget. Multiple groups can be selected.
- User is added to proper ldap groups after submission
- In user modify form:
- If the user is last admin user, admin checkbox is checked and disabled.
- Current list of groups is accurate shown when form is displayed.
- Add remove of groups works as expected
- Functional tests for gitweb and users apps pass
Signed-off-by: Sunil Mohan Adapa sunil@medhas.org