Skip to content

Commit dc5ca4e

Browse files
committed
Merged in Django 2.1 upgrade changes.
- Legacy-Id: 18060
2 parents b332233 + 27da6e8 commit dc5ca4e

15 files changed

Lines changed: 126 additions & 28 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 2.1.15 on 2020-06-24 13:32
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('doc', '0031_set_state_for_charters_of_replaced_groups'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='ballotpositiondocevent',
15+
name='send_email',
16+
field=models.BooleanField(default=None, null=True),
17+
),
18+
migrations.AlterField(
19+
model_name='consensusdocevent',
20+
name='consensus',
21+
field=models.BooleanField(default=None, null=True),
22+
),
23+
]

ietf/doc/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,7 @@ class StateDocEvent(DocEvent):
10731073
state = ForeignKey(State, blank=True, null=True)
10741074

10751075
class ConsensusDocEvent(DocEvent):
1076-
consensus = models.NullBooleanField(default=None)
1076+
consensus = models.BooleanField(null=True, default=None)
10771077

10781078
# IESG events
10791079
class BallotType(models.Model):
@@ -1164,7 +1164,7 @@ class BallotPositionDocEvent(DocEvent):
11641164
discuss_time = models.DateTimeField(help_text="Time discuss text was written", blank=True, null=True)
11651165
comment = models.TextField(help_text="Optional comment", blank=True)
11661166
comment_time = models.DateTimeField(help_text="Time optional comment was written", blank=True, null=True)
1167-
send_email = models.NullBooleanField(default=None)
1167+
send_email = models.BooleanField(null=True, default=None)
11681168

11691169
@memoize
11701170
def any_email_sent(self):

ietf/ietfauth/tests.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from unittest import skipIf
2525
from urllib.parse import urlsplit
2626

27-
import django.contrib.auth.views
2827
from django.urls import reverse as urlreverse
2928
from django.contrib.auth.models import User
3029
from django.conf import settings
@@ -91,7 +90,7 @@ def test_login_and_logout(self):
9190
self.assertEqual(urlsplit(r["Location"])[2], urlreverse(ietf.ietfauth.views.profile))
9291

9392
# try logging out
94-
r = self.client.get(urlreverse(django.contrib.auth.views.logout))
93+
r = self.client.get(urlreverse('django.contrib.auth.views.logout'))
9594
self.assertEqual(r.status_code, 200)
9695

9796
r = self.client.get(urlreverse(ietf.ietfauth.views.profile))
@@ -198,7 +197,7 @@ def test_create_whitelisted_account(self):
198197
self.assertContains(r, "Whitelist entry creation successful")
199198

200199
# log out
201-
r = self.client.get(urlreverse(django.contrib.auth.views.logout))
200+
r = self.client.get(urlreverse('django.contrib.auth.views.logout'))
202201
self.assertEqual(r.status_code, 200)
203202

204203
# register and verify whitelisted email

ietf/ietfauth/urls.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright The IETF Trust 2007-2019, All Rights Reserved
22
# Copyright The IETF Trust 2007, 2009, All Rights Reserved
33

4-
from django.contrib.auth.views import logout # type: ignore
4+
from django.contrib.auth.views import LogoutView # type: ignore
55

66
from ietf.ietfauth import views
77
from ietf.utils.urls import url
@@ -15,7 +15,7 @@
1515
url(r'^create/$', views.create_account),
1616
url(r'^create/confirm/(?P<auth>[^/]+)/$', views.confirm_account),
1717
url(r'^login/$', views.login),
18-
url(r'^logout/$', logout),
18+
url(r'^logout/$', LogoutView.as_view(), name="django.contrib.auth.views.logout"),
1919
url(r'^password/$', views.change_password),
2020
url(r'^profile/$', views.profile),
2121
url(r'^reset/$', views.password_reset),

ietf/liaisons/widgets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def __init__(self, *args, **kwargs):
1717
self.required_label = kwargs.pop('required_label', None)
1818
super(ButtonWidget, self).__init__(*args, **kwargs)
1919

20-
def render(self, name, value, attrs=None):
20+
def render(self, name, value, **kwargs):
2121
html = '<span style="display: none" class="showAttachsOn">%s</span>' % conditional_escape(self.show_on)
2222
html += '<span style="display: none" class="attachEnabledLabel">%s</span>' % conditional_escape(self.label)
2323
if self.require:
@@ -30,7 +30,7 @@ def render(self, name, value, attrs=None):
3030

3131

3232
class ShowAttachmentsWidget(Widget):
33-
def render(self, name, value, attrs=None):
33+
def render(self, name, value, **kwargs):
3434
html = '<div id="id_%s">' % name
3535
html += '<span style="display: none" class="showAttachmentsEmpty form-control widget">No files attached</span>'
3636
html += '<div class="attachedFiles form-control widget">'
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 2.1.15 on 2020-06-24 13:32
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('person', '0011_auto_20200608_1212'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='historicalperson',
15+
name='consent',
16+
field=models.BooleanField(default=None, null=True, verbose_name='I hereby give my consent to the use of the personal details I have provided (photo, bio, name, email) within the IETF Datatracker'),
17+
),
18+
migrations.AlterField(
19+
model_name='person',
20+
name='consent',
21+
field=models.BooleanField(default=None, null=True, verbose_name='I hereby give my consent to the use of the personal details I have provided (photo, bio, name, email) within the IETF Datatracker'),
22+
),
23+
]

ietf/person/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class Person(models.Model):
4848
photo = models.ImageField(storage=NoLocationMigrationFileSystemStorage(), upload_to=settings.PHOTOS_DIRNAME, blank=True, default=None)
4949
photo_thumb = models.ImageField(storage=NoLocationMigrationFileSystemStorage(), upload_to=settings.PHOTOS_DIRNAME, blank=True, default=None)
5050
name_from_draft = models.CharField("Full Name (from submission)", null=True, max_length=255, editable=False, help_text="Name as found in a draft submission.")
51-
consent = models.NullBooleanField("I hereby give my consent to the use of the personal details I have provided (photo, bio, name, email) within the IETF Datatracker", null=True, default=None)
51+
consent = models.BooleanField("I hereby give my consent to the use of the personal details I have provided (photo, bio, name, email) within the IETF Datatracker", null=True, default=None)
5252

5353
def __str__(self):
5454
return self.plain_name()

ietf/person/tests.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
from pyquery import PyQuery
88
from io import StringIO
9+
10+
from django.http import HttpRequest
911
from django.urls import reverse as urlreverse
1012
from django.utils.encoding import iri_to_uri
1113

@@ -229,13 +231,17 @@ def test_move_related_objects(self):
229231
self.assertTrue(source_alias in target.alias_set.all())
230232

231233
def test_merge_persons(self):
234+
secretariat_role = RoleFactory(group__acronym='secretariat', name_id='secr')
235+
user = secretariat_role.person.user
236+
request = HttpRequest()
237+
request.user = user
232238
source = PersonFactory()
233239
target = PersonFactory()
234240
source_id = source.pk
235241
source_email = source.email_set.first()
236242
source_alias = source.alias_set.first()
237243
source_user = source.user
238-
merge_persons(source, target, file=StringIO())
244+
merge_persons(request, source, target, file=StringIO())
239245
self.assertTrue(source_email in target.email_set.all())
240246
self.assertTrue(source_alias in target.alias_set.all())
241247
self.assertFalse(Person.objects.filter(id=source_id))

ietf/person/utils.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import syslog
1010

1111
from django.contrib import admin
12-
from django.contrib.auth.models import User
1312
from django.core.cache import cache
1413
from django.core.exceptions import ObjectDoesNotExist
1514

@@ -18,7 +17,7 @@
1817
from ietf.person.models import Person
1918
from ietf.utils.mail import send_mail
2019

21-
def merge_persons(source, target, file=sys.stdout, verbose=False):
20+
def merge_persons(request, source, target, file=sys.stdout, verbose=False):
2221
changes = []
2322

2423
# write log
@@ -44,12 +43,8 @@ def merge_persons(source, target, file=sys.stdout, verbose=False):
4443

4544
# check for any remaining relationships and exit if more found
4645
objs = [source]
47-
opts = Person._meta
48-
user = User.objects.filter(is_superuser=True).first()
49-
admin_site = admin.site
50-
using = 'default'
51-
deletable_objects = admin.utils.get_deleted_objects(
52-
objs, opts, user, admin_site, using)
46+
# request.user = User.objects.filter(is_superuser=True).first()
47+
deletable_objects = admin.utils.get_deleted_objects(objs, request, admin.site)
5348
deletable_objects_summary = deletable_objects[1]
5449
if len(deletable_objects_summary) > 1: # should only inlcude one object (Person)
5550
print("Not Deleting Person: {}({})".format(source.ascii,source.pk), file=file)
@@ -194,7 +189,6 @@ def get_active_balloters(ballot_type):
194189
return active_balloters
195190

196191
def get_active_ads():
197-
from ietf.person.models import Person
198192
cache_key = "doc:active_ads"
199193
active_ads = cache.get(cache_key)
200194
if not active_ads:
@@ -203,7 +197,6 @@ def get_active_ads():
203197
return active_ads
204198

205199
def get_active_irsg():
206-
from ietf.person.models import Person
207200
cache_key = "doc:active_irsg_balloters"
208201
active_irsg_balloters = cache.get(cache_key)
209202
if not active_irsg_balloters:

ietf/person/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def merge(request):
111111
target = form.cleaned_data.get('target')
112112
# Do merge with force
113113
output = StringIO()
114-
success, changes = merge_persons(source, target, file=output)
114+
success, changes = merge_persons(request, source, target, file=output)
115115
if success:
116116
messages.success(request, 'Merged {} ({}) to {} ({}). {})'.format(
117117
source.name, source_id, target.name, target.id, changes))

0 commit comments

Comments
 (0)