Added extra menu items per GHOPOrganization.
authorMadhusudan.C.S <madhusudancs@gmail.com>
Sat, 22 Aug 2009 04:05:48 +0530
changeset 2786 b06313c87817
parent 2785 bb6064b9fc9d
child 2787 8408741aee63
Added extra menu items per GHOPOrganization.
app/soc/modules/ghop/views/models/organization.py
--- a/app/soc/modules/ghop/views/models/organization.py	Sat Aug 22 04:00:56 2009 +0530
+++ b/app/soc/modules/ghop/views/models/organization.py	Sat Aug 22 04:05:48 2009 +0530
@@ -28,13 +28,16 @@
 
 from soc.logic import cleaning
 from soc.logic import dicts
+from soc.logic.helper import timeline as timeline_helper
 from soc.views.helper import decorators
+from soc.views.helper import redirects
 from soc.views.models import organization
 from soc.views.sitemap import sidebar
 
 import soc.cache.logic
 
 from soc.modules.ghop.views.models import program as ghop_program_view
+from soc.modules.ghop.views.helper import redirects as ghop_redirects
 
 import soc.modules.ghop.logic.models.organization
 
@@ -71,6 +74,103 @@
 
     super(View, self).__init__(params=params)
 
+  def _getExtraMenuItems(self, role_description, params=None):
+    """Used to create the specific GHOP Organization menu entries.
+
+    For args see soc.views.models.organization.View._getExtraMenuItems().
+    """
+    submenus = []
+
+    group_entity = role_description['group']
+    program_entity = group_entity.scope
+    roles = role_description['roles']
+
+    if roles.get('ghop_org_admin') or roles.get('ghop_mentor'):
+      # add a link to view all the organization tasks.
+      submenu = (ghop_redirects.getListTasksRedirect(
+          group_entity, {'url_name': 'ghop/task'}),
+          "View all Tasks", 'any_access')
+      submenus.append(submenu)
+
+
+    if roles.get('ghop_org_admin'):
+      # add a link to create task
+      submenu = (redirects.getCreateRedirect(
+           group_entity, {'url_name': 'ghop/task'}),
+          "Create a Task", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to the management page
+      submenu = (redirects.getListRolesRedirect(group_entity, params),
+          "Manage Admins and Mentors", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to invite an org admin
+      submenu = (redirects.getInviteRedirectForRole(
+          group_entity, 'ghop/org_admin'),
+          "Invite an Admin", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to invite a member
+      submenu = (redirects.getInviteRedirectForRole(
+          group_entity, 'ghop/mentor'), "Invite a Mentor", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to the request page
+      submenu = (redirects.getListRequestsRedirect(group_entity, params),
+          "List Requests and Invites", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to the edit page
+      submenu = (redirects.getEditRedirect(group_entity, params),
+          "Edit Organization Profile", 'any_access')
+      submenus.append(submenu)
+
+    if roles.get('ghop_mentor'):
+      # add a link to suggest task
+      submenu = (ghop_redirects.getSuggestTaskRedirect(
+          group_entity, {'url_name': 'ghop/task'}),
+          "Suggest a Task", 'any_access')
+      submenus.append(submenu)
+
+    if roles.get('ghop_org_admin') or roles.get('ghop_mentor'):
+      submenu = (redirects.getCreateDocumentRedirect(group_entity, 'ghop_org'),
+          "Create a New Document", 'any_access')
+      submenus.append(submenu)
+
+      submenu = (redirects.getListDocumentsRedirect(group_entity, 'ghop_org'),
+          "List Documents", 'any_access')
+      submenus.append(submenu)
+
+    if roles.get('org_admin'):
+      # add a link to the resign page
+      submenu = (redirects.getManageRedirect(roles['ghop_org_admin'],
+          {'url_name': 'ghop/org_admin'}),
+          "Resign as Admin", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to the edit page
+      submenu = (redirects.getEditRedirect(roles['ghop_org_admin'],
+          {'url_name': 'ghop/org_admin'}),
+          "Edit My Admin Profile", 'any_access')
+      submenus.append(submenu)
+
+
+    if roles.get('ghop_mentor'):
+      # add a link to the resign page
+      submenu = (redirects.getManageRedirect(roles['ghop_mentor'],
+          {'url_name' : 'ghop/mentor'}),
+          "Resign as Mentor", 'any_access')
+      submenus.append(submenu)
+
+      # add a link to the edit page
+      submenu = (redirects.getEditRedirect(roles['ghop_mentor'],
+          {'url_name': 'ghop/mentor'}),
+          "Edit My Mentor Profile", 'any_access')
+      submenus.append(submenu)
+
+    return submenus
+
 
 view = View()