def create_archive_list(_query):
    """
    given a sorted queryset, return a list in the format:
    
    archive_list = [{'2009': [{'December': ['entry1', 'entry2']},
                              {'January': ['entry3', 'entry4']}
                              ]
                     },
                    
                    {'2008': [{'January': ['entry5', 'entry6']},
                              ]
                     }
                    ]
    """

    archive_list = []
    tmp_months_list = []
    tmp_year_list = []

    for item in _query:
        if item.pub_date.year not in tmp_year_list:
            tmp_year_list.append(item.pub_date.year)
            tmp_dict = {}
            tmp_dict[item.pub_date.year] = []
            archive_list.append(tmp_dict)
        else:
            pass

    for entry in _query:
        for item in archive_list:
            _year = entry.pub_date.year
            if _year in item:
                _tmp_month = entry.pub_date.strftime("%B")
                # make a dictionary with the month name as a key and an empty list as a value
                tmp_dict = {}
                tmp_dict[_tmp_month] = []

                if tmp_dict not in item[_year]:
                    item[_year].append(tmp_dict)
                
                    
    for entry in _query:
        # dict in list
        for item in archive_list:
            # year of entry
            _year = entry.pub_date.year
            if _year in item:
                _year_list = item[_year]
                for _dict_month in _year_list:
                    _tmp_month = entry.pub_date.strftime("%B")
                    if _tmp_month in _dict_month:
                        _dict_month[_tmp_month].append(entry)
                        
    return archive_list


def very_archive(request):
    query = Entry.objects.all().order_by('-pub_date')
    object_years_dict = create_archive_list(query)
    
    return render_to_response('ideas/ideas_index.html', {'archive_list': object_years_dict})