DemocracyLab / DemocracyLab/CivicTechExchange

Remove all Qiqochat references

Open
#1,163 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
105
Forks
71
PR merge metrics
No merged PRs in 30d

Description

# 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
- [ ] `common/helpers/qiqo_chat.py` — delete entire file (iframe URL builder, `SubscribeUserToQiqoChat`, `activate_zoom_rooms`, `get_zoom_room_info`)

### Backend — Python

**`democracylab/models.py`**
- [ ] Remove `qiqo_uuid` field
- [ ] Remove `qiqo_signup_time` field
- [ ] Generate a new Django migration to drop both columns from the DB

**`democracylab/admin.py`**
- [ ] Remove `'qiqo_uuid'` from `contributor_text_fields`

**`democracylab/forms.py`**
- [ ] Remove `from common.helpers.qiqo_chat import SubscribeUserToQiqoChat`
- [ ] Remove `SubscribeUserToQiqoChat(user)` call

**`democracylab/views.py`**
- [ ] Remove `from common.helpers.qiqo_chat import SubscribeUserToQiqoChat`
- [ ] Remove active and commented-out `SubscribeUserToQiqoChat(contributor)` calls

**`democracylab/settings.py`**
- [ ] Remove `"*.qiqochat.com"` and `"qiqocableeu.herokuapp.com"` from CSP settings
- [ ] Remove all `QIQO_*` 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_ENABLED`

**`civictechprojects/views.py`**
- [ ] Remove `from common.helpers.qiqo_chat import get_user_qiqo_iframe`
- [ ] Remove `context['QIQO_IFRAME_URL'] = get_user_qiqo_iframe(contributor, request)`
- [ ] Remove `qiqo_webhook` view function and its TODO comment

**`civictechprojects/urls.py`**
- [ ] Remove `qiqo_webhook` URL pattern (`api/v1/qiqo/webhooks/zoom_presences`)

**`civictechprojects/models.py`**
- [ ] Remove `from common.helpers.qiqo_chat import activate_zoom_rooms, get_zoom_room_info`
- [ ] Remove `activate_zoom_rooms` and `get_zoom_room_info` calls (the `event_live_id` field itself is kept)

**`common/management/commands/activate_event.py`**
- [ ] Remove Qiqochat TODO comment and dead `qiqo_event_id` variable usage

### Frontend — React/JSX

**`common/components/controllers/LiveEventController.jsx`**
- [ ] Remove `window.QIQO_IFRAME_URL` reference and any iframe embedding logic that depends on it

**`common/components/componentsBySection/CreateEvent/EventDescriptionForm.jsx`**
- [ ] Update label `"QiqoChat Live Event ID (Optional)"` to `"Live Event ID (Optional)"` (field itself is kept)

### Templates

**`civictechprojects/templates/new_index.html`**
- [ ] Remove `window.QIQO_IFRAME_URL = '{{QIQO_IFRAME_URL}}';`

### Environment / Config

**`democracylab_environment_variables.sh`**
- [ ] Remove `QIQO_IFRAME_URL`, `QIQO_API_KEY`, `QIQO_API_SECRET`, `QIQO_USERS_ENDPOINT`, `QIQO_CIRCLE_UUID` exports
- [ ] Remove `qiqochat.com` entries from `CSP_FRAME_SRC` and `CSP_FRAME_ANCESTORS`

### Fixtures
- [ ] `common/fixtures/testdata.json` — remove `qiqo_uuid` / `qiqo_signup_time` values from contributor records
- [ ] `common/fixtures/testdata_pre_migrate.json` — same

---

## 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.