Example #1
0
def index(request, year=None, month=None, day=None):
    """
    Diet index may be in three distinct states:
     * there's no diet introduced yet
     * there's a diet, but the starting day haven't been choosen
     * there's a diet and the starting day has been choosen  
    """
    try:

        today = get_today()
        requested_day = datetime.date(int(year),int(month),int(day)) if ( year or month or day ) else today
        yesterday = requested_day - datetime.timedelta(days=1)
        tommorow = requested_day + datetime.timedelta(days=1)
        
        diet = Diet.objects.get(user=request.user)        

        if diet.start_date: # there's a diet and the starting day has been choosen
            
            days = [ diet.current_day_plan(requested_day + datetime.timedelta(days=i)) for i in range(3) ]
            no_diet = not any(days)
            
            return direct_to_template(request, 'diet/index.html', locals())
        else:   # there's a diet, but the starting day haven't been choosen
            
            days = diet.dayplan_set.all()
            return direct_to_template(request, 'diet/view.html', locals())
    
    except Diet.DoesNotExist: #@UndefinedVariable  # there's no diet introduced yet
        return direct_to_template(request, 'diet/no-diet-yet.html')
Example #2
0
def index(request, mode = 'week'):

    today = get_today()
    
    if mode == 'week':
        graph_length = WEEK_LENGTH
    elif mode == 'month':
        graph_length = MONTH_LENGTH
    else:
        '''
        Wyƛwietlamy albo ostatnie 31 dni albo okres od rejestracji do dzisiaj
        '''
        date_joined = request.user.date_joined
        graph_length = (today - datetime.date(date_joined.year, date_joined.month, date_joined.day)).days
        graph_length = max(MONTH_LENGTH, graph_length)

    return direct_to_template(request, 'graphs/index.html', locals())
Example #3
0
def agregated_meal_data(request, mode = 'day', template_name = 'index.html'):
    """
    shows shooping list for either X next days from ongoing diet 
    or X first days from a not started diet
    """
    meals = []
    today = get_today()
    diet = get_object_or_404(Diet, user=request.user)
    day_range = 1 if mode is None or mode == 'day' else 7
    
    if diet.start_date: # there's a diet and the starting day has been choosen
        days = [ diet.current_day_plan(today + datetime.timedelta(days=i)) for i in range(day_range) if diet.current_day_plan(today + datetime.timedelta(days=i)) is not None ]
    else:   # there's a diet, but the starting day haven't been choosen
        days = diet.dayplan_set.filter(sequence_no__range=(1,day_range))

    for d in days: meals.extend(d.meal_set.all())
    shooping_list, shopping_list_other = agregate_and_preprocess_meal_data(meals)

    return direct_to_template(request, 'shopping/%s' % template_name, locals())    
Example #4
0
def index(request, year=None, month=None, day=None):
    
    try:

        diet = None
        day_plan = None

        today = get_today()
        requested_day = datetime.date(int(year),int(month),int(day)) if ( year or month or day ) else today
        if requested_day > today: raise DieterException("Can't show future")
        
        profile = request.user.get_profile()
        
        try:
            diet = Diet.objects.get(user=request.user)
            day_plan = diet.current_day_plan(requested_day)
            days_left = (diet.end_day() - today).days
        except Diet.DoesNotExist: #@UndefinedVariable
            pass
        
    
        yesterday = requested_day - datetime.timedelta(days=1)
        tommorow = requested_day + datetime.timedelta(days=1) if requested_day < today else None
        
        current_weight = request.user.get_profile().get_user_data(requested_day).weight
        
        diff_weight_1_week = profile.get_diff(today,"weight",1,"week")
        diff_bmi_1_week = profile.get_diff(today,"bmi",1,"week")
        diff_weight_1_month = profile.get_diff(today,"weight",1,"month")
        diff_bmi_1_month = profile.get_diff(today,"bmi",1,"month")
        
        return direct_to_template(request, "dashboard/index.html",
                                  extra_context = locals())
        
    except ValueError:
        return redirect_to(request, reverse('dashboard'))
    except DieterException:
        return redirect_to(request, reverse('dashboard'))