def series_purity_summary(records, ref_date=None): df = pd.DataFrame(list(records)) result, key = _(), 'datetime_today' if not ref_date: ref_date = datetime.now().date() # today f = df[df[key] == ref_date.isoformat()] result.update(_purity_summary(f, 'd')) # week dates = utils.get_weekdate_bounds(ref_date) f = df[df[key] >= dates[0].isoformat()] f = f[f[key] <= dates[1].isoformat()] result.update(_purity_summary(f, 'w')) # month dates = utils.get_monthdate_bounds(ref_date) f = df[df[key] >= dates[0].isoformat()] f = f[f[key] <= dates[1].isoformat()] result.update(_purity_summary(f, 'm')) # all result.update(_purity_summary(df, '')) return result
def index(): #+========================== #: forms series summary records = [] projects = db.Project.get_all() ref_date = _get_ref_date() wkdate_bounds = get_weekdate_bounds(ref_date) for p in projects: record = _(id=p.id, name=p.name) captures = db.Capture.get_by_project(p.id, paginate=False) if captures.count(): summary = stats.series_purity_summary(captures, ref_date) record.update(summary) records.append(record) #+========================== #: today activity summary activity_summary, activity_stats = [], _() captures = list(db.Capture.get_by_date(ref_date.isoformat(), paginate=False)) if captures: activity_stats = stats.day_activity_stats(captures, ref_date) activity_breakdown = stats.day_activity_breakdown(captures, ref_date) for record in activity_breakdown: activity_summary.append(_(record)) return { 'is_front': True, 'title': 'Capture Summary', 'records': records, 'activity_records': activity_summary, 'activity_stats': activity_stats, 'report_ref_date': ref_date, 'report_weekdate_bounds': wkdate_bounds, }