app/soc/views/models/role.py
changeset 654 68bafa9f719f
parent 651 ef6e22d463cb
child 656 a76f1b443ea4
--- a/app/soc/views/models/role.py	Tue Dec 02 22:04:38 2008 +0000
+++ b/app/soc/views/models/role.py	Tue Dec 02 22:05:13 2008 +0000
@@ -33,6 +33,7 @@
 from soc.views.helper import redirects
 from soc.views.models import base
 from soc.views.models import user as user_view
+from soc.views.models import sponsor as sponsor_view
 
 import soc.models.request
 import soc.views.helper.lists
@@ -81,6 +82,25 @@
 
     base.View.__init__(self, params=params)
 
+  def create(self, request, **kwargs):
+    """Specialized create view to enforce needing a scope_path
+
+    This view simply gives control to the base.View.create if the
+    scope_path is specified in kwargs. If it is not present, it
+    instead displays the result of self.select. Refer to the
+    respective docstrings on what they do.
+
+    Args:
+      see base.View.create
+    """
+
+    if 'scope_path' in kwargs:
+      return super(View, self).create(request, **kwargs)
+
+    view = sponsor_view.view
+    redirect = redirects.getInviteRedirect
+    return self.select(request, view, redirect, **kwargs)
+
   def invite(self, request, page_name=None, params=None, **kwargs):
     """Displays the request promotion to Role page.
     """