def __load_data__(self): """Query the user data""" email = self.__user.email measurements = Measurement.query.filter_by(email=email).all() tSTART = DateUtil.date_to_datetime(config.DT_STRT) tSTOP = DateUtil.date_to_datetime(config.DT_STOP) measurements = [ m for m in Measurement.query.filter_by(email=email).all() if m.timestamp >= tSTART and m.timestamp <= tSTOP ] weights = np.array([]) dates = np.array([]) if len(measurements): dates = np.array([m.timestamp for m in measurements]) weights = np.array([m.weight for m in measurements]) weights = np.array([x for _, x in sorted(zip(dates, weights))]) dates = DateUtil.convert_datetimes(np.array(sorted(dates)), convert_to_date=True) days = np.array( [td.total_seconds() / 3600. / 24. for td in dates - dates[0]]) self.__x_dates = dates self.__x_days = days self.__y_data = weights yerr = getattr(config, 'WT_ERROR', None) if yerr is not None: self.__y_err = np.ones_like(self.__y_data) * yerr else: self.do_errors = False
def user(username): tSTART = DateUtil.date_to_datetime(cfg.DT_STRT) tSTOP = DateUtil.date_to_datetime(cfg.DT_STOP) measurements = [ m for m in Measurement.query.filter_by(email=current_user.email).all() if m.timestamp >= tSTART and m.timestamp <= tSTOP ] ianauser = ana.AnaData(current_user) fname = plot_user("{}-plot.png".format(current_user.first_name.lower()), ianauser) date = cfg.DT_STOP proj_weight, proj_weight_err = ianauser.get_projected_weight(date) return render_template('user.html', measurements=measurements, title="{}'s Page".format(current_user.first_name), fname=fname, user=ianauser, date=date, proj_weight=proj_weight, proj_weight_err=proj_weight_err, image=get_image())