loko/streetup/contracts/migrations/0006_companymember_teams_m2m.py
2026-07-22 14:48:40 +02:00

38 lines
1.4 KiB
Python

# Generated by Django 5.2.8 on 2026-06-10 08:31
from django.db import migrations, models
def copy_team_to_teams(apps, schema_editor):
CompanyMember = apps.get_model('contracts', 'CompanyMember')
for member in CompanyMember.objects.all():
# access the raw DB field team_id to avoid django loading issues if team FK field is already removed or modified
team_id = getattr(member, 'team_id', None)
if team_id is not None:
member.teams.add(team_id)
def copy_teams_to_team(apps, schema_editor):
CompanyMember = apps.get_model('contracts', 'CompanyMember')
for member in CompanyMember.objects.all():
first_team = member.teams.first()
if first_team:
member.team = first_team
member.save(update_fields=['team'])
class Migration(migrations.Migration):
dependencies = [
('contracts', '0005_remove_contract_auto_close'),
]
operations = [
migrations.AddField(
model_name='companymember',
name='teams',
field=models.ManyToManyField(blank=True, help_text='Équipes auxquelles ce membre appartient.', related_name='members', to='contracts.companyteam', verbose_name='Équipes'),
),
migrations.RunPython(copy_team_to_teams, reverse_code=copy_teams_to_team),
migrations.RemoveField(
model_name='companymember',
name='team',
),
]