From fdc8209b29a3b62ab87b4111022e3b83aca145e2 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 20 Oct 2021 10:01:58 +1300 Subject: [PATCH] rrs: make changes to support Django 2.2 Removed obsolete references to django.core.urlresolvers. Added the newly required on_delete parameters to foreign key relationships in models.py and in all migrations. (Amber Elliot's 2d526f9b0d363f3e442abc97ef9bd9fab37ee5e4 served as a reference for these changes). Signed-off-by: Paul Eggleton --- rrs/migrations/0001_initial.py | 20 +++++----- rrs/migrations/0002_maintenanceplan.py | 4 +- rrs/migrations/0003_release_plan.py | 2 +- rrs/migrations/0005_release_plan_nonnull.py | 2 +- rrs/migrations/0006_maintplan_email.py | 2 +- rrs/migrations/0007_python23.py | 4 +- rrs/migrations/0009_rmh_layerbranch.py | 2 +- rrs/migrations/0012_reup_layerbranch_field.py | 2 +- .../0014_reup_layerbranch_nonnull.py | 2 +- .../0016_rmh_layerbranch_nonnull.py | 2 +- rrs/models.py | 40 +++++++++---------- rrs/tools/rrs_upstream_email.py | 2 +- rrs/views.py | 2 +- 13 files changed, 43 insertions(+), 43 deletions(-) diff --git a/rrs/migrations/0001_initial.py b/rrs/migrations/0001_initial.py index e60b934..7afa103 100644 --- a/rrs/migrations/0001_initial.py +++ b/rrs/migrations/0001_initial.py @@ -239,7 +239,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), ('distro', models.CharField(max_length=100, blank=True)), ('alias', models.CharField(max_length=100, blank=True)), - ('recipe', models.ForeignKey(to='layerindex.Recipe')), + ('recipe', models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE)), ], ), migrations.CreateModel( @@ -255,7 +255,7 @@ class Migration(migrations.Migration): ('title', models.CharField(max_length=255, blank=True)), ('date', models.DateTimeField(db_index=True)), ('sha1', models.CharField(max_length=64, unique=True)), - ('author', models.ForeignKey(to='rrs.Maintainer')), + ('author', models.ForeignKey(to='rrs.Maintainer', on_delete=models.CASCADE)), ], ), migrations.CreateModel( @@ -267,8 +267,8 @@ class Migration(migrations.Migration): ('version', models.CharField(max_length=100, blank=True)), ('author_date', models.DateTimeField(db_index=True)), ('commit_date', models.DateTimeField(db_index=True)), - ('maintainer', models.ForeignKey(blank=True, to='rrs.Maintainer')), - ('recipe', models.ForeignKey(to='layerindex.Recipe')), + ('maintainer', models.ForeignKey(blank=True, to='rrs.Maintainer', on_delete=models.CASCADE)), + ('recipe', models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE)), ], ), migrations.CreateModel( @@ -302,32 +302,32 @@ class Migration(migrations.Migration): migrations.AddField( model_name='recipeupstream', name='history', - field=models.ForeignKey(to='rrs.RecipeUpstreamHistory'), + field=models.ForeignKey(to='rrs.RecipeUpstreamHistory', on_delete=models.CASCADE), ), migrations.AddField( model_name='recipeupstream', name='recipe', - field=models.ForeignKey(to='layerindex.Recipe'), + field=models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE), ), migrations.AddField( model_name='recipemaintainer', name='history', - field=models.ForeignKey(to='rrs.RecipeMaintainerHistory'), + field=models.ForeignKey(to='rrs.RecipeMaintainerHistory', on_delete=models.CASCADE), ), migrations.AddField( model_name='recipemaintainer', name='maintainer', - field=models.ForeignKey(to='rrs.Maintainer'), + field=models.ForeignKey(to='rrs.Maintainer', on_delete=models.CASCADE), ), migrations.AddField( model_name='recipemaintainer', name='recipe', - field=models.ForeignKey(to='layerindex.Recipe'), + field=models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE), ), migrations.AddField( model_name='milestone', name='release', - field=models.ForeignKey(to='rrs.Release'), + field=models.ForeignKey(to='rrs.Release', on_delete=models.CASCADE), ), migrations.AlterUniqueTogether( name='milestone', diff --git a/rrs/migrations/0002_maintenanceplan.py b/rrs/migrations/0002_maintenanceplan.py index b6718dc..41ca58e 100644 --- a/rrs/migrations/0002_maintenanceplan.py +++ b/rrs/migrations/0002_maintenanceplan.py @@ -25,8 +25,8 @@ class Migration(migrations.Migration): name='MaintenancePlanLayerBranch', fields=[ ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')), - ('plan', models.ForeignKey(to='rrs.MaintenancePlan')), + ('layerbranch', models.ForeignKey(to='layerindex.LayerBranch', on_delete=models.CASCADE)), + ('plan', models.ForeignKey(to='rrs.MaintenancePlan', on_delete=models.CASCADE)), ], options={'verbose_name_plural': 'Maintenance plan layer branches'}, ), diff --git a/rrs/migrations/0003_release_plan.py b/rrs/migrations/0003_release_plan.py index 934ac4b..fa8d5d5 100644 --- a/rrs/migrations/0003_release_plan.py +++ b/rrs/migrations/0003_release_plan.py @@ -14,6 +14,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='release', name='plan', - field=models.ForeignKey(null=True, to='rrs.MaintenancePlan'), + field=models.ForeignKey(null=True, to='rrs.MaintenancePlan', on_delete=models.CASCADE), ), ] diff --git a/rrs/migrations/0005_release_plan_nonnull.py b/rrs/migrations/0005_release_plan_nonnull.py index c797ae5..dd54248 100644 --- a/rrs/migrations/0005_release_plan_nonnull.py +++ b/rrs/migrations/0005_release_plan_nonnull.py @@ -14,6 +14,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='release', name='plan', - field=models.ForeignKey(to='rrs.MaintenancePlan'), + field=models.ForeignKey(to='rrs.MaintenancePlan', on_delete=models.CASCADE), ), ] diff --git a/rrs/migrations/0006_maintplan_email.py b/rrs/migrations/0006_maintplan_email.py index 161af05..901bd2a 100644 --- a/rrs/migrations/0006_maintplan_email.py +++ b/rrs/migrations/0006_maintplan_email.py @@ -16,7 +16,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='maintenanceplan', name='admin', - field=models.ForeignKey(blank=True, null=True, help_text='Plan administrator', to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(blank=True, null=True, help_text='Plan administrator', to=settings.AUTH_USER_MODEL, on_delete=models.SET_NULL), ), migrations.AddField( model_name='maintenanceplan', diff --git a/rrs/migrations/0007_python23.py b/rrs/migrations/0007_python23.py index a7a70fb..871ed25 100644 --- a/rrs/migrations/0007_python23.py +++ b/rrs/migrations/0007_python23.py @@ -16,12 +16,12 @@ class Migration(migrations.Migration): migrations.AddField( model_name='maintenanceplanlayerbranch', name='python2_environment', - field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 2 commits', related_name='maintplan_layerbranch_python2_set', to='layerindex.PythonEnvironment'), + field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 2 commits', related_name='maintplan_layerbranch_python2_set', to='layerindex.PythonEnvironment', on_delete=models.SET_NULL), ), migrations.AddField( model_name='maintenanceplanlayerbranch', name='python3_environment', - field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 3 commits', related_name='maintplan_layerbranch_python3_set', to='layerindex.PythonEnvironment'), + field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 3 commits', related_name='maintplan_layerbranch_python3_set', to='layerindex.PythonEnvironment', on_delete=models.SET_NULL), ), migrations.AddField( model_name='maintenanceplanlayerbranch', diff --git a/rrs/migrations/0009_rmh_layerbranch.py b/rrs/migrations/0009_rmh_layerbranch.py index b2a7b86..b4676a6 100644 --- a/rrs/migrations/0009_rmh_layerbranch.py +++ b/rrs/migrations/0009_rmh_layerbranch.py @@ -15,6 +15,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='recipemaintainerhistory', name='layerbranch', - field=models.ForeignKey(blank=True, null=True, to='layerindex.LayerBranch'), + field=models.ForeignKey(blank=True, null=True, to='layerindex.LayerBranch', on_delete=models.CASCADE), ), ] diff --git a/rrs/migrations/0012_reup_layerbranch_field.py b/rrs/migrations/0012_reup_layerbranch_field.py index 18aebbd..892e689 100644 --- a/rrs/migrations/0012_reup_layerbranch_field.py +++ b/rrs/migrations/0012_reup_layerbranch_field.py @@ -14,6 +14,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='recipeupstreamhistory', name='layerbranch', - field=models.ForeignKey(null=True, to='layerindex.LayerBranch'), + field=models.ForeignKey(null=True, to='layerindex.LayerBranch', on_delete=models.CASCADE), ), ] diff --git a/rrs/migrations/0014_reup_layerbranch_nonnull.py b/rrs/migrations/0014_reup_layerbranch_nonnull.py index 1ee6ee9..02ce121 100644 --- a/rrs/migrations/0014_reup_layerbranch_nonnull.py +++ b/rrs/migrations/0014_reup_layerbranch_nonnull.py @@ -14,6 +14,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='recipeupstreamhistory', name='layerbranch', - field=models.ForeignKey(to='layerindex.LayerBranch'), + field=models.ForeignKey(to='layerindex.LayerBranch', on_delete=models.CASCADE), ), ] diff --git a/rrs/migrations/0016_rmh_layerbranch_nonnull.py b/rrs/migrations/0016_rmh_layerbranch_nonnull.py index 5c192fd..4f741e8 100644 --- a/rrs/migrations/0016_rmh_layerbranch_nonnull.py +++ b/rrs/migrations/0016_rmh_layerbranch_nonnull.py @@ -14,6 +14,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='recipemaintainerhistory', name='layerbranch', - field=models.ForeignKey(to='layerindex.LayerBranch'), + field=models.ForeignKey(to='layerindex.LayerBranch', on_delete=models.CASCADE), ), ] diff --git a/rrs/models.py b/rrs/models.py index f1bb527..df30995 100644 --- a/rrs/models.py +++ b/rrs/models.py @@ -44,11 +44,11 @@ class MaintenancePlan(models.Model): return '%s' % (self.name) class MaintenancePlanLayerBranch(models.Model): - plan = models.ForeignKey(MaintenancePlan) - layerbranch = models.ForeignKey(LayerBranch) + plan = models.ForeignKey(MaintenancePlan, on_delete=models.CASCADE) + layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE) python3_switch_date = models.DateTimeField('Commit date to switch to Python 3', default=datetime(2016, 6, 2)) - python2_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python2_set', blank=True, null=True, help_text='Environment to use for Python 2 commits') - python3_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python3_set', blank=True, null=True, help_text='Environment to use for Python 3 commits') + python2_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python2_set', blank=True, null=True, help_text='Environment to use for Python 2 commits', on_delete=models.SET_NULL) + python3_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python3_set', blank=True, null=True, help_text='Environment to use for Python 3 commits', on_delete=models.SET_NULL) upgrade_date = models.DateTimeField('Recipe upgrade date', blank=True, null=True) upgrade_rev = models.CharField('Recipe upgrade revision ', max_length=80, blank=True) @@ -56,7 +56,7 @@ class MaintenancePlanLayerBranch(models.Model): verbose_name_plural = "Maintenance plan layer branches" class Release(models.Model): - plan = models.ForeignKey(MaintenancePlan) + plan = models.ForeignKey(MaintenancePlan, on_delete=models.CASCADE) name = models.CharField(max_length=100) start_date = models.DateField(db_index=True) end_date = models.DateField(db_index=True) @@ -94,7 +94,7 @@ class Release(models.Model): return '%s - %s' % (self.plan.name, self.name) class Milestone(models.Model): - release = models.ForeignKey(Release) + release = models.ForeignKey(Release, on_delete=models.CASCADE) name = models.CharField(max_length=100) start_date = models.DateField(db_index=True) end_date = models.DateField(db_index=True) @@ -197,7 +197,7 @@ class Milestone(models.Model): class RecipeSymbol(models.Model): - layerbranch = models.ForeignKey(LayerBranch) + layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE) pn = models.CharField(max_length=100, blank=True) summary = models.CharField(max_length=200, blank=True) @@ -249,9 +249,9 @@ class Maintainer(models.Model): class RecipeMaintainerHistory(models.Model): title = models.CharField(max_length=255, blank=True) date = models.DateTimeField(db_index=True) - author = models.ForeignKey(Maintainer) + author = models.ForeignKey(Maintainer, on_delete=models.CASCADE) sha1 = models.CharField(max_length=64) - layerbranch = models.ForeignKey(LayerBranch) + layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE) class Meta: unique_together = ('layerbranch', 'sha1',) @@ -286,9 +286,9 @@ class RecipeMaintainerHistory(models.Model): return "%s: %s, %s" % (self.date, self.author.name, self.sha1[:10]) class RecipeMaintainer(models.Model): - recipesymbol = models.ForeignKey(RecipeSymbol) - maintainer = models.ForeignKey(Maintainer) - history = models.ForeignKey(RecipeMaintainerHistory) + recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE) + maintainer = models.ForeignKey(Maintainer, on_delete=models.CASCADE) + history = models.ForeignKey(RecipeMaintainerHistory, on_delete=models.CASCADE) @staticmethod def get_maintainer_by_recipe_and_history(recipe, history): @@ -305,7 +305,7 @@ class RecipeMaintainer(models.Model): self.maintainer.email) class RecipeUpstreamHistory(models.Model): - layerbranch = models.ForeignKey(LayerBranch) + layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE) start_date = models.DateTimeField(db_index=True) end_date = models.DateTimeField(db_index=True) @@ -360,8 +360,8 @@ class RecipeUpstream(models.Model): ) RECIPE_UPSTREAM_TYPE_CHOICES_DICT = dict(RECIPE_UPSTREAM_TYPE_CHOICES) - recipesymbol = models.ForeignKey(RecipeSymbol) - history = models.ForeignKey(RecipeUpstreamHistory) + recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE) + history = models.ForeignKey(RecipeUpstreamHistory, on_delete=models.CASCADE) version = models.CharField(max_length=100, blank=True) type = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_TYPE_CHOICES, blank=True, db_index=True) status = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_STATUS_CHOICES, blank=True, db_index=True) @@ -413,7 +413,7 @@ class RecipeUpstream(models.Model): self.version, self.date) class RecipeDistro(models.Model): - recipe = models.ForeignKey(Recipe) + recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE) distro = models.CharField(max_length=100, blank=True) alias = models.CharField(max_length=100, blank=True) @@ -432,7 +432,7 @@ class RecipeDistro(models.Model): class RecipeUpgradeGroup(models.Model): - recipesymbol = models.ForeignKey(RecipeSymbol) + recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE) title = models.CharField(max_length=100, help_text='Group title') def __str__(self): @@ -440,7 +440,7 @@ class RecipeUpgradeGroup(models.Model): class RecipeUpgradeGroupRule(models.Model): - layerbranch = models.ForeignKey(LayerBranch) + layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE) pn = models.CharField(max_length=100, blank=True, help_text='Regular expression to match recipe to apply to') version = models.CharField(max_length=100, blank=True, help_text='Regular expression to split version component on') license = models.CharField(max_length=100, blank=True, help_text='Regular expression to split license on') @@ -494,8 +494,8 @@ class RecipeUpgrade(models.Model): ('M', 'Move'), ) - recipesymbol = models.ForeignKey(RecipeSymbol) - maintainer = models.ForeignKey(Maintainer, blank=True) + recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE) + maintainer = models.ForeignKey(Maintainer, blank=True, null=True, on_delete=models.SET_NULL) sha1 = models.CharField(max_length=40, blank=True) title = models.CharField(max_length=1024, blank=True) version = models.CharField(max_length=100, blank=True) diff --git a/rrs/tools/rrs_upstream_email.py b/rrs/tools/rrs_upstream_email.py index 8a6b188..d87f791 100755 --- a/rrs/tools/rrs_upstream_email.py +++ b/rrs/tools/rrs_upstream_email.py @@ -25,7 +25,7 @@ utils.setup_django() from django.core.mail import EmailMessage from django.template.loader import get_template from django.template import Context, Template -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib.sites.models import Site import settings diff --git a/rrs/views.py b/rrs/views.py index 68fc4f9..6c73866 100644 --- a/rrs/views.py +++ b/rrs/views.py @@ -15,7 +15,7 @@ from datetime import date, datetime from django.http import Http404 from django.shortcuts import get_object_or_404 from django.views.generic import TemplateView, ListView, DetailView, RedirectView -from django.core.urlresolvers import resolve, reverse, reverse_lazy +from django.urls import resolve, reverse, reverse_lazy from django.db import connection from django.contrib import messages