<!-- Left side column. contains the sidebar -->
<aside class="main-sidebar" id="globalmenu">
    <!-- sidebar: style can be found in sidebar.less -->
    <section class="sidebar">
        <!-- sidebar menu: : style can be found in sidebar.less -->
        <ul class="sidebar-menu">
            <li class="header">MAIN NAVIGATION</li>
            {% url "home" as  home_url %}
            <li {% if request.get_full_path == home_url %} class="active" {% endif %} ><a href='{% url "home" %}'><i class="fa fa-home fa-fw"></i><span>Home</span></a></li>
            {% url "projects:projects_list" as  projects_list_url %}
            <li {% if request.get_full_path == projects_list_url %} class="active" {% endif %}><a href='{% url "projects:projects_list" %}'><i class="fa fa-th-list fa-fw"></i><span>Projects</span></a></li>
            {% url "vim:list" as  vims_list_url %}
            <li {% if request.get_full_path == vims_list_url %} class="active" {% endif %}><a href='{% url "vim:list" %}'><i class="fa fa-th-list fa-fw"></i><span>VIM Accounts</span></a></li>



            {% block left_sidebar_base %}

            {% endblock %}
        </ul>
    </section>
    <!-- /.sidebar -->
</aside>
