<!-- 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>


            {% block left_sidebar_base %}

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