home.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. # -*- coding: UTF-8 -*-
  2. from django.http import HttpResponse,HttpResponseRedirect
  3. from django.conf import settings
  4. from django.shortcuts import render_to_response,RequestContext
  5. #from django_hosts.resolvers import reverse
  6. from django.core.cache import get_cache
  7. from django.core.urlresolvers import reverse
  8. from django.contrib import messages
  9. from siteutil.DataConvert import str2int,CheckPOST,str2long,BigIntUniqueID,CacheConfGet
  10. from siteutil.CommonPaginator import SelfPaginator
  11. from zlogin.common.JsonResponse import JsonResponse
  12. from zlogin.decorators import login_detect,login_required,PermNeed
  13. from zlogin import zlauth
  14. from zlogin.zlauth import GetUser,PermCheck
  15. from zlogin.captcha_app import CheckCaptcha,OutsiteCaptchaURL
  16. from pichublog.models import *
  17. from pichublog.forms import *
  18. cache = get_cache("pichublog")
  19. @login_detect()
  20. def Home(request):
  21. kwargs = {"request":request}
  22. return render_to_response('home/home.html',kwargs,RequestContext(request))
  23. def LeaveMsgPage(request):
  24. kwargs = {"request":request,'OutsiteCaptchaURL':OutsiteCaptchaURL(request),
  25. "LeaveMsgReviewSwitch":CacheConfGet(cache,'LeaveMsgReviewSwitch',default=True)}
  26. return render_to_response('home/leave.msg.html',kwargs,RequestContext(request))
  27. def AjaxShowLeaveMsg(request):
  28. thisuser = GetUser(request)
  29. owner = PermCheck(request.auth,'pichublog','Admin')
  30. if owner:
  31. cmt = LeaveMsg.objects.all().order_by('-time')
  32. else:
  33. cmt = LeaveMsg.objects.filter(reviewed=True).order_by('-time')
  34. lPage = SelfPaginator(request,cmt,20)
  35. kwvars = {
  36. 'request':request,
  37. 'owner':owner,
  38. 'lPage':lPage,
  39. 'AjaxPaginatorID':'cmt',
  40. }
  41. return render_to_response('home/ajax.leavemsg.html',kwvars,RequestContext(request))
  42. def LeaveMsgAdd(request):
  43. if request.method == "POST":
  44. if request.auth.islogin:
  45. chkpr=CheckPOST(['content'],request.POST.keys())
  46. if not chkpr == "" :
  47. return JsonResponse({"code":400,"msg":"Error Args."})
  48. else:
  49. chkpr=CheckPOST(['content','nick','website','mail','title'],request.POST.keys())
  50. if not chkpr == "" :
  51. return JsonResponse({"code":400,"msg":"Error Args."})
  52. if request.auth.islogin:
  53. content = request.POST.get('content')
  54. title = request.POST.get('title')
  55. stk = request.auth.cookie.get('zl2_token')
  56. LeaveMsg.objects.create(cmid=BigIntUniqueID(),title=title,anonymou=False,stoken=stk,fromuser=request.auth.user,content=content,reviewed=True)
  57. return HttpResponseRedirect(reverse('pichublog_msgboard'))
  58. else:
  59. capt = request.POST.get('captcha')
  60. if not CheckCaptcha(request,capt):
  61. messages.error(request,u"<b>验证码错误</b>")
  62. return HttpResponseRedirect(reverse('pichublog_msgboard'))
  63. content = request.POST.get('content')
  64. nick = request.POST.get('nick')
  65. mail = request.POST.get('mail')
  66. web = request.POST.get('website')
  67. title = request.POST.get('title')
  68. stk = request.auth.cookie.get('zl2_token')
  69. rws = not CacheConfGet(cache,'LeaveMsgReviewSwitch',default=True)
  70. LeaveMsg.objects.create(cmid=BigIntUniqueID(),title=title,anonymou=True,stoken=stk,fromuser=nick,mail=mail,website=web,content=content,reviewed=rws)
  71. return HttpResponseRedirect(reverse('pichublog_msgboard'))
  72. @PermNeed('pichublog','Admin')
  73. def SysConf(request):
  74. kwvars = {
  75. "request":request,
  76. }
  77. return render_to_response('home/sysconf.home.html',kwvars,RequestContext(request))
  78. @PermNeed('pichublog','Admin')
  79. def SysVarConf(request):
  80. kwvars = {
  81. "request":request,
  82. }
  83. return render_to_response('home/sysconf.var.html',kwvars,RequestContext(request))
  84. @PermNeed('pichublog','Admin')
  85. def SysVarConfAjaxGet(request):
  86. defaultconf = [
  87. ("LeaveMsgReviewSwitch","访客评论要求审核再显示",True,"bool"),
  88. ("HomePagePost","首页内容来源文章ID","","str"),
  89. ]
  90. conf = []
  91. for i in defaultconf:
  92. conf.append((i[0],i[1],CacheConfGet(cache,i[0],default=i[2]),i[3]))
  93. kwvars = {
  94. "request":request,
  95. "conf":conf
  96. }
  97. return render_to_response('home/sysconf.var.ajax.list.html',kwvars,RequestContext(request))
  98. @PermNeed('pichublog','Admin')
  99. def SysVarConfAjaxEdit(request):
  100. if request.method == "POST":
  101. chkpr=CheckPOST(['key','value'],request.POST.keys())
  102. if not chkpr == "" :
  103. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  104. cache.set(request.POST['key'],request.POST['value'])
  105. return JsonResponse({"code":"200"})
  106. else:
  107. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  108. @PermNeed('pichublog','Admin')
  109. def SysVarConfAjaxToggle(request):
  110. if request.method == "POST":
  111. chkpr=CheckPOST(['key'],request.POST.keys())
  112. if not chkpr == "" :
  113. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  114. c = cache.get(request.POST['key'])
  115. if c == True:
  116. cache.set(request.POST['key'],False)
  117. elif c == False:
  118. cache.set(request.POST['key'],True)
  119. else:
  120. return JsonResponse({"code":"505","errmsg":"Not Boolean Field"})
  121. return JsonResponse({"code":"200"})
  122. else:
  123. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  124. @PermNeed('pichublog','Admin')
  125. def CategoryList(request):
  126. cto = BlogCategoty.objects.all()
  127. kwvars = {
  128. "request":request,
  129. "cto":cto,
  130. }
  131. return render_to_response('home/sysconf.category.list.html',kwvars,RequestContext(request))
  132. @PermNeed('pichublog','Admin')
  133. def CategoryAdd(request):
  134. if request.method == "POST":
  135. form = BlogCategotyForm(request.POST)
  136. if form.is_valid():
  137. form.save()
  138. return HttpResponseRedirect(reverse('pichublog_catlist'))
  139. else:
  140. form = BlogCategotyForm()
  141. kwvars = {
  142. "request":request,
  143. 'form':form,
  144. "addmode":True,
  145. }
  146. return render_to_response('home/sysconf.category.edit.html',kwvars,RequestContext(request))
  147. @PermNeed('pichublog','Admin')
  148. def CategoryEdit(request,ID):
  149. try:
  150. bco = BlogCategoty.objects.get(id=ID)
  151. except BlogCategoty.DoesNotExist:
  152. messages.error(request,u"<b>编辑分类失败</b><br /><b>详细信息:</b>找不到ID为%s的分类!"%ID)
  153. return HttpResponseRedirect(reverse('pichublog_catlist'))
  154. if request.method == "POST":
  155. form = BlogCategotyForm(request.POST,instance=bco)
  156. if form.is_valid():
  157. form.save()
  158. return HttpResponseRedirect(reverse('pichublog_catlist'))
  159. else:
  160. form = BlogCategotyForm(instance=bco)
  161. kwvars = {
  162. "request":request,
  163. 'form':form,
  164. "addmode":False,
  165. }
  166. return render_to_response('home/sysconf.category.edit.html',kwvars,RequestContext(request))
  167. @PermNeed('pichublog','Admin')
  168. def CategoryDel(request,ID):
  169. try:
  170. bco = BlogCategoty.objects.get(id=ID).delete()
  171. except BlogCategoty.DoesNotExist:
  172. messages.error(request,u"<b>删除分类失败</b><br /><b>详细信息:</b>找不到ID为%s的分类!"%ID)
  173. return HttpResponseRedirect(reverse('pichublog_catlist'))