mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Generated by Django 1.11.6 on 2017-12-05 01:08
 | 
						|
 | 
						|
import django.db.models.deletion
 | 
						|
from django.db import migrations, models
 | 
						|
from django.db.backends.postgresql.schema import DatabaseSchemaEditor
 | 
						|
from django.db.migrations.state import StateApps
 | 
						|
 | 
						|
 | 
						|
def set_realm_for_existing_scheduledemails(
 | 
						|
    apps: StateApps, schema_editor: DatabaseSchemaEditor
 | 
						|
) -> None:
 | 
						|
    scheduledemail_model = apps.get_model("zerver", "ScheduledEmail")
 | 
						|
    preregistrationuser_model = apps.get_model("zerver", "PreregistrationUser")
 | 
						|
    for scheduledemail in scheduledemail_model.objects.all():
 | 
						|
        if scheduledemail.type == 3:  # ScheduledEmail.INVITATION_REMINDER
 | 
						|
            # Don't think this can be None, but just be safe
 | 
						|
            prereg = preregistrationuser_model.objects.filter(email=scheduledemail.address).first()
 | 
						|
            if prereg is not None:
 | 
						|
                scheduledemail.realm = prereg.realm
 | 
						|
        else:
 | 
						|
            scheduledemail.realm = scheduledemail.user.realm
 | 
						|
        scheduledemail.save(update_fields=["realm"])
 | 
						|
 | 
						|
    # Shouldn't be needed, but just in case
 | 
						|
    scheduledemail_model.objects.filter(realm=None).delete()
 | 
						|
 | 
						|
 | 
						|
class Migration(migrations.Migration):
 | 
						|
 | 
						|
    dependencies = [
 | 
						|
        ("zerver", "0127_disallow_chars_in_stream_and_user_name"),
 | 
						|
    ]
 | 
						|
 | 
						|
    operations = [
 | 
						|
        # Start with ScheduledEmail.realm being non-null
 | 
						|
        migrations.AddField(
 | 
						|
            model_name="scheduledemail",
 | 
						|
            name="realm",
 | 
						|
            field=models.ForeignKey(
 | 
						|
                null=True, on_delete=django.db.models.deletion.CASCADE, to="zerver.Realm"
 | 
						|
            ),
 | 
						|
        ),
 | 
						|
        # Sets realm for existing ScheduledEmails
 | 
						|
        migrations.RunPython(
 | 
						|
            set_realm_for_existing_scheduledemails,
 | 
						|
            reverse_code=migrations.RunPython.noop,
 | 
						|
            elidable=True,
 | 
						|
        ),
 | 
						|
        # Require ScheduledEmail.realm to be non-null
 | 
						|
        migrations.AlterField(
 | 
						|
            model_name="scheduledemail",
 | 
						|
            name="realm",
 | 
						|
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="zerver.Realm"),
 | 
						|
        ),
 | 
						|
    ]
 |