Stop cascading delete on translation deletion

These shouldn't cascade to the child translation project.
hotfix-virtualenv-no-downlaod
Anthony Johnson 2017-01-03 23:57:03 -08:00
parent 38e73cd73e
commit 168c9e35b5
3 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('projects', '0017_add_domain_https'),
]
operations = [
migrations.AlterField(
model_name='project',
name='main_language_project',
field=models.ForeignKey(related_name='translations', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='projects.Project', null=True),
),
]

View File

@ -242,6 +242,7 @@ class Project(models.Model):
# A subproject pointed at its main language, so it can be tracked
main_language_project = models.ForeignKey('self',
related_name='translations',
on_delete=models.SET_NULL,
blank=True, null=True)
# Version State

View File

@ -48,6 +48,15 @@ class TestProject(TestCase):
set(translation_ids_from_orm)
)
def test_translation_delete(self):
project_a = get(Project)
project_b = get(Project, main_language_project=project_a)
self.assertTrue(Project.objects.filter(pk=project_a.pk).exists())
self.assertTrue(Project.objects.filter(pk=project_b.pk).exists())
project_a.delete()
self.assertFalse(Project.objects.filter(pk=project_a.pk).exists())
self.assertTrue(Project.objects.filter(pk=project_b.pk).exists())
def test_token(self):
r = self.client.get('/api/v2/project/6/token/', {})
resp = json.loads(r.content)