64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Generated by Django 5.2.1 on 2025-08-30 21:51
 | 
						|
import logging
 | 
						|
 | 
						|
from django.db import migrations
 | 
						|
 | 
						|
 | 
						|
def map_status(adoption_notice_status):
 | 
						|
    minor = adoption_notice_status.minor_status
 | 
						|
 | 
						|
    if minor == "searching":
 | 
						|
        return "active_searching"
 | 
						|
    if minor == "interested":
 | 
						|
        return "active_interested"
 | 
						|
 | 
						|
    if minor == "waiting_for_review":
 | 
						|
        return "awaiting_action_waiting_for_review"
 | 
						|
    if minor == "needs_additional_info":
 | 
						|
        return "awaiting_action_needs_additional_info"
 | 
						|
 | 
						|
    if minor == "successful_with_notfellchen":
 | 
						|
        return "closed_successful_with_notfellchen"
 | 
						|
    if minor == "successful_without_notfellchen":
 | 
						|
        return "closed_successful_without_notfellchen"
 | 
						|
    if minor == "animal_died":
 | 
						|
        return "closed_animal_died"
 | 
						|
    if minor == "closed_for_other_adoption_notice":
 | 
						|
        return "closed_for_other_adoption_notice"
 | 
						|
    if minor == "not_open_for_adoption_anymore":
 | 
						|
        return "closed_not_open_for_adoption_anymore"
 | 
						|
    if minor == "other":
 | 
						|
        return "closed_other"
 | 
						|
 | 
						|
    if minor == "against_the_rules":
 | 
						|
        return "disabled_against_the_rules"
 | 
						|
    if minor == "unchecked":
 | 
						|
        return "disabled_unchecked"
 | 
						|
    if minor in ["missing_information", "technical_error"]:
 | 
						|
        return "disabled_other"
 | 
						|
 | 
						|
    return None
 | 
						|
 | 
						|
 | 
						|
def migrate_status(apps, schema_editor):
 | 
						|
    # We can't import the model directly as it may be a newer
 | 
						|
    # version than this migration expects. We use the historical version.
 | 
						|
    AdoptionNoticeStatus = apps.get_model("fellchensammlung", "AdoptionNoticeStatus")
 | 
						|
    AdoptionNotice = apps.get_model("fellchensammlung", "AdoptionNotice")
 | 
						|
    for ans in AdoptionNoticeStatus.objects.all():
 | 
						|
        adoption_notice = AdoptionNotice.objects.get(id=ans.adoption_notice.id)
 | 
						|
        new_status = map_status(ans)
 | 
						|
        logging.debug(f"{ans.minor_status} -> {new_status}")
 | 
						|
        adoption_notice.adoption_notice_status = map_status(ans)
 | 
						|
        adoption_notice.save()
 | 
						|
 | 
						|
 | 
						|
class Migration(migrations.Migration):
 | 
						|
    dependencies = [
 | 
						|
        ('fellchensammlung', '0060_alter_adoptionnotice_options_and_more'),
 | 
						|
    ]
 | 
						|
 | 
						|
    operations = [
 | 
						|
        migrations.RunPython(migrate_status),
 | 
						|
    ]
 |