def daily_cookbook(request, cid, template_name="kinger/daily_activity.html"): """明日食谱详情页""" tommorrow = datetime.datetime.now() + datetime.timedelta(days = 1) user = request.user if not is_vip(user): return render(request, "403.html") if cid == '0': cookbook =None today = tommorrow.date() else: cookbook = get_object_or_404(Cookbook, pk=cid) today = cookbook.date today_book = cookbook try: group = user.student.group except: return render(request, "403.html") school = group.school mentors = Mentor.objects.all() q = Q(group=group) | Q(school=school) cookbooks = Cookbook.objects.filter(q).exclude(breakfast='',light_breakfast='', lunch='',light_lunch='',dinner='',light_dinner='').order_by('-date') #禁止访问其他用户数据 if today_book: try: cookbooks.get(pk=cid) except ObjectDoesNotExist: return render(request, "403.html") helpers.mark_cookbook_as_read(request,today_book)#标记当前用户食谱数据为已读 add_daily_record_visitor(user,today_book)#增加用户访问记录 effective_date = [str(x.date + datetime.timedelta(days = -1) ) for x in cookbooks] current_date = datetime.datetime.now().date() effective_date.append(str(current_date)) try: lastday_book =cookbooks.filter(date__lt=today)[0] except: lastday_book = None tommory = datetime.datetime.now() + datetime.timedelta(days = 1) tommory_date = tommory.date() try: nextday_book =cookbooks.filter(date__gt=today,date__lte=tommory_date).reverse()[0] except: nextday_book = None current_book = get_daily_cook_books(user,datetime.datetime.now()) if not nextday_book and not current_book and today_book: nextday_book = {"id":0} book_item = cook_book_item(today_book) today = today + datetime.timedelta(days = -1) ctx = {} ctx.update({"effective_date":effective_date,"book_item":book_item,"cookbooks": cookbooks, "today_book": today_book,"tommorrow":tommorrow, \ "yesterday": lastday_book, "next_day": nextday_book,"mentors":mentors, "ty":"cookbook","today":today,"current_date":current_date}) return render(request, template_name, ctx)
def mark_cookbook_as_read(request): cid = request.POST.get('cookbook',0) try: cookbook = get_object_or_404(Cookbook, pk=cid) except: cookbook = None if cookbook: helpers.mark_cookbook_as_read(request,cookbook) return HttpResponse('')
def read(self, request): """ 获取某个食谱的详情 ``GET`` param id:某个食谱的 id param date:日期 param class_id:班级id """ params = request.GET id = params.get("id") date = params.get("date") class_id = params.get("class_id") if id: try: cookbook = Cookbook.objects.get(pk=id) helpers.mark_cookbook_as_read(request,cookbook) return cookbook except Cookbook.DoesNotExist: return rc.NOT_HERE if not date and not class_id: return rc.bad_request( "date or class_id is requierd") try: group = Group.objects.get(pk=class_id) except Group.DoesNotExist: return rc.not_here("froup object is not exist") #date = datetime.datetime.strptime(date,"%Y-%m-%d") cookbooks = Cookbook.objects.filter(date=date,group=group) if cookbooks: cookbook = cookbooks[0] helpers.mark_cookbook_as_read(request,cookbook) else: cookbook = '' return cookbook
def daily_cookbook(request, template_name="kinger/revision/axis_cookbook.html"): """明日食谱详情页""" date = request.POST.get('date','') id = request.POST.get('id',0) user = request.user if not is_vip(user): return render(request, "403.html") try: group = user.student.group except: return render(request, "404.html") school = group.school q = Q(group=group) | Q(school=school) if not id: tommory = datetime.datetime.strptime(date,"%Y-%m-%d") + datetime.timedelta(days = 1) q_date = Q(date__startswith=tommory.date()) cookbooks = Cookbook.objects.filter(q & q_date).order_by('group','-date') id = cookbooks[0].id if cookbooks else None tommorrow = datetime.datetime.now() + datetime.timedelta(days = 1) current_day = (datetime.datetime.strptime(date,"%Y-%m-%d") + datetime.timedelta(days = 1)).date() if date else tommorrow.date() if not id: cookbook =None today = current_day else: cookbook = get_object_or_404(Cookbook, pk=id) today = cookbook.date today_book = cookbook mentors = Mentor.objects.all() q = Q(group=group) | Q(school=school) cookbooks = Cookbook.objects.filter(q).exclude(breakfast='',light_breakfast='', lunch='',light_lunch='',dinner='',light_dinner='').order_by('-date') #禁止访问其他用户数据 if today_book: try: cookbooks.get(pk=id) except ObjectDoesNotExist: return render(request, "403.html") helpers.mark_cookbook_as_read(request,today_book)#标记当前用户食谱数据为已读 helpers.add_daily_record_visitor(user,today_book)#增加用户访问记录 effective_date = [str(x.date + datetime.timedelta(days = -1) ) for x in cookbooks if check_user_cookbook_by_date(user,x.date)] current_date = current_day effective_date.append(str(current_date)) try: lastday_book =cookbooks.filter(date__lt=today)[0] except: lastday_book = None tommory = datetime.datetime.now() + datetime.timedelta(days = 1) tommory_date = tommory.date() try: nextday_book =cookbooks.filter(date__gt=today,date__lte=tommory_date).reverse()[0] except: nextday_book = None current_book = get_daily_cook_books(user,datetime.datetime.now()) book_item = cook_book_item(today_book) book_item_pre = cook_book_item(lastday_book) book_item_next = cook_book_item(nextday_book) if not nextday_book and not current_book and today_book: nextday_book = {"id":0} today = today + datetime.timedelta(days = -1) ctx = {} ctx.update({"effective_date":effective_date,"book_item":book_item,"cookbooks": cookbooks,\ "today_book": today_book,"tommorrow":tommorrow, "yesterday": lastday_book,\ "next_day": nextday_book,"mentors":mentors, "ty":"cookbook","today":today,\ "current_date":current_date,'book_item_pre':book_item_pre,'book_item_next':book_item_next}) data = render(request, template_name,ctx) con=data.content return ajax_ok('成功',con)