1
from django.http import HttpResponse
2
import settings,os
3
from django.shortcuts import render_to_response
4
from django.template import RequestContext
5
from django.utils.encoding import *
6
from django.template.loader import render_to_string
7
8
def create(request):
9
10
    tree={}
11
    this_dir=[]
12
    for dirname, dirs, files in os.walk(settings.GALLERY_ROOT):       
13
        pdir = dirname.replace(settings.GALLERY_ROOT,"")
14
        
15
        if len(pdir)!=0:
16
            sep=pdir.split(os.path.sep)
17
            tmptree=tree
18
            for dir in sep:
19
                if not dir in tmptree:
20
                    tmptree[dir]={}
21
                tmptree=tmptree[dir]
22
    
23
    def makeItem(dir,array,path=''):
24
        out=[]
25
        if len(array)!=0:
26
            for subdir in array:
27
                out.append(makeItem(subdir,array[subdir],os.path.join(path,dir)))
28
29
        return render_to_string('menu/item.html',{'dir':dir,'subdir':''.join(out),'path':os.path.join(path,dir)})
30
31
    out=[]
32
    for dir in tree.keys():
33
        if len(tree[dir])!=0:
34
            out.append(makeItem(dir,tree[dir]))
35
36
    return render_to_string('menu/menu.html' , {'tree':''.join(out)}, context_instance=RequestContext(request), )
37
    return render_to_response('menu/menu.html' , {'tree':''.join(out)}, context_instance=RequestContext(request), )
38
39
40
class MyMiddleware(object):
41
    #def process_view(self, request, view_func, view_args, view_kwargs):
42
    def process_request(self, request):
43
        request.menu=create(request)
44
        return None
45
46
47
def ContextProcesor(request):
48
    if hasattr(request, 'menu'):
49
        return {'MENU': request.menu }
50
    else:
51
        return {'MENU': {} }