Closed shankari closed 9 months ago
This is super weird because the demographics is read the same way as the other values
elif tab == 'tab-demographics-datatable':
data = store_demographics["data"]
columns = list(data[0].keys())
has_perm = perm_utils.has_permission('data_demographics')
confirming that this is not a problem on staging
so the data is filled in here very straightforwardly
@app.callback(
Output("store-demographics", "data"),
Input('date-picker', 'start_date'),
Input('date-picker', 'end_date'),
)
def update_store_demographics(start_date, end_date):
df = query_demographics()
records = df.to_dict("records")
store = {
"data": records,
"length": len(records),
}
return store
Although it is initialized without the data:
field
dcc.Store(id='store-demographics', data= {}),
My guess is that:
If it is (2), the fix is simply to initialize with {"data": pd.DataFrame()}
instead
Aha! This is a regression caused by https://github.com/e-mission/op-admin-dashboard/pull/83
That prints out a set of hardcoded entries, including Which_one_below_describe_you_b
However, the custom onboarding survey used in this partner's project does not have that column.
So we get
The above exception was the direct cause of the following exception:
--
Traceback (most recent call last):
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/flask/app.py", line 2529, in wsgi_app
response = self.full_dispatch_request()
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/flask/app.py", line 1825, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
rv = self.dispatch_request()
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/dash/dash.py", line 1283, in dispatch
ctx.run(
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/dash/_callback.py", line 450, in add_context
output_value = func(*func_args, **func_kwargs) # %% callback invoked %%
File "/usr/src/app/app_sidebar_collapsible.py", line 165, in update_store_demographics
df = query_demographics()
File "/usr/src/app/utils/db_utils.py", line 124, in query_demographics
logging.debug("The data in column is %s" %df["Which_one_below_describe_you_b"])
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/pandas/core/frame.py", line 3807, in __getitem__
indexer = self.columns.get_loc(key)
File "/root/miniconda-23.5.2/envs/emission/lib/python3.9/site-packages/pandas/core/indexes/base.py", line 3804, in get_loc
raise KeyError(key) from err
KeyError: 'Which_one_below_describe_you_b'
Reverting that commit since @achasmita has been able to now reproduce the error in her dev environment
Report from a partner:
On checking the logs, I see