You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.2 KiB
56 lines
2.2 KiB
# -*- coding: utf-8 -*-
|
|
from django.core.context_processors import csrf
|
|
from django.shortcuts import render_to_response
|
|
from django.template import RequestContext
|
|
from django.views.generic import TemplateView
|
|
from django.conf import settings
|
|
from exposition.models import Exposition
|
|
from theme.models import Theme
|
|
from news.models import News
|
|
from article.models import Article
|
|
from functions.cache_mixin import JitterCacheMixin, CacheMixin
|
|
|
|
from functions.forms import ThemeSearch, PlaceSearch
|
|
|
|
from functions.search_forms import EventSearchForm, ExpositionSearchForm
|
|
from functions.custom_views import ExpoListView
|
|
from accounts.forms import RegistrationCompleteForm
|
|
|
|
def expo_context(request):
|
|
cont = {'theme_search_form': ThemeSearch(), 'expo_catalog': Exposition.catalog,
|
|
'book_aid': settings.BOOKING_AID, 'blogs': Article.objects.main_page_blogs(),
|
|
'news_list': Article.objects.main_page_news()
|
|
}
|
|
|
|
user = request.user
|
|
if not user.is_anonymous() and not user.url:
|
|
cont.update({'reg_complete': RegistrationCompleteForm(instance=user)})
|
|
if not request.GET:
|
|
cont.update({'search_form': ExpositionSearchForm()})
|
|
return cont
|
|
|
|
|
|
class MainPageView(JitterCacheMixin,TemplateView):
|
|
cache_range = settings.CACHE_RANGE
|
|
template_name = 'index.html'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super(MainPageView, self).get_context_data(**kwargs)
|
|
|
|
events = Exposition.objects.language().select_related('country', 'city', 'place').filter(main_page=1)
|
|
exposition_themes = Theme.objects.language().order_by('-main_page').filter(types=Theme.types.exposition)[:6]
|
|
conference_themes = Theme.objects.language().order_by('-main_page').filter(types=Theme.types.conference)[:6]
|
|
|
|
args = {'events': events, 'exposition_themes': exposition_themes, 'conference_themes': conference_themes,
|
|
'search_form': ExpositionSearchForm, 'search_action': '/expo/search/'}
|
|
|
|
context.update(args)
|
|
|
|
return context
|
|
|
|
|
|
class AdvertisingView(TemplateView):
|
|
template_name = 'simple_pages/advertising.html'
|
|
|
|
class AboutView(TemplateView):
|
|
template_name = 'simple_pages/about.html' |