38 lines
1.4 KiB
Python
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',
|
|
),
|
|
]
|