Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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('')
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
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)