Guest User

Untitled

a guest
Jul 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from django.http import *
  3. from django.template import *
  4. from django.shortcuts import *
  5. from django.core import serializers
  6. from django.utils import simplejson
  7. from django.views.decorators.csrf import csrf_exempt
  8.  
  9. from apps.widget.models import *
  10. from libs.linki.decorators import check_type
  11.  
  12. blocksMain = ['news','video','blog','poll','radio','day','today','history','metro','afisha','attraction', 'info']
  13.  
  14. @csrf_exempt
  15. @check_type
  16. def indexWidget(request):
  17. blocks = blocksMain
  18. if request.method == 'POST' and request.is_ajax():
  19. if request.POST.getlist('blocks[]'):
  20. json_blocks = request.POST.getlist('blocks[]')
  21. save_blocks = []
  22. for block in json_blocks:
  23. if block in blocksMain:
  24. save_blocks.append(block)
  25. if request.user.is_authenticated():
  26. widget, created = Widget.objects.get_or_create(user = request.user)
  27. widget.blocks = simplejson.dumps(save_blocks)
  28. widget.save()
  29. data = {'error':'no'}
  30. return HttpResponse(simplejson.dumps(data), 'application/javascript')
  31. else:
  32. request.session['blocks'] = simplejson.dumps(save_blocks)
  33. data = {'error':'no'}
  34. return HttpResponse(simplejson.dumps(data), 'application/javascript')
  35. else:
  36. data = {'error':'yes'}
  37. return HttpResponse(simplejson.dumps(data), 'application/javascript')
  38. else:
  39. if request.user.is_authenticated():
  40. try:
  41. widget = Widget.objects.get(user = request.user)
  42. blocks = simplejson.loads(widget.blocks)
  43. except:
  44. try:
  45. blocks = simplejson.loads(request.session['blocks'])
  46. except:
  47. blocks = blocks
  48. else:
  49. try:
  50. blocks = simplejson.loads(request.session['blocks'])
  51. except:
  52. return redirect('/')
  53. trash = []
  54. for block in blocksMain:
  55. if block not in blocks:
  56. trash.append(block)
  57.  
  58. variables = RequestContext(request,{
  59. 'blocks' : _convert(blocks),
  60. 'trash' : _convert(trash),
  61. })
  62. return render_to_response('site/widget/index.html', variables)
  63.  
  64. def _convert(blocks):
  65. return map(lambda x: 'comp/blocks/%s.html' % x, blocks)
Add Comment
Please, Sign In to add comment