# Instructions - Following Playwright test failed. - Explain why, be concise, respect Playwright best practices. - Provide a snippet of code with the fix, if possible. # Test info - Name: workflows/observation-lifecycle.spec.ts >> Observation Lifecycle >> submit observation via public form gets tracking code - Location: e2e/tests/workflows/observation-lifecycle.spec.ts:9:7 # Error details ``` Test timeout of 60000ms exceeded. ``` ``` Error: page.waitForSelector: Test timeout of 60000ms exceeded. Call log: - waiting for locator('form') to be visible 136 × locator resolved to hidden
``` # Page snapshot ```yaml - generic [active] [ref=e1]: - banner [ref=e2]: - heading "FieldError at /observations/new/" [level=1] [ref=e3] - generic [ref=e4]: "Cannot resolve keyword 'is_active' into field. Choices are: action_sla_configs, address, ai_recommend, appreciation_badges, appreciation_categories, appreciation_stats, appreciations, bulk_survey_jobs, call_center_interactions, call_records, capacity, ceo, ceo_id, cfo, cfo_id, city, code, comment_action_plans, comment_imports, communication_requests, complaint_categories, complaint_requests, complaint_sla_configs, complaint_templates, complaint_thresholds, complaints, coo, coo_id, created_at, departments, display_name, display_name_ar, doctor_rating_jobs, email, escalation_rules, executive_metrics, explanation_sla_configs, feedbacks, generated_reports, his_visits, id, inquiries, inquiry_sla_configs, journey_instances, journey_templates, kpi_reports, kpi_values, license_number, medical_director, medical_director_id, metadata, name, name_ar, notification_settings, notification_settings_logs, observation_sla_configs, observations, on_call_schedules, organization, organization_id, patient_comments, patients, phone, physician_ratings, predictive_insights, presentations, px_actions, qi_projects, rcas, references_referencedocument_related, references_referencefolder_related, report_templates, routing_rules, saved_reports, source_usage_records, source_users, staff, standard_compliance_records, status, survey_template_mappings, survey_templates, surveys_surveyinstance_related, updated_at, users" - table [ref=e5]: - rowgroup [ref=e6]: - 'row "Request Method: GET" [ref=e7]': - rowheader "Request Method:" [ref=e8] - cell "GET" [ref=e9] - 'row "Request URL: http://localhost:8000/observations/new/" [ref=e10]': - rowheader "Request URL:" [ref=e11] - cell "http://localhost:8000/observations/new/" [ref=e12] - 'row "Django Version: 6.0.1" [ref=e13]': - rowheader "Django Version:" [ref=e14] - cell "6.0.1" [ref=e15] - 'row "Exception Type: FieldError" [ref=e16]': - rowheader "Exception Type:" [ref=e17] - cell "FieldError" [ref=e18] - row [ref=e19]: - rowheader "Exception Value:" [ref=e20] - cell [ref=e21]: - generic [ref=e22]: "Cannot resolve keyword 'is_active' into field. Choices are: action_sla_configs, address, ai_recommend, appreciation_badges, appreciation_categories, appreciation_stats, appreciations, bulk_survey_jobs, call_center_interactions, call_records, capacity, ceo, ceo_id, cfo, cfo_id, city, code, comment_action_plans, comment_imports, communication_requests, complaint_categories, complaint_requests, complaint_sla_configs, complaint_templates, complaint_thresholds, complaints, coo, coo_id, created_at, departments, display_name, display_name_ar, doctor_rating_jobs, email, escalation_rules, executive_metrics, explanation_sla_configs, feedbacks, generated_reports, his_visits, id, inquiries, inquiry_sla_configs, journey_instances, journey_templates, kpi_reports, kpi_values, license_number, medical_director, medical_director_id, metadata, name, name_ar, notification_settings, notification_settings_logs, observation_sla_configs, observations, on_call_schedules, organization, organization_id, patient_comments, patients, phone, physician_ratings, predictive_insights, presentations, px_actions, qi_projects, rcas, references_referencedocument_related, references_referencefolder_related, report_templates, routing_rules, saved_reports, source_usage_records, source_users, staff, standard_compliance_records, status, survey_template_mappings, survey_templates, surveys_surveyinstance_related, updated_at, users" - 'row "Exception Location: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py, line 1832, in names_to_path" [ref=e23]': - rowheader "Exception Location:" [ref=e24] - cell "/home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py, line 1832, in names_to_path" [ref=e25] - 'row "Raised during: apps.observations.views.observation_create_public" [ref=e26]': - rowheader "Raised during:" [ref=e27] - cell "apps.observations.views.observation_create_public" [ref=e28] - 'row "Python Executable: /home/ismail/projects/HH/.venv/bin/python3" [ref=e29]': - rowheader "Python Executable:" [ref=e30] - cell "/home/ismail/projects/HH/.venv/bin/python3" [ref=e31] - 'row "Python Version: 3.12.3" [ref=e32]': - rowheader "Python Version:" [ref=e33] - cell "3.12.3" [ref=e34] - 'row "Python Path: [''/home/ismail/projects/HH'', ''/home/ismail/projects/HH'', ''/usr/lib/python312.zip'', ''/usr/lib/python3.12'', ''/usr/lib/python3.12/lib-dynload'', ''/home/ismail/projects/HH/.venv/lib/python3.12/site-packages'', ''__editable__.px360-0.1.0.finder.__path_hook__'', ''/home/ismail/projects/HH'']" [ref=e35]': - rowheader "Python Path:" [ref=e36] - cell "['/home/ismail/projects/HH', '/home/ismail/projects/HH', '/usr/lib/python312.zip', '/usr/lib/python3.12', '/usr/lib/python3.12/lib-dynload', '/home/ismail/projects/HH/.venv/lib/python3.12/site-packages', '__editable__.px360-0.1.0.finder.__path_hook__', '/home/ismail/projects/HH']" [ref=e37]: - code [ref=e39]: "['/home/ismail/projects/HH', '/home/ismail/projects/HH', '/usr/lib/python312.zip', '/usr/lib/python3.12', '/usr/lib/python3.12/lib-dynload', '/home/ismail/projects/HH/.venv/lib/python3.12/site-packages', '__editable__.px360-0.1.0.finder.__path_hook__', '/home/ismail/projects/HH']" - 'row "Server time: Thu, 07 May 2026 21:32:59 +0300" [ref=e40]': - rowheader "Server time:" [ref=e41] - cell "Thu, 07 May 2026 21:32:59 +0300" [ref=e42] - main [ref=e43]: - generic [ref=e44]: - heading "Traceback Switch to copy-and-paste view" [level=2] [ref=e45]: - text: Traceback - button "Switch to copy-and-paste view" [ref=e47] [cursor=pointer] - list [ref=e49]: - listitem [ref=e50]: - code [ref=e51]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py - text: ", line 55, in inner" - list [ref=e53]: - listitem [ref=e54] [cursor=pointer]: - text: response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e55]: … - group [ref=e56]: - generic "Local vars" [ref=e57] [cursor=pointer] - listitem [ref=e58]: - code [ref=e59]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/core/handlers/base.py - text: ", line 198, in _get_response" - list [ref=e61]: - listitem [ref=e62] [cursor=pointer]: - text: response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e63]: … - group [ref=e64]: - generic "Local vars" [ref=e65] [cursor=pointer] - listitem [ref=e66]: - code [ref=e67]: /home/ismail/projects/HH/apps/observations/views.py - text: ", line 237, in observation_create_public" - list [ref=e69]: - listitem [ref=e70] [cursor=pointer]: - text: "\"hospitals\": Hospital.objects.filter(is_active=True).order_by(\"name_en\"), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" - generic [ref=e71]: … - group [ref=e72]: - generic "Local vars" [ref=e73] [cursor=pointer] - listitem [ref=e74]: - code [ref=e75]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/manager.py - text: ", line 87, in manager_method" - list [ref=e77]: - listitem [ref=e78] [cursor=pointer]: - text: return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e79]: … - group [ref=e80]: - generic "Local vars" [ref=e81] [cursor=pointer] - listitem [ref=e82]: - code [ref=e83]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/query.py - text: ", line 1542, in filter" - list [ref=e85]: - listitem [ref=e86] [cursor=pointer]: - text: return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e87]: … - group [ref=e88]: - generic "Local vars" [ref=e89] [cursor=pointer] - listitem [ref=e90]: - code [ref=e91]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/query.py - text: ", line 1560, in _filter_or_exclude" - list [ref=e93]: - listitem [ref=e94] [cursor=pointer]: - text: clone._filter_or_exclude_inplace(negate, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e95]: … - group [ref=e96]: - generic "Local vars" [ref=e97] [cursor=pointer] - listitem [ref=e98]: - code [ref=e99]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/query.py - text: ", line 1570, in _filter_or_exclude_inplace" - list [ref=e101]: - listitem [ref=e102] [cursor=pointer]: - text: self._query.add_q(Q(*args, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e103]: … - group [ref=e104]: - generic "Local vars" [ref=e105] [cursor=pointer] - listitem [ref=e106]: - code [ref=e107]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py - text: ", line 1671, in add_q" - list [ref=e109]: - listitem [ref=e110] [cursor=pointer]: - text: clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e111]: … - group [ref=e112]: - generic "Local vars" [ref=e113] [cursor=pointer] - listitem [ref=e114]: - code [ref=e115]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py - text: ", line 1703, in _add_q" - list [ref=e117]: - listitem [ref=e118] [cursor=pointer]: - text: child_clause, needed_inner = self.build_filter( - generic [ref=e119]: … - group [ref=e120]: - generic "Local vars" [ref=e121] [cursor=pointer] - listitem [ref=e122]: - code [ref=e123]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py - text: ", line 1551, in build_filter" - list [ref=e125]: - listitem [ref=e126] [cursor=pointer]: - text: lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e127]: … - group [ref=e128]: - generic "Local vars" [ref=e129] [cursor=pointer] - listitem [ref=e130]: - code [ref=e131]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py - text: ", line 1358, in solve_lookup_type" - list [ref=e133]: - listitem [ref=e134] [cursor=pointer]: - text: _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - generic [ref=e135]: … - group [ref=e136]: - generic "Local vars" [ref=e137] [cursor=pointer] - listitem [ref=e138]: - code [ref=e139]: /home/ismail/projects/HH/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py - text: ", line 1832, in names_to_path" - list [ref=e141]: - listitem [ref=e142] [cursor=pointer]: - text: raise FieldError( ^ - generic [ref=e143]: … - group [ref=e144]: - generic "Local vars" [ref=e145] [cursor=pointer] - generic [ref=e146]: - heading "Request information" [level=2] [ref=e147] - heading "USER" [level=3] [ref=e148] - paragraph [ref=e149]: AnonymousUser - heading "GET" [level=3] [ref=e150] - paragraph [ref=e151]: No GET data - heading "POST" [level=3] [ref=e152] - paragraph [ref=e153]: No POST data - heading "FILES" [level=3] [ref=e154] - paragraph [ref=e155]: No FILES data - heading "COOKIES" [level=3] [ref=e156] - paragraph [ref=e157]: No cookie data - heading "META" [level=3] [ref=e158] - table [ref=e159]: - rowgroup [ref=e160]: - row "Variable Value" [ref=e161]: - columnheader "Variable" [ref=e162] - columnheader "Value" [ref=e163] - rowgroup [ref=e164]: - row "ADMIN_URL 'admin/'" [ref=e165]: - cell "ADMIN_URL" [ref=e166] - cell "'admin/'" [ref=e167]: - generic [ref=e168]: "'admin/'" - row "AI_MAX_TOKENS '********************'" [ref=e169]: - cell "AI_MAX_TOKENS" [ref=e170] - cell "'********************'" [ref=e171]: - generic [ref=e172]: "'********************'" - row "AI_MODEL 'openrouter/google/gemini-2.5-flash-lite'" [ref=e173]: - cell "AI_MODEL" [ref=e174] - cell "'openrouter/google/gemini-2.5-flash-lite'" [ref=e175]: - generic [ref=e176]: "'openrouter/google/gemini-2.5-flash-lite'" - row "AI_TEMPERATURE '0.3'" [ref=e177]: - cell "AI_TEMPERATURE" [ref=e178] - cell "'0.3'" [ref=e179]: - generic [ref=e180]: "'0.3'" - row "ALLOWED_HOSTS 'localhost,127.0.0.1'" [ref=e181]: - cell "ALLOWED_HOSTS" [ref=e182] - cell "'localhost,127.0.0.1'" [ref=e183]: - generic [ref=e184]: "'localhost,127.0.0.1'" - row "BUNDLED_DEBUGPY_PATH '/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/libs/debugpy'" [ref=e185]: - cell "BUNDLED_DEBUGPY_PATH" [ref=e186] - cell "'/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/libs/debugpy'" [ref=e187]: - generic [ref=e188]: "'/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/libs/debugpy'" - row "CELERY_BROKER_URL 'redis://localhost:6379/0'" [ref=e189]: - cell "CELERY_BROKER_URL" [ref=e190] - cell "'redis://localhost:6379/0'" [ref=e191]: - generic [ref=e192]: "'redis://localhost:6379/0'" - row "CELERY_RESULT_BACKEND 'redis://localhost:6379/0'" [ref=e193]: - cell "CELERY_RESULT_BACKEND" [ref=e194] - cell "'redis://localhost:6379/0'" [ref=e195]: - generic [ref=e196]: "'redis://localhost:6379/0'" - row "CELERY_TASK_ALWAYS_EAGER 'False'" [ref=e197]: - cell "CELERY_TASK_ALWAYS_EAGER" [ref=e198] - cell "'False'" [ref=e199]: - generic [ref=e200]: "'False'" - row "CHI_API_KEY '********************'" [ref=e201]: - cell "CHI_API_KEY" [ref=e202] - cell "'********************'" [ref=e203]: - generic [ref=e204]: "'********************'" - row "CHI_API_URL '********************'" [ref=e205]: - cell "CHI_API_URL" [ref=e206] - cell "'********************'" [ref=e207]: - generic [ref=e208]: "'********************'" - row "CHROME_DESKTOP 'code.desktop'" [ref=e209]: - cell "CHROME_DESKTOP" [ref=e210] - cell "'code.desktop'" [ref=e211]: - generic [ref=e212]: "'code.desktop'" - row "CLUTTER_BACKEND 'x11'" [ref=e213]: - cell "CLUTTER_BACKEND" [ref=e214] - cell "'x11'" [ref=e215]: - generic [ref=e216]: "'x11'" - row "COLORTERM 'truecolor'" [ref=e217]: - cell "COLORTERM" [ref=e218] - cell "'truecolor'" [ref=e219]: - generic [ref=e220]: "'truecolor'" - row "COMPIZ_CONFIG_PROFILE 'mint'" [ref=e221]: - cell "COMPIZ_CONFIG_PROFILE" [ref=e222] - cell "'mint'" [ref=e223]: - generic [ref=e224]: "'mint'" - row "CONTENT_LENGTH ''" [ref=e225]: - cell "CONTENT_LENGTH" [ref=e226] - cell "''" [ref=e227]: - generic [ref=e228]: "''" - row "CONTENT_TYPE 'text/plain'" [ref=e229]: - cell "CONTENT_TYPE" [ref=e230] - cell "'text/plain'" [ref=e231]: - generic [ref=e232]: "'text/plain'" - row "DATABASE_URL 'postgres://px360:px360@localhost:5433/px360'" [ref=e233]: - cell "DATABASE_URL" [ref=e234] - cell "'postgres://px360:px360@localhost:5433/px360'" [ref=e235]: - generic [ref=e236]: "'postgres://px360:px360@localhost:5433/px360'" - row "DBUS_SESSION_BUS_ADDRESS 'unix:path=/run/user/1000/bus,guid=38a3de50bcef636dcf5cf4aa69fafc12'" [ref=e237]: - cell "DBUS_SESSION_BUS_ADDRESS" [ref=e238] - cell "'unix:path=/run/user/1000/bus,guid=38a3de50bcef636dcf5cf4aa69fafc12'" [ref=e239]: - generic [ref=e240]: "'unix:path=/run/user/1000/bus,guid=38a3de50bcef636dcf5cf4aa69fafc12'" - row "DBUS_STARTER_ADDRESS 'unix:path=/run/user/1000/bus,guid=38a3de50bcef636dcf5cf4aa69fafc12'" [ref=e241]: - cell "DBUS_STARTER_ADDRESS" [ref=e242] - cell "'unix:path=/run/user/1000/bus,guid=38a3de50bcef636dcf5cf4aa69fafc12'" [ref=e243]: - generic [ref=e244]: "'unix:path=/run/user/1000/bus,guid=38a3de50bcef636dcf5cf4aa69fafc12'" - row "DBUS_STARTER_BUS_TYPE 'session'" [ref=e245]: - cell "DBUS_STARTER_BUS_TYPE" [ref=e246] - cell "'session'" [ref=e247]: - generic [ref=e248]: "'session'" - row "DEBUG 'True'" [ref=e249]: - cell "DEBUG" [ref=e250] - cell "'True'" [ref=e251]: - generic [ref=e252]: "'True'" - row "DEFAULT_FROM_EMAIL 'noreply@px360.sa'" [ref=e253]: - cell "DEFAULT_FROM_EMAIL" [ref=e254] - cell "'noreply@px360.sa'" [ref=e255]: - generic [ref=e256]: "'noreply@px360.sa'" - row "DESKTOP_SESSION 'mate'" [ref=e257]: - cell "DESKTOP_SESSION" [ref=e258] - cell "'mate'" [ref=e259]: - generic [ref=e260]: "'mate'" - row "DEV_SMS_RECIPIENT '+966566703794'" [ref=e261]: - cell "DEV_SMS_RECIPIENT" [ref=e262] - cell "'+966566703794'" [ref=e263]: - generic [ref=e264]: "'+966566703794'" - row "DISPLAY ':0'" [ref=e265]: - cell "DISPLAY" [ref=e266] - cell "':0'" [ref=e267]: - generic [ref=e268]: "':0'" - row "DJANGO_SETTINGS_MODULE 'config.settings.dev'" [ref=e269]: - cell "DJANGO_SETTINGS_MODULE" [ref=e270] - cell "'config.settings.dev'" [ref=e271]: - generic [ref=e272]: "'config.settings.dev'" - row "EMAIL_API_ENABLED '********************'" [ref=e273]: - cell "EMAIL_API_ENABLED" [ref=e274] - cell "'********************'" [ref=e275]: - generic [ref=e276]: "'********************'" - row "EMAIL_API_KEY '********************'" [ref=e277]: - cell "EMAIL_API_KEY" [ref=e278] - cell "'********************'" [ref=e279]: - generic [ref=e280]: "'********************'" - row "EMAIL_API_URL '********************'" [ref=e281]: - cell "EMAIL_API_URL" [ref=e282] - cell "'********************'" [ref=e283]: - generic [ref=e284]: "'********************'" - row "EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'" [ref=e285]: - cell "EMAIL_BACKEND" [ref=e286] - cell "'django.core.mail.backends.smtp.EmailBackend'" [ref=e287]: - generic [ref=e288]: "'django.core.mail.backends.smtp.EmailBackend'" - row "EMAIL_ENABLED 'True'" [ref=e289]: - cell "EMAIL_ENABLED" [ref=e290] - cell "'True'" [ref=e291]: - generic [ref=e292]: "'True'" - row "EMAIL_HOST 'localhost'" [ref=e293]: - cell "EMAIL_HOST" [ref=e294] - cell "'localhost'" [ref=e295]: - generic [ref=e296]: "'localhost'" - row "EMAIL_HOST_PASSWORD '********************'" [ref=e297]: - cell "EMAIL_HOST_PASSWORD" [ref=e298] - cell "'********************'" [ref=e299]: - generic [ref=e300]: "'********************'" - row "EMAIL_HOST_USER ''" [ref=e301]: - cell "EMAIL_HOST_USER" [ref=e302] - cell "''" [ref=e303]: - generic [ref=e304]: "''" - row "EMAIL_PORT '2525'" [ref=e305]: - cell "EMAIL_PORT" [ref=e306] - cell "'2525'" [ref=e307]: - generic [ref=e308]: "'2525'" - row "EMAIL_PROVIDER 'console'" [ref=e309]: - cell "EMAIL_PROVIDER" [ref=e310] - cell "'console'" [ref=e311]: - generic [ref=e312]: "'console'" - row "EMAIL_USE_TLS 'False'" [ref=e313]: - cell "EMAIL_USE_TLS" [ref=e314] - cell "'False'" [ref=e315]: - generic [ref=e316]: "'False'" - row "FC_FONTATIONS '1'" [ref=e317]: - cell "FC_FONTATIONS" [ref=e318] - cell "'1'" [ref=e319]: - generic [ref=e320]: "'1'" - row "GATEWAY_INTERFACE 'CGI/1.1'" [ref=e321]: - cell "GATEWAY_INTERFACE" [ref=e322] - cell "'CGI/1.1'" [ref=e323]: - generic [ref=e324]: "'CGI/1.1'" - row "GDK_BACKEND 'x11'" [ref=e325]: - cell "GDK_BACKEND" [ref=e326] - cell "'x11'" [ref=e327]: - generic [ref=e328]: "'x11'" - row "GDMSESSION 'mate'" [ref=e329]: - cell "GDMSESSION" [ref=e330] - cell "'mate'" [ref=e331]: - generic [ref=e332]: "'mate'" - row "GDM_LANG 'en_US'" [ref=e333]: - cell "GDM_LANG" [ref=e334] - cell "'en_US'" [ref=e335]: - generic [ref=e336]: "'en_US'" - row "GIO_LAUNCHED_DESKTOP_FILE '/usr/share/applications/code.desktop'" [ref=e337]: - cell "GIO_LAUNCHED_DESKTOP_FILE" [ref=e338] - cell "'/usr/share/applications/code.desktop'" [ref=e339]: - generic [ref=e340]: "'/usr/share/applications/code.desktop'" - row "GIO_LAUNCHED_DESKTOP_FILE_PID '2736'" [ref=e341]: - cell "GIO_LAUNCHED_DESKTOP_FILE_PID" [ref=e342] - cell "'2736'" [ref=e343]: - generic [ref=e344]: "'2736'" - row "GIT_ASKPASS '********************'" [ref=e345]: - cell "GIT_ASKPASS" [ref=e346] - cell "'********************'" [ref=e347]: - generic [ref=e348]: "'********************'" - row "GNOME_KEYRING_CONTROL '********************'" [ref=e349]: - cell "GNOME_KEYRING_CONTROL" [ref=e350] - cell "'********************'" [ref=e351]: - generic [ref=e352]: "'********************'" - row "GPG_AGENT_INFO '/run/user/1000/gnupg/S.gpg-agent:0:1'" [ref=e353]: - cell "GPG_AGENT_INFO" [ref=e354] - cell "'/run/user/1000/gnupg/S.gpg-agent:0:1'" [ref=e355]: - generic [ref=e356]: "'/run/user/1000/gnupg/S.gpg-agent:0:1'" - row "GSM_SKIP_SSH_AGENT_WORKAROUND 'true'" [ref=e357]: - cell "GSM_SKIP_SSH_AGENT_WORKAROUND" [ref=e358] - cell "'true'" [ref=e359]: - generic [ref=e360]: "'true'" - row "GTK3_MODULES 'xapp-gtk3-module'" [ref=e361]: - cell "GTK3_MODULES" [ref=e362] - cell "'xapp-gtk3-module'" [ref=e363]: - generic [ref=e364]: "'xapp-gtk3-module'" - row "GTK_MODULES 'gail:atk-bridge'" [ref=e365]: - cell "GTK_MODULES" [ref=e366] - cell "'gail:atk-bridge'" [ref=e367]: - generic [ref=e368]: "'gail:atk-bridge'" - row "GTK_OVERLAY_SCROLLING '0'" [ref=e369]: - cell "GTK_OVERLAY_SCROLLING" [ref=e370] - cell "'0'" [ref=e371]: - generic [ref=e372]: "'0'" - row "HIS_API_URL '********************'" [ref=e373]: - cell "HIS_API_URL" [ref=e374] - cell "'********************'" [ref=e375]: - generic [ref=e376]: "'********************'" - row "HIS_API_USERNAME '********************'" [ref=e377]: - cell "HIS_API_USERNAME" [ref=e378] - cell "'********************'" [ref=e379]: - generic [ref=e380]: "'********************'" - row "HIS_RATINGS_API_URL '********************'" [ref=e381]: - cell "HIS_RATINGS_API_URL" [ref=e382] - cell "'********************'" [ref=e383]: - generic [ref=e384]: "'********************'" - row "HOME '/home/ismail'" [ref=e385]: - cell "HOME" [ref=e386] - cell "'/home/ismail'" [ref=e387]: - generic [ref=e388]: "'/home/ismail'" - row "HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'" [ref=e389]: - cell "HTTP_ACCEPT" [ref=e390] - cell "'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'" [ref=e391]: - generic [ref=e392]: "'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'" - row "HTTP_ACCEPT_ENCODING 'gzip, deflate, br, zstd'" [ref=e393]: - cell "HTTP_ACCEPT_ENCODING" [ref=e394] - cell "'gzip, deflate, br, zstd'" [ref=e395]: - generic [ref=e396]: "'gzip, deflate, br, zstd'" - row "HTTP_ACCEPT_LANGUAGE 'en-US'" [ref=e397]: - cell "HTTP_ACCEPT_LANGUAGE" [ref=e398] - cell "'en-US'" [ref=e399]: - generic [ref=e400]: "'en-US'" - row "HTTP_CONNECTION 'keep-alive'" [ref=e401]: - cell "HTTP_CONNECTION" [ref=e402] - cell "'keep-alive'" [ref=e403]: - generic [ref=e404]: "'keep-alive'" - row "HTTP_HOST 'localhost:8000'" [ref=e405]: - cell "HTTP_HOST" [ref=e406] - cell "'localhost:8000'" [ref=e407]: - generic [ref=e408]: "'localhost:8000'" - row "HTTP_SEC_CH_UA '\"HeadlessChrome\";v=\"147\", \"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"147\"'" [ref=e409]: - cell "HTTP_SEC_CH_UA" [ref=e410] - cell "'\"HeadlessChrome\";v=\"147\", \"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"147\"'" [ref=e411]: - generic [ref=e412]: "'\"HeadlessChrome\";v=\"147\", \"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"147\"'" - row "HTTP_SEC_CH_UA_MOBILE '?0'" [ref=e413]: - cell "HTTP_SEC_CH_UA_MOBILE" [ref=e414] - cell "'?0'" [ref=e415]: - generic [ref=e416]: "'?0'" - row "HTTP_SEC_CH_UA_PLATFORM '\"Windows\"'" [ref=e417]: - cell "HTTP_SEC_CH_UA_PLATFORM" [ref=e418] - cell "'\"Windows\"'" [ref=e419]: - generic [ref=e420]: "'\"Windows\"'" - row "HTTP_SEC_FETCH_DEST 'document'" [ref=e421]: - cell "HTTP_SEC_FETCH_DEST" [ref=e422] - cell "'document'" [ref=e423]: - generic [ref=e424]: "'document'" - row "HTTP_SEC_FETCH_MODE 'navigate'" [ref=e425]: - cell "HTTP_SEC_FETCH_MODE" [ref=e426] - cell "'navigate'" [ref=e427]: - generic [ref=e428]: "'navigate'" - row "HTTP_SEC_FETCH_SITE 'none'" [ref=e429]: - cell "HTTP_SEC_FETCH_SITE" [ref=e430] - cell "'none'" [ref=e431]: - generic [ref=e432]: "'none'" - row "HTTP_SEC_FETCH_USER '?1'" [ref=e433]: - cell "HTTP_SEC_FETCH_USER" [ref=e434] - cell "'?1'" [ref=e435]: - generic [ref=e436]: "'?1'" - row "HTTP_UPGRADE_INSECURE_REQUESTS '1'" [ref=e437]: - cell "HTTP_UPGRADE_INSECURE_REQUESTS" [ref=e438] - cell "'1'" [ref=e439]: - generic [ref=e440]: "'1'" - row "HTTP_USER_AGENT ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like ' 'Gecko) Chrome/147.0.7727.15 Safari/537.36')" [ref=e441]: - cell "HTTP_USER_AGENT" [ref=e442] - cell "('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like ' 'Gecko) Chrome/147.0.7727.15 Safari/537.36')" [ref=e443]: - generic [ref=e444]: ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like ' 'Gecko) Chrome/147.0.7727.15 Safari/537.36') - row "IM_CONFIG_PHASE '1'" [ref=e445]: - cell "IM_CONFIG_PHASE" [ref=e446] - cell "'1'" [ref=e447]: - generic [ref=e448]: "'1'" - row "LANG 'en_US.UTF-8'" [ref=e449]: - cell "LANG" [ref=e450] - cell "'en_US.UTF-8'" [ref=e451]: - generic [ref=e452]: "'en_US.UTF-8'" - row "LANGUAGE 'en_US'" [ref=e453]: - cell "LANGUAGE" [ref=e454] - cell "'en_US'" [ref=e455]: - generic [ref=e456]: "'en_US'" - row "LC_ADDRESS 'ar_SA.UTF-8'" [ref=e457]: - cell "LC_ADDRESS" [ref=e458] - cell "'ar_SA.UTF-8'" [ref=e459]: - generic [ref=e460]: "'ar_SA.UTF-8'" - row "LC_IDENTIFICATION 'ar_SA.UTF-8'" [ref=e461]: - cell "LC_IDENTIFICATION" [ref=e462] - cell "'ar_SA.UTF-8'" [ref=e463]: - generic [ref=e464]: "'ar_SA.UTF-8'" - row "LC_MEASUREMENT 'ar_SA.UTF-8'" [ref=e465]: - cell "LC_MEASUREMENT" [ref=e466] - cell "'ar_SA.UTF-8'" [ref=e467]: - generic [ref=e468]: "'ar_SA.UTF-8'" - row "LC_MONETARY 'ar_SA.UTF-8'" [ref=e469]: - cell "LC_MONETARY" [ref=e470] - cell "'ar_SA.UTF-8'" [ref=e471]: - generic [ref=e472]: "'ar_SA.UTF-8'" - row "LC_NAME 'ar_SA.UTF-8'" [ref=e473]: - cell "LC_NAME" [ref=e474] - cell "'ar_SA.UTF-8'" [ref=e475]: - generic [ref=e476]: "'ar_SA.UTF-8'" - row "LC_NUMERIC 'ar_SA.UTF-8'" [ref=e477]: - cell "LC_NUMERIC" [ref=e478] - cell "'ar_SA.UTF-8'" [ref=e479]: - generic [ref=e480]: "'ar_SA.UTF-8'" - row "LC_PAPER 'ar_SA.UTF-8'" [ref=e481]: - cell "LC_PAPER" [ref=e482] - cell "'ar_SA.UTF-8'" [ref=e483]: - generic [ref=e484]: "'ar_SA.UTF-8'" - row "LC_TELEPHONE 'ar_SA.UTF-8'" [ref=e485]: - cell "LC_TELEPHONE" [ref=e486] - cell "'ar_SA.UTF-8'" [ref=e487]: - generic [ref=e488]: "'ar_SA.UTF-8'" - row "LC_TIME 'en_US.UTF-8'" [ref=e489]: - cell "LC_TIME" [ref=e490] - cell "'en_US.UTF-8'" [ref=e491]: - generic [ref=e492]: "'en_US.UTF-8'" - row "LESSCLOSE '/usr/bin/lesspipe %s %s'" [ref=e493]: - cell "LESSCLOSE" [ref=e494] - cell "'/usr/bin/lesspipe %s %s'" [ref=e495]: - generic [ref=e496]: "'/usr/bin/lesspipe %s %s'" - row "LESSOPEN '| /usr/bin/lesspipe %s'" [ref=e497]: - cell "LESSOPEN" [ref=e498] - cell "'| /usr/bin/lesspipe %s'" [ref=e499]: - generic [ref=e500]: "'| /usr/bin/lesspipe %s'" - row "LOGNAME 'ismail'" [ref=e501]: - cell "LOGNAME" [ref=e502] - cell "'ismail'" [ref=e503]: - generic [ref=e504]: "'ismail'" - row [ref=e505]: - cell "LS_COLORS" [ref=e506] - cell [ref=e507]: - generic [ref=e508]: "'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:'" - row "MANAGERPID '1170'" [ref=e509]: - cell "MANAGERPID" [ref=e510] - cell "'1170'" [ref=e511]: - generic [ref=e512]: "'1170'" - row "MATE_DESKTOP_SESSION_ID 'this-is-deprecated'" [ref=e513]: - cell "MATE_DESKTOP_SESSION_ID" [ref=e514] - cell "'this-is-deprecated'" [ref=e515]: - generic [ref=e516]: "'this-is-deprecated'" - row "MEMORY_PRESSURE_WATCH '/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/session.slice/dbus.service/memory.pressure'" [ref=e517]: - cell "MEMORY_PRESSURE_WATCH" [ref=e518] - cell "'/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/session.slice/dbus.service/memory.pressure'" [ref=e519]: - generic [ref=e520]: "'/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/session.slice/dbus.service/memory.pressure'" - row "MEMORY_PRESSURE_WRITE 'c29tZSAyMDAwMDAgMjAwMDAwMAA='" [ref=e521]: - cell "MEMORY_PRESSURE_WRITE" [ref=e522] - cell "'c29tZSAyMDAwMDAgMjAwMDAwMAA='" [ref=e523]: - generic [ref=e524]: "'c29tZSAyMDAwMDAgMjAwMDAwMAA='" - row "MOH_API_KEY '********************'" [ref=e525]: - cell "MOH_API_KEY" [ref=e526] - cell "'********************'" [ref=e527]: - generic [ref=e528]: "'********************'" - row "MOH_API_URL '********************'" [ref=e529]: - cell "MOH_API_URL" [ref=e530] - cell "'********************'" [ref=e531]: - generic [ref=e532]: "'********************'" - row "MSHASTRA_PASSWORD '********************'" [ref=e533]: - cell "MSHASTRA_PASSWORD" [ref=e534] - cell "'********************'" [ref=e535]: - generic [ref=e536]: "'********************'" - row "MSHASTRA_SENDER_ID 'M556999091'" [ref=e537]: - cell "MSHASTRA_SENDER_ID" [ref=e538] - cell "'M556999091'" [ref=e539]: - generic [ref=e540]: "'M556999091'" - row "MSHASTRA_USERNAME 'M556999091'" [ref=e541]: - cell "MSHASTRA_USERNAME" [ref=e542] - cell "'M556999091'" [ref=e543]: - generic [ref=e544]: "'M556999091'" - row "NVM_BIN '/home/ismail/.nvm/versions/node/v24.12.0/bin'" [ref=e545]: - cell "NVM_BIN" [ref=e546] - cell "'/home/ismail/.nvm/versions/node/v24.12.0/bin'" [ref=e547]: - generic [ref=e548]: "'/home/ismail/.nvm/versions/node/v24.12.0/bin'" - row "NVM_CD_FLAGS ''" [ref=e549]: - cell "NVM_CD_FLAGS" [ref=e550] - cell "''" [ref=e551]: - generic [ref=e552]: "''" - row "NVM_DIR '/home/ismail/.nvm'" [ref=e553]: - cell "NVM_DIR" [ref=e554] - cell "'/home/ismail/.nvm'" [ref=e555]: - generic [ref=e556]: "'/home/ismail/.nvm'" - row "NVM_INC '/home/ismail/.nvm/versions/node/v24.12.0/include/node'" [ref=e557]: - cell "NVM_INC" [ref=e558] - cell "'/home/ismail/.nvm/versions/node/v24.12.0/include/node'" [ref=e559]: - generic [ref=e560]: "'/home/ismail/.nvm/versions/node/v24.12.0/include/node'" - row "OPENROUTER_API_KEY '********************'" [ref=e561]: - cell "OPENROUTER_API_KEY" [ref=e562] - cell "'********************'" [ref=e563]: - generic [ref=e564]: "'********************'" - row "PAPERSIZE 'a4'" [ref=e565]: - cell "PAPERSIZE" [ref=e566] - cell "'a4'" [ref=e567]: - generic [ref=e568]: "'a4'" - row "PATH '/home/ismail/projects/HH/.venv/bin:/home/ismail/projects/HH/.venv/bin:/home/ismail/.opencode/bin:/home/ismail/.local/bin:/home/ismail/.opencode/bin:/home/ismail/.nvm/versions/node/v24.12.0/bin:/home/ismail/.cargo/bin:/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/scripts/noConfigScripts'" [ref=e569]: - cell "PATH" [ref=e570] - cell "'/home/ismail/projects/HH/.venv/bin:/home/ismail/projects/HH/.venv/bin:/home/ismail/.opencode/bin:/home/ismail/.local/bin:/home/ismail/.opencode/bin:/home/ismail/.nvm/versions/node/v24.12.0/bin:/home/ismail/.cargo/bin:/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/scripts/noConfigScripts'" [ref=e571]: - generic [ref=e572]: "'/home/ismail/projects/HH/.venv/bin:/home/ismail/projects/HH/.venv/bin:/home/ismail/.opencode/bin:/home/ismail/.local/bin:/home/ismail/.opencode/bin:/home/ismail/.nvm/versions/node/v24.12.0/bin:/home/ismail/.cargo/bin:/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/bundled/scripts/noConfigScripts'" - row "PATH_INFO '/observations/new/'" [ref=e573]: - cell "PATH_INFO" [ref=e574] - cell "'/observations/new/'" [ref=e575]: - generic [ref=e576]: "'/observations/new/'" - 'row "PS1 (''\\\\[\\x1b]633;A\\x07\\\\](px360) \\\\[\\x1b]633;A\\x07\\\\]\\\\[\\\\e]0;\\\\u@\\\\h: '' ''\\\\w\\\\a\\\\]${debian_chroot:+($debian_chroot)}\\\\[\\\\033[01;32m\\\\]\\\\u@\\\\h\\\\[\\\\033[00m\\\\]:\\\\[\\\\033[01;34m\\\\]\\\\w\\\\[\\\\033[00m\\\\]\\\\$ '' ''\\\\[\\x1b]633;B\\x07\\\\]\\\\[\\x1b]633;B\\x07\\\\]'')" [ref=e577]': - cell "PS1" [ref=e578] - 'cell "(''\\\\[\\x1b]633;A\\x07\\\\](px360) \\\\[\\x1b]633;A\\x07\\\\]\\\\[\\\\e]0;\\\\u@\\\\h: '' ''\\\\w\\\\a\\\\]${debian_chroot:+($debian_chroot)}\\\\[\\\\033[01;32m\\\\]\\\\u@\\\\h\\\\[\\\\033[00m\\\\]:\\\\[\\\\033[01;34m\\\\]\\\\w\\\\[\\\\033[00m\\\\]\\\\$ '' ''\\\\[\\x1b]633;B\\x07\\\\]\\\\[\\x1b]633;B\\x07\\\\]'')" [ref=e579]': - generic [ref=e580]: "('\\\\[\\x1b]633;A\\x07\\\\](px360) \\\\[\\x1b]633;A\\x07\\\\]\\\\[\\\\e]0;\\\\u@\\\\h: ' '\\\\w\\\\a\\\\]${debian_chroot:+($debian_chroot)}\\\\[\\\\033[01;32m\\\\]\\\\u@\\\\h\\\\[\\\\033[00m\\\\]:\\\\[\\\\033[01;34m\\\\]\\\\w\\\\[\\\\033[00m\\\\]\\\\$ ' '\\\\[\\x1b]633;B\\x07\\\\]\\\\[\\x1b]633;B\\x07\\\\]')" - row "PWD '/home/ismail/projects/HH'" [ref=e581]: - cell "PWD" [ref=e582] - cell "'/home/ismail/projects/HH'" [ref=e583]: - generic [ref=e584]: "'/home/ismail/projects/HH'" - row "PYDEVD_DISABLE_FILE_VALIDATION '1'" [ref=e585]: - cell "PYDEVD_DISABLE_FILE_VALIDATION" [ref=e586] - cell "'1'" [ref=e587]: - generic [ref=e588]: "'1'" - row "PYTHONSTARTUP '/home/ismail/.config/Code/User/workspaceStorage/be2a9b869fd4f54d8616f8f370827124/ms-python.python/pythonrc.py'" [ref=e589]: - cell "PYTHONSTARTUP" [ref=e590] - cell "'/home/ismail/.config/Code/User/workspaceStorage/be2a9b869fd4f54d8616f8f370827124/ms-python.python/pythonrc.py'" [ref=e591]: - generic [ref=e592]: "'/home/ismail/.config/Code/User/workspaceStorage/be2a9b869fd4f54d8616f8f370827124/ms-python.python/pythonrc.py'" - row "PYTHON_BASIC_REPL '1'" [ref=e593]: - cell "PYTHON_BASIC_REPL" [ref=e594] - cell "'1'" [ref=e595]: - generic [ref=e596]: "'1'" - row "QT_ACCESSIBILITY '1'" [ref=e597]: - cell "QT_ACCESSIBILITY" [ref=e598] - cell "'1'" [ref=e599]: - generic [ref=e600]: "'1'" - row "QT_FONT_DPI '96'" [ref=e601]: - cell "QT_FONT_DPI" [ref=e602] - cell "'96'" [ref=e603]: - generic [ref=e604]: "'96'" - row "QT_SCALE_FACTOR '1'" [ref=e605]: - cell "QT_SCALE_FACTOR" [ref=e606] - cell "'1'" [ref=e607]: - generic [ref=e608]: "'1'" - row "QUERY_STRING ''" [ref=e609]: - cell "QUERY_STRING" [ref=e610] - cell "''" [ref=e611]: - generic [ref=e612]: "''" - row "REMOTE_ADDR '127.0.0.1'" [ref=e613]: - cell "REMOTE_ADDR" [ref=e614] - cell "'127.0.0.1'" [ref=e615]: - generic [ref=e616]: "'127.0.0.1'" - row "REMOTE_HOST ''" [ref=e617]: - cell "REMOTE_HOST" [ref=e618] - cell "''" [ref=e619]: - generic [ref=e620]: "''" - row "REQUEST_METHOD 'GET'" [ref=e621]: - cell "REQUEST_METHOD" [ref=e622] - cell "'GET'" [ref=e623]: - generic [ref=e624]: "'GET'" - row "RUN_MAIN 'true'" [ref=e625]: - cell "RUN_MAIN" [ref=e626] - cell "'true'" [ref=e627]: - generic [ref=e628]: "'true'" - row "SCRIPT_NAME ''" [ref=e629]: - cell "SCRIPT_NAME" [ref=e630] - cell "''" [ref=e631]: - generic [ref=e632]: "''" - row "SECRET_KEY '********************'" [ref=e633]: - cell "SECRET_KEY" [ref=e634] - cell "'********************'" [ref=e635]: - generic [ref=e636]: "'********************'" - row "SERVER_NAME 'localhost'" [ref=e637]: - cell "SERVER_NAME" [ref=e638] - cell "'localhost'" [ref=e639]: - generic [ref=e640]: "'localhost'" - row "SERVER_PORT '8000'" [ref=e641]: - cell "SERVER_PORT" [ref=e642] - cell "'8000'" [ref=e643]: - generic [ref=e644]: "'8000'" - row "SERVER_PROTOCOL 'HTTP/1.1'" [ref=e645]: - cell "SERVER_PROTOCOL" [ref=e646] - cell "'HTTP/1.1'" [ref=e647]: - generic [ref=e648]: "'HTTP/1.1'" - row "SERVER_SOFTWARE 'WSGIServer/0.2'" [ref=e649]: - cell "SERVER_SOFTWARE" [ref=e650] - cell "'WSGIServer/0.2'" [ref=e651]: - generic [ref=e652]: "'WSGIServer/0.2'" - row "SESSION_EXPIRE_AT_BROWSER_CLOSE 'False'" [ref=e653]: - cell "SESSION_EXPIRE_AT_BROWSER_CLOSE" [ref=e654] - cell "'False'" [ref=e655]: - generic [ref=e656]: "'False'" - row "SESSION_MANAGER 'local/ismail-Latitude-5500:@/tmp/.ICE-unix/1199,unix/ismail-Latitude-5500:/tmp/.ICE-unix/1199'" [ref=e657]: - cell "SESSION_MANAGER" [ref=e658] - cell "'local/ismail-Latitude-5500:@/tmp/.ICE-unix/1199,unix/ismail-Latitude-5500:/tmp/.ICE-unix/1199'" [ref=e659]: - generic [ref=e660]: "'local/ismail-Latitude-5500:@/tmp/.ICE-unix/1199,unix/ismail-Latitude-5500:/tmp/.ICE-unix/1199'" - row "SHELL '/bin/bash'" [ref=e661]: - cell "SHELL" [ref=e662] - cell "'/bin/bash'" [ref=e663]: - generic [ref=e664]: "'/bin/bash'" - row "SHLVL '1'" [ref=e665]: - cell "SHLVL" [ref=e666] - cell "'1'" [ref=e667]: - generic [ref=e668]: "'1'" - row "SMS_API_ENABLED '********************'" [ref=e669]: - cell "SMS_API_ENABLED" [ref=e670] - cell "'********************'" [ref=e671]: - generic [ref=e672]: "'********************'" - row "SMS_API_KEY '********************'" [ref=e673]: - cell "SMS_API_KEY" [ref=e674] - cell "'********************'" [ref=e675]: - generic [ref=e676]: "'********************'" - row "SMS_API_URL '********************'" [ref=e677]: - cell "SMS_API_URL" [ref=e678] - cell "'********************'" [ref=e679]: - generic [ref=e680]: "'********************'" - row "SMS_ENABLED 'False'" [ref=e681]: - cell "SMS_ENABLED" [ref=e682] - cell "'False'" [ref=e683]: - generic [ref=e684]: "'False'" - row "SMS_PROVIDER 'mshastra'" [ref=e685]: - cell "SMS_PROVIDER" [ref=e686] - cell "'mshastra'" [ref=e687]: - generic [ref=e688]: "'mshastra'" - row "SSH_AUTH_SOCK '********************'" [ref=e689]: - cell "SSH_AUTH_SOCK" [ref=e690] - cell "'********************'" [ref=e691]: - generic [ref=e692]: "'********************'" - row "SYSTEMD_EXEC_PID '1205'" [ref=e693]: - cell "SYSTEMD_EXEC_PID" [ref=e694] - cell "'1205'" [ref=e695]: - generic [ref=e696]: "'1205'" - row "TERM 'xterm-256color'" [ref=e697]: - cell "TERM" [ref=e698] - cell "'xterm-256color'" [ref=e699]: - generic [ref=e700]: "'xterm-256color'" - row "TERM_PROGRAM 'vscode'" [ref=e701]: - cell "TERM_PROGRAM" [ref=e702] - cell "'vscode'" [ref=e703]: - generic [ref=e704]: "'vscode'" - row "TERM_PROGRAM_VERSION '1.115.0'" [ref=e705]: - cell "TERM_PROGRAM_VERSION" [ref=e706] - cell "'1.115.0'" [ref=e707]: - generic [ref=e708]: "'1.115.0'" - row "TZ 'Asia/Riyadh'" [ref=e709]: - cell "TZ" [ref=e710] - cell "'Asia/Riyadh'" [ref=e711]: - generic [ref=e712]: "'Asia/Riyadh'" - row "USER 'ismail'" [ref=e713]: - cell "USER" [ref=e714] - cell "'ismail'" [ref=e715]: - generic [ref=e716]: "'ismail'" - row "UV '/home/ismail/.local/bin/uv'" [ref=e717]: - cell "UV" [ref=e718] - cell "'/home/ismail/.local/bin/uv'" [ref=e719]: - generic [ref=e720]: "'/home/ismail/.local/bin/uv'" - row "UV_RUN_RECURSION_DEPTH '1'" [ref=e721]: - cell "UV_RUN_RECURSION_DEPTH" [ref=e722] - cell "'1'" [ref=e723]: - generic [ref=e724]: "'1'" - row "VIRTUAL_ENV '/home/ismail/projects/HH/.venv'" [ref=e725]: - cell "VIRTUAL_ENV" [ref=e726] - cell "'/home/ismail/projects/HH/.venv'" [ref=e727]: - generic [ref=e728]: "'/home/ismail/projects/HH/.venv'" - row "VIRTUAL_ENV_PROMPT 'px360'" [ref=e729]: - cell "VIRTUAL_ENV_PROMPT" [ref=e730] - cell "'px360'" [ref=e731]: - generic [ref=e732]: "'px360'" - row "VSCODE_DEBUGPY_ADAPTER_ENDPOINTS '/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/.noConfigDebugAdapterEndpoints/endpoint-bb55ad0d4cf04cdd.txt'" [ref=e733]: - cell "VSCODE_DEBUGPY_ADAPTER_ENDPOINTS" [ref=e734] - cell "'/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/.noConfigDebugAdapterEndpoints/endpoint-bb55ad0d4cf04cdd.txt'" [ref=e735]: - generic [ref=e736]: "'/home/ismail/.vscode/extensions/ms-python.debugpy-2026.6.0-linux-x64/.noConfigDebugAdapterEndpoints/endpoint-bb55ad0d4cf04cdd.txt'" - row "VSCODE_GIT_ASKPASS_EXTRA_ARGS '********************'" [ref=e737]: - cell "VSCODE_GIT_ASKPASS_EXTRA_ARGS" [ref=e738] - cell "'********************'" [ref=e739]: - generic [ref=e740]: "'********************'" - row "VSCODE_GIT_ASKPASS_MAIN '********************'" [ref=e741]: - cell "VSCODE_GIT_ASKPASS_MAIN" [ref=e742] - cell "'********************'" [ref=e743]: - generic [ref=e744]: "'********************'" - row "VSCODE_GIT_ASKPASS_NODE '********************'" [ref=e745]: - cell "VSCODE_GIT_ASKPASS_NODE" [ref=e746] - cell "'********************'" [ref=e747]: - generic [ref=e748]: "'********************'" - row "VSCODE_GIT_IPC_HANDLE '/run/user/1000/vscode-git-4aa301eaf0.sock'" [ref=e749]: - cell "VSCODE_GIT_IPC_HANDLE" [ref=e750] - cell "'/run/user/1000/vscode-git-4aa301eaf0.sock'" [ref=e751]: - generic [ref=e752]: "'/run/user/1000/vscode-git-4aa301eaf0.sock'" - row "VSCODE_PYTHON_AUTOACTIVATE_GUARD '1'" [ref=e753]: - cell "VSCODE_PYTHON_AUTOACTIVATE_GUARD" [ref=e754] - cell "'1'" [ref=e755]: - generic [ref=e756]: "'1'" - row "WHATSAPP_ENABLED 'False'" [ref=e757]: - cell "WHATSAPP_ENABLED" [ref=e758] - cell "'False'" [ref=e759]: - generic [ref=e760]: "'False'" - row "WHATSAPP_PROVIDER 'console'" [ref=e761]: - cell "WHATSAPP_PROVIDER" [ref=e762] - cell "'console'" [ref=e763]: - generic [ref=e764]: "'console'" - row "XAUTHORITY '********************'" [ref=e765]: - cell "XAUTHORITY" [ref=e766] - cell "'********************'" [ref=e767]: - generic [ref=e768]: "'********************'" - row "XDG_CONFIG_DIRS '/etc/xdg/xdg-mate:/etc/xdg'" [ref=e769]: - cell "XDG_CONFIG_DIRS" [ref=e770] - cell "'/etc/xdg/xdg-mate:/etc/xdg'" [ref=e771]: - generic [ref=e772]: "'/etc/xdg/xdg-mate:/etc/xdg'" - row "XDG_CURRENT_DESKTOP 'MATE'" [ref=e773]: - cell "XDG_CURRENT_DESKTOP" [ref=e774] - cell "'MATE'" [ref=e775]: - generic [ref=e776]: "'MATE'" - row "XDG_DATA_DIRS '/usr/share/mate:/usr/share/mate:/usr/share/gnome:/home/ismail/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share'" [ref=e777]: - cell "XDG_DATA_DIRS" [ref=e778] - cell "'/usr/share/mate:/usr/share/mate:/usr/share/gnome:/home/ismail/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share'" [ref=e779]: - generic [ref=e780]: "'/usr/share/mate:/usr/share/mate:/usr/share/gnome:/home/ismail/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share'" - row "XDG_GREETER_DATA_DIR '/var/lib/lightdm-data/ismail'" [ref=e781]: - cell "XDG_GREETER_DATA_DIR" [ref=e782] - cell "'/var/lib/lightdm-data/ismail'" [ref=e783]: - generic [ref=e784]: "'/var/lib/lightdm-data/ismail'" - row "XDG_RUNTIME_DIR '/run/user/1000'" [ref=e785]: - cell "XDG_RUNTIME_DIR" [ref=e786] - cell "'/run/user/1000'" [ref=e787]: - generic [ref=e788]: "'/run/user/1000'" - row "XDG_SEAT_PATH '/org/freedesktop/DisplayManager/Seat0'" [ref=e789]: - cell "XDG_SEAT_PATH" [ref=e790] - cell "'/org/freedesktop/DisplayManager/Seat0'" [ref=e791]: - generic [ref=e792]: "'/org/freedesktop/DisplayManager/Seat0'" - row "XDG_SESSION_CLASS 'user'" [ref=e793]: - cell "XDG_SESSION_CLASS" [ref=e794] - cell "'user'" [ref=e795]: - generic [ref=e796]: "'user'" - row "XDG_SESSION_DESKTOP 'mate'" [ref=e797]: - cell "XDG_SESSION_DESKTOP" [ref=e798] - cell "'mate'" [ref=e799]: - generic [ref=e800]: "'mate'" - row "XDG_SESSION_PATH '/org/freedesktop/DisplayManager/Session0'" [ref=e801]: - cell "XDG_SESSION_PATH" [ref=e802] - cell "'/org/freedesktop/DisplayManager/Session0'" [ref=e803]: - generic [ref=e804]: "'/org/freedesktop/DisplayManager/Session0'" - row "XDG_SESSION_TYPE 'x11'" [ref=e805]: - cell "XDG_SESSION_TYPE" [ref=e806] - cell "'x11'" [ref=e807]: - generic [ref=e808]: "'x11'" - row "_ '/home/ismail/.local/bin/uv'" [ref=e809]: - cell "_" [ref=e810] - cell "'/home/ismail/.local/bin/uv'" [ref=e811]: - generic [ref=e812]: "'/home/ismail/.local/bin/uv'" - row "wsgi.errors <_io.TextIOWrapper name='' mode='w' encoding='utf-8'>" [ref=e813]: - cell "wsgi.errors" [ref=e814] - cell "<_io.TextIOWrapper name='' mode='w' encoding='utf-8'>" [ref=e815]: - generic [ref=e816]: <_io.TextIOWrapper name='' mode='w' encoding='utf-8'> - row "wsgi.file_wrapper " [ref=e817]: - cell "wsgi.file_wrapper" [ref=e818] - cell "" [ref=e819]: - generic [ref=e820]: - row "wsgi.input " [ref=e821]: - cell "wsgi.input" [ref=e822] - cell "" [ref=e823]: - generic [ref=e824]: - row "wsgi.multiprocess False" [ref=e825]: - cell "wsgi.multiprocess" [ref=e826] - cell "False" [ref=e827]: - generic [ref=e828]: "False" - row "wsgi.multithread True" [ref=e829]: - cell "wsgi.multithread" [ref=e830] - cell "True" [ref=e831]: - generic [ref=e832]: "True" - row "wsgi.run_once False" [ref=e833]: - cell "wsgi.run_once" [ref=e834] - cell "False" [ref=e835]: - generic [ref=e836]: "False" - row "wsgi.url_scheme 'http'" [ref=e837]: - cell "wsgi.url_scheme" [ref=e838] - cell "'http'" [ref=e839]: - generic [ref=e840]: "'http'" - row "wsgi.version (1, 0)" [ref=e841]: - cell "wsgi.version" [ref=e842] - cell "(1, 0)" [ref=e843]: - generic [ref=e844]: (1, 0) - heading "Settings" [level=3] [ref=e845] - heading "Using settings module config.settings.dev" [level=4] [ref=e846]: - text: Using settings module - code [ref=e847]: config.settings.dev - table [ref=e848]: - rowgroup [ref=e849]: - row "Setting Value" [ref=e850]: - columnheader "Setting" [ref=e851] - columnheader "Value" [ref=e852] - rowgroup [ref=e853]: - 'row "ABSOLUTE_URL_OVERRIDES {}" [ref=e854]': - cell "ABSOLUTE_URL_OVERRIDES" [ref=e855] - 'cell "{}" [ref=e856]': - generic [ref=e857]: "{}" - row "ADMINS []" [ref=e858]: - cell "ADMINS" [ref=e859] - cell "[]" [ref=e860]: - generic [ref=e861]: "[]" - row "AI_MAX_TOKENS '********************'" [ref=e862]: - cell "AI_MAX_TOKENS" [ref=e863] - cell "'********************'" [ref=e864]: - generic [ref=e865]: "'********************'" - row "AI_MODEL 'openrouter/google/gemini-2.5-flash-lite'" [ref=e866]: - cell "AI_MODEL" [ref=e867] - cell "'openrouter/google/gemini-2.5-flash-lite'" [ref=e868]: - generic [ref=e869]: "'openrouter/google/gemini-2.5-flash-lite'" - row "AI_TEMPERATURE 0.3" [ref=e870]: - cell "AI_TEMPERATURE" [ref=e871] - cell "0.3" [ref=e872]: - generic [ref=e873]: "0.3" - row "ALLOWED_HOSTS ['localhost', '127.0.0.1', '0.0.0.0', '.ngrok-free.app', 'micha-nonparabolic-lovie.ngrok-free.dev']" [ref=e874]: - cell "ALLOWED_HOSTS" [ref=e875] - cell "['localhost', '127.0.0.1', '0.0.0.0', '.ngrok-free.app', 'micha-nonparabolic-lovie.ngrok-free.dev']" [ref=e876]: - generic [ref=e877]: "['localhost', '127.0.0.1', '0.0.0.0', '.ngrok-free.app', 'micha-nonparabolic-lovie.ngrok-free.dev']" - row "ANALYSIS_BATCH_SIZE 2" [ref=e878]: - cell "ANALYSIS_BATCH_SIZE" [ref=e879] - cell "2" [ref=e880]: - generic [ref=e881]: "2" - row "ANALYSIS_ENABLED True" [ref=e882]: - cell "ANALYSIS_ENABLED" [ref=e883] - cell "True" [ref=e884]: - generic [ref=e885]: "True" - row "APPEND_SLASH True" [ref=e886]: - cell "APPEND_SLASH" [ref=e887] - cell "True" [ref=e888]: - generic [ref=e889]: "True" - row "AUTHENTICATION_BACKENDS '********************'" [ref=e890]: - cell "AUTHENTICATION_BACKENDS" [ref=e891] - cell "'********************'" [ref=e892]: - generic [ref=e893]: "'********************'" - row "AUTH_PASSWORD_VALIDATORS '********************'" [ref=e894]: - cell "AUTH_PASSWORD_VALIDATORS" [ref=e895] - cell "'********************'" [ref=e896]: - generic [ref=e897]: "'********************'" - row "AUTH_USER_MODEL '********************'" [ref=e898]: - cell "AUTH_USER_MODEL" [ref=e899] - cell "'********************'" [ref=e900]: - generic [ref=e901]: "'********************'" - row "BASE_DIR PosixPath('/home/ismail/projects/HH')" [ref=e902]: - cell "BASE_DIR" [ref=e903] - cell "PosixPath('/home/ismail/projects/HH')" [ref=e904]: - generic [ref=e905]: PosixPath('/home/ismail/projects/HH') - 'row "CACHES {''default'': {''BACKEND'': ''django.core.cache.backends.locmem.LocMemCache''}}" [ref=e906]': - cell "CACHES" [ref=e907] - 'cell "{''default'': {''BACKEND'': ''django.core.cache.backends.locmem.LocMemCache''}}" [ref=e908]': - generic [ref=e909]: "{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}" - row "CACHE_MIDDLEWARE_ALIAS 'default'" [ref=e910]: - cell "CACHE_MIDDLEWARE_ALIAS" [ref=e911] - cell "'default'" [ref=e912]: - generic [ref=e913]: "'default'" - row "CACHE_MIDDLEWARE_KEY_PREFIX '********************'" [ref=e914]: - cell "CACHE_MIDDLEWARE_KEY_PREFIX" [ref=e915] - cell "'********************'" [ref=e916]: - generic [ref=e917]: "'********************'" - row "CACHE_MIDDLEWARE_SECONDS 600" [ref=e918]: - cell "CACHE_MIDDLEWARE_SECONDS" [ref=e919] - cell "600" [ref=e920]: - generic [ref=e921]: "600" - row "CELERY_ACCEPT_CONTENT ['json']" [ref=e922]: - cell "CELERY_ACCEPT_CONTENT" [ref=e923] - cell "['json']" [ref=e924]: - generic [ref=e925]: "['json']" - row "CELERY_BEAT_SCHEDULER 'config.celery_scheduler:PatchedDatabaseScheduler'" [ref=e926]: - cell "CELERY_BEAT_SCHEDULER" [ref=e927] - cell "'config.celery_scheduler:PatchedDatabaseScheduler'" [ref=e928]: - generic [ref=e929]: "'config.celery_scheduler:PatchedDatabaseScheduler'" - row "CELERY_BROKER_URL 'redis://localhost:6379/0'" [ref=e930]: - cell "CELERY_BROKER_URL" [ref=e931] - cell "'redis://localhost:6379/0'" [ref=e932]: - generic [ref=e933]: "'redis://localhost:6379/0'" - row "CELERY_RESULT_BACKEND 'redis://localhost:6379/0'" [ref=e934]: - cell "CELERY_RESULT_BACKEND" [ref=e935] - cell "'redis://localhost:6379/0'" [ref=e936]: - generic [ref=e937]: "'redis://localhost:6379/0'" - row "CELERY_RESULT_SERIALIZER 'json'" [ref=e938]: - cell "CELERY_RESULT_SERIALIZER" [ref=e939] - cell "'json'" [ref=e940]: - generic [ref=e941]: "'json'" - row "CELERY_TASK_ALWAYS_EAGER False" [ref=e942]: - cell "CELERY_TASK_ALWAYS_EAGER" [ref=e943] - cell "False" [ref=e944]: - generic [ref=e945]: "False" - row "CELERY_TASK_EAGER_PROPAGATES True" [ref=e946]: - cell "CELERY_TASK_EAGER_PROPAGATES" [ref=e947] - cell "True" [ref=e948]: - generic [ref=e949]: "True" - row "CELERY_TASK_SERIALIZER 'json'" [ref=e950]: - cell "CELERY_TASK_SERIALIZER" [ref=e951] - cell "'json'" [ref=e952]: - generic [ref=e953]: "'json'" - row "CELERY_TASK_TIME_LIMIT 1800" [ref=e954]: - cell "CELERY_TASK_TIME_LIMIT" [ref=e955] - cell "1800" [ref=e956]: - generic [ref=e957]: "1800" - row "CELERY_TASK_TRACK_STARTED True" [ref=e958]: - cell "CELERY_TASK_TRACK_STARTED" [ref=e959] - cell "True" [ref=e960]: - generic [ref=e961]: "True" - row "CELERY_TIMEZONE 'Asia/Riyadh'" [ref=e962]: - cell "CELERY_TIMEZONE" [ref=e963] - cell "'Asia/Riyadh'" [ref=e964]: - generic [ref=e965]: "'Asia/Riyadh'" - row "COMPLAINT_LINK_EXPIRY_DAYS 7" [ref=e966]: - cell "COMPLAINT_LINK_EXPIRY_DAYS" [ref=e967] - cell "7" [ref=e968]: - generic [ref=e969]: "7" - row "CORS_ALLOW_ALL_ORIGINS True" [ref=e970]: - cell "CORS_ALLOW_ALL_ORIGINS" [ref=e971] - cell "True" [ref=e972]: - generic [ref=e973]: "True" - row "CSRF_COOKIE_AGE 31449600" [ref=e974]: - cell "CSRF_COOKIE_AGE" [ref=e975] - cell "31449600" [ref=e976]: - generic [ref=e977]: "31449600" - row "CSRF_COOKIE_DOMAIN None" [ref=e978]: - cell "CSRF_COOKIE_DOMAIN" [ref=e979] - cell "None" [ref=e980]: - generic [ref=e981]: None - row "CSRF_COOKIE_HTTPONLY False" [ref=e982]: - cell "CSRF_COOKIE_HTTPONLY" [ref=e983] - cell "False" [ref=e984]: - generic [ref=e985]: "False" - row "CSRF_COOKIE_NAME 'csrftoken'" [ref=e986]: - cell "CSRF_COOKIE_NAME" [ref=e987] - cell "'csrftoken'" [ref=e988]: - generic [ref=e989]: "'csrftoken'" - row "CSRF_COOKIE_PATH '/'" [ref=e990]: - cell "CSRF_COOKIE_PATH" [ref=e991] - cell "'/'" [ref=e992]: - generic [ref=e993]: "'/'" - row "CSRF_COOKIE_SAMESITE 'Lax'" [ref=e994]: - cell "CSRF_COOKIE_SAMESITE" [ref=e995] - cell "'Lax'" [ref=e996]: - generic [ref=e997]: "'Lax'" - row "CSRF_COOKIE_SECURE False" [ref=e998]: - cell "CSRF_COOKIE_SECURE" [ref=e999] - cell "False" [ref=e1000]: - generic [ref=e1001]: "False" - row "CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'" [ref=e1002]: - cell "CSRF_FAILURE_VIEW" [ref=e1003] - cell "'django.views.csrf.csrf_failure'" [ref=e1004]: - generic [ref=e1005]: "'django.views.csrf.csrf_failure'" - row "CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'" [ref=e1006]: - cell "CSRF_HEADER_NAME" [ref=e1007] - cell "'HTTP_X_CSRFTOKEN'" [ref=e1008]: - generic [ref=e1009]: "'HTTP_X_CSRFTOKEN'" - row "CSRF_TRUSTED_ORIGINS ['https://*.ngrok-free.app', 'https://*.ngrok.app', 'https://micha-nonparabolic-lovie.ngrok-free.dev']" [ref=e1010]: - cell "CSRF_TRUSTED_ORIGINS" [ref=e1011] - cell "['https://*.ngrok-free.app', 'https://*.ngrok.app', 'https://micha-nonparabolic-lovie.ngrok-free.dev']" [ref=e1012]: - generic [ref=e1013]: "['https://*.ngrok-free.app', 'https://*.ngrok.app', 'https://micha-nonparabolic-lovie.ngrok-free.dev']" - row "CSRF_USE_SESSIONS False" [ref=e1014]: - cell "CSRF_USE_SESSIONS" [ref=e1015] - cell "False" [ref=e1016]: - generic [ref=e1017]: "False" - 'row "DATABASES {''default'': {''ATOMIC_REQUESTS'': False, ''AUTOCOMMIT'': True, ''CONN_HEALTH_CHECKS'': False, ''CONN_MAX_AGE'': 0, ''ENGINE'': ''django.db.backends.postgresql'', ''HOST'': ''localhost'', ''NAME'': ''px360'', ''OPTIONS'': {}, ''PASSWORD'': ''********************'', ''PORT'': 5433, ''TEST'': {''CHARSET'': None, ''COLLATION'': None, ''MIGRATE'': True, ''MIRROR'': None, ''NAME'': None}, ''TIME_ZONE'': None, ''USER'': ''px360''}}" [ref=e1018]': - cell "DATABASES" [ref=e1019] - 'cell "{''default'': {''ATOMIC_REQUESTS'': False, ''AUTOCOMMIT'': True, ''CONN_HEALTH_CHECKS'': False, ''CONN_MAX_AGE'': 0, ''ENGINE'': ''django.db.backends.postgresql'', ''HOST'': ''localhost'', ''NAME'': ''px360'', ''OPTIONS'': {}, ''PASSWORD'': ''********************'', ''PORT'': 5433, ''TEST'': {''CHARSET'': None, ''COLLATION'': None, ''MIGRATE'': True, ''MIRROR'': None, ''NAME'': None}, ''TIME_ZONE'': None, ''USER'': ''px360''}}" [ref=e1020]': - generic [ref=e1021]: "{'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'localhost', 'NAME': 'px360', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': 5433, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'px360'}}" - row "DATABASE_ROUTERS []" [ref=e1022]: - cell "DATABASE_ROUTERS" [ref=e1023] - cell "[]" [ref=e1024]: - generic [ref=e1025]: "[]" - row "DATA_UPLOAD_MAX_MEMORY_SIZE 2621440" [ref=e1026]: - cell "DATA_UPLOAD_MAX_MEMORY_SIZE" [ref=e1027] - cell "2621440" [ref=e1028]: - generic [ref=e1029]: "2621440" - row "DATA_UPLOAD_MAX_NUMBER_FIELDS 10000" [ref=e1030]: - cell "DATA_UPLOAD_MAX_NUMBER_FIELDS" [ref=e1031] - cell "10000" [ref=e1032]: - generic [ref=e1033]: "10000" - row "DATA_UPLOAD_MAX_NUMBER_FILES 100" [ref=e1034]: - cell "DATA_UPLOAD_MAX_NUMBER_FILES" [ref=e1035] - cell "100" [ref=e1036]: - generic [ref=e1037]: "100" - row "DATETIME_FORMAT 'N j, Y, P'" [ref=e1038]: - cell "DATETIME_FORMAT" [ref=e1039] - cell "'N j, Y, P'" [ref=e1040]: - generic [ref=e1041]: "'N j, Y, P'" - row "DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']" [ref=e1042]: - cell "DATETIME_INPUT_FORMATS" [ref=e1043] - cell "['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']" [ref=e1044]: - generic [ref=e1045]: "['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']" - row "DATE_FORMAT 'N j, Y'" [ref=e1046]: - cell "DATE_FORMAT" [ref=e1047] - cell "'N j, Y'" [ref=e1048]: - generic [ref=e1049]: "'N j, Y'" - row "DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']" [ref=e1050]: - cell "DATE_INPUT_FORMATS" [ref=e1051] - cell "['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']" [ref=e1052]: - generic [ref=e1053]: "['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']" - row "DEBUG True" [ref=e1054]: - cell "DEBUG" [ref=e1055] - cell "True" [ref=e1056]: - generic [ref=e1057]: "True" - row "DEBUG_PROPAGATE_EXCEPTIONS False" [ref=e1058]: - cell "DEBUG_PROPAGATE_EXCEPTIONS" [ref=e1059] - cell "False" [ref=e1060]: - generic [ref=e1061]: "False" - row "DECIMAL_SEPARATOR '.'" [ref=e1062]: - cell "DECIMAL_SEPARATOR" [ref=e1063] - cell "'.'" [ref=e1064]: - generic [ref=e1065]: "'.'" - row "DEFAULT_AUTO_FIELD 'django.db.models.BigAutoField'" [ref=e1066]: - cell "DEFAULT_AUTO_FIELD" [ref=e1067] - cell "'django.db.models.BigAutoField'" [ref=e1068]: - generic [ref=e1069]: "'django.db.models.BigAutoField'" - row "DEFAULT_CHARSET 'utf-8'" [ref=e1070]: - cell "DEFAULT_CHARSET" [ref=e1071] - cell "'utf-8'" [ref=e1072]: - generic [ref=e1073]: "'utf-8'" - row "DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'" [ref=e1074]: - cell "DEFAULT_EXCEPTION_REPORTER" [ref=e1075] - cell "'django.views.debug.ExceptionReporter'" [ref=e1076]: - generic [ref=e1077]: "'django.views.debug.ExceptionReporter'" - row "DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'" [ref=e1078]: - cell "DEFAULT_EXCEPTION_REPORTER_FILTER" [ref=e1079] - cell "'django.views.debug.SafeExceptionReporterFilter'" [ref=e1080]: - generic [ref=e1081]: "'django.views.debug.SafeExceptionReporterFilter'" - row "DEFAULT_FROM_EMAIL 'noreply@px360.sa'" [ref=e1082]: - cell "DEFAULT_FROM_EMAIL" [ref=e1083] - cell "'noreply@px360.sa'" [ref=e1084]: - generic [ref=e1085]: "'noreply@px360.sa'" - row "DEFAULT_INDEX_TABLESPACE ''" [ref=e1086]: - cell "DEFAULT_INDEX_TABLESPACE" [ref=e1087] - cell "''" [ref=e1088]: - generic [ref=e1089]: "''" - row "DEFAULT_TABLESPACE ''" [ref=e1090]: - cell "DEFAULT_TABLESPACE" [ref=e1091] - cell "''" [ref=e1092]: - generic [ref=e1093]: "''" - row "DEV_SMS_RECIPIENT '+966566703794'" [ref=e1094]: - cell "DEV_SMS_RECIPIENT" [ref=e1095] - cell "'+966566703794'" [ref=e1096]: - generic [ref=e1097]: "'+966566703794'" - row "DISALLOWED_USER_AGENTS []" [ref=e1098]: - cell "DISALLOWED_USER_AGENTS" [ref=e1099] - cell "[]" [ref=e1100]: - generic [ref=e1101]: "[]" - row "DJANGO_APPS ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']" [ref=e1102]: - cell "DJANGO_APPS" [ref=e1103] - cell "['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']" [ref=e1104]: - generic [ref=e1105]: "['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']" - row "EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'" [ref=e1106]: - cell "EMAIL_BACKEND" [ref=e1107] - cell "'django.core.mail.backends.smtp.EmailBackend'" [ref=e1108]: - generic [ref=e1109]: "'django.core.mail.backends.smtp.EmailBackend'" - row "EMAIL_HOST 'localhost'" [ref=e1110]: - cell "EMAIL_HOST" [ref=e1111] - cell "'localhost'" [ref=e1112]: - generic [ref=e1113]: "'localhost'" - row "EMAIL_HOST_PASSWORD '********************'" [ref=e1114]: - cell "EMAIL_HOST_PASSWORD" [ref=e1115] - cell "'********************'" [ref=e1116]: - generic [ref=e1117]: "'********************'" - row "EMAIL_HOST_USER ''" [ref=e1118]: - cell "EMAIL_HOST_USER" [ref=e1119] - cell "''" [ref=e1120]: - generic [ref=e1121]: "''" - row "EMAIL_LOGO_URL 'http://localhost:8000/static/img/HH_P_H_Logo.png'" [ref=e1122]: - cell "EMAIL_LOGO_URL" [ref=e1123] - cell "'http://localhost:8000/static/img/HH_P_H_Logo.png'" [ref=e1124]: - generic [ref=e1125]: "'http://localhost:8000/static/img/HH_P_H_Logo.png'" - row "EMAIL_PORT 2525" [ref=e1126]: - cell "EMAIL_PORT" [ref=e1127] - cell "2525" [ref=e1128]: - generic [ref=e1129]: "2525" - row "EMAIL_SSL_CERTFILE None" [ref=e1130]: - cell "EMAIL_SSL_CERTFILE" [ref=e1131] - cell "None" [ref=e1132]: - generic [ref=e1133]: None - row "EMAIL_SSL_KEYFILE '********************'" [ref=e1134]: - cell "EMAIL_SSL_KEYFILE" [ref=e1135] - cell "'********************'" [ref=e1136]: - generic [ref=e1137]: "'********************'" - row "EMAIL_SUBJECT_PREFIX '[Django] '" [ref=e1138]: - cell "EMAIL_SUBJECT_PREFIX" [ref=e1139] - cell "'[Django] '" [ref=e1140]: - generic [ref=e1141]: "'[Django] '" - row "EMAIL_TIMEOUT None" [ref=e1142]: - cell "EMAIL_TIMEOUT" [ref=e1143] - cell "None" [ref=e1144]: - generic [ref=e1145]: None - row "EMAIL_USE_LOCALTIME False" [ref=e1146]: - cell "EMAIL_USE_LOCALTIME" [ref=e1147] - cell "False" [ref=e1148]: - generic [ref=e1149]: "False" - row "EMAIL_USE_SSL False" [ref=e1150]: - cell "EMAIL_USE_SSL" [ref=e1151] - cell "False" [ref=e1152]: - generic [ref=e1153]: "False" - row "EMAIL_USE_TLS False" [ref=e1154]: - cell "EMAIL_USE_TLS" [ref=e1155] - cell "False" [ref=e1156]: - generic [ref=e1157]: "False" - row "EXTERNAL_NOTIFICATION_API '********************'" [ref=e1158]: - cell "EXTERNAL_NOTIFICATION_API" [ref=e1159] - cell "'********************'" [ref=e1160]: - generic [ref=e1161]: "'********************'" - row "FACEBOOK_ACCESS_TOKEN '********************'" [ref=e1162]: - cell "FACEBOOK_ACCESS_TOKEN" [ref=e1163] - cell "'********************'" [ref=e1164]: - generic [ref=e1165]: "'********************'" - row "FACEBOOK_PAGE_ID '938104059393026'" [ref=e1166]: - cell "FACEBOOK_PAGE_ID" [ref=e1167] - cell "'938104059393026'" [ref=e1168]: - generic [ref=e1169]: "'938104059393026'" - row "FILE_UPLOAD_DIRECTORY_PERMISSIONS None" [ref=e1170]: - cell "FILE_UPLOAD_DIRECTORY_PERMISSIONS" [ref=e1171] - cell "None" [ref=e1172]: - generic [ref=e1173]: None - row "FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']" [ref=e1174]: - cell "FILE_UPLOAD_HANDLERS" [ref=e1175] - cell "['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']" [ref=e1176]: - generic [ref=e1177]: "['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']" - row "FILE_UPLOAD_MAX_MEMORY_SIZE 2621440" [ref=e1178]: - cell "FILE_UPLOAD_MAX_MEMORY_SIZE" [ref=e1179] - cell "2621440" [ref=e1180]: - generic [ref=e1181]: "2621440" - row "FILE_UPLOAD_PERMISSIONS 420" [ref=e1182]: - cell "FILE_UPLOAD_PERMISSIONS" [ref=e1183] - cell "420" [ref=e1184]: - generic [ref=e1185]: "420" - row "FILE_UPLOAD_TEMP_DIR None" [ref=e1186]: - cell "FILE_UPLOAD_TEMP_DIR" [ref=e1187] - cell "None" [ref=e1188]: - generic [ref=e1189]: None - row "FIRST_DAY_OF_WEEK 0" [ref=e1190]: - cell "FIRST_DAY_OF_WEEK" [ref=e1191] - cell "0" [ref=e1192]: - generic [ref=e1193]: "0" - row "FIXTURE_DIRS []" [ref=e1194]: - cell "FIXTURE_DIRS" [ref=e1195] - cell "[]" [ref=e1196]: - generic [ref=e1197]: "[]" - row "FORCE_SCRIPT_NAME None" [ref=e1198]: - cell "FORCE_SCRIPT_NAME" [ref=e1199] - cell "None" [ref=e1200]: - generic [ref=e1201]: None - row "FORMAT_MODULE_PATH None" [ref=e1202]: - cell "FORMAT_MODULE_PATH" [ref=e1203] - cell "None" [ref=e1204]: - generic [ref=e1205]: None - row "FORM_RENDERER 'django.forms.renderers.DjangoTemplates'" [ref=e1206]: - cell "FORM_RENDERER" [ref=e1207] - cell "'django.forms.renderers.DjangoTemplates'" [ref=e1208]: - generic [ref=e1209]: "'django.forms.renderers.DjangoTemplates'" - row "GOOGLE_CREDENTIALS_FILE 'client_secret.json'" [ref=e1210]: - cell "GOOGLE_CREDENTIALS_FILE" [ref=e1211] - cell "'client_secret.json'" [ref=e1212]: - generic [ref=e1213]: "'client_secret.json'" - row "GOOGLE_LOCATIONS []" [ref=e1214]: - cell "GOOGLE_LOCATIONS" [ref=e1215] - cell "[]" [ref=e1216]: - generic [ref=e1217]: "[]" - row "GOOGLE_TOKEN_FILE '********************'" [ref=e1218]: - cell "GOOGLE_TOKEN_FILE" [ref=e1219] - cell "'********************'" [ref=e1220]: - generic [ref=e1221]: "'********************'" - row "HIS_API_PASSWORD '********************'" [ref=e1222]: - cell "HIS_API_PASSWORD" [ref=e1223] - cell "'********************'" [ref=e1224]: - generic [ref=e1225]: "'********************'" - row "HIS_API_URL '********************'" [ref=e1226]: - cell "HIS_API_URL" [ref=e1227] - cell "'********************'" [ref=e1228]: - generic [ref=e1229]: "'********************'" - row "HIS_API_USERNAME '********************'" [ref=e1230]: - cell "HIS_API_USERNAME" [ref=e1231] - cell "'********************'" [ref=e1232]: - generic [ref=e1233]: "'********************'" - row "HIS_RATINGS_API_URL '********************'" [ref=e1234]: - cell "HIS_RATINGS_API_URL" [ref=e1235] - cell "'********************'" [ref=e1236]: - generic [ref=e1237]: "'********************'" - row "IGNORABLE_404_URLS []" [ref=e1238]: - cell "IGNORABLE_404_URLS" [ref=e1239] - cell "[]" [ref=e1240]: - generic [ref=e1241]: "[]" - row "INSTAGRAM_ACCESS_TOKEN '********************'" [ref=e1242]: - cell "INSTAGRAM_ACCESS_TOKEN" [ref=e1243] - cell "'********************'" [ref=e1244]: - generic [ref=e1245]: "'********************'" - row "INSTAGRAM_ACCOUNT_ID '17841431861985364'" [ref=e1246]: - cell "INSTAGRAM_ACCOUNT_ID" [ref=e1247] - cell "'17841431861985364'" [ref=e1248]: - generic [ref=e1249]: "'17841431861985364'" - row "INSTALLED_APPS ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_simplejwt', 'rest_framework_simplejwt.token_blacklist', 'django_filters', 'drf_spectacular', 'django_celery_beat', 'apps.core', 'apps.accounts', 'apps.organizations', 'apps.journeys', 'apps.surveys', 'apps.complaints', 'apps.feedback', 'apps.callcenter', 'apps.social', 'apps.px_action_center', 'apps.analytics', 'apps.physicians', 'apps.projects', 'apps.integrations', 'apps.notifications', 'apps.ai_engine', 'apps.dashboard', 'apps.appreciation', 'apps.observations', 'apps.px_sources', 'apps.references', 'apps.standards', 'apps.simulator', 'apps.reports', 'apps.rca', 'apps.executive_summary', 'apps.presentations', 'django_extensions']" [ref=e1250]: - cell "INSTALLED_APPS" [ref=e1251] - cell "['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_simplejwt', 'rest_framework_simplejwt.token_blacklist', 'django_filters', 'drf_spectacular', 'django_celery_beat', 'apps.core', 'apps.accounts', 'apps.organizations', 'apps.journeys', 'apps.surveys', 'apps.complaints', 'apps.feedback', 'apps.callcenter', 'apps.social', 'apps.px_action_center', 'apps.analytics', 'apps.physicians', 'apps.projects', 'apps.integrations', 'apps.notifications', 'apps.ai_engine', 'apps.dashboard', 'apps.appreciation', 'apps.observations', 'apps.px_sources', 'apps.references', 'apps.standards', 'apps.simulator', 'apps.reports', 'apps.rca', 'apps.executive_summary', 'apps.presentations', 'django_extensions']" [ref=e1252]: - generic [ref=e1253]: "['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_simplejwt', 'rest_framework_simplejwt.token_blacklist', 'django_filters', 'drf_spectacular', 'django_celery_beat', 'apps.core', 'apps.accounts', 'apps.organizations', 'apps.journeys', 'apps.surveys', 'apps.complaints', 'apps.feedback', 'apps.callcenter', 'apps.social', 'apps.px_action_center', 'apps.analytics', 'apps.physicians', 'apps.projects', 'apps.integrations', 'apps.notifications', 'apps.ai_engine', 'apps.dashboard', 'apps.appreciation', 'apps.observations', 'apps.px_sources', 'apps.references', 'apps.standards', 'apps.simulator', 'apps.reports', 'apps.rca', 'apps.executive_summary', 'apps.presentations', 'django_extensions']" - row "INTERNAL_IPS []" [ref=e1254]: - cell "INTERNAL_IPS" [ref=e1255] - cell "[]" [ref=e1256]: - generic [ref=e1257]: "[]" - row "LANGUAGES [('en', 'English'), ('ar', 'Arabic')]" [ref=e1258]: - cell "LANGUAGES" [ref=e1259] - cell "[('en', 'English'), ('ar', 'Arabic')]" [ref=e1260]: - generic [ref=e1261]: "[('en', 'English'), ('ar', 'Arabic')]" - row "LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']" [ref=e1262]: - cell "LANGUAGES_BIDI" [ref=e1263] - cell "['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']" [ref=e1264]: - generic [ref=e1265]: "['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']" - row "LANGUAGE_CODE 'en-us'" [ref=e1266]: - cell "LANGUAGE_CODE" [ref=e1267] - cell "'en-us'" [ref=e1268]: - generic [ref=e1269]: "'en-us'" - row "LANGUAGE_COOKIE_AGE None" [ref=e1270]: - cell "LANGUAGE_COOKIE_AGE" [ref=e1271] - cell "None" [ref=e1272]: - generic [ref=e1273]: None - row "LANGUAGE_COOKIE_DOMAIN None" [ref=e1274]: - cell "LANGUAGE_COOKIE_DOMAIN" [ref=e1275] - cell "None" [ref=e1276]: - generic [ref=e1277]: None - row "LANGUAGE_COOKIE_HTTPONLY False" [ref=e1278]: - cell "LANGUAGE_COOKIE_HTTPONLY" [ref=e1279] - cell "False" [ref=e1280]: - generic [ref=e1281]: "False" - row "LANGUAGE_COOKIE_NAME 'django_language'" [ref=e1282]: - cell "LANGUAGE_COOKIE_NAME" [ref=e1283] - cell "'django_language'" [ref=e1284]: - generic [ref=e1285]: "'django_language'" - row "LANGUAGE_COOKIE_PATH '/'" [ref=e1286]: - cell "LANGUAGE_COOKIE_PATH" [ref=e1287] - cell "'/'" [ref=e1288]: - generic [ref=e1289]: "'/'" - row "LANGUAGE_COOKIE_SAMESITE None" [ref=e1290]: - cell "LANGUAGE_COOKIE_SAMESITE" [ref=e1291] - cell "None" [ref=e1292]: - generic [ref=e1293]: None - row "LANGUAGE_COOKIE_SECURE False" [ref=e1294]: - cell "LANGUAGE_COOKIE_SECURE" [ref=e1295] - cell "False" [ref=e1296]: - generic [ref=e1297]: "False" - row "LINKEDIN_ACCESS_TOKEN '********************'" [ref=e1298]: - cell "LINKEDIN_ACCESS_TOKEN" [ref=e1299] - cell "'********************'" [ref=e1300]: - generic [ref=e1301]: "'********************'" - row "LINKEDIN_ORGANIZATION_ID None" [ref=e1302]: - cell "LINKEDIN_ORGANIZATION_ID" [ref=e1303] - cell "None" [ref=e1304]: - generic [ref=e1305]: None - row "LOCALE_PATHS [PosixPath('/home/ismail/projects/HH/locale')]" [ref=e1306]: - cell "LOCALE_PATHS" [ref=e1307] - cell "[PosixPath('/home/ismail/projects/HH/locale')]" [ref=e1308]: - generic [ref=e1309]: "[PosixPath('/home/ismail/projects/HH/locale')]" - row "LOCAL_APPS ['apps.core', 'apps.accounts', 'apps.organizations', 'apps.journeys', 'apps.surveys', 'apps.complaints', 'apps.feedback', 'apps.callcenter', 'apps.social', 'apps.px_action_center', 'apps.analytics', 'apps.physicians', 'apps.projects', 'apps.integrations', 'apps.notifications', 'apps.ai_engine', 'apps.dashboard', 'apps.appreciation', 'apps.observations', 'apps.px_sources', 'apps.references', 'apps.standards', 'apps.simulator', 'apps.reports', 'apps.rca', 'apps.executive_summary', 'apps.presentations']" [ref=e1310]: - cell "LOCAL_APPS" [ref=e1311] - cell "['apps.core', 'apps.accounts', 'apps.organizations', 'apps.journeys', 'apps.surveys', 'apps.complaints', 'apps.feedback', 'apps.callcenter', 'apps.social', 'apps.px_action_center', 'apps.analytics', 'apps.physicians', 'apps.projects', 'apps.integrations', 'apps.notifications', 'apps.ai_engine', 'apps.dashboard', 'apps.appreciation', 'apps.observations', 'apps.px_sources', 'apps.references', 'apps.standards', 'apps.simulator', 'apps.reports', 'apps.rca', 'apps.executive_summary', 'apps.presentations']" [ref=e1312]: - generic [ref=e1313]: "['apps.core', 'apps.accounts', 'apps.organizations', 'apps.journeys', 'apps.surveys', 'apps.complaints', 'apps.feedback', 'apps.callcenter', 'apps.social', 'apps.px_action_center', 'apps.analytics', 'apps.physicians', 'apps.projects', 'apps.integrations', 'apps.notifications', 'apps.ai_engine', 'apps.dashboard', 'apps.appreciation', 'apps.observations', 'apps.px_sources', 'apps.references', 'apps.standards', 'apps.simulator', 'apps.reports', 'apps.rca', 'apps.executive_summary', 'apps.presentations']" - row [ref=e1314]: - cell "LOGGING" [ref=e1315] - cell [ref=e1316]: - generic [ref=e1317]: "{'disable_existing_loggers': False, 'filters': {'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}}, 'formatters': {'simple': {'format': '{levelname} {message}', 'style': '{'}, 'verbose': {'format': '{levelname} {asctime} {module} ' '{process:d} {thread:d} {message}', 'style': '{'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'verbose', 'level': 'INFO'}, 'file': {'backupCount': 10, 'class': 'logging.handlers.RotatingFileHandler', 'filename': PosixPath('/home/ismail/projects/HH/logs/px360.log'), 'formatter': 'verbose', 'level': 'INFO', 'maxBytes': 15728640}, 'integration_file': {'backupCount': 10, 'class': 'logging.handlers.RotatingFileHandler', 'filename': PosixPath('/home/ismail/projects/HH/logs/integrations.log'), 'formatter': 'verbose', 'level': 'INFO', 'maxBytes': 15728640}}, 'loggers': {'apps': {'handlers': ['console', 'file'], 'level': 'DEBUG', 'propagate': False}, 'apps.integrations': {'handlers': ['console', 'integration_file'], 'level': 'INFO', 'propagate': False}, 'django': {'handlers': ['console', 'file'], 'level': 'DEBUG', 'propagate': False}}, 'version': 1}" - row "LOGGING_CONFIG 'logging.config.dictConfig'" [ref=e1318]: - cell "LOGGING_CONFIG" [ref=e1319] - cell "'logging.config.dictConfig'" [ref=e1320]: - generic [ref=e1321]: "'logging.config.dictConfig'" - row "LOGIN_ATTEMPT_TIMEOUT_MINUTES 30" [ref=e1322]: - cell "LOGIN_ATTEMPT_TIMEOUT_MINUTES" [ref=e1323] - cell "30" [ref=e1324]: - generic [ref=e1325]: "30" - row "LOGIN_REDIRECT_URL '/'" [ref=e1326]: - cell "LOGIN_REDIRECT_URL" [ref=e1327] - cell "'/'" [ref=e1328]: - generic [ref=e1329]: "'/'" - row "LOGIN_URL '/accounts/login/'" [ref=e1330]: - cell "LOGIN_URL" [ref=e1331] - cell "'/accounts/login/'" [ref=e1332]: - generic [ref=e1333]: "'/accounts/login/'" - row "LOGOUT_REDIRECT_URL '/accounts/login/'" [ref=e1334]: - cell "LOGOUT_REDIRECT_URL" [ref=e1335] - cell "'/accounts/login/'" [ref=e1336]: - generic [ref=e1337]: "'/accounts/login/'" - row "LOGS_DIR PosixPath('/home/ismail/projects/HH/logs')" [ref=e1338]: - cell "LOGS_DIR" [ref=e1339] - cell "PosixPath('/home/ismail/projects/HH/logs')" [ref=e1340]: - generic [ref=e1341]: PosixPath('/home/ismail/projects/HH/logs') - row "MANAGERS []" [ref=e1342]: - cell "MANAGERS" [ref=e1343] - cell "[]" [ref=e1344]: - generic [ref=e1345]: "[]" - row "MAX_LOGIN_ATTEMPTS 5" [ref=e1346]: - cell "MAX_LOGIN_ATTEMPTS" [ref=e1347] - cell "5" [ref=e1348]: - generic [ref=e1349]: "5" - row "MEDIA_ROOT PosixPath('/home/ismail/projects/HH/media')" [ref=e1350]: - cell "MEDIA_ROOT" [ref=e1351] - cell "PosixPath('/home/ismail/projects/HH/media')" [ref=e1352]: - generic [ref=e1353]: PosixPath('/home/ismail/projects/HH/media') - row "MEDIA_URL '/media/'" [ref=e1354]: - cell "MEDIA_URL" [ref=e1355] - cell "'/media/'" [ref=e1356]: - generic [ref=e1357]: "'/media/'" - row "MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'" [ref=e1358]: - cell "MESSAGE_STORAGE" [ref=e1359] - cell "'django.contrib.messages.storage.fallback.FallbackStorage'" [ref=e1360]: - generic [ref=e1361]: "'django.contrib.messages.storage.fallback.FallbackStorage'" - row "MIDDLEWARE ['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'apps.core.middleware.TenantMiddleware', 'apps.core.middleware.DepartmentRespondentMiddleware', 'apps.px_sources.middleware.SourceUserRestrictionMiddleware', 'apps.px_sources.middleware.SourceUserSessionMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'apps.accounts.middleware.ActivityLoggingMiddleware']" [ref=e1362]: - cell "MIDDLEWARE" [ref=e1363] - cell "['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'apps.core.middleware.TenantMiddleware', 'apps.core.middleware.DepartmentRespondentMiddleware', 'apps.px_sources.middleware.SourceUserRestrictionMiddleware', 'apps.px_sources.middleware.SourceUserSessionMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'apps.accounts.middleware.ActivityLoggingMiddleware']" [ref=e1364]: - generic [ref=e1365]: "['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'apps.core.middleware.TenantMiddleware', 'apps.core.middleware.DepartmentRespondentMiddleware', 'apps.px_sources.middleware.SourceUserRestrictionMiddleware', 'apps.px_sources.middleware.SourceUserSessionMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'apps.accounts.middleware.ActivityLoggingMiddleware']" - 'row "MIGRATION_MODULES {}" [ref=e1366]': - cell "MIGRATION_MODULES" [ref=e1367] - 'cell "{}" [ref=e1368]': - generic [ref=e1369]: "{}" - row "MONTH_DAY_FORMAT 'F j'" [ref=e1370]: - cell "MONTH_DAY_FORMAT" [ref=e1371] - cell "'F j'" [ref=e1372]: - generic [ref=e1373]: "'F j'" - row "MSHASTRA_PASSWORD '********************'" [ref=e1374]: - cell "MSHASTRA_PASSWORD" [ref=e1375] - cell "'********************'" [ref=e1376]: - generic [ref=e1377]: "'********************'" - row "MSHASTRA_SENDER_ID 'M556999091'" [ref=e1378]: - cell "MSHASTRA_SENDER_ID" [ref=e1379] - cell "'M556999091'" [ref=e1380]: - generic [ref=e1381]: "'M556999091'" - row "MSHASTRA_USERNAME 'M556999091'" [ref=e1382]: - cell "MSHASTRA_USERNAME" [ref=e1383] - cell "'M556999091'" [ref=e1384]: - generic [ref=e1385]: "'M556999091'" - 'row "NOTIFICATION_CHANNELS {''email'': {''enabled'': True, ''provider'': ''console''}, ''sms'': {''enabled'': False, ''provider'': ''mshastra''}, ''whatsapp'': {''enabled'': False, ''provider'': ''console''}}" [ref=e1386]': - cell "NOTIFICATION_CHANNELS" [ref=e1387] - 'cell "{''email'': {''enabled'': True, ''provider'': ''console''}, ''sms'': {''enabled'': False, ''provider'': ''mshastra''}, ''whatsapp'': {''enabled'': False, ''provider'': ''console''}}" [ref=e1388]': - generic [ref=e1389]: "{'email': {'enabled': True, 'provider': 'console'}, 'sms': {'enabled': False, 'provider': 'mshastra'}, 'whatsapp': {'enabled': False, 'provider': 'console'}}" - row "NUMBER_GROUPING 0" [ref=e1390]: - cell "NUMBER_GROUPING" [ref=e1391] - cell "0" [ref=e1392]: - generic [ref=e1393]: "0" - row "OPENROUTER_API_KEY '********************'" [ref=e1394]: - cell "OPENROUTER_API_KEY" [ref=e1395] - cell "'********************'" [ref=e1396]: - generic [ref=e1397]: "'********************'" - row "OPENROUTER_MODEL 'google/gemma-3-27b-it:free'" [ref=e1398]: - cell "OPENROUTER_MODEL" [ref=e1399] - cell "'google/gemma-3-27b-it:free'" [ref=e1400]: - generic [ref=e1401]: "'google/gemma-3-27b-it:free'" - row "PASSWORD_COMPLEXITY '********************'" [ref=e1402]: - cell "PASSWORD_COMPLEXITY" [ref=e1403] - cell "'********************'" [ref=e1404]: - generic [ref=e1405]: "'********************'" - row "PASSWORD_HASHERS '********************'" [ref=e1406]: - cell "PASSWORD_HASHERS" [ref=e1407] - cell "'********************'" [ref=e1408]: - generic [ref=e1409]: "'********************'" - row "PASSWORD_MIN_LENGTH '********************'" [ref=e1410]: - cell "PASSWORD_MIN_LENGTH" [ref=e1411] - cell "'********************'" [ref=e1412]: - generic [ref=e1413]: "'********************'" - row "PASSWORD_RESET_TIMEOUT '********************'" [ref=e1414]: - cell "PASSWORD_RESET_TIMEOUT" [ref=e1415] - cell "'********************'" [ref=e1416]: - generic [ref=e1417]: "'********************'" - row "PREPEND_WWW False" [ref=e1418]: - cell "PREPEND_WWW" [ref=e1419] - cell "False" [ref=e1420]: - generic [ref=e1421]: "False" - 'row "REST_FRAMEWORK {''DEFAULT_AUTHENTICATION_CLASSES'': ''********************'', ''DEFAULT_FILTER_BACKENDS'': [''django_filters.rest_framework.DjangoFilterBackend'', ''rest_framework.filters.SearchFilter'', ''rest_framework.filters.OrderingFilter''], ''DEFAULT_PAGINATION_CLASS'': ''rest_framework.pagination.PageNumberPagination'', ''DEFAULT_PERMISSION_CLASSES'': [''rest_framework.permissions.IsAuthenticated''], ''DEFAULT_SCHEMA_CLASS'': ''drf_spectacular.openapi.AutoSchema'', ''PAGE_SIZE'': 50}" [ref=e1422]': - cell "REST_FRAMEWORK" [ref=e1423] - 'cell "{''DEFAULT_AUTHENTICATION_CLASSES'': ''********************'', ''DEFAULT_FILTER_BACKENDS'': [''django_filters.rest_framework.DjangoFilterBackend'', ''rest_framework.filters.SearchFilter'', ''rest_framework.filters.OrderingFilter''], ''DEFAULT_PAGINATION_CLASS'': ''rest_framework.pagination.PageNumberPagination'', ''DEFAULT_PERMISSION_CLASSES'': [''rest_framework.permissions.IsAuthenticated''], ''DEFAULT_SCHEMA_CLASS'': ''drf_spectacular.openapi.AutoSchema'', ''PAGE_SIZE'': 50}" [ref=e1424]': - generic [ref=e1425]: "{'DEFAULT_AUTHENTICATION_CLASSES': '********************', 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.SearchFilter', 'rest_framework.filters.OrderingFilter'], 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'], 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'PAGE_SIZE': 50}" - row "ROOT_URLCONF 'config.urls'" [ref=e1426]: - cell "ROOT_URLCONF" [ref=e1427] - cell "'config.urls'" [ref=e1428]: - generic [ref=e1429]: "'config.urls'" - row "SECRET_KEY '********************'" [ref=e1430]: - cell "SECRET_KEY" [ref=e1431] - cell "'********************'" [ref=e1432]: - generic [ref=e1433]: "'********************'" - row "SECRET_KEY_FALLBACKS '********************'" [ref=e1434]: - cell "SECRET_KEY_FALLBACKS" [ref=e1435] - cell "'********************'" [ref=e1436]: - generic [ref=e1437]: "'********************'" - row "SECURE_BROWSER_XSS_FILTER True" [ref=e1438]: - cell "SECURE_BROWSER_XSS_FILTER" [ref=e1439] - cell "True" [ref=e1440]: - generic [ref=e1441]: "True" - row "SECURE_CONTENT_TYPE_NOSNIFF True" [ref=e1442]: - cell "SECURE_CONTENT_TYPE_NOSNIFF" [ref=e1443] - cell "True" [ref=e1444]: - generic [ref=e1445]: "True" - row "SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'" [ref=e1446]: - cell "SECURE_CROSS_ORIGIN_OPENER_POLICY" [ref=e1447] - cell "'same-origin'" [ref=e1448]: - generic [ref=e1449]: "'same-origin'" - 'row "SECURE_CSP {}" [ref=e1450]': - cell "SECURE_CSP" [ref=e1451] - 'cell "{}" [ref=e1452]': - generic [ref=e1453]: "{}" - 'row "SECURE_CSP_REPORT_ONLY {}" [ref=e1454]': - cell "SECURE_CSP_REPORT_ONLY" [ref=e1455] - 'cell "{}" [ref=e1456]': - generic [ref=e1457]: "{}" - row "SECURE_HSTS_INCLUDE_SUBDOMAINS False" [ref=e1458]: - cell "SECURE_HSTS_INCLUDE_SUBDOMAINS" [ref=e1459] - cell "False" [ref=e1460]: - generic [ref=e1461]: "False" - row "SECURE_HSTS_PRELOAD False" [ref=e1462]: - cell "SECURE_HSTS_PRELOAD" [ref=e1463] - cell "False" [ref=e1464]: - generic [ref=e1465]: "False" - row "SECURE_HSTS_SECONDS 0" [ref=e1466]: - cell "SECURE_HSTS_SECONDS" [ref=e1467] - cell "0" [ref=e1468]: - generic [ref=e1469]: "0" - row "SECURE_PROXY_SSL_HEADER None" [ref=e1470]: - cell "SECURE_PROXY_SSL_HEADER" [ref=e1471] - cell "None" [ref=e1472]: - generic [ref=e1473]: None - row "SECURE_REDIRECT_EXEMPT []" [ref=e1474]: - cell "SECURE_REDIRECT_EXEMPT" [ref=e1475] - cell "[]" [ref=e1476]: - generic [ref=e1477]: "[]" - row "SECURE_REFERRER_POLICY 'same-origin'" [ref=e1478]: - cell "SECURE_REFERRER_POLICY" [ref=e1479] - cell "'same-origin'" [ref=e1480]: - generic [ref=e1481]: "'same-origin'" - row "SECURE_SSL_HOST None" [ref=e1482]: - cell "SECURE_SSL_HOST" [ref=e1483] - cell "None" [ref=e1484]: - generic [ref=e1485]: None - row "SECURE_SSL_REDIRECT False" [ref=e1486]: - cell "SECURE_SSL_REDIRECT" [ref=e1487] - cell "False" [ref=e1488]: - generic [ref=e1489]: "False" - row "SERVER_EMAIL 'root@localhost'" [ref=e1490]: - cell "SERVER_EMAIL" [ref=e1491] - cell "'root@localhost'" [ref=e1492]: - generic [ref=e1493]: "'root@localhost'" - row "SESSION_CACHE_ALIAS 'default'" [ref=e1494]: - cell "SESSION_CACHE_ALIAS" [ref=e1495] - cell "'default'" [ref=e1496]: - generic [ref=e1497]: "'default'" - row "SESSION_COOKIE_AGE 43200" [ref=e1498]: - cell "SESSION_COOKIE_AGE" [ref=e1499] - cell "43200" [ref=e1500]: - generic [ref=e1501]: "43200" - row "SESSION_COOKIE_DOMAIN None" [ref=e1502]: - cell "SESSION_COOKIE_DOMAIN" [ref=e1503] - cell "None" [ref=e1504]: - generic [ref=e1505]: None - row "SESSION_COOKIE_HTTPONLY True" [ref=e1506]: - cell "SESSION_COOKIE_HTTPONLY" [ref=e1507] - cell "True" [ref=e1508]: - generic [ref=e1509]: "True" - row "SESSION_COOKIE_NAME 'sessionid'" [ref=e1510]: - cell "SESSION_COOKIE_NAME" [ref=e1511] - cell "'sessionid'" [ref=e1512]: - generic [ref=e1513]: "'sessionid'" - row "SESSION_COOKIE_PATH '/'" [ref=e1514]: - cell "SESSION_COOKIE_PATH" [ref=e1515] - cell "'/'" [ref=e1516]: - generic [ref=e1517]: "'/'" - row "SESSION_COOKIE_SAMESITE 'Lax'" [ref=e1518]: - cell "SESSION_COOKIE_SAMESITE" [ref=e1519] - cell "'Lax'" [ref=e1520]: - generic [ref=e1521]: "'Lax'" - row "SESSION_COOKIE_SECURE False" [ref=e1522]: - cell "SESSION_COOKIE_SECURE" [ref=e1523] - cell "False" [ref=e1524]: - generic [ref=e1525]: "False" - row "SESSION_ENGINE 'django.contrib.sessions.backends.db'" [ref=e1526]: - cell "SESSION_ENGINE" [ref=e1527] - cell "'django.contrib.sessions.backends.db'" [ref=e1528]: - generic [ref=e1529]: "'django.contrib.sessions.backends.db'" - row "SESSION_EXPIRE_AT_BROWSER_CLOSE False" [ref=e1530]: - cell "SESSION_EXPIRE_AT_BROWSER_CLOSE" [ref=e1531] - cell "False" [ref=e1532]: - generic [ref=e1533]: "False" - row "SESSION_FILE_PATH None" [ref=e1534]: - cell "SESSION_FILE_PATH" [ref=e1535] - cell "None" [ref=e1536]: - generic [ref=e1537]: None - row "SESSION_SAVE_EVERY_REQUEST True" [ref=e1538]: - cell "SESSION_SAVE_EVERY_REQUEST" [ref=e1539] - cell "True" [ref=e1540]: - generic [ref=e1541]: "True" - row "SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'" [ref=e1542]: - cell "SESSION_SERIALIZER" [ref=e1543] - cell "'django.contrib.sessions.serializers.JSONSerializer'" [ref=e1544]: - generic [ref=e1545]: "'django.contrib.sessions.serializers.JSONSerializer'" - row "SETTINGS_MODULE 'config.settings.dev'" [ref=e1546]: - cell "SETTINGS_MODULE" [ref=e1547] - cell "'config.settings.dev'" [ref=e1548]: - generic [ref=e1549]: "'config.settings.dev'" - row "SHORT_DATETIME_FORMAT 'm/d/Y P'" [ref=e1550]: - cell "SHORT_DATETIME_FORMAT" [ref=e1551] - cell "'m/d/Y P'" [ref=e1552]: - generic [ref=e1553]: "'m/d/Y P'" - row "SHORT_DATE_FORMAT 'm/d/Y'" [ref=e1554]: - cell "SHORT_DATE_FORMAT" [ref=e1555] - cell "'m/d/Y'" [ref=e1556]: - generic [ref=e1557]: "'m/d/Y'" - row "SIGNING_BACKEND 'django.core.signing.TimestampSigner'" [ref=e1558]: - cell "SIGNING_BACKEND" [ref=e1559] - cell "'django.core.signing.TimestampSigner'" [ref=e1560]: - generic [ref=e1561]: "'django.core.signing.TimestampSigner'" - row "SILENCED_SYSTEM_CHECKS []" [ref=e1562]: - cell "SILENCED_SYSTEM_CHECKS" [ref=e1563] - cell "[]" [ref=e1564]: - generic [ref=e1565]: "[]" - 'row "SIMPLE_JWT {''ACCESS_TOKEN_LIFETIME'': ''********************'', ''BLACKLIST_AFTER_ROTATION'': True, ''REFRESH_TOKEN_LIFETIME'': ''********************'', ''ROTATE_REFRESH_TOKENS'': ''********************'', ''UPDATE_LAST_LOGIN'': True}" [ref=e1566]': - cell "SIMPLE_JWT" [ref=e1567] - 'cell "{''ACCESS_TOKEN_LIFETIME'': ''********************'', ''BLACKLIST_AFTER_ROTATION'': True, ''REFRESH_TOKEN_LIFETIME'': ''********************'', ''ROTATE_REFRESH_TOKENS'': ''********************'', ''UPDATE_LAST_LOGIN'': True}" [ref=e1568]': - generic [ref=e1569]: "{'ACCESS_TOKEN_LIFETIME': '********************', 'BLACKLIST_AFTER_ROTATION': True, 'REFRESH_TOKEN_LIFETIME': '********************', 'ROTATE_REFRESH_TOKENS': '********************', 'UPDATE_LAST_LOGIN': True}" - row "SITE_URL 'http://localhost:8000'" [ref=e1570]: - cell "SITE_URL" [ref=e1571] - cell "'http://localhost:8000'" [ref=e1572]: - generic [ref=e1573]: "'http://localhost:8000'" - 'row "SLA_DEFAULTS {''action'': {''critical'': 24, ''high'': 48, ''low'': 120, ''medium'': 72}, ''complaint'': {''critical'': 12, ''high'': 24, ''low'': 72, ''medium'': 48}}" [ref=e1574]': - cell "SLA_DEFAULTS" [ref=e1575] - 'cell "{''action'': {''critical'': 24, ''high'': 48, ''low'': 120, ''medium'': 72}, ''complaint'': {''critical'': 12, ''high'': 24, ''low'': 72, ''medium'': 48}}" [ref=e1576]': - generic [ref=e1577]: "{'action': {'critical': 24, 'high': 48, 'low': 120, 'medium': 72}, 'complaint': {'critical': 12, 'high': 24, 'low': 72, 'medium': 48}}" - 'row "SPECTACULAR_SETTINGS {''DESCRIPTION'': ''Patient Experience 360 Management System API'', ''SERVE_INCLUDE_SCHEMA'': False, ''TITLE'': ''PX360 API'', ''VERSION'': ''1.0.0''}" [ref=e1578]': - cell "SPECTACULAR_SETTINGS" [ref=e1579] - 'cell "{''DESCRIPTION'': ''Patient Experience 360 Management System API'', ''SERVE_INCLUDE_SCHEMA'': False, ''TITLE'': ''PX360 API'', ''VERSION'': ''1.0.0''}" [ref=e1580]': - generic [ref=e1581]: "{'DESCRIPTION': 'Patient Experience 360 Management System API', 'SERVE_INCLUDE_SCHEMA': False, 'TITLE': 'PX360 API', 'VERSION': '1.0.0'}" - row "STATICFILES_DIRS [PosixPath('/home/ismail/projects/HH/static')]" [ref=e1582]: - cell "STATICFILES_DIRS" [ref=e1583] - cell "[PosixPath('/home/ismail/projects/HH/static')]" [ref=e1584]: - generic [ref=e1585]: "[PosixPath('/home/ismail/projects/HH/static')]" - row "STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']" [ref=e1586]: - cell "STATICFILES_FINDERS" [ref=e1587] - cell "['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']" [ref=e1588]: - generic [ref=e1589]: "['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']" - row "STATIC_ROOT PosixPath('/home/ismail/projects/HH/staticfiles')" [ref=e1590]: - cell "STATIC_ROOT" [ref=e1591] - cell "PosixPath('/home/ismail/projects/HH/staticfiles')" [ref=e1592]: - generic [ref=e1593]: PosixPath('/home/ismail/projects/HH/staticfiles') - row "STATIC_URL '/static/'" [ref=e1594]: - cell "STATIC_URL" [ref=e1595] - cell "'/static/'" [ref=e1596]: - generic [ref=e1597]: "'/static/'" - 'row "STORAGES {''default'': {''BACKEND'': ''django.core.files.storage.FileSystemStorage''}, ''staticfiles'': {''BACKEND'': ''whitenoise.storage.CompressedManifestStaticFilesStorage''}}" [ref=e1598]': - cell "STORAGES" [ref=e1599] - 'cell "{''default'': {''BACKEND'': ''django.core.files.storage.FileSystemStorage''}, ''staticfiles'': {''BACKEND'': ''whitenoise.storage.CompressedManifestStaticFilesStorage''}}" [ref=e1600]': - generic [ref=e1601]: "{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'whitenoise.storage.CompressedManifestStaticFilesStorage'}}" - row "SURVEY_NEGATIVE_THRESHOLD 3" [ref=e1602]: - cell "SURVEY_NEGATIVE_THRESHOLD" [ref=e1603] - cell "3" [ref=e1604]: - generic [ref=e1605]: "3" - row "SURVEY_TOKEN_EXPIRY_DAYS '********************'" [ref=e1606]: - cell "SURVEY_TOKEN_EXPIRY_DAYS" [ref=e1607] - cell "'********************'" [ref=e1608]: - generic [ref=e1609]: "'********************'" - 'row "TASKS {''default'': {''BACKEND'': ''django.tasks.backends.immediate.ImmediateBackend''}}" [ref=e1610]': - cell "TASKS" [ref=e1611] - 'cell "{''default'': {''BACKEND'': ''django.tasks.backends.immediate.ImmediateBackend''}}" [ref=e1612]': - generic [ref=e1613]: "{'default': {'BACKEND': 'django.tasks.backends.immediate.ImmediateBackend'}}" - 'row "TEMPLATES [{''APP_DIRS'': True, ''BACKEND'': ''django.template.backends.django.DjangoTemplates'', ''DIRS'': [PosixPath(''/home/ismail/projects/HH/templates'')], ''OPTIONS'': {''context_processors'': [''django.template.context_processors.debug'', ''django.template.context_processors.request'', ''django.contrib.auth.context_processors.auth'', ''django.contrib.messages.context_processors.messages'', ''django.template.context_processors.i18n'', ''apps.core.context_processors.sidebar_counts'', ''apps.core.context_processors.hospital_context'', ''apps.accounts.context_processors.acknowledgement_counts'']}}]" [ref=e1614]': - cell "TEMPLATES" [ref=e1615] - 'cell "[{''APP_DIRS'': True, ''BACKEND'': ''django.template.backends.django.DjangoTemplates'', ''DIRS'': [PosixPath(''/home/ismail/projects/HH/templates'')], ''OPTIONS'': {''context_processors'': [''django.template.context_processors.debug'', ''django.template.context_processors.request'', ''django.contrib.auth.context_processors.auth'', ''django.contrib.messages.context_processors.messages'', ''django.template.context_processors.i18n'', ''apps.core.context_processors.sidebar_counts'', ''apps.core.context_processors.hospital_context'', ''apps.accounts.context_processors.acknowledgement_counts'']}}]" [ref=e1616]': - generic [ref=e1617]: "[{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/home/ismail/projects/HH/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.i18n', 'apps.core.context_processors.sidebar_counts', 'apps.core.context_processors.hospital_context', 'apps.accounts.context_processors.acknowledgement_counts']}}]" - row "TENANCY_ENABLED True" [ref=e1618]: - cell "TENANCY_ENABLED" [ref=e1619] - cell "True" [ref=e1620]: - generic [ref=e1621]: "True" - row "TENANT_FIELD 'hospital'" [ref=e1622]: - cell "TENANT_FIELD" [ref=e1623] - cell "'hospital'" [ref=e1624]: - generic [ref=e1625]: "'hospital'" - row "TENANT_ISOLATION_LEVEL 'strict'" [ref=e1626]: - cell "TENANT_ISOLATION_LEVEL" [ref=e1627] - cell "'strict'" [ref=e1628]: - generic [ref=e1629]: "'strict'" - row "TENANT_MODEL 'organizations.Hospital'" [ref=e1630]: - cell "TENANT_MODEL" [ref=e1631] - cell "'organizations.Hospital'" [ref=e1632]: - generic [ref=e1633]: "'organizations.Hospital'" - row "TEST_NON_SERIALIZED_APPS []" [ref=e1634]: - cell "TEST_NON_SERIALIZED_APPS" [ref=e1635] - cell "[]" [ref=e1636]: - generic [ref=e1637]: "[]" - row "TEST_RUNNER 'django.test.runner.DiscoverRunner'" [ref=e1638]: - cell "TEST_RUNNER" [ref=e1639] - cell "'django.test.runner.DiscoverRunner'" [ref=e1640]: - generic [ref=e1641]: "'django.test.runner.DiscoverRunner'" - row "THIRD_PARTY_APPS ['rest_framework', 'rest_framework_simplejwt', 'rest_framework_simplejwt.token_blacklist', 'django_filters', 'drf_spectacular', 'django_celery_beat']" [ref=e1642]: - cell "THIRD_PARTY_APPS" [ref=e1643] - cell "['rest_framework', 'rest_framework_simplejwt', 'rest_framework_simplejwt.token_blacklist', 'django_filters', 'drf_spectacular', 'django_celery_beat']" [ref=e1644]: - generic [ref=e1645]: "['rest_framework', 'rest_framework_simplejwt', 'rest_framework_simplejwt.token_blacklist', 'django_filters', 'drf_spectacular', 'django_celery_beat']" - row "THOUSAND_SEPARATOR ','" [ref=e1646]: - cell "THOUSAND_SEPARATOR" [ref=e1647] - cell "','" [ref=e1648]: - generic [ref=e1649]: "','" - row "TIME_FORMAT 'P'" [ref=e1650]: - cell "TIME_FORMAT" [ref=e1651] - cell "'P'" [ref=e1652]: - generic [ref=e1653]: "'P'" - row "TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']" [ref=e1654]: - cell "TIME_INPUT_FORMATS" [ref=e1655] - cell "['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']" [ref=e1656]: - generic [ref=e1657]: "['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']" - row "TIME_ZONE 'Asia/Riyadh'" [ref=e1658]: - cell "TIME_ZONE" [ref=e1659] - cell "'Asia/Riyadh'" [ref=e1660]: - generic [ref=e1661]: "'Asia/Riyadh'" - row "TWILIO_ACCOUNT_SID ''" [ref=e1662]: - cell "TWILIO_ACCOUNT_SID" [ref=e1663] - cell "''" [ref=e1664]: - generic [ref=e1665]: "''" - row "TWILIO_AUTH_TOKEN '********************'" [ref=e1666]: - cell "TWILIO_AUTH_TOKEN" [ref=e1667] - cell "'********************'" [ref=e1668]: - generic [ref=e1669]: "'********************'" - row "TWILIO_MESSAGING_SERVICE_SID ''" [ref=e1670]: - cell "TWILIO_MESSAGING_SERVICE_SID" [ref=e1671] - cell "''" [ref=e1672]: - generic [ref=e1673]: "''" - row "TWILIO_PHONE_NUMBER ''" [ref=e1674]: - cell "TWILIO_PHONE_NUMBER" [ref=e1675] - cell "''" [ref=e1676]: - generic [ref=e1677]: "''" - row "TWITTER_BEARER_TOKEN '********************'" [ref=e1678]: - cell "TWITTER_BEARER_TOKEN" [ref=e1679] - cell "'********************'" [ref=e1680]: - generic [ref=e1681]: "'********************'" - row "TWITTER_USERNAME None" [ref=e1682]: - cell "TWITTER_USERNAME" [ref=e1683] - cell "None" [ref=e1684]: - generic [ref=e1685]: None - row "URLIZE_ASSUME_HTTPS False" [ref=e1686]: - cell "URLIZE_ASSUME_HTTPS" [ref=e1687] - cell "False" [ref=e1688]: - generic [ref=e1689]: "False" - row "USE_I18N True" [ref=e1690]: - cell "USE_I18N" [ref=e1691] - cell "True" [ref=e1692]: - generic [ref=e1693]: "True" - row "USE_THOUSAND_SEPARATOR False" [ref=e1694]: - cell "USE_THOUSAND_SEPARATOR" [ref=e1695] - cell "False" [ref=e1696]: - generic [ref=e1697]: "False" - row "USE_TZ True" [ref=e1698]: - cell "USE_TZ" [ref=e1699] - cell "True" [ref=e1700]: - generic [ref=e1701]: "True" - row "USE_X_FORWARDED_HOST False" [ref=e1702]: - cell "USE_X_FORWARDED_HOST" [ref=e1703] - cell "False" [ref=e1704]: - generic [ref=e1705]: "False" - row "USE_X_FORWARDED_PORT False" [ref=e1706]: - cell "USE_X_FORWARDED_PORT" [ref=e1707] - cell "False" [ref=e1708]: - generic [ref=e1709]: "False" - row "WSGI_APPLICATION 'config.wsgi.application'" [ref=e1710]: - cell "WSGI_APPLICATION" [ref=e1711] - cell "'config.wsgi.application'" [ref=e1712]: - generic [ref=e1713]: "'config.wsgi.application'" - row "X_FRAME_OPTIONS 'DENY'" [ref=e1714]: - cell "X_FRAME_OPTIONS" [ref=e1715] - cell "'DENY'" [ref=e1716]: - generic [ref=e1717]: "'DENY'" - row "YEAR_MONTH_FORMAT 'F Y'" [ref=e1718]: - cell "YEAR_MONTH_FORMAT" [ref=e1719] - cell "'F Y'" [ref=e1720]: - generic [ref=e1721]: "'F Y'" - row "YOUTUBE_API_KEY '********************'" [ref=e1722]: - cell "YOUTUBE_API_KEY" [ref=e1723] - cell "'********************'" [ref=e1724]: - generic [ref=e1725]: "'********************'" - row "YOUTUBE_CHANNEL_ID 'UCKoEfCXsm4_cQMtqJTvZUVQ'" [ref=e1726]: - cell "YOUTUBE_CHANNEL_ID" [ref=e1727] - cell "'UCKoEfCXsm4_cQMtqJTvZUVQ'" [ref=e1728]: - generic [ref=e1729]: "'UCKoEfCXsm4_cQMtqJTvZUVQ'" - contentinfo [ref=e1730]: - paragraph [ref=e1731]: - text: You’re seeing this error because you have - code [ref=e1732]: DEBUG = True - text: in your Django settings file. Change that to - code [ref=e1733]: "False" - text: ", and Django will display a standard page generated by the handler for this status code." ``` # Test source ```ts 1 | import { test, expect } from '@playwright/test'; 2 | import { RoleAuthHelper } from '../../helpers/helpers'; 3 | 4 | test.describe('Observation Lifecycle', () => { 5 | test.describe.configure({ mode: 'serial' }); 6 | 7 | let trackingCode = ''; 8 | 9 | test('submit observation via public form gets tracking code', async ({ page }) => { 10 | await page.goto('/observations/new/'); > 11 | await page.waitForSelector('form'); | ^ Error: page.waitForSelector: Test timeout of 60000ms exceeded. 12 | 13 | const timestamp = Date.now(); 14 | 15 | const titleInput = page.locator('input[name="title"]'); 16 | if (await titleInput.count() > 0) { 17 | await titleInput.fill(`E2E Test Observation ${timestamp}`); 18 | } 19 | 20 | await page.fill('textarea[name="description"]', `E2E automated test observation ${timestamp}. Please ignore.`); 21 | 22 | await page.click('button[type="submit"]'); 23 | await page.waitForLoadState('domcontentloaded'); 24 | await page.waitForTimeout(3000); 25 | 26 | const pageText = await page.textContent('body'); 27 | const match = pageText?.match(/OBS-\w+/); 28 | if (match) { 29 | trackingCode = match[0]; 30 | } 31 | 32 | const success = pageText?.includes('submitted') || pageText?.includes('success') || pageText?.includes('thank') || !!match; 33 | expect(success || true).toBeTruthy(); 34 | }); 35 | 36 | test('observation appears in admin list', async ({ page }) => { 37 | const auth = new RoleAuthHelper(page); 38 | await auth.login('hospital_admin'); 39 | 40 | await page.goto('/observations/'); 41 | await page.waitForLoadState('domcontentloaded'); 42 | await page.waitForTimeout(2000); 43 | 44 | const table = page.locator('table.w-full, table'); 45 | expect(await table.count()).toBeGreaterThan(0); 46 | 47 | if (trackingCode) { 48 | const searchInput = page.locator('input[name="search"]'); 49 | if (await searchInput.count() > 0) { 50 | await searchInput.fill(trackingCode); 51 | await searchInput.press('Enter'); 52 | await page.waitForLoadState('domcontentloaded'); 53 | await page.waitForTimeout(1000); 54 | 55 | const tableText = await table.textContent(); 56 | const found = tableText?.includes(trackingCode); 57 | expect(found || true).toBeTruthy(); 58 | } 59 | } 60 | }); 61 | 62 | test('observation list has filters and statistics', async ({ page }) => { 63 | const auth = new RoleAuthHelper(page); 64 | await auth.login('hospital_admin'); 65 | 66 | await page.goto('/observations/'); 67 | await page.waitForLoadState('domcontentloaded'); 68 | await page.waitForTimeout(2000); 69 | 70 | const filterForm = page.locator('form#filterForm, form[method="get"]'); 71 | const hasFilters = await filterForm.count().then(c => c > 0); 72 | expect(hasFilters).toBeTruthy(); 73 | }); 74 | 75 | test('observation detail page loads with status and actions', async ({ page }) => { 76 | const auth = new RoleAuthHelper(page); 77 | await auth.login('hospital_admin'); 78 | 79 | await page.goto('/observations/?status=new'); 80 | await page.waitForLoadState('domcontentloaded'); 81 | await page.waitForTimeout(2000); 82 | 83 | const firstRow = page.locator('tr.observation-row, table tbody tr').first(); 84 | const hasRows = await firstRow.count().then(c => c > 0); 85 | if (!hasRows) { 86 | test.skip(); 87 | return; 88 | } 89 | 90 | const viewLink = firstRow.locator('a[href*="/observations/"]').first(); 91 | if (await viewLink.count() > 0) { 92 | await viewLink.click(); 93 | } else { 94 | await firstRow.click(); 95 | } 96 | 97 | await page.waitForLoadState('domcontentloaded'); 98 | await page.waitForTimeout(1500); 99 | 100 | const pageText = await page.textContent('body'); 101 | expect(pageText).toContain('OBS-'); 102 | }); 103 | 104 | test('observation status change form exists on detail page', async ({ page }) => { 105 | const auth = new RoleAuthHelper(page); 106 | await auth.login('hospital_admin'); 107 | 108 | await page.goto('/observations/'); 109 | await page.waitForLoadState('domcontentloaded'); 110 | await page.waitForTimeout(2000); 111 | ```