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()))
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})
def big_graph(request): settings = WeightTrackerSettings.all().filter('user = '******'big-graph.html', extra_context = {'units' : settings.units, 'chart_max' : settings.chart_max})
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')
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)