Beispiel #1
0
  def getSidebarMenus(self, id, user, params=None):
    """See base.View.getSidebarMenus().
    """

    link_title = ugettext('Notifications')

    filter = {
        'scope': user,
        'unread': True,
        }

    notifications = model_logic.notification.logic.getForFields(filter)
    count = len(list(notifications))

    if count > 0:
      link_title = '<span class="unread">%s (%d)</span>' % (
          force_unicode(link_title), count)
      link_title = mark_safe(link_title)

    items = [('/' + 'notification/list', link_title, 'notification')]
    if user:
      items += [(redirects.getCreateDocumentRedirect(user, 'user'),
          "Create a New Document", 'any_access')]

      items += [(redirects.getListDocumentsRedirect(user, 'user'),
          "List Documents", 'any_access')]

    new_params = {}
    new_params['sidebar_additional'] = items

    params = dicts.merge(params, new_params)

    return super(View, self).getSidebarMenus(id, user, params=params)
Beispiel #2
0
  def getSidebarMenus(self, id, user, params=None):
    """See base.View.getSidebarMenus.

    Returns a custom sidebar entry for the 'site' singleton.
    """

    entity = self._logic.getSingleton()

    submenus = document_view.view.getMenusForScope(entity, self._params)

    try:
      rights = self._params['rights']
      rights.setCurrentUser(id, user)
      rights.checkIsHost()
      is_host = True
    except out_of_band.Error:
      is_host = False

    if is_host:
      submenus += [(redirects.getCreateDocumentRedirect(entity, 'site'),
          "Create a New Document", 'any_access')]

      submenus += [(redirects.getListDocumentsRedirect(entity, 'site'),
          "List Documents", 'any_access')]

    new_params = {}
    new_params['sidebar_additional'] = submenus

    params = dicts.merge(params, new_params)
    return super(View, self).getSidebarMenus(id, user, params=params)
Beispiel #3
0
  def getSidebarMenus(self, id, user, params=None):
    """See base.View.getSidebarMenus.

    Returns a custom sidebar entry for the 'site' singleton.
    """

    entity = self._logic.getSingleton()

    submenus = document_view.view.getMenusForScope(entity, self._params)

    try:
      rights = self._params['rights']
      rights.setCurrentUser(id, user)
      rights.checkIsHost()
      is_host = True
    except out_of_band.Error:
      is_host = False

    if is_host:
      submenus += [(redirects.getCreateDocumentRedirect(entity, 'site'),
          "Create a New Document", 'any_access')]

      submenus += [(redirects.getListDocumentsRedirect(entity, 'site'),
          "List Documents", 'any_access')]
    submenus += [('/priority_group/list', "List Priority Groups", 'edit')]
    submenus += [('/job/list', "List Jobs", 'edit')]

    new_params = {}
    new_params['sidebar_additional'] = submenus

    params = dicts.merge(params, new_params)
    return super(View, self).getSidebarMenus(id, user, params=params)
Beispiel #4
0
    def getSidebarMenus(self, id, user, params=None):
        """See base.View.getSidebarMenus().
    """

        link_title = ugettext('Notifications')

        filter = {
            'scope': user,
            'unread': True,
        }

        notifications = model_logic.notification.logic.getForFields(filter)
        count = len(list(notifications))

        if count > 0:
            link_title = '<span class="unread">%s (%d)</span>' % (
                force_unicode(link_title), count)
            link_title = mark_safe(link_title)

        items = [('/' + 'notification/list', link_title, 'notification')]
        if user:
            items += [(redirects.getCreateDocumentRedirect(user, 'user'),
                       "Create a New Document", 'any_access')]

            items += [(redirects.getListDocumentsRedirect(user, 'user'),
                       "List Documents", 'any_access')]

        new_params = {}
        new_params['sidebar_additional'] = items

        params = dicts.merge(params, new_params)

        return super(View, self).getSidebarMenus(id, user, params=params)
Beispiel #5
0
  def getSidebarMenus(self, id, user, params=None):
    """See base.View.getSidebarMenus.

    Returns a custom sidebar entry for the 'site' singleton.
    """

    entity = site_logic.getSingleton()

    submenus = document_view.view.getMenusForScope(entity, self._params)

    try:
      rights = self._params['rights']
      rights.setCurrentUser(id, user)
      rights.checkIsHost()
      is_host = True
    except out_of_band.Error:
      is_host = False

    if is_host:
      submenus += [(redirects.getCreateDocumentRedirect(entity, 'site'),
          "Create a New Document", 'any_access')]

      submenus += [(redirects.getListDocumentsRedirect(entity, 'site'),
          "List Documents", 'any_access')]

    if entity.cse_key:
      # only add the search entry if a key is defined
      submenus += [('/site/search', 'Search', 'any_access')]

    new_params = {}
    new_params['sidebar_additional'] = submenus

    params = dicts.merge(params, new_params)
    return super(View, self).getSidebarMenus(id, user, params=params)
Beispiel #6
0
    def _getHostEntries(self, entity, params, prefix):
        """Returns a list with menu items for program host.

    Args:
      entity: program entity to get the entries for
      params: view specific params
      prefix: module prefix for the program entity
    """

        items = []

        # add link to edit Program Profile
        items += [(redirects.getEditRedirect(entity, params),
                   'Edit Program Profile', 'any_access')]
        # add link to edit Program Timeline
        items += [
            (redirects.getEditRedirect(entity,
                                       {'url_name': prefix + '/timeline'}),
             "Edit Program Timeline", 'any_access')
        ]
        # add link to create a new Program Document
        items += [
            (redirects.getCreateDocumentRedirect(entity,
                                                 params['document_prefix']),
             "Create a New Document", 'any_access')
        ]
        # add link to list all Program Document
        items += [
            (redirects.getListDocumentsRedirect(entity,
                                                params['document_prefix']),
             "List Documents", 'any_access')
        ]
        # add link to list all participants
        items += [(redirects.getListParticipantsRedirect(entity, params),
                   "List Participants", 'any_access')]
        # add link to Manage Statistics
        items += [(statistic_redirects.getManageRedirect(entity, params),
                   'Manage Statistics', 'any_access')]

        org_app_logic = params['org_app_logic']
        org_app_survey = org_app_logic.getForProgram(entity)

        # add link to create/edit OrgAppSurvey
        items += [(redirects.getCreateSurveyRedirect(entity,
                                                     params['document_prefix'],
                                                     prefix + '/org_app'),
                   'Edit Org Application Survey', 'any_access')]

        if org_app_survey:
            # add link to Review Org Applications
            items += [(redirects.getReviewOverviewRedirect(
                org_app_survey, params['org_app_view'].getParams()),
                       'Review Organization Applications', 'any_access')]

        return items
Beispiel #7
0
  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
Beispiel #8
0
  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
Beispiel #9
0
  def _getHostEntries(self, entity, params, prefix):
    """Returns a list with menu items for program host.

    Args:
      entity: program entity to get the entries for
      params: view specific params
      prefix: module prefix for the program entity
    """

    items = []

    # add link to edit Program Profile
    items += [(redirects.getEditRedirect(entity, params),
            'Edit Program Profile', 'any_access')]
    # add link to edit Program Timeline
    items += [(redirects.getEditRedirect(entity, 
            {'url_name': prefix + '/timeline'}),
            "Edit Program Timeline", 'any_access')]
    # add link to create a new Program Document
    items += [(redirects.getCreateDocumentRedirect(
            entity, params['document_prefix']),
            "Create a New Document", 'any_access')]
    # add link to list all Program Document
    items += [(redirects.getListDocumentsRedirect(
            entity, params['document_prefix']),
            "List Documents", 'any_access')]
    # add link to list all participants
    items += [(redirects.getListParticipantsRedirect(entity, params),
               "List Participants", 'any_access')]
    # add link to Manage Statistics
    items += [(statistic_redirects.getManageRedirect(entity, params),
            'Manage Statistics', 'any_access')]

    org_app_logic = params['org_app_logic']
    org_app_survey = org_app_logic.getForProgram(entity)

    # add link to create/edit OrgAppSurvey
    items += [(redirects.getCreateSurveyRedirect(
                  entity, params['document_prefix'], prefix + '/org_app'),
              'Edit Org Application Survey','any_access')]

    if org_app_survey:
      # add link to Review Org Applications
      items += [(redirects.getReviewOverviewRedirect(
          org_app_survey, params['org_app_view'].getParams()),
          'Review Organization Applications', 'any_access')]

    return items
Beispiel #10
0
    def _getHostEntries(self, entity, params, prefix):
        """Returns a list with menu items for program host.

    Args:
      entity: program entity to get the entries for
      params: view specific params
      prefix: module prefix for the program entity
    """

        items = []

        # add link to edit Program Profile
        items += [(redirects.getEditRedirect(entity, params),
                   'Edit Program Profile', 'any_access')]
        # add link to edit Program Timeline
        items += [
            (redirects.getEditRedirect(entity,
                                       {'url_name': prefix + '/timeline'}),
             "Edit Program Timeline", 'any_access')
        ]
        # add link to create a new Program Document
        items += [
            (redirects.getCreateDocumentRedirect(entity,
                                                 params['document_prefix']),
             "Create a New Document", 'any_access')
        ]
        # add link to list all Program Document
        items += [
            (redirects.getListDocumentsRedirect(entity,
                                                params['document_prefix']),
             "List Documents", 'any_access')
        ]

        timeline_entity = entity.timeline

        if not timeline_helper.isAfterEvent(timeline_entity, 'org_signup'):
            # add link to create/edit OrgAppSurvey
            org_app_survey = org_app_logic.getForProgram(entity)
            items += [
                (redirects.getCreateSurveyRedirect(entity,
                                                   params['document_prefix'],
                                                   prefix + '/org_app'),
                 'Edit Org Application Survey', 'any_access')
            ]

        return items
Beispiel #11
0
    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
Beispiel #12
0
  def getExtraMenus(self, id, user, params=None):
    """Returns the extra menu's for this view.

    A menu item is generated for each program that is currently
    running. The public page for each program is added as menu item,
    as well as all public documents for that program.

    Args:
      params: a dict with params for this View.
    """

    from soc.views.models import survey as survey_view
    from soc.views.models import project_survey as project_survey_view
    from soc.views.models import grading_project_survey as grading_survey_view

    logic = params['logic']
    rights = params['rights']

    # only get all invisible and visible programs
    fields = {'status': ['invisible', 'visible']}
    entities = logic.getForFields(fields)

    menus = []

    rights.setCurrentUser(id, user)

    for entity in entities:
      items = []

      if entity.status == 'visible':
        # show the documents for this program, even for not logged in users
        items += document_view.view.getMenusForScope(entity, params)
        items += survey_view.view.getMenusForScope(entity, params, id, user)
        items += project_survey_view.view.getMenusForScope(
            entity, params, id, user)
        items += grading_survey_view.view.getMenusForScope(
            entity, params, id, user)
        items += self._getTimeDependentEntries(entity, params, id, user)
      try:
        # check if the current user is a host for this program
        rights.doCachedCheck('checkIsHostForProgram',
                             {'scope_path': entity.scope_path,
                              'link_id': entity.link_id}, [])

        if entity.status == 'invisible':
          # still add the document links so hosts can see how it looks like
          items += document_view.view.getMenusForScope(entity, params)
          items += survey_view.view.getMenusForScope(entity, params, id, user)
          items += project_survey_view.view.getMenusForScope(
              entity, params, id, user)
          items += grading_survey_view.view.getMenusForScope(
              entity, params, id, user)
          items += self._getTimeDependentEntries(entity, params, id, user)

        items += [(redirects.getReviewOverviewRedirect(
            entity, {'url_name': 'org_app'}),
            "Review Organization Applications", 'any_access')]
        # add link to edit Program Profile
        items += [(redirects.getEditRedirect(entity, params),
            'Edit Program Profile', 'any_access')]
        # add link to Assign Slots
        items += [(redirects.getAssignSlotsRedirect(entity, params),
            'Assign Slots', 'any_access')]
        # add link to Show Duplicate project assignments
        items += [(redirects.getShowDuplicatesRedirect(entity, params),
            'Show Duplicate Project Assignments', 'any_access')]
        # add link to edit Program Timeline
        items += [(redirects.getEditRedirect(entity, {'url_name': 'timeline'}),
            "Edit Program Timeline", 'any_access')]
        # add link to create a new Program Document
        items += [(redirects.getCreateDocumentRedirect(entity, 'program'),
            "Create a New Document", 'any_access')]
        # add link to list all Program Document
        items += [(redirects.getListDocumentsRedirect(entity, 'program'),
            "List Documents", 'any_access')]
        # add link to create a new Program Survey
        items += [(redirects.getCreateSurveyRedirect(entity, 'program',
            'survey'),
            "Create a New Survey", 'any_access')]
        # add link to list all Program Surveys
        items += [(redirects.getListSurveysRedirect(entity, 'program',
            'survey'),
            "List Surveys", 'any_access')]
        # add link to create a new Project Survey
        items += [(redirects.getCreateSurveyRedirect(entity, 'program',
            'project_survey'),
            "Create a New Project Survey", 'any_access')]
        # add link to list all Project Surveys
        items += [(redirects.getListSurveysRedirect(entity, 'program',
            'project_survey'),
            "List Project Surveys", 'any_access')]
        # add link to create a new Grading Survey
        items += [(redirects.getCreateSurveyRedirect(entity, 'program',
            'grading_project_survey'),
            "Create a New Grading Survey", 'any_access')]
        # add link to list all Grading Surveys
        items += [(redirects.getListSurveysRedirect(entity, 'program',
            'grading_project_survey'),
            "List Grading Surveys", 'any_access')]

      except out_of_band.Error:
        pass

      items = sidebar.getSidebarMenu(id, user, items, params=params)
      if not items:
        continue

      menu = {}
      menu['heading'] = entity.short_name
      menu['items'] = items
      menu['group'] = 'Programs'
      menus.append(menu)

    return menus
Beispiel #13
0
    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
Beispiel #14
0
    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
Beispiel #15
0
  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
Beispiel #16
0
    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
Beispiel #17
0
  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