diff --git a/docassemble/InterviewStats/data/questions/stats.yml b/docassemble/InterviewStats/data/questions/stats.yml index 38772a9..f2f5eb7 100644 --- a/docassemble/InterviewStats/data/questions/stats.yml +++ b/docassemble/InterviewStats/data/questions/stats.yml @@ -343,56 +343,6 @@ code: | formatted_data = pd.DataFrame(stats) stats_size = formatted_data.shape[0] --- -# mandatory: True -id: view_data -question: | - Stats for ${interview_title} -subquestion: | - Total submissions: ${ len(stats) } - - % if len(stats): - Group by: - % for col in groupable_columns: - [${col}](${ url_action('show_grouped_data', group_by = col ) }) | - % endfor - - [:file-excel: Make Excel Download](${ url_ask('generate_excel') }) - % endif -fields: - - Filter State: filter_state - datatype: yesno - disable if: - code: | - 'state' not in formatted_data.columns or not possible_states - - Find States that: state_op - datatype: dropdown - show if: filter_state - code: | - [{'eq': "equal"}, - {'ne': "don't equal"}] - - this state: state_to_filter - datatype: dropdown - show if: filter_state - code: | - possible_states - - Filter by Date: filter_date - datatype: yesno - disable if: - code: | - 'modtime' not in formatted_data.columns - - Find submissions that are: date_op - datatype: dropdown - show if: filter_date - code: | - [{'gt': 'after'}, - {'lt': 'before'}, - {'eq': 'the same day as'}] - - this date: date_to_filter - datatype: date - show if: filter_date -continue button field: start_filter -continue button label: Filter ---- event: show_grouped_data code: | my_col = action_argument('group_by') diff --git a/docassemble/InterviewStats/data/questions/test_create_snapshot_data.yml b/docassemble/InterviewStats/data/questions/test_create_snapshot_data.yml index 1df3bbd..a154c25 100644 --- a/docassemble/InterviewStats/data/questions/test_create_snapshot_data.yml +++ b/docassemble/InterviewStats/data/questions/test_create_snapshot_data.yml @@ -22,10 +22,14 @@ code: | # Edit your data here ma_zips = list(set([f'{random.randint(75001, 79999):05}' for _ in range(300)])) \ + list(set([f'{random.randint(1001,2799):05}' for _ in range(300)])) + import datetime + datetimes = [datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None) - datetime.timedelta(days=i) for i in range(30)] def my_generator(): for _ in range(number_of_data_points): yield {'zip': random.choice(ma_zips), 'state': 'MA'} - write_random_user(my_generator()) + def modtime_generator(): + return random.choice(datetimes) + write_random_user(my_generator(), modtime_generator=modtime_generator) elif what_to_do == 'delete': which_to_delete delete_data_from_interview(which_to_delete) diff --git a/docassemble/InterviewStats/generate_test_data.py b/docassemble/InterviewStats/generate_test_data.py index bd57559..a8d80f4 100644 --- a/docassemble/InterviewStats/generate_test_data.py +++ b/docassemble/InterviewStats/generate_test_data.py @@ -14,14 +14,19 @@ __all__ = ["write_random_user", "delete_data_from_interview"] -def write_random_user(data_iterator, filename=None, tags=None): +def write_random_user(data_iterator, filename=None, tags=None, modtime_generator=None): if not filename: filename = get_current_info().get("yaml_filename", None) for data in data_iterator: random_uid = random_alphanumeric(32) - new_entry = JsonStorage( - filename=filename, key=random_uid, data=data, tags=tags, persistent=False - ) + if modtime_generator: + new_entry = JsonStorage( + filename=filename, key=random_uid, data=data, tags=tags, persistent=False, modtime=modtime_generator() + ) + else: + new_entry = JsonStorage( + filename=filename, key=random_uid, data=data, tags=tags, persistent=False + ) JsonDb.add(new_entry) JsonDb.commit()