"""pycon system views
"""
from pycon import core
from django import apps
from django.conf import settings
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext

app_list = []
for mod in apps.INSTALLED_APPS:
    if mod.__doc__:
        name = a or mod.__name__
        title = name
        desc = mod.__doc__
        dd = desc.split('\n')
        if len(dd) > 2 and dd[0].strip() and not dd[1].strip():
            title = dd[0].strip()
            desc = "\n".join(dd[2:])
        app_list.append({'name': name, 'title': title, 'desc': desc})

# It won't change, so convert it to a tuple to save memory.
app_list = tuple(app_list)

def appindex(request):
    return render_to_response("pycon/appindex.html",
        { 'app_list': app_list },
        context_instance=RequestContext(request) )

OPTIONS = ['minimal_view']

def set_option(request):
    if (request.method == 'GET' and
        'HTTP_REFERER' in request.META and
        request.META['HTTP_REFERER']):
        base = request.META['HTTP_REFERER'].split('/', 3)
        if len(base) == 4:
            rel = '/' + base[3]
            if rel.startswith(settings.ROOT_URL):
                for opt in OPTIONS:
                    if request.GET.get(opt, None) is None: continue
                    request.session[opt] = bool(int(request.GET[opt]))
                return HttpResponseRedirect(rel)        
    return HttpResponseRedirect('/')