app/soc/modules/ghop/views/models/organization.py
changeset 2786 b06313c87817
parent 2785 bb6064b9fc9d
equal deleted inserted replaced
2785:bb6064b9fc9d 2786:b06313c87817
    26 
    26 
    27 from django import forms
    27 from django import forms
    28 
    28 
    29 from soc.logic import cleaning
    29 from soc.logic import cleaning
    30 from soc.logic import dicts
    30 from soc.logic import dicts
       
    31 from soc.logic.helper import timeline as timeline_helper
    31 from soc.views.helper import decorators
    32 from soc.views.helper import decorators
       
    33 from soc.views.helper import redirects
    32 from soc.views.models import organization
    34 from soc.views.models import organization
    33 from soc.views.sitemap import sidebar
    35 from soc.views.sitemap import sidebar
    34 
    36 
    35 import soc.cache.logic
    37 import soc.cache.logic
    36 
    38 
    37 from soc.modules.ghop.views.models import program as ghop_program_view
    39 from soc.modules.ghop.views.models import program as ghop_program_view
       
    40 from soc.modules.ghop.views.helper import redirects as ghop_redirects
    38 
    41 
    39 import soc.modules.ghop.logic.models.organization
    42 import soc.modules.ghop.logic.models.organization
    40 
    43 
    41 
    44 
    42 class View(organization.View):
    45 class View(organization.View):
    69 
    72 
    70     params = dicts.merge(params, new_params, sub_merge=True)
    73     params = dicts.merge(params, new_params, sub_merge=True)
    71 
    74 
    72     super(View, self).__init__(params=params)
    75     super(View, self).__init__(params=params)
    73 
    76 
       
    77   def _getExtraMenuItems(self, role_description, params=None):
       
    78     """Used to create the specific GHOP Organization menu entries.
       
    79 
       
    80     For args see soc.views.models.organization.View._getExtraMenuItems().
       
    81     """
       
    82     submenus = []
       
    83 
       
    84     group_entity = role_description['group']
       
    85     program_entity = group_entity.scope
       
    86     roles = role_description['roles']
       
    87 
       
    88     if roles.get('ghop_org_admin') or roles.get('ghop_mentor'):
       
    89       # add a link to view all the organization tasks.
       
    90       submenu = (ghop_redirects.getListTasksRedirect(
       
    91           group_entity, {'url_name': 'ghop/task'}),
       
    92           "View all Tasks", 'any_access')
       
    93       submenus.append(submenu)
       
    94 
       
    95 
       
    96     if roles.get('ghop_org_admin'):
       
    97       # add a link to create task
       
    98       submenu = (redirects.getCreateRedirect(
       
    99            group_entity, {'url_name': 'ghop/task'}),
       
   100           "Create a Task", 'any_access')
       
   101       submenus.append(submenu)
       
   102 
       
   103       # add a link to the management page
       
   104       submenu = (redirects.getListRolesRedirect(group_entity, params),
       
   105           "Manage Admins and Mentors", 'any_access')
       
   106       submenus.append(submenu)
       
   107 
       
   108       # add a link to invite an org admin
       
   109       submenu = (redirects.getInviteRedirectForRole(
       
   110           group_entity, 'ghop/org_admin'),
       
   111           "Invite an Admin", 'any_access')
       
   112       submenus.append(submenu)
       
   113 
       
   114       # add a link to invite a member
       
   115       submenu = (redirects.getInviteRedirectForRole(
       
   116           group_entity, 'ghop/mentor'), "Invite a Mentor", 'any_access')
       
   117       submenus.append(submenu)
       
   118 
       
   119       # add a link to the request page
       
   120       submenu = (redirects.getListRequestsRedirect(group_entity, params),
       
   121           "List Requests and Invites", 'any_access')
       
   122       submenus.append(submenu)
       
   123 
       
   124       # add a link to the edit page
       
   125       submenu = (redirects.getEditRedirect(group_entity, params),
       
   126           "Edit Organization Profile", 'any_access')
       
   127       submenus.append(submenu)
       
   128 
       
   129     if roles.get('ghop_mentor'):
       
   130       # add a link to suggest task
       
   131       submenu = (ghop_redirects.getSuggestTaskRedirect(
       
   132           group_entity, {'url_name': 'ghop/task'}),
       
   133           "Suggest a Task", 'any_access')
       
   134       submenus.append(submenu)
       
   135 
       
   136     if roles.get('ghop_org_admin') or roles.get('ghop_mentor'):
       
   137       submenu = (redirects.getCreateDocumentRedirect(group_entity, 'ghop_org'),
       
   138           "Create a New Document", 'any_access')
       
   139       submenus.append(submenu)
       
   140 
       
   141       submenu = (redirects.getListDocumentsRedirect(group_entity, 'ghop_org'),
       
   142           "List Documents", 'any_access')
       
   143       submenus.append(submenu)
       
   144 
       
   145     if roles.get('org_admin'):
       
   146       # add a link to the resign page
       
   147       submenu = (redirects.getManageRedirect(roles['ghop_org_admin'],
       
   148           {'url_name': 'ghop/org_admin'}),
       
   149           "Resign as Admin", 'any_access')
       
   150       submenus.append(submenu)
       
   151 
       
   152       # add a link to the edit page
       
   153       submenu = (redirects.getEditRedirect(roles['ghop_org_admin'],
       
   154           {'url_name': 'ghop/org_admin'}),
       
   155           "Edit My Admin Profile", 'any_access')
       
   156       submenus.append(submenu)
       
   157 
       
   158 
       
   159     if roles.get('ghop_mentor'):
       
   160       # add a link to the resign page
       
   161       submenu = (redirects.getManageRedirect(roles['ghop_mentor'],
       
   162           {'url_name' : 'ghop/mentor'}),
       
   163           "Resign as Mentor", 'any_access')
       
   164       submenus.append(submenu)
       
   165 
       
   166       # add a link to the edit page
       
   167       submenu = (redirects.getEditRedirect(roles['ghop_mentor'],
       
   168           {'url_name': 'ghop/mentor'}),
       
   169           "Edit My Mentor Profile", 'any_access')
       
   170       submenus.append(submenu)
       
   171 
       
   172     return submenus
       
   173 
    74 
   174 
    75 view = View()
   175 view = View()
    76 
   176 
    77 admin = decorators.view(view.admin)
   177 admin = decorators.view(view.admin)
    78 create = decorators.view(view.create)
   178 create = decorators.view(view.create)