Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from django.http import *
- from django.template import *
- from django.shortcuts import *
- from django.core import serializers
- from django.utils import simplejson
- from django.views.decorators.csrf import csrf_exempt
- from apps.widget.models import *
- from libs.linki.decorators import check_type
- blocksMain = ['news','video','blog','poll','radio','day','today','history','metro','afisha','attraction', 'info']
- @csrf_exempt
- @check_type
- def indexWidget(request):
- blocks = blocksMain
- if request.method == 'POST' and request.is_ajax():
- if request.POST.getlist('blocks[]'):
- json_blocks = request.POST.getlist('blocks[]')
- save_blocks = []
- for block in json_blocks:
- if block in blocksMain:
- save_blocks.append(block)
- if request.user.is_authenticated():
- widget, created = Widget.objects.get_or_create(user = request.user)
- widget.blocks = simplejson.dumps(save_blocks)
- widget.save()
- data = {'error':'no'}
- return HttpResponse(simplejson.dumps(data), 'application/javascript')
- else:
- request.session['blocks'] = simplejson.dumps(save_blocks)
- data = {'error':'no'}
- return HttpResponse(simplejson.dumps(data), 'application/javascript')
- else:
- data = {'error':'yes'}
- return HttpResponse(simplejson.dumps(data), 'application/javascript')
- else:
- if request.user.is_authenticated():
- try:
- widget = Widget.objects.get(user = request.user)
- blocks = simplejson.loads(widget.blocks)
- except:
- try:
- blocks = simplejson.loads(request.session['blocks'])
- except:
- blocks = blocks
- else:
- try:
- blocks = simplejson.loads(request.session['blocks'])
- except:
- return redirect('/')
- trash = []
- for block in blocksMain:
- if block not in blocks:
- trash.append(block)
- variables = RequestContext(request,{
- 'blocks' : _convert(blocks),
- 'trash' : _convert(trash),
- })
- return render_to_response('site/widget/index.html', variables)
- def _convert(blocks):
- return map(lambda x: 'comp/blocks/%s.html' % x, blocks)
Add Comment
Please, Sign In to add comment