17 |
17 |
import json
|
18 |
18 |
import urllib
|
19 |
19 |
|
|
20 |
from django.conf import settings
|
20 |
21 |
from django.shortcuts import resolve_url
|
21 |
22 |
from django.core.urlresolvers import reverse
|
22 |
|
from django.views.generic import TemplateView, View
|
|
23 |
from django.views.generic import ListView, View
|
23 |
24 |
from django.http import HttpResponse, HttpResponseRedirect
|
24 |
25 |
from django.utils.translation import ugettext as _
|
25 |
26 |
from django.contrib.auth import logout as auth_logout
|
... | ... | |
54 |
55 |
return redirect_to_login(request.build_absolute_uri())
|
55 |
56 |
|
56 |
57 |
|
57 |
|
class HomepageView(AuthorizationMixin, TemplateView):
|
|
58 |
class HomepageView(AuthorizationMixin, ListView):
|
58 |
59 |
template_name = 'bijoe/homepage.html'
|
|
60 |
model = Visualization
|
|
61 |
context_object_name = 'visualizations'
|
|
62 |
paginate_by = settings.PAGE_LENGTH
|
59 |
63 |
|
60 |
64 |
def get_context_data(self, **kwargs):
|
61 |
65 |
ctx = super(HomepageView, self).get_context_data(**kwargs)
|
62 |
|
ctx['visualizations'] = Visualization.all_visualizations()
|
63 |
66 |
ctx['warehouses'] = sorted((Engine(w) for w in get_warehouses()),
|
64 |
67 |
key=lambda w: w.label)
|
|
68 |
ctx['request'] = self.request
|
65 |
69 |
return ctx
|
66 |
70 |
|
|
71 |
def get_queryset(self):
|
|
72 |
return self.model.all_visualizations()
|
|
73 |
|
67 |
74 |
def get(self, request, *args, **kwargs):
|
68 |
|
ctx = self.get_context_data()
|
69 |
|
if not len(ctx['visualizations']) and len(ctx['warehouses']) == 1:
|
70 |
|
return HttpResponseRedirect(reverse('warehouse', kwargs={'warehouse': ctx['warehouses'][0].name}),
|
|
75 |
warehouses = get_warehouses()
|
|
76 |
if not len(self.get_queryset()) and len(warehouses) == 1:
|
|
77 |
engine = Engine(warehouses[0])
|
|
78 |
return HttpResponseRedirect(reverse('warehouse', kwargs={'warehouse': engine.name}),
|
71 |
79 |
status=307)
|
72 |
80 |
return super(HomepageView, self).get(request, *args, **kwargs)
|
73 |
81 |
|