project workflow: project membership UI

* Update Project workflow now includes a tab to update project members
* Can add/remove existing users from project and update roles
* Can add a new user via inline object creation
* Can filter both lists!
* Changed css/jquery to make things appear more like other tables
* Fixed a few JS bugs
* "Fixed" exception handling for now, although it naively redirects the
   user out of the workflow

partially implements blueprint tenant-creation-workflow

Change-Id: I38589bf3ee4c33c49df982417d995c141f4e6709
This commit is contained in:
Kelsey Tripp
2012-07-27 12:31:06 -07:00
parent e18be12603
commit e1635b695d
19 changed files with 1245 additions and 144 deletions

View File

@@ -35,7 +35,11 @@ class DynamicSelectWidget(widgets.Select):
if callable(self.add_item_link):
return self.add_item_link()
try:
return urlresolvers.reverse(self.add_item_link)
if self.add_item_link_args:
return urlresolvers.reverse(self.add_item_link,
args=[self.add_item_link_args])
else:
return urlresolvers.reverse(self.add_item_link)
except urlresolvers.NoReverseMatch:
return self.add_item_link
@@ -51,9 +55,14 @@ class DynamicChoiceField(fields.ChoiceField):
"""
widget = DynamicSelectWidget
def __init__(self, add_item_link=None, *args, **kwargs):
def __init__(self,
add_item_link=None,
add_item_link_args=None,
*args,
**kwargs):
super(DynamicChoiceField, self).__init__(*args, **kwargs)
self.widget.add_item_link = add_item_link
self.widget.add_item_link_args = add_item_link_args
class DynamicTypedChoiceField(DynamicChoiceField, fields.TypedChoiceField):