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.
 
 
 
 
 
 

70 lines
2.5 KiB

# -*- coding: utf-8 -*-
import json
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.core.context_processors import csrf
from forms import MainPageArticle, MainPageNews, MainPageThemes
def handle_form(request, Form):
if request.POST:
form = Form(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/admin/settings/main-page/')
else:
return HttpResponseRedirect('/admin/settings/main-page/')
return HttpResponseRedirect('/admin/settings/main-page/')
def handle_news(request):
return handle_form(request, MainPageNews)
def handle_articles(request):
return handle_form(request, MainPageArticle)
def handle_themes(request):
return handle_form(request, MainPageThemes)
from exposition.models import Exposition
from conference.models import Conference
from seminar.models import Seminar
from webinar.models import Webinar
from theme.models import Theme
from article.models import Article
import datetime
def main_page(request):
now = datetime.datetime.now()
expositions = Exposition.objects.filter(main_page=1)
conferences = Conference.objects.filter(main_page=1)
seminars = Seminar.objects.filter(main_page=1)
webinars = Webinar.objects.filter(main_page=1)
events = {'expositions':expositions, 'conferences': conferences,
'seminars':seminars, 'webinars': webinars}
exposition_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.exposition)
confrence_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.conference)
seminar_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.seminar)
news = Article.objects.news().filter(main_page=1)
blogs = Article.objects.blogs().filter(main_page=1)
themes = {'exposition_themes': exposition_themes, 'conference_themes': confrence_themes,
'seminar_themes':seminar_themes}
news_form = MainPageNews(initial={'main_page_news':','.join(['%d'%item.id for item in news])})
a = [{'id': int(item.id), 'text': item.main_title} for item in news]
news_form.fields['main_page_news'].widget.attrs['data-init-text'] = json.dumps(a)
article_form = MainPageArticle(initial={'article' : blogs})
args = { 'theme_form' : MainPageThemes(initial=themes),
'article_form' : article_form,
'news_form' : news_form}
args.update(csrf(request))
return render_to_response('admin/settings/main_page.html', args)