Merge lp:~xtoddx/django-nova/adduser into lp:django-nova

Proposed by Todd Willey
Status: Rejected
Rejected by: Devin Carlen
Proposed branch: lp:~xtoddx/django-nova/adduser
Merge into: lp:django-nova
Diff against target: 78 lines (+41/-2)
3 files modified
src/django_nova/forms.py (+12/-0)
src/django_nova/templates/django_nova/projects/manage.html (+17/-1)
src/django_nova/views/projects.py (+12/-1)
To merge this branch: bzr merge lp:~xtoddx/django-nova/adduser
Reviewer Review Type Date Requested Status
Devin Carlen Needs Resubmitting
Review via email: mp+51855@code.launchpad.net

Description of the change

Allows adding users to projects from the project management page.

To post a comment you must log in.
Revision history for this message
Devin Carlen (devcamcar) wrote :

This is a little tricky. I don't think we can allow NASA users to add the users themselves.

Can you add a setting for enabling and disabling this? It can be enabled by default.

review: Needs Fixing
Revision history for this message
Devin Carlen (devcamcar) wrote :

I am in the process of combining the openstack-dashboard and django-nova repos. This is almost done. Pleas resubmit this patch against lp:openstack-dashboard in the django-nova folder when that is ready.

review: Needs Resubmitting

Unmerged revisions

20. By Todd Willey

Add users to projects!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/django_nova/forms.py'
--- src/django_nova/forms.py 2011-01-21 22:38:42 +0000
+++ src/django_nova/forms.py 2011-03-02 06:29:56 +0000
@@ -260,3 +260,15 @@
260260
261 self.fields['users'].choices = [(choices, choices) for choices in query_list]261 self.fields['users'].choices = [(choices, choices) for choices in query_list]
262262
263class InviteUserForm(forms.Form):
264 username = forms.CharField(required=True, label="Username")
265
266 def is_valid(self):
267 super(InviteUserForm, self).is_valid()
268 if not self.errors:
269 nova = get_nova_admin_connection()
270 user = nova.get_user(self.cleaned_data['username'])
271 if not user:
272 self.errors['username'] = self.error_class()
273 self.errors['username'].append("Invalid user")
274 return not self.errors
263275
=== modified file 'src/django_nova/templates/django_nova/projects/manage.html'
--- src/django_nova/templates/django_nova/projects/manage.html 2011-01-12 20:02:06 +0000
+++ src/django_nova/templates/django_nova/projects/manage.html 2011-03-02 06:29:56 +0000
@@ -41,5 +41,21 @@
41 </div>41 </div>
42 {% endif %}42 {% endif %}
43 </div>43 </div>
44
45 <div id="invite_user">
46 <form id="invite_user_form" method="post" action="{% url nova_project_manage project.projectname %}">
47 {% csrf_token %}
48 <fieldset>
49 {% for field in invite_form %}
50 {{ field.label_tag }}
51 {% if field.errors %}
52 {{ field.errors }}
53 {% endif %}
54 {{ field }}
55 {% endfor %}
56 </fieldset>
57 <input type="submit" value="Add to Project"/>
58 </form>
59 </div>
60
44{% endblock %}61{% endblock %}
45
4662
=== modified file 'src/django_nova/views/projects.py'
--- src/django_nova/views/projects.py 2011-01-31 20:08:02 +0000
+++ src/django_nova/views/projects.py 2011-03-02 06:29:56 +0000
@@ -51,6 +51,17 @@
51 return redirect('login')51 return redirect('login')
5252
53 nova = get_nova_admin_connection()53 nova = get_nova_admin_connection()
54
55 if request.method == 'POST':
56 invite_form = nova_forms.InviteUserForm(request.POST)
57 if invite_form.is_valid():
58 updated = nova.add_project_member(
59 invite_form.cleaned_data['username'], project_id)
60 if updated:
61 return redirect('nova_project_manage', project_id)
62 else:
63 invite_form = nova_forms.InviteUserForm()
64
54 members = nova.get_project_members(project_id)65 members = nova.get_project_members(project_id)
5566
56 for member in members:67 for member in members:
@@ -60,10 +71,10 @@
60 member.project_roles = ", ".join(project_role)71 member.project_roles = ", ".join(project_role)
61 member.global_roles = ", ".join(global_role)72 member.global_roles = ", ".join(global_role)
6273
63
64 return render_to_response('django_nova/projects/manage.html', {74 return render_to_response('django_nova/projects/manage.html', {
65 'project': project,75 'project': project,
66 'members': members,76 'members': members,
77 'invite_form': invite_form
67 }, context_instance = template.RequestContext(request))78 }, context_instance = template.RequestContext(request))
6879
6980

Subscribers

People subscribed via source and target branches

to status/vote changes: