Commit 149dbe0ac561e5cfdb15bc2e0c9b0b27bbc7690a

Authored by Sergio Oliveira
1 parent d44d52e5

Adding new user form

src/accounts/forms.py
... ... @@ -10,16 +10,35 @@ from super_archives.models import MailingList
10 10 User = get_user_model()
11 11  
12 12  
13   -class NewUserForm(forms.ModelForm):
  13 +class UserForm(forms.ModelForm):
  14 + required = ('first_name', 'last_name', 'email', 'username')
  15 +
14 16 class Meta:
15 17 model = User
16   - fields = ('first_name', 'last_name', 'email', 'username')
17 18  
18 19 def __init__(self, *args, **kwargs):
19   - super(NewUserForm, self).__init__(*args, **kwargs)
20   - for field in self.fields.values():
  20 + super(UserForm, self).__init__(*args, **kwargs)
  21 + for field_name, field in self.fields.items():
  22 + # Adds form-control class to all form fields
21 23 field.widget.attrs.update({'class': 'form-control'})
22   - field.required = True
  24 +
  25 + # Set UserForm.required fields as required
  26 + if field_name in UserForm.required:
  27 + field.required = True
  28 +
  29 +
  30 +class UserCreationForm(UserForm):
  31 + class Meta:
  32 + model = User
  33 + fields = ('first_name', 'last_name', 'email', 'username')
  34 +
  35 +
  36 +class UserUpdateForm(UserForm):
  37 + class Meta:
  38 + model = User
  39 + fields = ('first_name', 'last_name', 'email', 'username',
  40 + 'institution', 'role', 'twitter', 'facebook',
  41 + 'google_talk', 'webpage')
23 42  
24 43  
25 44 class ListsForm(forms.Form):
... ...
src/accounts/templates/accounts/user_update_form.html 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +{% extends "base.html" %}
  2 +{% load i18n gravatar %}
  3 +
  4 +{% block main-content %}
  5 + <form method="post">
  6 + {% csrf_token %}
  7 + {{ form.as_p }}
  8 +
  9 + <button type="submit" class="btn btn-primary">{% trans "Update" %}</button>
  10 + </form>
  11 +{% endblock %}
... ...
src/accounts/views.py
... ... @@ -7,12 +7,13 @@ from django.contrib.auth import get_user_model
7 7 from django.views.generic import DetailView, UpdateView
8 8 from django.utils.translation import ugettext as _
9 9 from django.shortcuts import render, redirect
  10 +from django.core.urlresolvers import reverse
10 11  
11 12 from colab.deprecated import solrutils
12 13 from colab.deprecated import signup as signup_
13 14  
14 15 from super_archives.models import EmailAddress, Message
15   -from .forms import NewUserForm, ListsForm
  16 +from .forms import UserCreationForm, ListsForm, UserUpdateForm
16 17  
17 18  
18 19 class UserProfileBaseMixin(object):
... ... @@ -24,23 +25,11 @@ class UserProfileBaseMixin(object):
24 25  
25 26 class UserProfileUpdateView(UserProfileBaseMixin, UpdateView):
26 27 template_name = 'accounts/user_form.html'
27   - #form_class = UserUpdateForm
  28 + form_class = UserUpdateForm
28 29  
29 30 def get_success_url(self):
30 31 return reverse('user_profile', kwargs={'username': self.object.username})
31 32  
32   - def get_initial(self):
33   - return {
34   - 'first_name': self.object.first_name,
35   - 'last_name': self.object.last_name,
36   - 'email': self.object.email,
37   - 'institution': self.object.profile.institution,
38   - 'role': self.object.profile.role,
39   - 'twitter': self.object.profile.twitter,
40   - 'facebook': self.object.profile.facebook,
41   - 'google_talk': self.object.profile.google_talk,
42   - 'webpage': self.object.profile.webpage,
43   - }
44 33  
45 34  
46 35 class UserProfileDetailView(UserProfileBaseMixin, DetailView):
... ... @@ -72,7 +61,7 @@ class UserProfileDetailView(UserProfileBaseMixin, DetailView):
72 61 def signup(request):
73 62 # If the request method is GET just return the form
74 63 if request.method == 'GET':
75   - user_form = NewUserForm()
  64 + user_form = UserCreationForm()
76 65 lists_form = ListsForm()
77 66 return render(request, 'accounts/user_create_form.html',
78 67 {'user_form': user_form, 'lists_form': lists_form})
... ...
src/colab/static/img/logo_nav.png 0 → 100644

7.37 KB