mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
This replaces django.db.backends.postgresql_psycopg2, which has been an alias to django.db.backends.postgresql since Django 1.9.
78 lines
2.6 KiB
Python
78 lines
2.6 KiB
Python
# Generated by Django 1.11.20 on 2019-05-09 06:54
|
|
|
|
from typing import Any, Dict, Optional
|
|
|
|
from django.db import migrations, models
|
|
from django.db.backends.postgresql.schema import DatabaseSchemaEditor
|
|
from django.db.migrations.state import StateApps
|
|
|
|
# We include a copy of this structure as it was at the time this
|
|
# migration was merged, since future should not impact the migration.
|
|
VIDEO_CHAT_PROVIDERS = {
|
|
'jitsi_meet': {
|
|
'name': "Jitsi",
|
|
'id': 1
|
|
},
|
|
'google_hangouts': {
|
|
'name': "Google Hangouts",
|
|
'id': 2
|
|
},
|
|
'zoom': {
|
|
'name': "Zoom",
|
|
'id': 3
|
|
}
|
|
}
|
|
def get_video_chat_provider_detail(providers_dict: Dict[str, Dict[str, Any]],
|
|
p_name: Optional[str]=None, p_id: Optional[int]=None
|
|
) -> Dict[str, Any]:
|
|
for provider in providers_dict.values():
|
|
if (p_name and provider['name'] == p_name):
|
|
return provider
|
|
if (p_id and provider['id'] == p_id):
|
|
return provider
|
|
return dict()
|
|
|
|
def update_existing_video_chat_provider_values(apps: StateApps, schema_editor: DatabaseSchemaEditor) -> None:
|
|
Realm = apps.get_model('zerver', 'Realm')
|
|
|
|
for realm in Realm.objects.all():
|
|
realm.video_chat_provider = get_video_chat_provider_detail(
|
|
VIDEO_CHAT_PROVIDERS,
|
|
p_name=realm.video_chat_provider_old)['id']
|
|
realm.save(update_fields=["video_chat_provider"])
|
|
|
|
def reverse_code(apps: StateApps, schema_editor: DatabaseSchemaEditor) -> None:
|
|
Realm = apps.get_model("zerver", "Realm")
|
|
|
|
for realm in Realm.objects.all():
|
|
realm.video_chat_provider_old = get_video_chat_provider_detail(
|
|
VIDEO_CHAT_PROVIDERS,
|
|
p_id=realm.video_chat_provider)['name']
|
|
realm.save(update_fields=["video_chat_provider_old"])
|
|
|
|
class Migration(migrations.Migration):
|
|
atomic = False
|
|
|
|
dependencies = [
|
|
('zerver', '0223_rename_to_is_muted'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RenameField(
|
|
model_name='realm',
|
|
old_name='video_chat_provider',
|
|
new_name='video_chat_provider_old',
|
|
),
|
|
migrations.AddField(
|
|
model_name='realm',
|
|
name='video_chat_provider',
|
|
field=models.PositiveSmallIntegerField(default=VIDEO_CHAT_PROVIDERS['jitsi_meet']['id']),
|
|
),
|
|
migrations.RunPython(update_existing_video_chat_provider_values,
|
|
reverse_code=reverse_code),
|
|
migrations.RemoveField(
|
|
model_name='realm',
|
|
name='video_chat_provider_old',
|
|
),
|
|
]
|