Example #1
0
 def _wrapper(request, *args, **kw):
     user = users.get_current_user()
     if user:
         if not self.in_settings:
             settings = WeightTrackerSettings.all().filter('user = '******'/settings/?first')
         return func(request, *args, **kw)
     else:
         return HttpResponseRedirect(users.create_login_url(request.get_full_path()))
Example #2
0
def edit_settings(request):
    user_settings = WeightTrackerSettings.all().filter('user = '******''

    if request.method == 'POST':
        form = SettingsForm(request.POST, instance = user_settings)
        if form.is_valid():
            item = form.save(commit = False)
            item.user = users.get_current_user()
            item.put()
            #BMI will change if the height is changed.
            memcache.delete(BMI_CACHE_KEY())
            return HttpResponseRedirect('/settings/?success')
    else:
        if get_vars.get('first') is not None:
            msg = 'Welcome. Looks like this is your first time here. Please enter some of your details so we can better track your progress.'
        elif get_vars.get('success') is not None:
            msg = 3
        form = SettingsForm(instance = user_settings)

    return render_to_response('settings.html', {'form' : form, 'logout_url' : GET_LOGOUT_URL(), 'msg' : msg})
Example #3
0
def big_graph(request):
    settings = WeightTrackerSettings.all().filter('user = '******'big-graph.html', extra_context = {'units' : settings.units, 'chart_max' : settings.chart_max})
Example #4
0
def get_chart_data(request):
    if request.is_ajax():
        data_dict_json = memcache.get(CHART_DATA_CACHE_KEY())
        if data_dict_json is None:
            all_data = WeightTracker.all().filter('user = '******'date')
            data_dict = {'data' : map(lambda entry : (str(entry.date), entry.weight), all_data), 'chart_max' : WeightTrackerSettings.all().filter('user ='******'application/json')
    else:
        return HttpResponseForbidden('You are not allowed to view this URL')
Example #5
0
            return_msg['msg'] = 'Data was saved succesfully'
            return_msg['weight'] = str(tracker.weight)
        except ValueError, e:
            return_msg['error'] = 1
            return_msg['msg'] = 'The date was not in the correct format'
        
        #Delete all cache data whenever a new entry is made
        memcache.delete_multi([CHART_DATA_CACHE_KEY(), BMI_CACHE_KEY()])
        if request.is_ajax():
            return HttpResponse(simplejson.dumps(return_msg), mimetype = 'application/json')
        else:
            return HttpResponseRedirect('/')
    else:
        all_data = WeightTracker.all().filter('user = '******'-date')
        data_dict = {'data' : all_data, 'logout_url' : GET_LOGOUT_URL(), 'tracker_form' : TrackerForm()}
        settings = WeightTrackerSettings.all().filter('user = '******'cause that decorator is not called for this view.
        if not settings:
            return HttpResponseRedirect('/settings/?first')
        data_dict['units'] = settings.units
        data_dict['bmi'] = get_bmi(settings, all_data.get())
        data_dict['days_left'], data_dict['weight_left'], data_dict['req_rate'], data_dict['cur_rate'] = get_weight_time_lost(settings, all_data)

        #Need to put this try/except block in case no entries for 'this' user have been created
        try:
            if all_data.get().date != datetime.date.today():
                data_dict['today'] = datetime.date.today()
        except AttributeError, e:
            data_dict['today'] = datetime.date.today()
        return render_to_response('index.html', data_dict)