Skip to content

Upgrade to Django 2.2.9 #6494

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Feb 19, 2020
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions pytest.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
addopts = --reuse-db
python_files = tests.py test_*.py *_tests.py
filterwarnings =
# TODO: this filter has to be removed before migrating to Django
# 2.0 and the code has to be upgrade accordingly
ignore::django.utils.deprecation.RemovedInDjango20Warning

# Ignore external dependencies warning deprecations
# textclassifier
ignore:The 'warn' method is deprecated, use 'warning' instead:DeprecationWarning
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/api/v3/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from django.conf import settings
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.utils.translation import ugettext as _

from rest_flex_fields import FlexFieldsModelSerializer
Expand Down
9 changes: 4 additions & 5 deletions readthedocs/builds/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class Migration(migrations.Migration):
('commit', models.CharField(max_length=255, null=True, verbose_name='Commit', blank=True)),
('length', models.IntegerField(null=True, verbose_name='Build Length', blank=True)),
('builder', models.CharField(max_length=255, null=True, verbose_name='Builder', blank=True)),
('project', models.ForeignKey(related_name='builds', verbose_name='Project', to='projects.Project')),
('project', models.ForeignKey(related_name='builds', verbose_name='Project', to='projects.Project', on_delete=models.CASCADE)),
],
options={
'ordering': ['-date'],
Expand All @@ -50,12 +50,11 @@ class Migration(migrations.Migration):
('uploaded', models.BooleanField(default=False, verbose_name='Uploaded')),
('privacy_level', models.CharField(default=b'public', help_text='Level of privacy for this Version.', max_length=20, verbose_name='Privacy Level', choices=[(b'public', 'Public'), (b'protected', 'Protected'), (b'private', 'Private')])),
('machine', models.BooleanField(default=False, verbose_name='Machine Created')),
('project', models.ForeignKey(related_name='versions', verbose_name='Project', to='projects.Project')),
('project', models.ForeignKey(related_name='versions', verbose_name='Project', to='projects.Project', on_delete=models.CASCADE)),
('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')),
],
options={
'ordering': ['-verbose_name'],
'permissions': (('view_version', 'View Version'),),
},
),
migrations.CreateModel(
Expand All @@ -65,13 +64,13 @@ class Migration(migrations.Migration):
('from_slug', models.CharField(default=b'', max_length=255, verbose_name='From slug')),
('to_slug', models.CharField(default=b'', max_length=255, verbose_name='To slug', blank=True)),
('largest', models.BooleanField(default=False, verbose_name='Largest')),
('project', models.ForeignKey(related_name='aliases', verbose_name='Project', to='projects.Project')),
('project', models.ForeignKey(related_name='aliases', verbose_name='Project', to='projects.Project', on_delete=models.CASCADE)),
],
),
migrations.AddField(
model_name='build',
name='version',
field=models.ForeignKey(related_name='builds', verbose_name='Version', to='builds.Version', null=True),
field=models.ForeignKey(related_name='builds', verbose_name='Version', to='builds.Version', null=True, on_delete=models.CASCADE),
),
migrations.AlterUniqueTogether(
name='version',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Migration(migrations.Migration):
('exit_code', models.IntegerField(verbose_name='Command exit code')),
('start_time', models.DateTimeField(verbose_name='Start time')),
('end_time', models.DateTimeField(verbose_name='End time')),
('build', models.ForeignKey(related_name='commands', verbose_name='Build', to='builds.Build')),
('build', models.ForeignKey(related_name='commands', verbose_name='Build', to='builds.Build', on_delete=models.CASCADE)),
],
options={
'ordering': ['start_time'],
Expand Down
9 changes: 4 additions & 5 deletions readthedocs/builds/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ class Version(models.Model):
Project,
verbose_name=_('Project'),
related_name='versions',
on_delete=models.CASCADE,
)
type = models.CharField(
_('Type'),
Expand Down Expand Up @@ -160,11 +161,6 @@ class Version(models.Model):
class Meta:
unique_together = [('project', 'slug')]
ordering = ['-verbose_name']
permissions = (
# Translators: Permission around whether a user can view the
# version
('view_version', _('View Version')),
)

def __str__(self):
return ugettext(
Expand Down Expand Up @@ -646,12 +642,14 @@ class Build(models.Model):
Project,
verbose_name=_('Project'),
related_name='builds',
on_delete=models.CASCADE,
)
version = models.ForeignKey(
Version,
verbose_name=_('Version'),
null=True,
related_name='builds',
on_delete=models.CASCADE,
)
type = models.CharField(
_('Type'),
Expand Down Expand Up @@ -941,6 +939,7 @@ class BuildCommandResult(BuildCommandResultMixin, models.Model):
Build,
verbose_name=_('Build'),
related_name='commands',
on_delete=models.CASCADE,
)

command = models.TextField(_('Command'))
Expand Down
4 changes: 2 additions & 2 deletions readthedocs/builds/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ def _get_versions(self, project):

class BuildList(BuildBase, BuildTriggerMixin, ListView):

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)

active_builds = self.get_queryset().exclude(
state='finished',
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/core/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class Migration(migrations.Migration):
('whitelisted', models.BooleanField(default=False, verbose_name='Whitelisted')),
('homepage', models.CharField(max_length=100, verbose_name='Homepage', blank=True)),
('allow_email', models.BooleanField(default=True, help_text='Show your email on VCS contributions.', verbose_name='Allow email')),
('user', models.ForeignKey(related_name='profile', verbose_name='User', to=settings.AUTH_USER_MODEL, unique=True)),
('user', models.ForeignKey(related_name='profile', verbose_name='User', to=settings.AUTH_USER_MODEL, unique=True, on_delete=models.CASCADE)),
],
),
]
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='userprofile',
name='user',
field=models.OneToOneField(related_name='profile', verbose_name='User', to=settings.AUTH_USER_MODEL),
field=models.OneToOneField(related_name='profile', verbose_name='User', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE),
),
]
1 change: 1 addition & 0 deletions readthedocs/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class UserProfile(models.Model):
'auth.User',
verbose_name=_('User'),
related_name='profile',
on_delete=models.CASCADE,
)
whitelisted = models.BooleanField(_('Whitelisted'), default=False)
banned = models.BooleanField(_('Banned'), default=False)
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/gold/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Migration(migrations.Migration):
('stripe_id', models.CharField(max_length=255)),
('subscribed', models.BooleanField(default=False)),
('projects', models.ManyToManyField(related_name='gold_owners', verbose_name='Projects', to='projects.Project')),
('user', models.ForeignKey(related_name='gold', verbose_name='User', to=settings.AUTH_USER_MODEL, unique=True)),
('user', models.ForeignKey(related_name='gold', verbose_name='User', to=settings.AUTH_USER_MODEL, unique=True, on_delete=models.CASCADE)),
],
),
]
1 change: 1 addition & 0 deletions readthedocs/gold/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ class GoldUser(models.Model):
verbose_name=_('User'),
unique=True,
related_name='gold',
on_delete=models.CASCADE,
)
level = models.CharField(
_('Level'),
Expand Down
6 changes: 5 additions & 1 deletion readthedocs/integrations/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,11 @@ class Integration(models.Model):

INTEGRATIONS = WEBHOOK_INTEGRATIONS

project = models.ForeignKey(Project, related_name='integrations')
project = models.ForeignKey(
Project,
related_name='integrations',
on_delete=models.CASCADE,
)
integration_type = models.CharField(
_('Integration type'),
max_length=32,
Expand Down
4 changes: 2 additions & 2 deletions readthedocs/oauth/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,14 @@ class Migration(migrations.Migration):
('html_url', models.URLField(null=True, verbose_name='HTML URL', blank=True)),
('active', models.BooleanField(default=False, verbose_name='Active')),
('json', models.TextField(verbose_name=b'JSON')),
('organization', models.ForeignKey(related_name='projects', verbose_name='Organization', blank=True, to='oauth.GithubOrganization', null=True)),
('organization', models.ForeignKey(related_name='projects', verbose_name='Organization', blank=True, to='oauth.GithubOrganization', null=True, on_delete=models.CASCADE)),
('users', models.ManyToManyField(related_name='github_projects', verbose_name='Users', to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='bitbucketproject',
name='organization',
field=models.ForeignKey(related_name='projects', verbose_name='Organization', blank=True, to='oauth.BitbucketTeam', null=True),
field=models.ForeignKey(related_name='projects', verbose_name='Organization', blank=True, to='oauth.BitbucketTeam', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='bitbucketproject',
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/oauth/migrations/0002_combine_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class Migration(migrations.Migration):
('vcs', models.CharField(blank=True, max_length=200, verbose_name='vcs', choices=[(b'git', 'Git'), (b'svn', 'Subversion'), (b'hg', 'Mercurial'), (b'bzr', 'Bazaar')])),
('source', models.CharField(max_length=16, verbose_name='Repository source', choices=[(b'github', 'GitHub'), (b'bitbucket', 'Bitbucket')])),
('json', models.TextField(verbose_name='Serialized API response')),
('organization', models.ForeignKey(related_name='repositories', verbose_name='Organization', blank=True, to='oauth.RemoteOrganization', null=True)),
('organization', models.ForeignKey(related_name='repositories', verbose_name='Organization', blank=True, to='oauth.RemoteOrganization', null=True, on_delete=models.CASCADE)),
('users', models.ManyToManyField(related_name='oauth_repositories', verbose_name='Users', to=settings.AUTH_USER_MODEL)),
],
options={
Expand Down
4 changes: 2 additions & 2 deletions readthedocs/oauth/migrations/0005_add_account_relation.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='remoteorganization',
name='account',
field=models.ForeignKey(related_name='remote_organizations', verbose_name='Connected account', blank=True, to='socialaccount.SocialAccount', null=True),
field=models.ForeignKey(related_name='remote_organizations', verbose_name='Connected account', blank=True, to='socialaccount.SocialAccount', null=True, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='remoterepository',
name='account',
field=models.ForeignKey(related_name='remote_repositories', verbose_name='Connected account', blank=True, to='socialaccount.SocialAccount', null=True),
field=models.ForeignKey(related_name='remote_repositories', verbose_name='Connected account', blank=True, to='socialaccount.SocialAccount', null=True, on_delete=models.CASCADE),
),
]
3 changes: 3 additions & 0 deletions readthedocs/oauth/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class RemoteOrganization(models.Model):
related_name='remote_organizations',
null=True,
blank=True,
on_delete=models.CASCADE,
)
active = models.BooleanField(_('Active'), default=False)

Expand Down Expand Up @@ -96,13 +97,15 @@ class RemoteRepository(models.Model):
related_name='remote_repositories',
null=True,
blank=True,
on_delete=models.CASCADE,
)
organization = models.ForeignKey(
RemoteOrganization,
verbose_name=_('Organization'),
related_name='repositories',
null=True,
blank=True,
on_delete=models.CASCADE,
)
active = models.BooleanField(_('Active'), default=False)

Expand Down
11 changes: 5 additions & 6 deletions readthedocs/projects/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,27 +65,26 @@ class Migration(migrations.Migration):
('num_major', models.IntegerField(default=2, blank=True, help_text='2 means supporting 3.X.X and 2.X.X, but not 1.X.X', null=True, verbose_name='Number of Major versions')),
('num_minor', models.IntegerField(default=2, blank=True, help_text='2 means supporting 2.2.X and 2.1.X, but not 2.0.X', null=True, verbose_name='Number of Minor versions')),
('num_point', models.IntegerField(default=2, blank=True, help_text='2 means supporting 2.2.2 and 2.2.1, but not 2.2.0', null=True, verbose_name='Number of Point versions')),
('main_language_project', models.ForeignKey(related_name='translations', blank=True, to='projects.Project', null=True)),
('main_language_project', models.ForeignKey(related_name='translations', blank=True, to='projects.Project', null=True, on_delete=models.CASCADE)),
],
options={
'ordering': ('slug',),
'permissions': (('view_project', 'View Project'),),
},
),
migrations.CreateModel(
name='ProjectRelationship',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('child', models.ForeignKey(related_name='superprojects', verbose_name='Child', to='projects.Project')),
('parent', models.ForeignKey(related_name='subprojects', verbose_name='Parent', to='projects.Project')),
('child', models.ForeignKey(related_name='superprojects', verbose_name='Child', to='projects.Project', on_delete=models.CASCADE)),
('parent', models.ForeignKey(related_name='subprojects', verbose_name='Parent', to='projects.Project', on_delete=models.CASCADE)),
],
),
migrations.CreateModel(
name='WebHook',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('url', models.URLField(help_text='URL to send the webhook to', blank=True)),
('project', models.ForeignKey(related_name='webhook_notifications', to='projects.Project')),
('project', models.ForeignKey(related_name='webhook_notifications', to='projects.Project', on_delete=models.CASCADE)),
],
options={
'abstract': False,
Expand All @@ -109,6 +108,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='emailhook',
name='project',
field=models.ForeignKey(related_name='emailhook_notifications', to='projects.Project'),
field=models.ForeignKey(related_name='emailhook_notifications', to='projects.Project', on_delete=models.CASCADE),
),
]
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ class Migration(migrations.Migration):
('path', models.CharField(max_length=255, verbose_name='Path')),
('md5', models.CharField(max_length=255, verbose_name='MD5 checksum')),
('commit', models.CharField(max_length=255, verbose_name='Commit')),
('project', models.ForeignKey(related_name='imported_files', verbose_name='Project', to='projects.Project')),
('version', models.ForeignKey(related_name='imported_files', verbose_name='Version', to='builds.Version', null=True)),
('project', models.ForeignKey(related_name='imported_files', verbose_name='Project', to='projects.Project', on_delete=models.CASCADE)),
('version', models.ForeignKey(related_name='imported_files', verbose_name='Version', to='builds.Version', null=True, on_delete=models.CASCADE)),
],
),
]
2 changes: 1 addition & 1 deletion readthedocs/projects/migrations/0006_add_domain_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class Migration(migrations.Migration):
('cname', models.BooleanField(default=False, help_text='This URL is a CNAME for the project')),
('canonical', models.BooleanField(default=False, help_text='This URL is the primary one where the documentation is served from.')),
('count', models.IntegerField(default=0, help_text='Number of times this domain has been hit.')),
('project', models.ForeignKey(related_name='domains', to='projects.Project')),
('project', models.ForeignKey(related_name='domains', to='projects.Project', on_delete=models.CASCADE)),
],
options={
'ordering': ('-canonical', '-machine', 'url'),
Expand Down
21 changes: 14 additions & 7 deletions readthedocs/projects/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,13 @@ class ProjectRelationship(models.Model):
'Project',
verbose_name=_('Parent'),
related_name='subprojects',
on_delete=models.CASCADE,
)
child = models.ForeignKey(
'Project',
verbose_name=_('Child'),
related_name='superprojects',
on_delete=models.CASCADE,
)
alias = models.SlugField(
_('Alias'),
Expand Down Expand Up @@ -404,11 +406,6 @@ class Project(models.Model):

class Meta:
ordering = ('slug',)
permissions = (
# Translators: Permission around whether a user can view the
# project
('view_project', _('View Project')),
)

def __str__(self):
return self.name
Expand Down Expand Up @@ -1280,12 +1277,14 @@ class ImportedFile(models.Model):
'Project',
verbose_name=_('Project'),
related_name='imported_files',
on_delete=models.CASCADE,
)
version = models.ForeignKey(
'builds.Version',
verbose_name=_('Version'),
related_name='imported_files',
null=True,
on_delete=models.CASCADE,
)
name = models.CharField(_('Name'), max_length=255)
slug = models.SlugField(_('Slug'))
Expand Down Expand Up @@ -1373,7 +1372,11 @@ def processed_json(self):


class Notification(models.Model):
project = models.ForeignKey(Project, related_name='%(class)s_notifications')
project = models.ForeignKey(
Project,
related_name='%(class)s_notifications',
on_delete=models.CASCADE,
)
objects = RelatedProjectQuerySet.as_manager()

class Meta:
Expand Down Expand Up @@ -1402,7 +1405,11 @@ class Domain(models.Model):

"""A custom domain name for a project."""

project = models.ForeignKey(Project, related_name='domains')
project = models.ForeignKey(
Project,
related_name='domains',
on_delete=models.CASCADE,
)
domain = models.CharField(
_('Domain'),
unique=True,
Expand Down
4 changes: 2 additions & 2 deletions readthedocs/projects/views/private.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ def get(self, request, *args, **kwargs):
self.validate_primary_email(request.user)
return super(ProjectDashboard, self).get(self, request, *args, **kwargs)

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)

return context

Expand Down
4 changes: 2 additions & 2 deletions readthedocs/projects/views/public.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ def get_queryset(self):

return queryset

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)
context['tag'] = self.tag
return context

Expand Down
Loading