Run black over entire codebase
This commit is contained in:
@ -2,4 +2,4 @@ from django.apps import AppConfig
|
||||
|
||||
|
||||
class FilesConfig(AppConfig):
|
||||
name = 'files'
|
||||
name = "files"
|
||||
|
@ -6,9 +6,10 @@ from .models import File, ImageFile
|
||||
class FileForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = File
|
||||
exclude = ['user',]
|
||||
exclude = ["user"]
|
||||
|
||||
|
||||
class ImageFileForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = ImageFile
|
||||
exclude = ['user',]
|
||||
exclude = ["user"]
|
||||
|
@ -9,18 +9,23 @@ class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
dependencies = []
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='File',
|
||||
name="File",
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('file', models.FileField(upload_to='.')),
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("file", models.FileField(upload_to=".")),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
options={"abstract": False},
|
||||
)
|
||||
]
|
||||
|
@ -11,14 +11,19 @@ class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('files', '0001_initial'),
|
||||
("files", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='file',
|
||||
name='user',
|
||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='files', to=settings.AUTH_USER_MODEL),
|
||||
model_name="file",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
default=1,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="files",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
)
|
||||
]
|
||||
|
@ -11,26 +11,59 @@ class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('files', '0002_file_user'),
|
||||
("files", "0002_file_user"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ImageFile',
|
||||
name="ImageFile",
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('file', models.FileField(upload_to='.')),
|
||||
('caption', models.CharField(default=None, max_length=240, null=True, verbose_name='Image caption')),
|
||||
('credit', models.CharField(default=None, max_length=240, null=True, verbose_name='Image credit')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='imagefile', to=settings.AUTH_USER_MODEL)),
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("file", models.FileField(upload_to=".")),
|
||||
(
|
||||
"caption",
|
||||
models.CharField(
|
||||
default=None,
|
||||
max_length=240,
|
||||
null=True,
|
||||
verbose_name="Image caption",
|
||||
),
|
||||
),
|
||||
(
|
||||
"credit",
|
||||
models.CharField(
|
||||
default=None,
|
||||
max_length=240,
|
||||
null=True,
|
||||
verbose_name="Image credit",
|
||||
),
|
||||
),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="imagefile",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
options={"abstract": False},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='file',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='file', to=settings.AUTH_USER_MODEL),
|
||||
model_name="file",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="file",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
]
|
||||
|
@ -7,19 +7,29 @@ from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('files', '0003_auto_20180526_1547'),
|
||||
]
|
||||
dependencies = [("files", "0003_auto_20180526_1547")]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='imagefile',
|
||||
name='caption',
|
||||
field=models.CharField(blank=True, default=None, max_length=240, null=True, verbose_name='Image caption'),
|
||||
model_name="imagefile",
|
||||
name="caption",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
default=None,
|
||||
max_length=240,
|
||||
null=True,
|
||||
verbose_name="Image caption",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='imagefile',
|
||||
name='credit',
|
||||
field=models.CharField(blank=True, default=None, max_length=240, null=True, verbose_name='Image credit'),
|
||||
model_name="imagefile",
|
||||
name="credit",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
default=None,
|
||||
max_length=240,
|
||||
null=True,
|
||||
verbose_name="Image credit",
|
||||
),
|
||||
),
|
||||
]
|
||||
|
@ -7,15 +7,15 @@ from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('files', '0004_auto_20180530_0308'),
|
||||
]
|
||||
dependencies = [("files", "0004_auto_20180530_0308")]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='imagefile',
|
||||
name='caption',
|
||||
field=models.CharField(blank=True, default='', max_length=240, verbose_name='Image caption'),
|
||||
model_name="imagefile",
|
||||
name="caption",
|
||||
field=models.CharField(
|
||||
blank=True, default="", max_length=240, verbose_name="Image caption"
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
)
|
||||
]
|
||||
|
@ -5,15 +5,15 @@ from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('files', '0005_auto_20180922_1717'),
|
||||
]
|
||||
dependencies = [("files", "0005_auto_20180922_1717")]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='imagefile',
|
||||
name='credit',
|
||||
field=models.CharField(blank=True, default='', max_length=240, verbose_name='Image credit'),
|
||||
model_name="imagefile",
|
||||
name="credit",
|
||||
field=models.CharField(
|
||||
blank=True, default="", max_length=240, verbose_name="Image credit"
|
||||
),
|
||||
preserve_default=False,
|
||||
),
|
||||
)
|
||||
]
|
||||
|
@ -7,19 +7,25 @@ import django.db.models.deletion
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('files', '0006_auto_20180928_1323'),
|
||||
]
|
||||
dependencies = [("files", "0006_auto_20180928_1323")]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='file',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='file', to=settings.AUTH_USER_MODEL),
|
||||
model_name="file",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="file",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='imagefile',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='imagefile', to=settings.AUTH_USER_MODEL),
|
||||
model_name="imagefile",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
related_name="imagefile",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
]
|
||||
|
@ -6,12 +6,8 @@ from apps.map.models import CaseStudy, CaseStudyDraft
|
||||
|
||||
|
||||
class BaseFile(models.Model):
|
||||
file = models.FileField(
|
||||
upload_to='.',
|
||||
)
|
||||
user = models.ForeignKey(
|
||||
User, related_name='%(class)s', on_delete=models.PROTECT,
|
||||
)
|
||||
file = models.FileField(upload_to=".")
|
||||
user = models.ForeignKey(User, related_name="%(class)s", on_delete=models.PROTECT)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
@ -29,13 +25,9 @@ class File(BaseFile):
|
||||
|
||||
class ImageFile(BaseFile):
|
||||
caption = models.CharField(
|
||||
verbose_name=_("Image caption"),
|
||||
max_length=240,
|
||||
blank=True,
|
||||
verbose_name=_("Image caption"), max_length=240, blank=True
|
||||
)
|
||||
|
||||
credit = models.CharField(
|
||||
verbose_name=_("Image credit"),
|
||||
max_length=240,
|
||||
blank=True,
|
||||
verbose_name=_("Image credit"), max_length=240, blank=True
|
||||
)
|
||||
|
@ -12,14 +12,16 @@ from .models import File
|
||||
@override_storage()
|
||||
class FileTests(TestCase):
|
||||
|
||||
test_user = 'testuser1'
|
||||
test_pass = '12345'
|
||||
test_user = "testuser1"
|
||||
test_pass = "12345"
|
||||
|
||||
def setUp(self):
|
||||
test_user1 = User.objects.create_user(username=self.test_user, password=self.test_pass)
|
||||
test_user1 = User.objects.create_user(
|
||||
username=self.test_user, password=self.test_pass
|
||||
)
|
||||
test_user1.save()
|
||||
|
||||
activate('en-gb')
|
||||
activate("en-gb")
|
||||
|
||||
self.file = File.objects.create(user=test_user1)
|
||||
|
||||
@ -27,19 +29,19 @@ class FileTests(TestCase):
|
||||
return self.client.login(username=self.test_user, password=self.test_pass)
|
||||
|
||||
def test_post_not_logged_in(self):
|
||||
url = reverse('files:upload')
|
||||
url = reverse("files:upload")
|
||||
|
||||
next_url = QueryDict.fromkeys(['next',], url)
|
||||
login_url = reverse('auth_login') + '?' + next_url.urlencode()
|
||||
next_url = QueryDict.fromkeys(["next"], url)
|
||||
login_url = reverse("auth_login") + "?" + next_url.urlencode()
|
||||
|
||||
response = self.client.post(url, follow=True)
|
||||
self.assertRedirects(response, login_url)
|
||||
|
||||
def test_delete_not_logged_in(self):
|
||||
url = reverse('files:delete', kwargs={'pk': self.file.pk})
|
||||
url = reverse("files:delete", kwargs={"pk": self.file.pk})
|
||||
|
||||
next_url = QueryDict.fromkeys(['next',], url)
|
||||
login_url = reverse('auth_login') + '?' + next_url.urlencode()
|
||||
next_url = QueryDict.fromkeys(["next"], url)
|
||||
login_url = reverse("auth_login") + "?" + next_url.urlencode()
|
||||
|
||||
response = self.client.post(url, follow=True)
|
||||
self.assertRedirects(response, login_url)
|
||||
@ -47,21 +49,19 @@ class FileTests(TestCase):
|
||||
def test_post_and_delete(self):
|
||||
login = self.login()
|
||||
|
||||
with open('apps/map/static/map/ojuso-logo-white.png', 'rb') as fp:
|
||||
response = self.client.post(reverse('files:upload_image'), {
|
||||
'file': fp
|
||||
})
|
||||
with open("apps/map/static/map/ojuso-logo-white.png", "rb") as fp:
|
||||
response = self.client.post(reverse("files:upload_image"), {"file": fp})
|
||||
|
||||
data = response.json()
|
||||
self.assertIsInstance(data['id'], int)
|
||||
self.assertEqual(data['is_valid'], True)
|
||||
self.assertIsInstance(data["id"], int)
|
||||
self.assertEqual(data["is_valid"], True)
|
||||
|
||||
response = self.client.post(reverse('files:delete_image', kwargs={
|
||||
'pk': data['id']
|
||||
}))
|
||||
response = self.client.post(
|
||||
reverse("files:delete_image", kwargs={"pk": data["id"]})
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
data = response.json()
|
||||
|
||||
self.assertEqual(data['success'], True)
|
||||
self.assertEqual(data["success"], True)
|
||||
|
@ -1,13 +1,21 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from .views import (FileUploadView, FileDeleteView, ImageFileUploadView,
|
||||
ImageFileDeleteView)
|
||||
|
||||
app_name = 'files'
|
||||
from .views import (
|
||||
FileUploadView,
|
||||
FileDeleteView,
|
||||
ImageFileUploadView,
|
||||
ImageFileDeleteView,
|
||||
)
|
||||
|
||||
app_name = "files"
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^upload/$', FileUploadView.as_view(), name='upload'),
|
||||
url(r'^upload/image/$', ImageFileUploadView.as_view(), name='upload_image'),
|
||||
url(r'^delete/(?P<pk>\d+)/$', FileDeleteView.as_view(), name='delete'),
|
||||
url(r'^delete/image/(?P<pk>\d+)/$', ImageFileDeleteView.as_view(), name='delete_image'),
|
||||
url(r"^upload/$", FileUploadView.as_view(), name="upload"),
|
||||
url(r"^upload/image/$", ImageFileUploadView.as_view(), name="upload_image"),
|
||||
url(r"^delete/(?P<pk>\d+)/$", FileDeleteView.as_view(), name="delete"),
|
||||
url(
|
||||
r"^delete/image/(?P<pk>\d+)/$",
|
||||
ImageFileDeleteView.as_view(),
|
||||
name="delete_image",
|
||||
),
|
||||
]
|
||||
|
@ -17,15 +17,17 @@ class FileUploadView(LoginRequiredMixin, FormView):
|
||||
self.object.user = self.request.user
|
||||
self.object.save()
|
||||
|
||||
return JsonResponse({
|
||||
'is_valid': True,
|
||||
'url': self.object.file.url,
|
||||
'name': self.object.file.name,
|
||||
'id': self.object.pk
|
||||
})
|
||||
return JsonResponse(
|
||||
{
|
||||
"is_valid": True,
|
||||
"url": self.object.file.url,
|
||||
"name": self.object.file.name,
|
||||
"id": self.object.pk,
|
||||
}
|
||||
)
|
||||
|
||||
def form_invalid(self, form):
|
||||
return JsonResponse({'is_valid': False, 'errors': form.errors})
|
||||
return JsonResponse({"is_valid": False, "errors": form.errors})
|
||||
|
||||
|
||||
class ImageFileUploadView(FileUploadView):
|
||||
@ -47,9 +49,7 @@ class FileDeleteView(LoginRequiredMixin, DetailView):
|
||||
|
||||
self.object.delete()
|
||||
|
||||
return JsonResponse({
|
||||
'success': True
|
||||
})
|
||||
return JsonResponse({"success": True})
|
||||
|
||||
|
||||
class ImageFileDeleteView(FileDeleteView):
|
||||
|
Reference in New Issue
Block a user