Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit624dc3a

Browse files
JacobCoffeeewdurbinezio-melotti
authored
feat: migration from 2.2 -> 3.2 -> 4.2 (#2520)
* feat: initial 2.2 -> 4.2 migration work* feat: minimum dependency changes required to get a live webserver:port log line* test(minutes): fixed minutes test* test(mailing): fixed mailing test* test(codesamples): fixed codesamples tests* test(downloads): fixed downloads testsnote: unsure if "valid"* test(pages): fixed pages tests* test(successstories): fixed successstories tests* test(users): fixed users forms tests* test(events): fixed events tests* test(users): fixed users views tests* chore: hide my shame* chore: apply code review* harmonize docker-compose and ci.yml PG versions to prod* Update base-requirements.txtCo-authored-by: Ezio Melotti <ezio.melotti@gmail.com>* chore: remove migrations, rebase latest* chore: apply code review* feat(db): generate migrations* fix: revert allauth version bumpResolves#2520 (comment)* fix: revert allauth account middlware used in later versions* chore: bump allauth version* Fixup tests that interact with django-allauth ACCOUNT_PREVENT_ENUMERATIONACCOUNT_PREVENT_ENUMERATION was introduced in django-allauth 0.52.0, and interferes with our expectations.This should probably be turned on! But for now disable it by default to keep the changeset minimal.Allauth _used_ to iterate over users to check for email uniquenss but stopped at some point, so we have to create an EmailAdress object for the user in the relevant test-case for duplicate emails* chore: bump django package version---------Co-authored-by: Ee Durbin <ewdurbin@gmail.com>Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
1 parentaefbaa1 commit624dc3a

File tree

63 files changed

+684
-153
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+684
-153
lines changed

‎.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
runs-on:ubuntu-latest
66
services:
77
postgres:
8-
image:postgres:10.1
8+
image:postgres:15.3
99
env:
1010
POSTGRES_USER:postgres
1111
POSTGRES_PASSWORD:postgres

‎banners/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='banners.apps.BannersAppConfig'

‎base-requirements.txt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
dj-database-url==0.5.0
2-
django-pipeline==2.0.6
3-
django-sitetree==1.18.0
2+
django-pipeline==3.0.0 # 3.0.0 is first version that supports Django 4.2
3+
django-sitetree==1.18.0 # >=1.17.1 is (?) first version that supports Django 4.2
44
django-apptemplates==1.5
55
django-admin-interface==0.24.2
66
django-translation-aliases==0.1.0
7-
Django==2.2.28
7+
Django==4.2.16
88
docutils==0.12
99
Markdown==3.3.4
1010
cmarkgfm==0.6.0
@@ -22,32 +22,31 @@ chardet==4.0.0
2222
celery[redis]==5.3.6
2323
django-celery-beat==2.5.0
2424
# TODO: We may drop 'django-imagekit' completely.
25-
django-imagekit==4.0.2
25+
django-imagekit==5.0 # 5.0 is first version that supports Django 4.2
2626
django-haystack==3.2.1
2727
elasticsearch>=7,<8
2828
# TODO: 0.14.0 only supports Django 1.8 and 1.11.
29-
django-tastypie==0.14.3
29+
django-tastypie==0.14.6 # 0.14.6 is first version that supports Django 4.2
3030

3131
pytz==2021.1
3232
python-dateutil==2.8.2
3333

3434
requests[security]>=2.26.0
3535

36-
django-honeypot==1.0.1
37-
django-markupfield==2.0.0
38-
django-markupfield-helpers==0.1.1
36+
django-honeypot==1.0.4 # 1.0.4 is first version that supports Django 4.2
37+
django-markupfield==2.0.1
3938

40-
django-allauth==0.50.0
39+
django-allauth==0.57.2 # 0.55.0 is first version that supports Django 4.2
4140

4241
django-waffle==2.2.1
4342

44-
djangorestframework==3.12.2
43+
djangorestframework==3.14.0 # 3.14.0 is first version that supports Django 4.1, 4.2 support hasnt been "released"
4544
django-filter==2.4.0
4645
django-ordered-model==3.4.3
4746
django-widget-tweaks==1.4.8
4847
django-countries==7.2.1
4948
num2words==0.5.10
50-
django-polymorphic==3.0.0
49+
django-polymorphic==3.1.0 # 3.1.0 is first version that supports Django 4.0, unsure if it fully supports 4.2
5150
sorl-thumbnail==12.7.0
5251
django-extensions==3.1.4
5352
django-import-export==2.7.1

‎blogs/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='blogs.apps.BlogsAppConfig'

‎blogs/admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ class BlogEntryAdmin(admin.ModelAdmin):
1010
date_hierarchy='pub_date'
1111
actions= ['sync_new_entries']
1212

13+
@admin.action(
14+
description="Sync new blog entries"
15+
)
1316
defsync_new_entries(self,request,queryset):
1417
call_command('update_blogs')
1518
self.message_user(request,"Blog entries updated.")
1619

17-
sync_new_entries.short_description="Sync new blog entries"
1820

1921

2022
@admin.register(FeedAggregate)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Generated by Django 4.2.11 on 2024-09-05 17:10
2+
3+
fromdjango.confimportsettings
4+
fromdjango.dbimportmigrations,models
5+
importdjango.db.models.deletion
6+
7+
8+
classMigration(migrations.Migration):
9+
10+
dependencies= [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('blogs','0002_remove_translations_and_contributors'),
13+
]
14+
15+
operations= [
16+
migrations.AlterField(
17+
model_name='relatedblog',
18+
name='creator',
19+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
20+
),
21+
migrations.AlterField(
22+
model_name='relatedblog',
23+
name='last_modified_by',
24+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
25+
),
26+
]

‎blogs/parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
fromdjango.confimportsettings
55
fromdjango.template.loaderimportrender_to_string
6-
fromdjango.utils.timezoneimportmake_aware,utc
6+
fromdjango.utils.timezoneimportmake_aware
77

88
fromboxes.modelsimportBox
99
from .modelsimportBlogEntry,Feed
@@ -16,7 +16,7 @@ def get_all_entries(feed_url):
1616

1717
foreind['entries']:
1818
published=make_aware(
19-
datetime.datetime(*e['published_parsed'][:7]),timezone=utc
19+
datetime.datetime(*e['published_parsed'][:7]),timezone=datetime.timezone.utc
2020
)
2121

2222
entry= {

‎boxes/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='boxes.apps.BoxesAppConfig'
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Generated by Django 4.2.11 on 2024-09-05 17:10
2+
3+
fromdjango.confimportsettings
4+
fromdjango.dbimportmigrations,models
5+
importdjango.db.models.deletion
6+
7+
8+
classMigration(migrations.Migration):
9+
10+
dependencies= [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('boxes','0003_auto_20171101_2138'),
13+
]
14+
15+
operations= [
16+
migrations.AlterField(
17+
model_name='box',
18+
name='creator',
19+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
20+
),
21+
migrations.AlterField(
22+
model_name='box',
23+
name='last_modified_by',
24+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
25+
),
26+
]

‎cms/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='cms.apps.CmsAppConfig'

‎codesamples/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='codesamples.apps.CodesamplesAppConfig'
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Generated by Django 4.2.11 on 2024-09-05 17:10
2+
3+
fromdjango.confimportsettings
4+
fromdjango.dbimportmigrations,models
5+
importdjango.db.models.deletion
6+
7+
8+
classMigration(migrations.Migration):
9+
10+
dependencies= [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('codesamples','0003_auto_20170821_2000'),
13+
]
14+
15+
operations= [
16+
migrations.AlterField(
17+
model_name='codesample',
18+
name='creator',
19+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
20+
),
21+
migrations.AlterField(
22+
model_name='codesample',
23+
name='last_modified_by',
24+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
25+
),
26+
]

‎codesamples/tests.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ def setUp(self):
1616
is_published=False)
1717

1818
deftest_published(self):
19-
self.assertQuerysetEqual(CodeSample.objects.published(),
20-
['<CodeSample: Copy One>'])
19+
self.assertQuerySetEqual(CodeSample.objects.published(),['<CodeSample: Copy One>'],transform=repr)
2120

2221
deftest_draft(self):
23-
self.assertQuerysetEqual(CodeSample.objects.draft(),
24-
['<CodeSample: Copy Two>'])
22+
self.assertQuerySetEqual(CodeSample.objects.draft(),['<CodeSample: Copy Two>'],transform=repr)

‎community/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='community.apps.CommunityAppConfig'
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Generated by Django 4.2.11 on 2024-09-05 17:10
2+
3+
fromdjango.confimportsettings
4+
fromdjango.dbimportmigrations,models
5+
importdjango.db.models.deletion
6+
7+
8+
classMigration(migrations.Migration):
9+
10+
dependencies= [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('community','0001_squashed_0004_auto_20170831_0541'),
13+
]
14+
15+
operations= [
16+
migrations.AlterField(
17+
model_name='link',
18+
name='creator',
19+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
20+
),
21+
migrations.AlterField(
22+
model_name='link',
23+
name='last_modified_by',
24+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
25+
),
26+
migrations.AlterField(
27+
model_name='link',
28+
name='post',
29+
field=models.ForeignKey(editable=False,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='related_%(class)s',to='community.post'),
30+
),
31+
migrations.AlterField(
32+
model_name='photo',
33+
name='creator',
34+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
35+
),
36+
migrations.AlterField(
37+
model_name='photo',
38+
name='last_modified_by',
39+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
40+
),
41+
migrations.AlterField(
42+
model_name='photo',
43+
name='post',
44+
field=models.ForeignKey(editable=False,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='related_%(class)s',to='community.post'),
45+
),
46+
migrations.AlterField(
47+
model_name='post',
48+
name='creator',
49+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
50+
),
51+
migrations.AlterField(
52+
model_name='post',
53+
name='last_modified_by',
54+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
55+
),
56+
migrations.AlterField(
57+
model_name='post',
58+
name='meta',
59+
field=models.JSONField(blank=True,default=dict),
60+
),
61+
migrations.AlterField(
62+
model_name='video',
63+
name='creator',
64+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
65+
),
66+
migrations.AlterField(
67+
model_name='video',
68+
name='last_modified_by',
69+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
70+
),
71+
migrations.AlterField(
72+
model_name='video',
73+
name='post',
74+
field=models.ForeignKey(editable=False,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='related_%(class)s',to='community.post'),
75+
),
76+
]

‎community/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
fromdjango.contrib.postgres.fieldsimportJSONField
1+
fromdjango.db.modelsimportJSONField
22
fromdjango.urlsimportreverse
33
fromdjango.dbimportmodels
44
fromdjango.utils.translationimportgettext_lazyas_

‎community/tests/test_managers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ def test_post_manager(self):
1616
status=Post.STATUS_PUBLIC
1717
)
1818

19-
self.assertQuerysetEqual(Post.objects.all(), [public_post,private_post],lambdax:x)
20-
self.assertQuerysetEqual(Post.objects.public(), [public_post],lambdax:x)
21-
self.assertQuerysetEqual(Post.objects.private(), [private_post],lambdax:x)
19+
self.assertQuerySetEqual(Post.objects.all(), [public_post,private_post],lambdax:x)
20+
self.assertQuerySetEqual(Post.objects.public(), [public_post],lambdax:x)
21+
self.assertQuerySetEqual(Post.objects.private(), [private_post],lambdax:x)

‎companies/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='companies.apps.CompaniesAppConfig'

‎docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: "3.9"
22

33
services:
44
postgres:
5-
image:postgres:10-bullseye
5+
image:postgres:15.3-bullseye
66
ports:
77
-"5433:5432"
88
environment:

‎downloads/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
default_app_config='downloads.apps.DownloadsAppConfig'
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Generated by Django 4.2.11 on 2024-09-05 17:10
2+
3+
fromdjango.confimportsettings
4+
fromdjango.dbimportmigrations,models
5+
importdjango.db.models.deletion
6+
7+
8+
classMigration(migrations.Migration):
9+
10+
dependencies= [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('downloads','0010_releasefile_sbom_spdx2_file'),
13+
]
14+
15+
operations= [
16+
migrations.AlterField(
17+
model_name='os',
18+
name='creator',
19+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
20+
),
21+
migrations.AlterField(
22+
model_name='os',
23+
name='last_modified_by',
24+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
25+
),
26+
migrations.AlterField(
27+
model_name='release',
28+
name='creator',
29+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
30+
),
31+
migrations.AlterField(
32+
model_name='release',
33+
name='last_modified_by',
34+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
35+
),
36+
migrations.AlterField(
37+
model_name='releasefile',
38+
name='creator',
39+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_creator',to=settings.AUTH_USER_MODEL),
40+
),
41+
migrations.AlterField(
42+
model_name='releasefile',
43+
name='last_modified_by',
44+
field=models.ForeignKey(blank=True,null=True,on_delete=django.db.models.deletion.CASCADE,related_name='%(app_label)s_%(class)s_modified',to=settings.AUTH_USER_MODEL),
45+
),
46+
]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp