def processRequest(self, request, access_type, page_name=None, params=None, **kwargs): """Creates the page upon which a request can be processed. Args: request: the standard Django HTTP request object access_type : the name of the access type which should be checked page_name: the page name displayed in templates as page and header title params: a dict with params for this View kwargs: the Key Fields for the specified entity """ # get the request entity using the information from kwargs request_entity = request_logic.getFromIDOr404(int(kwargs['id'])) # get the context for this webpage context = responses.getUniversalContext(request) responses.useJavaScript(context, params['js_uses_all']) context['page_name'] = '%s from %s to become a %s' % ( page_name, request_entity.user.name, params['name']) # TODO(ljvderijk): Should be a POST request get_dict = request.GET if 'status' in get_dict.keys(): if get_dict['status'] in [ 'group_accepted', 'rejected', 'withdrawn', 'ignored' ]: # update the request_entity and redirect away from this page request_status = get_dict['status'] # only update when the status is changing if request_status != request_entity.status: request_logic.updateEntityProperties( request_entity, {'status': get_dict['status']}) group_view = params.get('group_view') if not group_view: return http.HttpResponseRedirect('/') else: # redirect to the requests list return http.HttpResponseRedirect( redirects.getListRequestsRedirect( request_entity.group, group_view.getParams())) # put the entity in the context context['entity'] = request_entity context['request_status'] = request_entity.status context['role_verbose'] = params['name'] context['url_name'] = params['url_name'] #display the request processing page using the appropriate template template = request_view.view.getParams()['request_processing_template'] return responses.respond(request, template, context=context)
def invitePost(self, request, context, params, group_entity, **kwargs): """Handles the POST request concerning the view that creates an invite for attaining a certain Role. Args: request: the standard Django HTTP request object page_name: the page name displayed in templates as page and header title params: a dict with params for this View group_entity: Group entity which this invite is from kwargs: the Key Fields for the specified entity """ # get the request view parameters and populate the form using POST data request_params = request_view.view.getParams() form = request_params['invite_form'](request.POST) if not form.is_valid(): # return the invalid form response return self._constructResponse(request, entity=None, context=context, form=form, params=request_params) # collect the cleaned data from the valid form _, form_fields = soc.views.helper.forms.collectCleanedFields(form) # create the fields for the new request entity request_fields = { 'user': form_fields['user_id'], 'group': group_entity, 'role': params['logic'].role_name, 'status': 'group_accepted' } if not request_logic.isValidNewRequest(request_fields, params['logic']): # not a valid invite context['error_message'] = self.DEF_INVITE_ERROR_MSG_FMT % (params) return super(View, self)._constructResponse(request, entity=None, context=context, form=form, params=request_params) # create the request entity request_logic.updateOrCreateFromFields(request_fields) group_view = params.get('group_view') if not group_view: return http.HttpResponseRedirect('/') else: # redirect to the requests list return http.HttpResponseRedirect( redirects.getListRequestsRedirect(group_entity, group_view.getParams()))
def processRequest(self, request, access_type, page_name=None, params=None, **kwargs): """Creates the page upon which a request can be processed. Args: request: the standard Django HTTP request object access_type : the name of the access type which should be checked page_name: the page name displayed in templates as page and header title params: a dict with params for this View kwargs: the Key Fields for the specified entity """ # get the context for this webpage context = responses.getUniversalContext(request) responses.useJavaScript(context, params['js_uses_all']) context['page_name'] = page_name # get the request entity using the information from kwargs fields = {'link_id': kwargs['link_id'], 'scope_path': kwargs['scope_path'], 'role': params['logic'].role_name} request_entity = request_logic.logic.getForFields(fields, unique=True) # pylint: disable-msg=E1103 user_entity = user_logic.logic.getFromKeyNameOr404(request_entity.link_id) get_dict = request.GET if 'status' in get_dict.keys(): if get_dict['status'] in ['group_accepted', 'rejected', 'ignored']: # update the request_entity and redirect away from this page request_status = get_dict['status'] # only update when the status is changing if request_status != request_entity.status: request_logic.logic.updateEntityProperties(request_entity, { 'status': get_dict['status']}) group_view = params.get('group_view') if not group_view: return http.HttpResponseRedirect('/') else: # redirect to the requests list return http.HttpResponseRedirect( redirects.getListRequestsRedirect(request_entity.scope, group_view.getParams())) # put the entity in the context context['entity'] = request_entity context['user_in_request'] = user_entity context['request_status'] = request_entity.status context['role_name'] = params['logic'].role_name #display the request processing page using the appropriate template template = request_view.view.getParams()['request_processing_template'] return responses.respond(request, template, context=context)
def invitePost(self, request, context, params, **kwargs): """Handles the POST request concerning the view that creates an invite for attaining a certain Role. Args: request: the standard Django HTTP request object page_name: the page name displayed in templates as page and header title params: a dict with params for this View kwargs: the Key Fields for the specified entity """ # get the request view parameters and populate the form using POST data request_params = request_view.view.getParams() form = request_params['invite_form'](request.POST) if not form.is_valid(): # return the invalid form response return self._constructResponse(request, entity=None, context=context, form=form, params=request_params) # collect the cleaned data from the valid form key_name, form_fields = soc.views.helper.forms.collectCleanedFields(form) # get the group entity for which this request is via the scope_path group = self._logic.getGroupEntityFromScopePath(params['group_logic'], kwargs['scope_path']) # get the request scope path request_scope_path = self._getRequestScopePathFromGroup(group) # create the fields for the new request entity request_fields = {'link_id': form_fields['link_id'].link_id, 'scope': group, 'scope_path': request_scope_path, 'role': params['logic'].role_name, 'role_verbose': params['name'], 'status': 'group_accepted'} if not self._isValidNewRequest(request_fields, params): # not a valid invite context['error_message'] = self.DEF_INVITE_ERROR_MSG_FMT % ( params) return self.inviteGet(request, context, params, **kwargs) # extract the key_name for the new request entity key_name = request_logic.logic.getKeyNameFromFields(request_fields) # create the request entity request_logic.logic.updateOrCreateFromKeyName(request_fields, key_name) group_view = params.get('group_view') if not group_view: return http.HttpResponseRedirect('/') else: # redirect to the requests list return http.HttpResponseRedirect( redirects.getListRequestsRedirect(group, group_view.getParams()))
def processRequest(self, request, access_type, page_name=None, params=None, **kwargs): """Creates the page upon which a request can be processed. Args: request: the standard Django HTTP request object access_type : the name of the access type which should be checked page_name: the page name displayed in templates as page and header title params: a dict with params for this View kwargs: the Key Fields for the specified entity """ # get the request entity using the information from kwargs request_entity = request_logic.getFromIDOr404(int(kwargs['id'])) # get the context for this webpage context = responses.getUniversalContext(request) responses.useJavaScript(context, params['js_uses_all']) context['page_name'] = '%s from %s to become a %s' % ( page_name, request_entity.user.name, params['name']) # TODO(ljvderijk): Should be a POST request get_dict = request.GET if 'status' in get_dict.keys(): if get_dict['status'] in ['group_accepted', 'rejected', 'withdrawn', 'ignored']: # update the request_entity and redirect away from this page request_status = get_dict['status'] # only update when the status is changing if request_status != request_entity.status: request_logic.updateEntityProperties(request_entity, { 'status': get_dict['status']}) group_view = params.get('group_view') if not group_view: return http.HttpResponseRedirect('/') else: # redirect to the requests list return http.HttpResponseRedirect( redirects.getListRequestsRedirect(request_entity.group, group_view.getParams())) # put the entity in the context context['entity'] = request_entity context['request_status'] = request_entity.status context['role_verbose'] = params['name'] context['url_name'] = params['url_name'] #display the request processing page using the appropriate template template = request_view.view.getParams()['request_processing_template'] return responses.respond(request, template, context=context)
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific Sponsor menu entries. For args see group.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description['group'] roles = role_description['roles'] if roles.get('host'): # add a link to create a new program submenu = (redirects.getCreateRedirect(group_entity, {'url_name': 'program'}),"Create a New Program", 'any_access') submenus.append(submenu) # add a link to the management page submenu = (redirects.getListRolesRedirect(group_entity, params), "Manage Program Administrators", 'any_access') submenus.append(submenu) # add a link to invite an a host submenu = (redirects.getInviteRedirectForRole(group_entity, 'host'), "Invite a Program Administrator", 'any_access') submenus.append(submenu) # add a link to the request page submenu = (redirects.getListRequestsRedirect(group_entity, params), "List Program Administrator Invites", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect(group_entity, params), "Edit Program Owner Profile", 'any_access') submenus.append(submenu) # add a link to resign as a host submenu = (redirects.getManageRedirect(roles['host'], {'url_name': 'host'}), "Resign as Program Administrator", 'any_access') submenus.append(submenu) # add a link to create a new document submenu = (redirects.getCreateDocumentRedirect(group_entity, 'sponsor'), "Create a New Document", 'any_access') submenus.append(submenu) # add a link to list all documents submenu = (redirects.getListDocumentsRedirect(group_entity, 'sponsor'), "List Documents", 'any_access') submenus.append(submenu) return submenus
def invitePost(self, request, context, params, group_entity, **kwargs): """Handles the POST request concerning the view that creates an invite for attaining a certain Role. Args: request: the standard Django HTTP request object page_name: the page name displayed in templates as page and header title params: a dict with params for this View group_entity: Group entity which this invite is from kwargs: the Key Fields for the specified entity """ # get the request view parameters and populate the form using POST data request_params = request_view.view.getParams() form = request_params['invite_form'](request.POST) if not form.is_valid(): # return the invalid form response return self._constructResponse(request, entity=None, context=context, form=form, params=request_params) # collect the cleaned data from the valid form _, form_fields = soc.views.helper.forms.collectCleanedFields(form) # create the fields for the new request entity request_fields = { 'user': form_fields['user_id'], 'group': group_entity, 'role': params['logic'].role_name, 'status': 'group_accepted'} if not request_logic.isValidNewRequest(request_fields, params['logic']): # not a valid invite context['error_message'] = self.DEF_INVITE_ERROR_MSG_FMT % ( params) return super(View, self)._constructResponse(request, entity=None, context=context, form=form, params=request_params) # create the request entity request_logic.updateOrCreateFromFields(request_fields) group_view = params.get('group_view') if not group_view: return http.HttpResponseRedirect('/') else: # redirect to the requests list return http.HttpResponseRedirect( redirects.getListRequestsRedirect(group_entity, group_view.getParams()))
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific GCI Organization menu entries. For args see soc.views.models.organization.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description["group"] roles = role_description["roles"] mentor_entity = roles.get("gci_mentor") admin_entity = roles.get("gci_org_admin") is_active_mentor = mentor_entity and mentor_entity.status == "active" is_active_admin = admin_entity and admin_entity.status == "active" if admin_entity or mentor_entity: # add a link to view all the organization tasks. submenu = ( gci_redirects.getListTasksRedirect(group_entity, {"url_name": "gci/task"}), "View all Tasks", "any_access", ) submenus.append(submenu) if is_active_admin: # add a link to create task submenu = ( redirects.getCreateRedirect(group_entity, {"url_name": "gci/task"}), "Create a Task", "any_access", ) submenus.append(submenu) # add a link to bulk create tasks submenu = ( gci_redirects.getBulkCreateRedirect(group_entity, {"url_name": "gci/task"}), "Bulk Create Tasks", "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, "gci/org_admin"), "Invite an Admin", "any_access", ) submenus.append(submenu) # add a link to invite a member submenu = (redirects.getInviteRedirectForRole(group_entity, "gci/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 is_active_mentor: # add a link to suggest task submenu = ( gci_redirects.getSuggestTaskRedirect(group_entity, {"url_name": "gci/task"}), "Suggest a Task", "any_access", ) submenus.append(submenu) if is_active_admin or is_active_mentor: submenu = ( redirects.getCreateDocumentRedirect(group_entity, "gci_org"), "Create a New Document", "any_access", ) submenus.append(submenu) submenu = (redirects.getListDocumentsRedirect(group_entity, "gci_org"), "List Documents", "any_access") submenus.append(submenu) if is_active_admin: # add a link to the resign page submenu = ( redirects.getManageRedirect(roles["gci_org_admin"], {"url_name": "gci/org_admin"}), "Resign as Admin", "any_access", ) submenus.append(submenu) # add a link to the edit page submenu = ( redirects.getEditRedirect(roles["gci_org_admin"], {"url_name": "gci/org_admin"}), "Edit My Admin Profile", "any_access", ) submenus.append(submenu) if is_active_mentor: # add a link to the resign page submenu = ( redirects.getManageRedirect(roles["gci_mentor"], {"url_name": "gci/mentor"}), "Resign as Mentor", "any_access", ) submenus.append(submenu) # add a link to the edit page submenu = ( redirects.getEditRedirect(roles["gci_mentor"], {"url_name": "gci/mentor"}), "Edit My Mentor Profile", "any_access", ) submenus.append(submenu) return submenus
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific Organization menu entries. For args see group.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description['group'] program_entity = group_entity.scope roles = role_description['roles'] mentor_entity = roles.get('mentor') admin_entity = roles.get('org_admin') is_active_mentor = mentor_entity and mentor_entity.status == 'active' is_active_admin = admin_entity and admin_entity.status == 'active' if admin_entity or mentor_entity: # add a link to view all the student proposals submenu = (redirects.getListProposalsRedirect( group_entity, params), "View all Student Proposals", 'any_access') submenus.append(submenu) if admin_entity: # add a link to manage student projects after they have been announced if timeline_helper.isAfterEvent( program_entity.timeline, 'accepted_students_announced_deadline'): submenu = (redirects.getManageOverviewRedirect( group_entity, {'url_name': 'gsoc/student_project'}), "Manage Student Projects", 'any_access') submenus.append(submenu) if is_active_admin: # 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, 'gsoc/org_admin'), "Invite an Admin", 'any_access') submenus.append(submenu) # add a link to invite a member submenu = (redirects.getInviteRedirectForRole( group_entity, 'gsoc/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 is_active_admin or is_active_mentor: submenu = (redirects.getCreateDocumentRedirect( group_entity, params['document_prefix']), "Create a New Document", 'any_access') submenus.append(submenu) submenu = (redirects.getListDocumentsRedirect( group_entity, params['document_prefix']), "List Documents", 'any_access') submenus.append(submenu) if is_active_admin: # add a link to the resign page submenu = (redirects.getManageRedirect( roles['org_admin'], {'url_name': 'gsoc/org_admin'}), "Resign as Admin", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect( roles['org_admin'], {'url_name': 'gsoc/org_admin'}), "Edit My Admin Profile", 'any_access') submenus.append(submenu) if is_active_mentor: # add a link to the resign page submenu = (redirects.getManageRedirect( roles['mentor'], {'url_name': 'gsoc/mentor'}), "Resign as Mentor", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect(roles['mentor'], {'url_name': 'gsoc/mentor'}), "Edit My Mentor Profile", 'any_access') submenus.append(submenu) return submenus
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific Organization menu entries. For args see group.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description['group'] program_entity = group_entity.scope roles = role_description['roles'] if roles.get('org_admin') or roles.get('mentor'): # add a link to view all the student proposals submenu = (redirects.getListProposalsRedirect(group_entity, params), "View all Student Proposals", 'any_access') submenus.append(submenu) if roles.get('org_admin'): # add a link to manage student projects after they have been announced if timeline_helper.isAfterEvent(program_entity.timeline, 'accepted_students_announced_deadline'): submenu = (redirects.getManageOverviewRedirect(group_entity, {'url_name': 'student_project'}), "Manage Student Projects", '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, 'org_admin'), "Invite an Admin", 'any_access') submenus.append(submenu) # add a link to invite a member submenu = (redirects.getInviteRedirectForRole(group_entity, '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('org_admin') or roles.get('mentor'): submenu = (redirects.getCreateDocumentRedirect(group_entity, 'org'), "Create a New Document", 'any_access') submenus.append(submenu) submenu = (redirects.getListDocumentsRedirect(group_entity, 'org'), "List Documents", 'any_access') submenus.append(submenu) if roles.get('org_admin'): # add a link to the resign page submenu = (redirects.getManageRedirect(roles['org_admin'], {'url_name': 'org_admin'}), "Resign as Admin", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect(roles['org_admin'], {'url_name': 'org_admin'}), "Edit My Admin Profile", 'any_access') submenus.append(submenu) if roles.get('mentor'): # add a link to the resign page submenu = (redirects.getManageRedirect(roles['mentor'], {'url_name' : 'mentor'}), "Resign as Mentor", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect(roles['mentor'], {'url_name': 'mentor'}), "Edit My Mentor Profile", 'any_access') submenus.append(submenu) return submenus
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific club menu entries. For args see group.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description['group'] roles = role_description['roles'] if roles.get('club_admin'): # add a link to the management page submenu = (redirects.getListRolesRedirect(group_entity, params), "Manage Admins and Members", 'any_access') submenus.append(submenu) # add a link to invite an admin submenu = (redirects.getInviteRedirectForRole( group_entity, 'club_admin'), "Invite an Admin", 'any_access') submenus.append(submenu) # add a link to invite a member submenu = (redirects.getInviteRedirectForRole( group_entity, 'club_member'), "Invite a Member", '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 Club Profile", 'any_access') submenus.append(submenu) if roles.get('club_member') or roles.get('club_admin'): submenu = (redirects.getCreateDocumentRedirect( group_entity, 'club'), "Create a New Document", 'any_access') submenus.append(submenu) submenu = (redirects.getListDocumentsRedirect( group_entity, 'club'), "List Documents", 'any_access') submenus.append(submenu) if roles.get('club_admin'): # add a link to resign as club admin submenu = (redirects.getManageRedirect(roles['club_admin'], {'url_name': 'club_admin'}), "Resign as Club Admin", 'any_access') submenus.append(submenu) if roles.get('club_member'): # add a link to resign as club member submenu = (redirects.getManageRedirect( roles['club_member'], {'url_name': 'club_member'}), "Resign as Club Member", 'any_access') submenus.append(submenu) return submenus
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific club menu entries. For args see group.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description['group'] roles = role_description['roles'] if roles.get('club_admin'): # add a link to the management page submenu = (redirects.getListRolesRedirect(group_entity, params), "Manage Admins and Members", 'any_access') submenus.append(submenu) # add a link to invite an admin submenu = (redirects.getInviteRedirectForRole(group_entity, 'club_admin'), "Invite an Admin", 'any_access') submenus.append(submenu) # add a link to invite a member submenu = (redirects.getInviteRedirectForRole(group_entity, 'club_member'), "Invite a Member", '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 Club Profile", 'any_access') submenus.append(submenu) if roles.get('club_member') or roles.get('club_admin'): submenu = (redirects.getCreateDocumentRedirect(group_entity, 'club'), "Create a New Document", 'any_access') submenus.append(submenu) submenu = (redirects.getListDocumentsRedirect(group_entity, 'club'), "List Documents", 'any_access') submenus.append(submenu) if roles.get('club_admin'): # add a link to resign as club admin submenu = (redirects.getManageRedirect(roles['club_admin'], {'url_name': 'club_admin'}), "Resign as Club Admin", 'any_access') submenus.append(submenu) if roles.get('club_member'): # add a link to resign as club member submenu = (redirects.getManageRedirect(roles['club_member'], {'url_name' : 'club_member'}), "Resign as Club Member", 'any_access') submenus.append(submenu) return submenus
def _getExtraMenuItems(self, role_description, params=None): """Used to create the specific GCI Organization menu entries. For args see soc.views.models.organization.View._getExtraMenuItems(). """ submenus = [] group_entity = role_description['group'] roles = role_description['roles'] mentor_entity = roles.get('gci_mentor') admin_entity = roles.get('gci_org_admin') is_active_mentor = mentor_entity and mentor_entity.status == 'active' is_active_admin = admin_entity and admin_entity.status == 'active' if admin_entity or mentor_entity: # add a link to view all the organization tasks. submenu = (gci_redirects.getListTasksRedirect( group_entity, {'url_name': 'gci/task'}), "View all Tasks", 'any_access') submenus.append(submenu) if is_active_admin: # add a link to create task submenu = (redirects.getCreateRedirect(group_entity, {'url_name': 'gci/task'}), "Create a Task", 'any_access') submenus.append(submenu) # add a link to bulk create tasks submenu = (gci_redirects.getBulkCreateRedirect( group_entity, {'url_name': 'gci/task'}), "Bulk Create Tasks", '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, 'gci/org_admin'), "Invite an Admin", 'any_access') submenus.append(submenu) # add a link to invite a member submenu = (redirects.getInviteRedirectForRole( group_entity, 'gci/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 is_active_mentor: # add a link to suggest task submenu = (gci_redirects.getSuggestTaskRedirect( group_entity, {'url_name': 'gci/task'}), "Suggest a Task", 'any_access') submenus.append(submenu) if is_active_admin or is_active_mentor: submenu = (redirects.getCreateDocumentRedirect( group_entity, 'gci_org'), "Create a New Document", 'any_access') submenus.append(submenu) submenu = (redirects.getListDocumentsRedirect( group_entity, 'gci_org'), "List Documents", 'any_access') submenus.append(submenu) if is_active_admin: # add a link to the resign page submenu = (redirects.getManageRedirect( roles['gci_org_admin'], {'url_name': 'gci/org_admin'}), "Resign as Admin", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect( roles['gci_org_admin'], {'url_name': 'gci/org_admin'}), "Edit My Admin Profile", 'any_access') submenus.append(submenu) if is_active_mentor: # add a link to the resign page submenu = (redirects.getManageRedirect(roles['gci_mentor'], {'url_name': 'gci/mentor'}), "Resign as Mentor", 'any_access') submenus.append(submenu) # add a link to the edit page submenu = (redirects.getEditRedirect(roles['gci_mentor'], {'url_name': 'gci/mentor'}), "Edit My Mentor Profile", 'any_access') submenus.append(submenu) return submenus