Remove all Qiqochat references
Summary
Qiqochat was a third-party live event / breakout room service previously integrated into DemocracyLab. This integration is no longer in use. All references to Qiqochat should be removed to eliminate dead code, unused environment variables, and stale DB columns.
The event_live_id field on the Event model will be retained (renamed label only) for potential future use with a different live event provider.
Tasks
Files to delete
Backend — Python
democracylab/models.py
democracylab/admin.py
democracylab/forms.py
democracylab/views.py
democracylab/settings.py
civictechprojects/views.py
civictechprojects/urls.py
civictechprojects/models.py
common/management/commands/activate_event.py
Frontend — React/JSX
common/components/controllers/LiveEventController.jsx
common/components/componentsBySection/CreateEvent/EventDescriptionForm.jsx
Templates
civictechprojects/templates/new_index.html
Environment / Config
democracylab_environment_variables.sh
Fixtures
Notes
- Historical migrations (
0006_auto_20200427_2336.py, 0008_contributor_qiqo_signup_time.py) should be left in place. A new migration must be added to drop the columns.
event_live_id on the Event model is retained; only the Qiqochat-specific API calls that used it are removed.
Remove all Qiqochat references
Summary
Qiqochat was a third-party live event / breakout room service previously integrated into DemocracyLab. This integration is no longer in use. All references to Qiqochat should be removed to eliminate dead code, unused environment variables, and stale DB columns.
The
event_live_idfield on theEventmodel will be retained (renamed label only) for potential future use with a different live event provider.Tasks
Files to delete
common/helpers/qiqo_chat.py— delete entire file (iframe URL builder,SubscribeUserToQiqoChat,activate_zoom_rooms,get_zoom_room_info)Backend — Python
democracylab/models.pyqiqo_uuidfieldqiqo_signup_timefielddemocracylab/admin.py'qiqo_uuid'fromcontributor_text_fieldsdemocracylab/forms.pyfrom common.helpers.qiqo_chat import SubscribeUserToQiqoChatSubscribeUserToQiqoChat(user)calldemocracylab/views.pyfrom common.helpers.qiqo_chat import SubscribeUserToQiqoChatSubscribeUserToQiqoChat(contributor)callsdemocracylab/settings.py"*.qiqochat.com"and"qiqocableeu.herokuapp.com"from CSP settingsQIQO_*settings:QIQO_IFRAME_URL,QIQO_API_BASE_URL,QIQO_USERS_ENDPOINT,QIQO_API_KEY,QIQO_API_SECRET,QIQO_CIRCLE_UUID,QIQO_SIGNUP_TIMEOUT_SECONDS,QIQO_IMPERSONATION_ENABLEDcivictechprojects/views.pyfrom common.helpers.qiqo_chat import get_user_qiqo_iframecontext['QIQO_IFRAME_URL'] = get_user_qiqo_iframe(contributor, request)qiqo_webhookview function and its TODO commentcivictechprojects/urls.pyqiqo_webhookURL pattern (api/v1/qiqo/webhooks/zoom_presences)civictechprojects/models.pyfrom common.helpers.qiqo_chat import activate_zoom_rooms, get_zoom_room_infoactivate_zoom_roomsandget_zoom_room_infocalls (theevent_live_idfield itself is kept)common/management/commands/activate_event.pyqiqo_event_idvariable usageFrontend — React/JSX
common/components/controllers/LiveEventController.jsxwindow.QIQO_IFRAME_URLreference and any iframe embedding logic that depends on itcommon/components/componentsBySection/CreateEvent/EventDescriptionForm.jsx"QiqoChat Live Event ID (Optional)"to"Live Event ID (Optional)"(field itself is kept)Templates
civictechprojects/templates/new_index.htmlwindow.QIQO_IFRAME_URL = '{{QIQO_IFRAME_URL}}';Environment / Config
democracylab_environment_variables.shQIQO_IFRAME_URL,QIQO_API_KEY,QIQO_API_SECRET,QIQO_USERS_ENDPOINT,QIQO_CIRCLE_UUIDexportsqiqochat.comentries fromCSP_FRAME_SRCandCSP_FRAME_ANCESTORSFixtures
common/fixtures/testdata.json— removeqiqo_uuid/qiqo_signup_timevalues from contributor recordscommon/fixtures/testdata_pre_migrate.json— sameNotes
0006_auto_20200427_2336.py,0008_contributor_qiqo_signup_time.py) should be left in place. A new migration must be added to drop the columns.event_live_idon theEventmodel is retained; only the Qiqochat-specific API calls that used it are removed.