home.py 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. else:
  73. return HttpResponse("405 Method Not Allowed")
  74. @PermNeed('pichublog','Admin')
  75. def SysConf(request):
  76. kwvars = {
  77. "request":request,
  78. }
  79. return render_to_response('home/sysconf.home.html',kwvars,RequestContext(request))
  80. @PermNeed('pichublog','Admin')
  81. def SysVarConf(request):
  82. kwvars = {
  83. "request":request,
  84. }
  85. return render_to_response('home/sysconf.var.html',kwvars,RequestContext(request))
  86. @PermNeed('pichublog','Admin')
  87. def SysVarConfAjaxGet(request):
  88. defaultconf = [
  89. ("LeaveMsgReviewSwitch","访客在留言板的留言要求审核再显示",True,"bool"),
  90. ("CommentsReviewSwitch","访客对文章的评论要求审核再显示",True,"bool"),
  91. ("HomePagePost","首页内容来源文章ID","","str"),
  92. ]
  93. conf = []
  94. for i in defaultconf:
  95. conf.append((i[0],i[1],CacheConfGet(cache,i[0],default=i[2]),i[3]))
  96. kwvars = {
  97. "request":request,
  98. "conf":conf
  99. }
  100. return render_to_response('home/sysconf.var.ajax.list.html',kwvars,RequestContext(request))
  101. @PermNeed('pichublog','Admin')
  102. def SysVarConfAjaxEdit(request):
  103. if request.method == "POST":
  104. chkpr=CheckPOST(['key','value'],request.POST.keys())
  105. if not chkpr == "" :
  106. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  107. cache.set(request.POST['key'],request.POST['value'])
  108. return JsonResponse({"code":"200"})
  109. else:
  110. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  111. @PermNeed('pichublog','Admin')
  112. def SysVarConfAjaxToggle(request):
  113. if request.method == "POST":
  114. chkpr=CheckPOST(['key'],request.POST.keys())
  115. if not chkpr == "" :
  116. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  117. c = cache.get(request.POST['key'])
  118. if c == True:
  119. cache.set(request.POST['key'],False)
  120. elif c == False:
  121. cache.set(request.POST['key'],True)
  122. else:
  123. return JsonResponse({"code":"505","errmsg":"Not Boolean Field"})
  124. return JsonResponse({"code":"200"})
  125. else:
  126. return JsonResponse({"code":"400","errmsg":"Invalid Args."})
  127. @PermNeed('pichublog','Admin')
  128. def CategoryList(request):
  129. cto = BlogCategoty.objects.all()
  130. kwvars = {
  131. "request":request,
  132. "cto":cto,
  133. }
  134. return render_to_response('home/sysconf.category.list.html',kwvars,RequestContext(request))
  135. @PermNeed('pichublog','Admin')
  136. def CategoryAdd(request):
  137. if request.method == "POST":
  138. form = BlogCategotyForm(request.POST)
  139. if form.is_valid():
  140. form.save()
  141. return HttpResponseRedirect(reverse('pichublog_catlist'))
  142. else:
  143. form = BlogCategotyForm()
  144. kwvars = {
  145. "request":request,
  146. 'form':form,
  147. "addmode":True,
  148. }
  149. return render_to_response('home/sysconf.category.edit.html',kwvars,RequestContext(request))
  150. @PermNeed('pichublog','Admin')
  151. def CategoryEdit(request,ID):
  152. try:
  153. bco = BlogCategoty.objects.get(id=ID)
  154. except BlogCategoty.DoesNotExist:
  155. messages.error(request,u"<b>编辑分类失败</b><br /><b>详细信息:</b>找不到ID为%s的分类!"%ID)
  156. return HttpResponseRedirect(reverse('pichublog_catlist'))
  157. if request.method == "POST":
  158. form = BlogCategotyForm(request.POST,instance=bco)
  159. if form.is_valid():
  160. form.save()
  161. return HttpResponseRedirect(reverse('pichublog_catlist'))
  162. else:
  163. form = BlogCategotyForm(instance=bco)
  164. kwvars = {
  165. "request":request,
  166. 'form':form,
  167. "addmode":False,
  168. }
  169. return render_to_response('home/sysconf.category.edit.html',kwvars,RequestContext(request))
  170. @PermNeed('pichublog','Admin')
  171. def CategoryDel(request,ID):
  172. try:
  173. bco = BlogCategoty.objects.get(id=ID).delete()
  174. except BlogCategoty.DoesNotExist:
  175. messages.error(request,u"<b>删除分类失败</b><br /><b>详细信息:</b>找不到ID为%s的分类!"%ID)
  176. return HttpResponseRedirect(reverse('pichublog_catlist'))