All of lore.kernel.org
 help / color / mirror / Atom feed
* [layerindexweb][PATCH 0/7] Django 2.2 Upgrade
@ 2020-06-25 22:57 Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 1/7] README: Correcting mailing list Amber Elliot
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Amber Elliot

These patches upgrade the layerindex to Django 2.2.

Amber Elliot (5):
  README: Correcting mailing list.
  Updating models and imports for Django 2.2 upgrade.
  settings.py: Replacing  MIDDLEWARE_CLASSES with MIDDLEWARE for Django
    2.2 upgrade.
  Replacing is_authenticated() with is_authenticated for Django upgrade.
  requirements.txt: Updating Django requirement to the 2.2 LTS release.

Tim Orling (2):
  Dockerfile: debian 10 "buster" and drop python2
  docker/settings.py: MIDDLEWARE

 Dockerfile                                    | 13 ++--
 README                                        |  2 +-
 docker/settings.py                            |  2 +-
 layerindex/auth_views.py                      |  4 +-
 layerindex/forms.py                           |  2 +-
 layerindex/middleware.py                      |  2 +-
 layerindex/migrations/0001_initial.py         | 36 +++++------
 layerindex/migrations/0002_distro.py          |  2 +-
 layerindex/migrations/0005_layerupdate.py     |  4 +-
 .../migrations/0010_add_dependencies.py       |  2 +-
 layerindex/migrations/0011_source.py          |  2 +-
 layerindex/migrations/0013_patch.py           |  2 +-
 .../0023_layerupdate_layer_branch_finalise.py |  4 +-
 layerindex/models.py                          | 61 +++++++++----------
 layerindex/urls.py                            |  2 +-
 layerindex/urls_branch.py                     |  2 +-
 layerindex/views.py                           | 32 +++++-----
 requirements.txt                              |  2 +-
 settings.py                                   |  2 +-
 urls.py                                       |  4 +-
 20 files changed, 89 insertions(+), 93 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 1/7] README: Correcting mailing list.
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 2/7] Updating models and imports for Django 2.2 upgrade Amber Elliot
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Amber Elliot

Signed-off-by: Amber Elliot <amber.n.elliot@intel.com>
---
 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README b/README
index 6df1bf0..6fc4591 100644
--- a/README
+++ b/README
@@ -431,7 +431,7 @@ The latest version of the code can always be found here:
   http://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/
 
 Contributions are welcome. Please send patches / pull requests to
-yocto@yoctoproject.org with '[layerindex-web]' in the subject.
+yocto@lists.yoctoproject.org with '[layerindex-web]' in the subject.
 
 
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 2/7] Updating models and imports for Django 2.2 upgrade.
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 1/7] README: Correcting mailing list Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 3/7] settings.py: Replacing MIDDLEWARE_CLASSES with MIDDLEWARE " Amber Elliot
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Amber Elliot

Removed all obsolete references to django.core.urlresolvers. Added the
newly required on_delete fields to foreign key relationships in models.py
and in all migrations.

Signed-off-by: Amber Elliot  <amber.n.elliot@intel.com>
---
 layerindex/auth_views.py                      |  2 +-
 layerindex/middleware.py                      |  2 +-
 layerindex/migrations/0001_initial.py         | 36 +++++------
 layerindex/migrations/0002_distro.py          |  2 +-
 layerindex/migrations/0005_layerupdate.py     |  4 +-
 .../migrations/0010_add_dependencies.py       |  2 +-
 layerindex/migrations/0011_source.py          |  2 +-
 layerindex/migrations/0013_patch.py           |  2 +-
 .../0023_layerupdate_layer_branch_finalise.py |  4 +-
 layerindex/models.py                          | 59 +++++++++----------
 layerindex/urls.py                            |  2 +-
 layerindex/urls_branch.py                     |  2 +-
 layerindex/views.py                           |  2 +-
 urls.py                                       |  4 +-
 14 files changed, 62 insertions(+), 63 deletions(-)

diff --git a/layerindex/auth_views.py b/layerindex/auth_views.py
index d10c750..a147a9c 100644
--- a/layerindex/auth_views.py
+++ b/layerindex/auth_views.py
@@ -12,7 +12,7 @@ from django.contrib.auth.views import (PasswordResetConfirmView,
 from django.contrib.sites.shortcuts import get_current_site
 
 from django.core.exceptions import PermissionDenied
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from django.http import HttpResponseRedirect, HttpResponse
 from django.shortcuts import render
 from django.utils.decorators import method_decorator
diff --git a/layerindex/middleware.py b/layerindex/middleware.py
index cea207e..afe34a3 100644
--- a/layerindex/middleware.py
+++ b/layerindex/middleware.py
@@ -6,7 +6,7 @@
 
 from django.utils.deprecation import MiddlewareMixin
 from django.http import HttpResponseRedirect
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from reversion.middleware import RevisionMiddleware
 import settings
 import re
diff --git a/layerindex/migrations/0001_initial.py b/layerindex/migrations/0001_initial.py
index d08a1aa..c9517ef 100644
--- a/layerindex/migrations/0001_initial.py
+++ b/layerindex/migrations/0001_initial.py
@@ -69,7 +69,7 @@ class Migration(migrations.Migration):
                 ('vcs_last_commit', models.DateTimeField(verbose_name='Last commit date', blank=True, null=True)),
                 ('actual_branch', models.CharField(verbose_name='Actual Branch', blank=True, help_text='Name of the actual branch in the repository matching the core branch', max_length=80)),
                 ('updated', models.DateTimeField(auto_now=True)),
-                ('branch', models.ForeignKey(to='layerindex.Branch')),
+                ('branch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Branch')),
             ],
             options={
                 'verbose_name_plural': 'Layer branches',
@@ -116,7 +116,7 @@ class Migration(migrations.Migration):
                 ('email', models.CharField(max_length=255)),
                 ('responsibility', models.CharField(blank=True, help_text='Specific area(s) this maintainer is responsible for, if not the entire layer', max_length=200)),
                 ('status', models.CharField(default='A', max_length=1, choices=[('A', 'Active'), ('I', 'Inactive')])),
-                ('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
+                ('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
             ],
         ),
         migrations.CreateModel(
@@ -124,7 +124,7 @@ class Migration(migrations.Migration):
             fields=[
                 ('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
                 ('text', models.TextField()),
-                ('layer', models.ForeignKey(to='layerindex.LayerItem')),
+                ('layer', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerItem')),
             ],
         ),
         migrations.CreateModel(
@@ -134,7 +134,7 @@ class Migration(migrations.Migration):
                 ('name', models.CharField(max_length=255)),
                 ('description', models.CharField(max_length=255)),
                 ('updated', models.DateTimeField(auto_now=True)),
-                ('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
+                ('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
             ],
         ),
         migrations.CreateModel(
@@ -184,7 +184,7 @@ class Migration(migrations.Migration):
             fields=[
                 ('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
                 ('name', models.CharField(max_length=255)),
-                ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
+                ('user', models.ForeignKey(on_delete=models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
             ],
         ),
         migrations.CreateModel(
@@ -192,7 +192,7 @@ class Migration(migrations.Migration):
             fields=[
                 ('id', models.AutoField(primary_key=True, verbose_name='ID', auto_created=True, serialize=False)),
                 ('path', models.CharField(db_index=True, max_length=255)),
-                ('layerbranch', models.ForeignKey(related_name='+', to='layerindex.LayerBranch')),
+                ('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='+', to='layerindex.LayerBranch')),
             ],
             options={
                 'verbose_name_plural': 'Recipe file dependencies',
@@ -201,7 +201,7 @@ class Migration(migrations.Migration):
         migrations.CreateModel(
             name='ClassicRecipe',
             fields=[
-                ('recipe_ptr', models.OneToOneField(primary_key=True, to='layerindex.Recipe', auto_created=True, parent_link=True, serialize=False)),
+                ('recipe_ptr', models.OneToOneField(on_delete=models.deletion.CASCADE, primary_key=True, to='layerindex.Recipe', auto_created=True, parent_link=True, serialize=False)),
                 ('cover_pn', models.CharField(verbose_name='Covering recipe', blank=True, max_length=100)),
                 ('cover_status', models.CharField(default='U', max_length=1, choices=[('U', 'Unknown'), ('N', 'Not available'), ('R', 'Replaced'), ('P', 'Provided (BBCLASSEXTEND)'), ('C', 'Provided (PACKAGECONFIG)'), ('O', 'Obsolete'), ('E', 'Equivalent functionality'), ('D', 'Direct match')])),
                 ('cover_verified', models.BooleanField(default=False)),
@@ -216,57 +216,57 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='recipefiledependency',
             name='recipe',
-            field=models.ForeignKey(to='layerindex.Recipe'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe'),
         ),
         migrations.AddField(
             model_name='recipechange',
             name='changeset',
-            field=models.ForeignKey(to='layerindex.RecipeChangeset'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.RecipeChangeset'),
         ),
         migrations.AddField(
             model_name='recipechange',
             name='recipe',
-            field=models.ForeignKey(related_name='+', to='layerindex.Recipe'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='+', to='layerindex.Recipe'),
         ),
         migrations.AddField(
             model_name='recipe',
             name='layerbranch',
-            field=models.ForeignKey(to='layerindex.LayerBranch'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch'),
         ),
         migrations.AddField(
             model_name='layerdependency',
             name='dependency',
-            field=models.ForeignKey(related_name='dependents_set', to='layerindex.LayerItem'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='dependents_set', to='layerindex.LayerItem'),
         ),
         migrations.AddField(
             model_name='layerdependency',
             name='layerbranch',
-            field=models.ForeignKey(related_name='dependencies_set', to='layerindex.LayerBranch'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, related_name='dependencies_set', to='layerindex.LayerBranch'),
         ),
         migrations.AddField(
             model_name='layerbranch',
             name='layer',
-            field=models.ForeignKey(to='layerindex.LayerItem'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerItem'),
         ),
         migrations.AddField(
             model_name='branch',
             name='update_environment',
-            field=models.ForeignKey(to='layerindex.PythonEnvironment', blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL),
+            field=models.ForeignKey(to='layerindex.PythonEnvironment', blank=True, null=True, on_delete=models.deletion.SET_NULL),
         ),
         migrations.AddField(
             model_name='bbclass',
             name='layerbranch',
-            field=models.ForeignKey(to='layerindex.LayerBranch'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch'),
         ),
         migrations.AddField(
             model_name='bbappend',
             name='layerbranch',
-            field=models.ForeignKey(to='layerindex.LayerBranch'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch'),
         ),
         migrations.AddField(
             model_name='classicrecipe',
             name='cover_layerbranch',
-            field=models.ForeignKey(to='layerindex.LayerBranch', verbose_name='Covering layer', blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL),
+            field=models.ForeignKey(to='layerindex.LayerBranch', verbose_name='Covering layer', blank=True, null=True, on_delete=models.deletion.SET_NULL),
         ),
         migrations.RunPython(create_master_branch, reverse_code=migrations.RunPython.noop),
     ]
diff --git a/layerindex/migrations/0002_distro.py b/layerindex/migrations/0002_distro.py
index 732007d..ac94cb6 100644
--- a/layerindex/migrations/0002_distro.py
+++ b/layerindex/migrations/0002_distro.py
@@ -18,7 +18,7 @@ class Migration(migrations.Migration):
                 ('name', models.CharField(max_length=255)),
                 ('description', models.CharField(max_length=255)),
                 ('updated', models.DateTimeField(auto_now=True)),
-                ('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
+                ('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
             ],
         ),
     ]
diff --git a/layerindex/migrations/0005_layerupdate.py b/layerindex/migrations/0005_layerupdate.py
index 3cf4ab2..7a6cb40 100644
--- a/layerindex/migrations/0005_layerupdate.py
+++ b/layerindex/migrations/0005_layerupdate.py
@@ -20,7 +20,7 @@ class Migration(migrations.Migration):
                 ('errors', models.IntegerField(default=0)),
                 ('warnings', models.IntegerField(default=0)),
                 ('log', models.TextField(blank=True)),
-                ('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
+                ('layerbranch', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerBranch')),
             ],
         ),
         migrations.CreateModel(
@@ -41,6 +41,6 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='layerupdate',
             name='update',
-            field=models.ForeignKey(to='layerindex.Update'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Update'),
         ),
     ]
diff --git a/layerindex/migrations/0010_add_dependencies.py b/layerindex/migrations/0010_add_dependencies.py
index 16cd776..cedf140 100644
--- a/layerindex/migrations/0010_add_dependencies.py
+++ b/layerindex/migrations/0010_add_dependencies.py
@@ -26,7 +26,7 @@ class Migration(migrations.Migration):
                 ('with_option', models.CharField(max_length=255, blank=True)),
                 ('without_option', models.CharField(max_length=255, blank=True)),
                 ('build_deps', models.CharField(max_length=255, blank=True)),
-                ('recipe', models.ForeignKey(to='layerindex.Recipe')),
+                ('recipe', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe')),
             ],
         ),
         migrations.CreateModel(
diff --git a/layerindex/migrations/0011_source.py b/layerindex/migrations/0011_source.py
index 515e71c..3ab97dc 100644
--- a/layerindex/migrations/0011_source.py
+++ b/layerindex/migrations/0011_source.py
@@ -16,7 +16,7 @@ class Migration(migrations.Migration):
             fields=[
                 ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
                 ('url', models.CharField(max_length=255)),
-                ('recipe', models.ForeignKey(to='layerindex.Recipe')),
+                ('recipe', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe')),
             ],
         ),
     ]
diff --git a/layerindex/migrations/0013_patch.py b/layerindex/migrations/0013_patch.py
index 9e7180e..b54e75c 100644
--- a/layerindex/migrations/0013_patch.py
+++ b/layerindex/migrations/0013_patch.py
@@ -19,7 +19,7 @@ class Migration(migrations.Migration):
                 ('src_path', models.CharField(max_length=255)),
                 ('status', models.CharField(default='U', choices=[('U', 'Unknown'), ('A', 'Accepted'), ('P', 'Pending'), ('I', 'Inappropriate'), ('B', 'Backport'), ('S', 'Submitted'), ('D', 'Denied')], max_length=1)),
                 ('status_extra', models.CharField(blank=True, max_length=255)),
-                ('recipe', models.ForeignKey(to='layerindex.Recipe')),
+                ('recipe', models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Recipe')),
             ],
             options={
                 'verbose_name_plural': 'Patches',
diff --git a/layerindex/migrations/0023_layerupdate_layer_branch_finalise.py b/layerindex/migrations/0023_layerupdate_layer_branch_finalise.py
index ba6b72f..d9737c7 100644
--- a/layerindex/migrations/0023_layerupdate_layer_branch_finalise.py
+++ b/layerindex/migrations/0023_layerupdate_layer_branch_finalise.py
@@ -15,12 +15,12 @@ class Migration(migrations.Migration):
         migrations.AlterField(
             model_name='layerupdate',
             name='branch',
-            field=models.ForeignKey(to='layerindex.Branch'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.Branch'),
         ),
         migrations.AlterField(
             model_name='layerupdate',
             name='layer',
-            field=models.ForeignKey(to='layerindex.LayerItem'),
+            field=models.ForeignKey(on_delete=models.deletion.CASCADE, to='layerindex.LayerItem'),
         ),
         migrations.RemoveField(
             model_name='layerupdate',
diff --git a/layerindex/models.py b/layerindex/models.py
index 04888be..4d75bed 100644
--- a/layerindex/models.py
+++ b/layerindex/models.py
@@ -7,7 +7,7 @@
 from django.db import models
 from datetime import datetime
 from django.contrib.auth.models import User
-from django.core.urlresolvers import reverse
+from django.urls import reverse
 from django.core.validators import URLValidator
 from django.db.models.signals import pre_save
 from django.dispatch import receiver
@@ -140,7 +140,6 @@ class LayerItem(models.Model):
     mailing_list_url = models.URLField('Mailing list URL', blank=True, help_text='URL of the info page for a mailing list for discussing the layer, if any')
     index_preference = models.IntegerField('Preference', default=0, help_text='Number used to find preferred recipes in recipe search results (higher number is greater preference)')
     comparison = models.BooleanField('Comparison', default=False, help_text='Is this a comparison layer?')
-
     updated = models.DateTimeField(auto_now=True)
 
     class Meta:
@@ -196,7 +195,7 @@ class LayerItem(models.Model):
 
 
 class LayerRecipeExtraURL(models.Model):
-    layer = models.ForeignKey(LayerItem)
+    layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
     name = models.CharField(max_length=50, help_text='Name to display for link')
     url = models.CharField('URL', max_length=255, help_text='Template for URL to link to (macros: %pn% %pv% %branch% %actual_branch%)')
 
@@ -229,8 +228,8 @@ class YPCompatibleVersion(models.Model):
         return self.name
 
 class LayerBranch(models.Model):
-    layer = models.ForeignKey(LayerItem)
-    branch = models.ForeignKey(Branch)
+    layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
+    branch = models.ForeignKey(Branch, on_delete=models.CASCADE)
     collection = models.CharField('Layer Collection', max_length=40, null=True, blank=True, help_text='Name of the collection that the layer provides for the purpose of expressing dependencies (as specified in BBFILE_COLLECTIONS). Can only contain letters, numbers and dashes.')
     version = models.CharField('Layer Version', max_length=10, null=True, blank=True, help_text='The layer version for this particular branch.')
     vcs_subdir = models.CharField('Repository subdirectory', max_length=40, blank=True, help_text='Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)')
@@ -375,7 +374,7 @@ class LayerMaintainer(models.Model):
         ('A', 'Active'),
         ('I', 'Inactive'),
     )
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     name = models.CharField(max_length=255)
     email = models.CharField(max_length=255)
     responsibility = models.CharField(max_length=200, blank=True, help_text='Specific area(s) this maintainer is responsible for, if not the entire layer')
@@ -389,8 +388,8 @@ class LayerMaintainer(models.Model):
 
 
 class LayerDependency(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch, related_name='dependencies_set')
-    dependency = models.ForeignKey(LayerItem, related_name='dependents_set')
+    layerbranch = models.ForeignKey(LayerBranch, related_name='dependencies_set', on_delete=models.CASCADE)
+    dependency = models.ForeignKey(LayerItem, related_name='dependents_set', on_delete=models.CASCADE)
     required = models.BooleanField(default=True)
 
     class Meta:
@@ -401,7 +400,7 @@ class LayerDependency(models.Model):
 
 
 class LayerNote(models.Model):
-    layer = models.ForeignKey(LayerItem)
+    layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
     text = models.TextField()
 
     def __str__(self):
@@ -409,9 +408,9 @@ class LayerNote(models.Model):
 
 
 class LayerUpdate(models.Model):
-    layer = models.ForeignKey(LayerItem)
-    branch = models.ForeignKey(Branch)
-    update = models.ForeignKey(Update)
+    layer = models.ForeignKey(LayerItem, on_delete=models.CASCADE)
+    branch = models.ForeignKey(Branch, on_delete=models.CASCADE)
+    update = models.ForeignKey(Update, on_delete=models.CASCADE)
     started = models.DateTimeField()
     finished = models.DateTimeField(blank=True, null=True)
     errors = models.IntegerField(default=0)
@@ -456,7 +455,7 @@ class LayerUpdate(models.Model):
 
 
 class Recipe(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     filename = models.CharField(max_length=255)
     filepath = models.CharField(max_length=255, blank=True)
     pn = models.CharField(max_length=100, blank=True)
@@ -527,7 +526,7 @@ class Recipe(models.Model):
 
 
 class Source(models.Model):
-    recipe = models.ForeignKey(Recipe)
+    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
     url = models.CharField(max_length=255)
     sha256sum = models.CharField(max_length=64, blank=True)
 
@@ -561,7 +560,7 @@ class Patch(models.Model):
         ('S', 'Submitted'),
         ('D', 'Denied'),
         ]
-    recipe = models.ForeignKey(Recipe)
+    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
     path = models.CharField(max_length=255)
     src_path = models.CharField(max_length=255)
     status = models.CharField(max_length=1, choices=PATCH_STATUS_CHOICES, default='U')
@@ -610,7 +609,7 @@ class Patch(models.Model):
 
 
 class PackageConfig(models.Model):
-    recipe = models.ForeignKey(Recipe)
+    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
     feature = models.CharField(max_length=255)
     with_option = models.CharField(max_length=255, blank=True)
     without_option = models.CharField(max_length=255, blank=True)
@@ -638,8 +637,8 @@ class DynamicBuildDep(models.Model):
         return self.name
 
 class RecipeFileDependency(models.Model):
-    recipe = models.ForeignKey(Recipe)
-    layerbranch = models.ForeignKey(LayerBranch, related_name='+')
+    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
+    layerbranch = models.ForeignKey(LayerBranch, related_name='+', on_delete=models.CASCADE)
     path = models.CharField(max_length=255, db_index=True)
 
     class Meta:
@@ -715,8 +714,8 @@ class ClassicRecipe(Recipe):
 
 
 class ComparisonRecipeUpdate(models.Model):
-    update = models.ForeignKey(Update)
-    recipe = models.ForeignKey(ClassicRecipe)
+    update = models.ForeignKey(Update, on_delete=models.CASCADE)
+    recipe = models.ForeignKey(ClassicRecipe, on_delete=models.CASCADE)
     meta_updated = models.BooleanField(default=False)
     link_updated = models.BooleanField(default=False)
 
@@ -725,7 +724,7 @@ class ComparisonRecipeUpdate(models.Model):
 
 
 class Machine(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     name = models.CharField(max_length=255)
     description = models.CharField(max_length=255)
 
@@ -739,7 +738,7 @@ class Machine(models.Model):
         return '%s (%s)' % (self.name, self.layerbranch.layer.name)
 
 class Distro(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     name = models.CharField(max_length=255)
     description = models.CharField(max_length=255)
 
@@ -754,7 +753,7 @@ class Distro(models.Model):
 
 
 class BBAppend(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     filename = models.CharField(max_length=255)
     filepath = models.CharField(max_length=255, blank=True)
 
@@ -780,7 +779,7 @@ class BBAppend(models.Model):
 
 
 class BBClass(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     name = models.CharField(max_length=100)
 
     class Meta:
@@ -796,7 +795,7 @@ class BBClass(models.Model):
 
 
 class IncFile(models.Model):
-    layerbranch = models.ForeignKey(LayerBranch)
+    layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
     path = models.CharField(max_length=255)
 
     def vcs_web_url(self):
@@ -808,7 +807,7 @@ class IncFile(models.Model):
 
 
 class RecipeChangeset(models.Model):
-    user = models.ForeignKey(User)
+    user = models.ForeignKey(User, on_delete=models.CASCADE)
     name = models.CharField(max_length=255)
 
     def __str__(self):
@@ -825,8 +824,8 @@ class RecipeChange(models.Model):
         'bugtracker': 'BUGTRACKER',
     }
 
-    changeset = models.ForeignKey(RecipeChangeset)
-    recipe = models.ForeignKey(Recipe, related_name='+')
+    changeset = models.ForeignKey(RecipeChangeset, on_delete=models.CASCADE)
+    recipe = models.ForeignKey(Recipe, related_name='+', on_delete=models.CASCADE)
     summary = models.CharField(max_length=100, blank=True)
     description = models.TextField(blank=True)
     section = models.CharField(max_length=100, blank=True)
@@ -882,7 +881,7 @@ class SecurityQuestion(models.Model):
 
 
 class UserProfile(models.Model):
-    user = models.OneToOneField(User)
+    user = models.OneToOneField(User, on_delete=models.CASCADE)
     answer_attempts = models.IntegerField(default=0)
 
     def __str__(self):
@@ -891,7 +890,7 @@ class UserProfile(models.Model):
 
 class SecurityQuestionAnswer(models.Model):
     user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
-    security_question = models.ForeignKey(SecurityQuestion)
+    security_question = models.ForeignKey(SecurityQuestion, on_delete=models.CASCADE)
     answer = models.CharField(max_length = 250, null=False)
 
     def __str__(self):
diff --git a/layerindex/urls.py b/layerindex/urls.py
index 6208753..ab2d028 100644
--- a/layerindex/urls.py
+++ b/layerindex/urls.py
@@ -7,7 +7,7 @@
 from django.conf.urls import *
 from django.views.generic import TemplateView, DetailView, ListView, RedirectView
 from django.views.defaults import page_not_found
-from django.core.urlresolvers import reverse_lazy
+from django.urls import reverse_lazy
 from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDetailView, RecipeSearchView, \
     MachineSearchView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, \
     HistoryListView, EditProfileFormView, AdvancedRecipeSearchView, BulkChangeView, BulkChangeSearchView, \
diff --git a/layerindex/urls_branch.py b/layerindex/urls_branch.py
index 2fa925a..9756f90 100644
--- a/layerindex/urls_branch.py
+++ b/layerindex/urls_branch.py
@@ -6,7 +6,7 @@
 
 from django.conf.urls import *
 from django.views.defaults import page_not_found
-from django.core.urlresolvers import reverse_lazy
+from django.urls import reverse_lazy
 from layerindex.views import LayerListView, RecipeSearchView, MachineSearchView, DistroSearchView, ClassSearchView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, RedirectParamsView, DuplicatesView, LayerUpdateDetailView, layer_export_recipes_csv_view, comparison_update_view
 
 urlpatterns = [
diff --git a/layerindex/views.py b/layerindex/views.py
index 6c72191..f9799cf 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -21,7 +21,7 @@ from django.contrib.auth.models import Permission, User
 from django.contrib.messages.views import SuccessMessageMixin
 from django.contrib.sites.models import Site
 from django.core.exceptions import PermissionDenied
-from django.core.urlresolvers import resolve, reverse, reverse_lazy
+from django.urls import resolve, reverse, reverse_lazy
 from django.db import transaction
 from django.db.models import Count, Q
 from django.db.models.functions import Lower
diff --git a/urls.py b/urls.py
index 41324da..67d64b2 100644
--- a/urls.py
+++ b/urls.py
@@ -6,7 +6,7 @@
 # All rights reserved.
 
 from django.conf.urls import include, url
-from django.core.urlresolvers import reverse_lazy
+from django.urls import reverse_lazy
 from django.views.generic import RedirectView, TemplateView
 from layerindex.auth_views import CaptchaRegistrationView, CaptchaPasswordResetView, delete_account_view, \
     PasswordResetSecurityQuestions
@@ -17,7 +17,7 @@ import settings
 
 urlpatterns = [
     url(r'^layerindex/', include('layerindex.urls')),
-    url(r'^admin/', include(admin.site.urls)),
+    url(r'^admin/', admin.site.urls),
     url(r'^accounts/password_reset/$',
         CaptchaPasswordResetView.as_view(
             email_template_name='registration/password_reset_email.txt',
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 3/7] settings.py: Replacing MIDDLEWARE_CLASSES with MIDDLEWARE for Django 2.2 upgrade.
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 1/7] README: Correcting mailing list Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 2/7] Updating models and imports for Django 2.2 upgrade Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 4/7] Replacing is_authenticated() with is_authenticated for Django upgrade Amber Elliot
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Amber Elliot

Signed-off-by: Amber Elliot <amber.n.elliot@intel.com>
---
 settings.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/settings.py b/settings.py
index e9bf6cc..525a0c1 100644
--- a/settings.py
+++ b/settings.py
@@ -92,7 +92,7 @@ STATICFILES_FINDERS = (
 # Make this unique, and don't share it with anybody.
 SECRET_KEY = ''
 
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = (
     'corsheaders.middleware.CorsMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 4/7] Replacing is_authenticated() with is_authenticated for Django upgrade.
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
                   ` (2 preceding siblings ...)
  2020-06-25 22:57 ` [layerindexweb][PATCH 3/7] settings.py: Replacing MIDDLEWARE_CLASSES with MIDDLEWARE " Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 5/7] requirements.txt: Updating Django requirement to the 2.2 LTS release Amber Elliot
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Amber Elliot

Signed-off-by: Amber Elliot <amber.n.elliot@intel.com>
---
 layerindex/auth_views.py |  2 +-
 layerindex/forms.py      |  2 +-
 layerindex/models.py     |  2 +-
 layerindex/views.py      | 30 +++++++++++++++---------------
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/layerindex/auth_views.py b/layerindex/auth_views.py
index a147a9c..152f171 100644
--- a/layerindex/auth_views.py
+++ b/layerindex/auth_views.py
@@ -77,7 +77,7 @@ class CaptchaPasswordResetView(PasswordResetView):
 
 
 def delete_account_view(request, template_name):
-    if not request.user.is_authenticated():
+    if not request.user.is_authenticated:
         raise PermissionDenied
     if request.user.is_superuser:
         # It's not really appropriate for the superuser to be deleted this way
diff --git a/layerindex/forms.py b/layerindex/forms.py
index 4d8eb44..4061d4b 100644
--- a/layerindex/forms.py
+++ b/layerindex/forms.py
@@ -89,7 +89,7 @@ class EditLayerForm(StyledModelForm):
             del self.fields['captcha']
         else:
             self.fields['deps'].initial = [l.pk for l in LayerItem.objects.filter(name=settings.CORE_LAYER_NAME)]
-            if user.is_authenticated():
+            if user.is_authenticated:
                 del self.fields['captcha']
         # Ensure repo subdir appears after repo URL
         field_order = list(self.fields.keys())
diff --git a/layerindex/models.py b/layerindex/models.py
index 4d75bed..99c68e1 100644
--- a/layerindex/models.py
+++ b/layerindex/models.py
@@ -171,7 +171,7 @@ class LayerItem(models.Model):
         return matches
 
     def user_can_edit(self, user):
-        if user.is_authenticated():
+        if user.is_authenticated:
             user_email = user.email.strip().lower()
             for maintainer in self.active_maintainers():
                 if maintainer.email.strip().lower() == user_email:
diff --git a/layerindex/views.py b/layerindex/views.py
index f9799cf..83adb6a 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -65,7 +65,7 @@ def edit_layernote_view(request, template_name, slug, pk=None):
     layeritem = get_object_or_404(LayerItem, name=slug)
     if layeritem.comparison:
         raise Http404
-    if not (request.user.is_authenticated() and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))):
+    if not (request.user.is_authenticated and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))):
         raise PermissionDenied
     if pk:
         # Edit mode
@@ -91,7 +91,7 @@ def delete_layernote_view(request, template_name, slug, pk):
     layeritem = get_object_or_404(LayerItem, name=slug)
     if layeritem.comparison:
         raise Http404
-    if not (request.user.is_authenticated() and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))):
+    if not (request.user.is_authenticated and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))):
         raise PermissionDenied
     layernote = get_object_or_404(LayerNote, pk=pk)
     if request.method == 'POST':
@@ -108,7 +108,7 @@ def delete_layer_view(request, template_name, slug):
     layeritem = get_object_or_404(LayerItem, name=slug)
     if layeritem.comparison:
         raise Http404
-    if not (request.user.is_authenticated() and request.user.has_perm('layerindex.publish_layer') and layeritem.status == 'N'):
+    if not (request.user.is_authenticated and request.user.has_perm('layerindex.publish_layer') and layeritem.status == 'N'):
         raise PermissionDenied
     if request.method == 'POST':
         layeritem.delete()
@@ -128,7 +128,7 @@ def edit_layer_view(request, template_name, branch='master', slug=None):
         layeritem = get_object_or_404(LayerItem, name=slug)
         if layeritem.comparison:
             raise Http404
-        if not (request.user.is_authenticated() and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))):
+        if not (request.user.is_authenticated and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))):
             raise PermissionDenied
         layerbranch = get_object_or_404(LayerBranch, layer=layeritem, branch=branchobj)
         old_maintainers = list(layerbranch.layermaintainer_set.values_list('email', flat=True))
@@ -324,7 +324,7 @@ def _get_help_contact():
     return help_contact
 
 def publish_view(request, name):
-    if not (request.user.is_authenticated() and request.user.has_perm('layerindex.publish_layer')):
+    if not (request.user.is_authenticated and request.user.has_perm('layerindex.publish_layer')):
         raise PermissionDenied
 
     if getattr(settings, 'SEND_PUBLISH_EMAIL', True):
@@ -412,7 +412,7 @@ class LayerDetailView(DetailView):
             if l.comparison:
                 raise Http404
             if l.status == 'N':
-                if not (request.user.is_authenticated() and request.user.has_perm('layerindex.publish_layer')):
+                if not (request.user.is_authenticated and request.user.has_perm('layerindex.publish_layer')):
                     raise PermissionDenied
         return res
 
@@ -695,7 +695,7 @@ class BulkChangeView(CreateView):
         return super(BulkChangeView, self).dispatch(request, *args, **kwargs)
 
     def form_valid(self, form):
-        if not self.request.user.is_authenticated():
+        if not self.request.user.is_authenticated:
             raise PermissionDenied
         obj = form.save(commit=False)
         obj.user = self.request.user
@@ -717,7 +717,7 @@ class BulkChangeSearchView(AdvancedRecipeSearchView):
         return super(BulkChangeSearchView, self).get(request, *args, **kwargs)
 
     def post(self, request, *args, **kwargs):
-        if not request.user.is_authenticated():
+        if not request.user.is_authenticated:
             raise PermissionDenied
 
         changeset = get_object_or_404(RecipeChangeset, pk=kwargs['pk'])
@@ -1346,7 +1346,7 @@ class ClassicRecipeDetailView(SuccessMessageMixin, DetailView):
     context_object_name = 'recipe'
 
     def _can_edit(self):
-        if self.request.user.is_authenticated():
+        if self.request.user.is_authenticated:
             if not self.request.user.has_perm('layerindex.edit_classic'):
                 return False
         else:
@@ -1354,7 +1354,7 @@ class ClassicRecipeDetailView(SuccessMessageMixin, DetailView):
         return True
 
     def _can_disposition_patches(self):
-        if self.request.user.is_authenticated():
+        if self.request.user.is_authenticated:
             if not self.request.user.has_perm('layerindex.patch_disposition'):
                 return False
         else:
@@ -1550,7 +1550,7 @@ class TaskStatusView(TemplateView):
 
 def task_log_view(request, task_id):
     from celery.result import AsyncResult
-    if not request.user.is_authenticated():
+    if not request.user.is_authenticated:
         raise PermissionDenied
 
     if '/' in task_id:
@@ -1601,7 +1601,7 @@ def task_log_view(request, task_id):
 def task_stop_view(request, task_id):
     from celery.result import AsyncResult
     import signal
-    if not request.user.is_authenticated():
+    if not request.user.is_authenticated:
         raise PermissionDenied
 
     result = AsyncResult(task_id)
@@ -1610,7 +1610,7 @@ def task_stop_view(request, task_id):
 
 
 def email_test_view(request):
-    if not request.user.is_authenticated() and request.user.is_staff():
+    if not request.user.is_authenticated and request.user.is_staff():
         raise PermissionDenied
 
     plaintext = get_template('layerindex/testemail.txt')
@@ -1639,7 +1639,7 @@ def email_test_view(request):
 
 class ComparisonRecipeSelectView(ClassicRecipeSearchView):
     def _can_edit(self):
-        if self.request.user.is_authenticated():
+        if self.request.user.is_authenticated:
             if not self.request.user.has_perm('layerindex.edit_classic'):
                 return False
         else:
@@ -1713,7 +1713,7 @@ class ComparisonRecipeSelectDetailView(DetailView):
         return context
 
     def post(self, request, *args, **kwargs):
-        if not request.user.is_authenticated():
+        if not request.user.is_authenticated:
             raise PermissionDenied
 
         recipe = get_object_or_404(ClassicRecipe, pk=self.kwargs['selectfor'])
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 5/7] requirements.txt: Updating Django requirement to the 2.2 LTS release.
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
                   ` (3 preceding siblings ...)
  2020-06-25 22:57 ` [layerindexweb][PATCH 4/7] Replacing is_authenticated() with is_authenticated for Django upgrade Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 6/7] Dockerfile: debian 10 "buster" and drop python2 Amber Elliot
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Amber Elliot

Signed-off-by: Amber Elliot <amber.n.elliot@intel.com>
---
 requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/requirements.txt b/requirements.txt
index 4ba5397..c7399ff 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,7 +3,7 @@ beautifulsoup4==4.8.1
 billiard==3.6.1.0
 celery==4.3.0
 confusable-homoglyphs==3.2.0
-Django>=1.11.27,<1.12
+Django>=2.2<2.3
 django-appconf==1.0.3
 django-axes==4.5.4
 django-bootstrap-pagination==1.7.1
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 6/7] Dockerfile: debian 10 "buster" and drop python2
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
                   ` (4 preceding siblings ...)
  2020-06-25 22:57 ` [layerindexweb][PATCH 5/7] requirements.txt: Updating Django requirement to the 2.2 LTS release Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-25 22:57 ` [layerindexweb][PATCH 7/7] docker/settings.py: MIDDLEWARE Amber Elliot
  2020-06-29 18:05 ` [yocto] [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Paul Eggleton
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Tim Orling

From: Tim Orling <ticotimo@gmail.com>

Debian 10 "buster" actually has Django 2.2 available
python2 is now EOL, so drop all usage

Signed-off-by: Tim Orling <ticotimo@gmail.com>
---
 Dockerfile | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 0de9bdb..8c4c847 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
 # See README for how to use this.
 
-FROM debian:stretch
+FROM debian:buster
 LABEL maintainer="Michael Halstead <mhalstead@linuxfoundation.org>"
 
 ENV PYTHONUNBUFFERED=1 \
@@ -21,10 +21,9 @@ RUN apt-get update \
 	g++ \
 	gcc \
 	make \
-	python-pip \
-	python-mysqldb \
-	python-dev \
-	python-imaging \
+	python3-pip \
+	python3-mysqldb \
+	python3-dev \
 	python3-pip \
 	python3-mysqldb \
 	python3-dev \
@@ -44,11 +43,9 @@ RUN apt-get update \
 	&& locale-gen en_US.UTF-8 \
 	&& update-locale \
     && pip3 install gunicorn \
-    && pip install setuptools \
     && pip3 install setuptools \
-    && pip install -r /requirements.txt \
     && pip3 install -r /requirements.txt \
-    && apt-get purge -y autoconf g++ make python-dev python3-dev libjpeg-dev libmariadbclient-dev \
+    && apt-get purge -y autoconf g++ make python3-dev libjpeg-dev libmariadbclient-dev \
 	&& apt-get autoremove -y \
 	&& rm -rf /var/lib/apt/lists/* \
 	&& apt-get clean
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [layerindexweb][PATCH 7/7] docker/settings.py: MIDDLEWARE
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
                   ` (5 preceding siblings ...)
  2020-06-25 22:57 ` [layerindexweb][PATCH 6/7] Dockerfile: debian 10 "buster" and drop python2 Amber Elliot
@ 2020-06-25 22:57 ` Amber Elliot
  2020-06-29 18:05 ` [yocto] [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Paul Eggleton
  7 siblings, 0 replies; 9+ messages in thread
From: Amber Elliot @ 2020-06-25 22:57 UTC (permalink / raw)
  To: yocto; +Cc: Tim Orling

From: Tim Orling <ticotimo@gmail.com>

The docker/settings.py file also needs the change from
"Changing MIDDLEWARE_CLASSES to MIDDLEWARE."

Signed-off-by: Tim Orling <ticotimo@gmail.com>
---
 docker/settings.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docker/settings.py b/docker/settings.py
index 2821d82..fb7d376 100644
--- a/docker/settings.py
+++ b/docker/settings.py
@@ -92,7 +92,7 @@ STATICFILES_FINDERS = (
 # Make this unique, and don't share it with anybody.
 SECRET_KEY = os.getenv('SECRET_KEY', '')
 
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = (
     'corsheaders.middleware.CorsMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [yocto] [layerindexweb][PATCH 0/7] Django 2.2 Upgrade
  2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
                   ` (6 preceding siblings ...)
  2020-06-25 22:57 ` [layerindexweb][PATCH 7/7] docker/settings.py: MIDDLEWARE Amber Elliot
@ 2020-06-29 18:05 ` Paul Eggleton
  7 siblings, 0 replies; 9+ messages in thread
From: Paul Eggleton @ 2020-06-29 18:05 UTC (permalink / raw)
  To: Amber Elliot; +Cc: yocto, Tim Orling

Hi Amber

Thanks for doing this! I've just merged the patches this morning.

Next we need to figure out how to do the upgrade on the live site - which is a 
little tricky given the current state of the RRS (where the upgrade requires 
some manual data mangling on my part). Hopefully I can get this done some time 
next week.

Cheers
Paul

On Friday, 26 June 2020 10:57:32 NZST Amber Elliot wrote:
> These patches upgrade the layerindex to Django 2.2.
> 
> Amber Elliot (5):
>   README: Correcting mailing list.
>   Updating models and imports for Django 2.2 upgrade.
>   settings.py: Replacing  MIDDLEWARE_CLASSES with MIDDLEWARE for Django
>     2.2 upgrade.
>   Replacing is_authenticated() with is_authenticated for Django upgrade.
>   requirements.txt: Updating Django requirement to the 2.2 LTS release.
> 
> Tim Orling (2):
>   Dockerfile: debian 10 "buster" and drop python2
>   docker/settings.py: MIDDLEWARE
> 
>  Dockerfile                                    | 13 ++--
>  README                                        |  2 +-
>  docker/settings.py                            |  2 +-
>  layerindex/auth_views.py                      |  4 +-
>  layerindex/forms.py                           |  2 +-
>  layerindex/middleware.py                      |  2 +-
>  layerindex/migrations/0001_initial.py         | 36 +++++------
>  layerindex/migrations/0002_distro.py          |  2 +-
>  layerindex/migrations/0005_layerupdate.py     |  4 +-
>  .../migrations/0010_add_dependencies.py       |  2 +-
>  layerindex/migrations/0011_source.py          |  2 +-
>  layerindex/migrations/0013_patch.py           |  2 +-
>  .../0023_layerupdate_layer_branch_finalise.py |  4 +-
>  layerindex/models.py                          | 61 +++++++++----------
>  layerindex/urls.py                            |  2 +-
>  layerindex/urls_branch.py                     |  2 +-
>  layerindex/views.py                           | 32 +++++-----
>  requirements.txt                              |  2 +-
>  settings.py                                   |  2 +-
>  urls.py                                       |  4 +-
>  20 files changed, 89 insertions(+), 93 deletions(-)





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-06-29 18:05 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-25 22:57 [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 1/7] README: Correcting mailing list Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 2/7] Updating models and imports for Django 2.2 upgrade Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 3/7] settings.py: Replacing MIDDLEWARE_CLASSES with MIDDLEWARE " Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 4/7] Replacing is_authenticated() with is_authenticated for Django upgrade Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 5/7] requirements.txt: Updating Django requirement to the 2.2 LTS release Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 6/7] Dockerfile: debian 10 "buster" and drop python2 Amber Elliot
2020-06-25 22:57 ` [layerindexweb][PATCH 7/7] docker/settings.py: MIDDLEWARE Amber Elliot
2020-06-29 18:05 ` [yocto] [layerindexweb][PATCH 0/7] Django 2.2 Upgrade Paul Eggleton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.