do not delete uploaded images or page revisions when a user is deleted. fixes #1918

pull/2038/head
Rich Atkinson 2015-11-11 16:01:20 +11:00 zatwierdzone przez Matt Westcott
rodzic f436bc5c09
commit aaed92f301
8 zmienionych plików z 89 dodań i 2 usunięć

Wyświetl plik

@ -24,6 +24,7 @@ Changelog
* Added an optional human-friendly `site_name` field to sites (Timo Rieber)
* Added success message after updating image from the image upload view (Christian Peters)
* New translations for Arabic and Latvian
* Fix: Images and page revisions created by a user are no longer deleted when the user is deleted (Rich Atkinson)
* Fix: HTTP cache purge now works again on Python 2 (Mitchel Cabuloy)
* Fix: Locked pages can no longer be unpublished (Alex Bridge)
* Fix: Site records now implement `get_by_natural_key`

Wyświetl plik

@ -90,6 +90,7 @@ Contributors
* Christian Peters
* Adon Metcalfe
* rayrayndwiga
* Rich Atkinson
Translators

Wyświetl plik

@ -74,6 +74,7 @@ Minor features
Bug fixes
~~~~~~~~~
* Images and page revisions created by a user are no longer deleted when the user is deleted (Rich Atkinson)
* HTTP cache purge now works again on Python 2 (Mitchel Cabuloy)
* Locked pages can no longer be unpublished (Alex Bridge)
* Site records now implement ``get_by_natural_key``

Wyświetl plik

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import django.db.models.deletion
from django.conf import settings
class Migration(migrations.Migration):
dependencies = [
('tests', '0021_custommanagerpage'),
]
operations = [
migrations.AlterField(
model_name='customimage',
name='uploaded_by_user',
field=models.ForeignKey(
on_delete=django.db.models.deletion.SET_NULL, blank=True, editable=False,
to=settings.AUTH_USER_MODEL, null=True, verbose_name='uploaded by user'
),
),
migrations.AlterField(
model_name='customimagefilepath',
name='uploaded_by_user',
field=models.ForeignKey(
editable=False, to=settings.AUTH_USER_MODEL, null=True, blank=True,
on_delete=django.db.models.deletion.SET_NULL, verbose_name='uploaded by user'
),
),
]

Wyświetl plik

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import django.db.models.deletion
from django.conf import settings
class Migration(migrations.Migration):
dependencies = [
('wagtailcore', '0022_add_site_name'),
]
operations = [
migrations.AlterField(
model_name='pagerevision',
name='user',
field=models.ForeignKey(
on_delete=django.db.models.deletion.SET_NULL,
verbose_name='user', blank=True, to=settings.AUTH_USER_MODEL, null=True
),
),
]

Wyświetl plik

@ -1338,7 +1338,10 @@ class PageRevision(models.Model):
db_index=True
)
created_at = models.DateTimeField(verbose_name=_('created at'))
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('user'), null=True, blank=True)
user = models.ForeignKey(
settings.AUTH_USER_MODEL, verbose_name=_('user'), null=True, blank=True,
on_delete=models.SET_NULL
)
content_json = models.TextField(verbose_name=_('content JSON'))
approved_go_live_at = models.DateTimeField(verbose_name=_('approved go live at'), null=True, blank=True)

Wyświetl plik

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import django.db.models.deletion
from django.conf import settings
class Migration(migrations.Migration):
dependencies = [
('wagtailimages', '0009_capitalizeverbose'),
]
operations = [
migrations.AlterField(
model_name='image',
name='uploaded_by_user',
field=models.ForeignKey(
on_delete=django.db.models.deletion.SET_NULL, blank=True, editable=False,
to=settings.AUTH_USER_MODEL, null=True, verbose_name='uploaded by user'
),
),
]

Wyświetl plik

@ -62,7 +62,8 @@ class AbstractImage(models.Model, TagSearchable):
height = models.IntegerField(verbose_name=_('height'), editable=False)
created_at = models.DateTimeField(verbose_name=_('created at'), auto_now_add=True, db_index=True)
uploaded_by_user = models.ForeignKey(
settings.AUTH_USER_MODEL, verbose_name=_('uploaded by user'), null=True, blank=True, editable=False
settings.AUTH_USER_MODEL, verbose_name=_('uploaded by user'),
null=True, blank=True, editable=False, on_delete=models.SET_NULL
)
tags = TaggableManager(help_text=None, blank=True, verbose_name=_('tags'))