Example #1
0
def get_common_context(request):
    context_dict = get_message_dict(request)
    context_dict.update({
        'request': request,
        'main_nav': 'members',
        'elections': Election.get_current_elections(),
        'subnav': 'elections',
        })
    return context_dict
Example #2
0
def index(request):
    """ The landing page for the elections app.

    This page shows the currently active elections.
    If there is only one active election, it redirects to the nominations
    list instead.
    """
    request.session['current_page'] = request.path
    template = loader.get_template('elections/index.html')
    current_elections = Election.get_current_elections()
    context_dict = {}
    if current_elections.count() == 1:
        return redirect('elections:list', current_elections[0].id)
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    return HttpResponse(template.render(context_dict, request))
Example #3
0
def get_dropdowns(user):
    # NOTE: subsub navs will not show in dropdowns but will
    # show in the secondary bar (currently just for member resources).
    # Three levels deep is max supported
    dropdowns = {
            'about': [],
            'event_cal': [],
            'outreach': [],
            'member_resources': [],
            'corporate': [],
            'publications': [],
    }
    # about: currently no permissions dependence
    dropdowns['about'].append({
                    'subnav': 'about',
                    'link_name': 'About',
                    'link': reverse('about:index')
    })
    dropdowns['about'].append({
                    'subnav': 'joining',
                    'link_name': 'Joining',
                    'link': reverse('about:eligibility')
    })
    dropdowns['about'].append({
                    'subnav': 'leadership',
                    'link_name': 'Leadership',
                    'link':
                    reverse('about:leadership')
    })
    dropdowns['about'].append({
                    'subnav': 'bylaws',
                    'link_name': 'Chapter Bylaws',
                    'link': reverse('about:bylaws')
    })

    # event_cal
    dropdowns['event_cal'].append({
                    'subnav': 'gcal',
                    'link_name': 'Google Calendar',
                    'link': reverse('event_cal:index')
    })
    dropdowns['event_cal'].append({
                    'subnav': 'list',
                    'link_name': 'Event List',
                    'link': reverse('event_cal:list')
    })
    dropdowns['event_cal'].append({
                    'subnav': 'my_events',
                    'link_name': 'My Events',
                    'link': reverse('event_cal:my_events')
    })
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['event_cal'].append({
                    'subnav': 'tutoring_form',
                    'link_name': 'Submit Tutoring Form',
                    'link': reverse('event_cal:submit_tutoring_form')
        })
    if Permissions.can_view_calendar_admin(user):
        dropdowns['event_cal'].append({
                    'subnav': 'admin',
                    'link_name': 'Calendar Admin',
                    'link': reverse('event_cal:calendar_admin')
        })

    # outreach: currently no permissions dependence
    dropdowns['outreach'].append({
                    'subnav': 'index',
                    'link_name': 'Outreach',
                    'link': reverse('outreach:index')
    })
    dropdowns['outreach'].append({
                    'subnav': 'mindset',
                    'link_name': 'MindSET',
                    'link': reverse('outreach:mindset')
    })
    dropdowns['outreach'].append({
                    'subnav': 'tutoring',
                    'link_name': 'Tutoring',
                    'link': reverse('outreach:tutoring')
    })
    for event_type in OutreachEventType.get_active():
        dropdowns['outreach'].append({
                    'subnav': event_type.url_stem,
                    'link_name': event_type.get_tab_name(),
                    'link': reverse('outreach:outreach_event',
                                    args=[event_type.url_stem])
        })

    # electees: subnav of member_resources
    electee_dropdowns = []
    if Permissions.can_manage_electee_progress(user):
        electee_dropdowns.append({
                    'subnav': 'groups',
                    'link_name': 'Manage Electee Teams',
                    'link': reverse('electees:edit_electee_groups')
        })
        electee_dropdowns.append({
                    'subnav': 'members',
                    'link_name': 'Edit Electee Teams\' Members',
                    'link': reverse('electees:edit_electee_group_membership')
        })
        electee_dropdowns.append({
                    'subnav': 'points',
                    'link_name': 'Edit Electee Team Points',
                    'link': reverse('electees:edit_electee_group_points')
        })

    # elections: subnav of member_resources, depends on existing elections
    elections = Election.get_current_elections()
    elections_dropdowns = []
    for election in elections:
        if elections.count() > 1:
            elections_dropdowns.append({
                    'subnav': 'list'+unicode(election.id),
                    'link_name': 'Nomination List (%s)' % (
                                        election.term.get_abbreviation()),
                    'link': reverse('elections:list', args=[election.id])
            })
        elections_dropdowns.append({
                    'subnav': 'my_nominations' + unicode(election.id),
                    'link_name': 'My Nominations (%s)' % (
                                        election.term.get_abbreviation()),
                    'link': reverse('elections:my_nominations',
                                    args=[election.id])
        })

    # member_resources
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['member_resources'].append({
                    'subnav': 'member_profiles',
                    'link_name': 'Member Profiles',
                    'link': reverse('member_resources:member_profiles')
        })
    else:
        dropdowns['member_resources'].append({
                    'subnav': 'member_profiles',
                    'link_name': 'Members Resources',
                    'link': reverse('member_resources:index')
        })
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['member_resources'].append({
                    'subnav': 'view_own_progress',
                    'link_name': 'Track My Progress',
                    'link': reverse('member_resources:view_progress',
                                    args=[user.username])
        })
    if Permissions.can_view_more_than_own_progress(user):
        dropdowns['member_resources'].append({
                    'subnav': 'view_others_progress',
                    'link_name': 'View Others\' Progress',
                    'link': reverse('member_resources:view_progress_list')
        })
    if (Permissions.can_manage_misc_reqs(user) or
       Permissions.can_change_requirements(user)):
        dropdowns['member_resources'].append({
                    'subnav': 'misc_reqs',
                    'link_name': 'Membership Admin',
                    'link': reverse('member_resources:view_misc_reqs')
        })
    if hasattr(user, 'userprofile'):
        dropdowns['member_resources'].append({
                    'subnav': 'playground',
                    'link_name': 'TBPlayground',
                    'link': reverse('fora:index')
        })
    dropdowns['member_resources'].append({
                    'subnav': 'history',
                    'link_name': 'Access History',
                    'link': reverse('member_resources:access_history')
    })
    dropdowns['member_resources'].append({
                    'subnav': 'electees',
                    'link_name': 'Electee Resources',
                    'link': reverse('electees:view_electee_groups'),
                    'subsubnav': electee_dropdowns
    })
    dropdowns['member_resources'].append({
                    'subnav': 'elections',
                    'link_name': 'Elections',
                    'link': reverse('elections:index'),
                    'subsubnav': elections_dropdowns
    })
    if Permissions.can_manage_website(user):
        dropdowns['member_resources'].append({
                    'subnav': 'website',
                    'link_name': 'Manage Website',
                    'link': reverse('member_resources:manage_website')
        })

    # corporate
    dropdowns['corporate'].append({
                    'subnav': 'index',
                    'link_name': 'For Companies',
                    'link': reverse('corporate:index')
    })
    dropdowns['corporate'].append({
                    'subnav': 'resumes',
                    'link_name': u'Member R\u00e9sum\u00e9s',
                    'link': reverse('corporate:resumes')
    })

    # publications
    dropdowns['publications'].append({
                    'subnav': 'news',
                    'link_name': 'Blog',
                    'link': reverse('history:index')
    })
    dropdowns['publications'].append({
                    'subnav': 'cornerstone',
                    'link_name': 'The Cornerstone',
                    'link': reverse('history:cornerstone_view')
    })
    dropdowns['publications'].append({
                    'subnav': 'alumni_news',
                    'link_name': 'Alumni Newsletters',
                    'link': reverse('history:alumninews_view')
    })
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['publications'].append({
                    'subnav': 'project_reports',
                    'link_name': 'Chapter Project Reports',
                    'link': reverse('history:get_project_reports')
        })

    # bookswap
    # currently none
    return dropdowns
Example #4
0
def get_dropdowns(user):
    # NOTE: subsub navs will not show in dropdowns but will
    # show in the secondary bar (currently just for member resources).
    # Three levels deep is max supported
    dropdowns = {
            'about': [],
            'event_cal': [],
            'outreach': [],
            'member_resources': [],
            'corporate': [],
            'publications': [],
    }
    # about: currently no permissions dependence
    dropdowns['about'].append({
                    'subnav': 'about',
                    'link_name': 'About',
                    'link': reverse('about:index')
    })
    dropdowns['about'].append({
                    'subnav': 'joining',
                    'link_name': 'Joining',
                    'link': reverse('about:eligibility')
    })
    dropdowns['about'].append({
                    'subnav': 'leadership',
                    'link_name': 'Leadership',
                    'link':
                    reverse('about:leadership')
    })
    dropdowns['about'].append({
                    'subnav': 'bylaws',
                    'link_name': 'Chapter Bylaws',
                    'link': reverse('about:bylaws')
    })

    # event_cal
    dropdowns['event_cal'].append({
                    'subnav': 'gcal',
                    'link_name': 'Google Calendar',
                    'link': reverse('event_cal:index')
    })
    dropdowns['event_cal'].append({
                    'subnav': 'list',
                    'link_name': 'Event List',
                    'link': reverse('event_cal:list')
    })
    dropdowns['event_cal'].append({
                    'subnav': 'my_events',
                    'link_name': 'My Events',
                    'link': reverse('event_cal:my_events')
    })
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['event_cal'].append({
                    'subnav': 'tutoring_form',
                    'link_name': 'Submit Tutoring Form',
                    'link': reverse('event_cal:submit_tutoring_form')
        })
    if Permissions.can_view_calendar_admin(user):
        dropdowns['event_cal'].append({
                    'subnav': 'admin',
                    'link_name': 'Calendar Admin',
                    'link': reverse('event_cal:calendar_admin')
        })

    # outreach: currently no permissions dependence
    dropdowns['outreach'].append({
                    'subnav': 'index',
                    'link_name': 'Outreach',
                    'link': reverse('outreach:index')
    })
    dropdowns['outreach'].append({
                    'subnav': 'mindset',
                    'link_name': 'MindSET',
                    'link': reverse('outreach:mindset')
    })
    dropdowns['outreach'].append({
                    'subnav': 'tutoring',
                    'link_name': 'Tutoring',
                    'link': reverse('outreach:tutoring')
    })
    for event_type in OutreachEventType.get_active():
        dropdowns['outreach'].append({
                    'subnav': event_type.url_stem,
                    'link_name': event_type.get_tab_name(),
                    'link': reverse('outreach:outreach_event',
                                    args=[event_type.url_stem])
        })

    # electees: subnav of member_resources
    electee_dropdowns = []
    if Permissions.can_manage_electee_progress(user):
        electee_dropdowns.append({
                    'subnav': 'groups',
                    'link_name': 'Manage Electee Teams',
                    'link': reverse('electees:edit_electee_groups')
        })
        electee_dropdowns.append({
                    'subnav': 'members',
                    'link_name': 'Edit Electee Teams\' Members',
                    'link': reverse('electees:edit_electee_group_membership')
        })
        electee_dropdowns.append({
                    'subnav': 'points',
                    'link_name': 'Edit Electee Team Points',
                    'link': reverse('electees:edit_electee_group_points')
        })

    # elections: subnav of member_resources, depends on existing elections
    elections = Election.get_current_elections()
    elections_dropdowns = []
    for election in elections:
        if elections.count() > 1:
            elections_dropdowns.append({
                    'subnav': 'list'+unicode(election.id),
                    'link_name': 'Nomination List (%s)' % (
                                        election.term.get_abbreviation()),
                    'link': reverse('elections:list', args=[election.id])
            })
        elections_dropdowns.append({
                    'subnav': 'my_nominations' + unicode(election.id),
                    'link_name': 'My Nominations (%s)' % (
                                        election.term.get_abbreviation()),
                    'link': reverse('elections:my_nominations',
                                    args=[election.id])
        })

    # member_resources
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['member_resources'].append({
                    'subnav': 'member_profiles',
                    'link_name': 'Member Profiles',
                    'link': reverse('member_resources:member_profiles')
        })
    else:
        dropdowns['member_resources'].append({
                    'subnav': 'member_profiles',
                    'link_name': 'Members Resources',
                    'link': reverse('member_resources:index')
        })
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['member_resources'].append({
                    'subnav': 'view_own_progress',
                    'link_name': 'Track My Progress',
                    'link': reverse('member_resources:view_progress',
                                    args=[user.username])
        })
    if Permissions.can_view_more_than_own_progress(user):
        dropdowns['member_resources'].append({
                    'subnav': 'view_others_progress',
                    'link_name': 'View Others\' Progress',
                    'link': reverse('member_resources:view_progress_list')
        })
    if (Permissions.can_manage_misc_reqs(user) or
       Permissions.can_change_requirements(user)):
        dropdowns['member_resources'].append({
                    'subnav': 'misc_reqs',
                    'link_name': 'Membership Admin',
                    'link': reverse('member_resources:view_misc_reqs')
        })
    if hasattr(user, 'userprofile'):
        dropdowns['member_resources'].append({
                    'subnav': 'playground',
                    'link_name': 'TBPlayground',
                    'link': reverse('fora:index')
        })
    dropdowns['member_resources'].append({
                    'subnav': 'history',
                    'link_name': 'Access History',
                    'link': reverse('member_resources:access_history')
    })
    dropdowns['member_resources'].append({
                    'subnav': 'electees',
                    'link_name': 'Electee Resources',
                    'link': reverse('electees:view_electee_groups'),
                    'subsubnav': electee_dropdowns
    })
    dropdowns['member_resources'].append({
                    'subnav': 'elections',
                    'link_name': 'Elections',
                    'link': reverse('elections:index'),
                    'subsubnav': elections_dropdowns
    })
    if Permissions.can_manage_website(user):
        dropdowns['member_resources'].append({
                    'subnav': 'website',
                    'link_name': 'Manage Website',
                    'link': reverse('member_resources:manage_website')
        })

    # corporate
    dropdowns['corporate'].append({
                    'subnav': 'index',
                    'link_name': 'For Companies',
                    'link': reverse('corporate:index')
    })
    dropdowns['corporate'].append({
                    'subnav': 'resumes',
                    'link_name': u'Member R\u00e9sum\u00e9s',
                    'link': reverse('corporate:resumes')
    })

    # publications
    dropdowns['publications'].append({
                    'subnav': 'news',
                    'link_name': 'Blog',
                    'link': reverse('history:index')
    })
    dropdowns['publications'].append({
                    'subnav': 'cornerstone',
                    'link_name': 'The Cornerstone',
                    'link': reverse('history:cornerstone_view')
    })
    dropdowns['publications'].append({
                    'subnav': 'alumni_news',
                    'link_name': 'Alumni Newsletters',
                    'link': reverse('history:alumninews_view')
    })
    if hasattr(user, 'userprofile') and user.userprofile.is_member():
        dropdowns['publications'].append({
                    'subnav': 'project_reports',
                    'link_name': 'Chapter Project Reports',
                    'link': reverse('history:get_project_reports')
        })

    # bookswap
    # currently none
    return dropdowns