Merge branch 'admin-raw-id-fields' into 'develop'

Ensure we always use raw_ids for related fields in django's admin

See merge request funkwhale/funkwhale!431
This commit is contained in:
Eliot Berriot 2018-10-01 20:03:08 +00:00
commit d7b6e54621
9 changed files with 27 additions and 8 deletions

View File

@ -5,7 +5,7 @@ from django.conf import settings
from django.conf.urls import url
from django.urls import include, path
from django.conf.urls.static import static
from django.contrib import admin
from funkwhale_api.common import admin
from django.views import defaults as default_views

View File

@ -0,0 +1,19 @@
from django.contrib.admin import register as initial_register, site, ModelAdmin # noqa
from django.db.models.fields.related import RelatedField
def register(model):
"""
To make the admin more performant, we ensure all the the relations
are listed under raw_id_fields
"""
def decorator(modeladmin):
raw_id_fields = []
for field in model._meta.fields:
if isinstance(field, RelatedField):
raw_id_fields.append(field.name)
setattr(modeladmin, "raw_id_fields", raw_id_fields)
return initial_register(model)(modeladmin)
return decorator

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from funkwhale_api.common import admin
from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from funkwhale_api.common import admin
from . import models
from . import tasks

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from funkwhale_api.common import admin
from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from funkwhale_api.common import admin
from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from funkwhale_api.common import admin
from . import models

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from funkwhale_api.common import admin
from . import models

View File

@ -2,7 +2,7 @@
from __future__ import absolute_import, unicode_literals
from django import forms
from django.contrib import admin
from funkwhale_api.common import admin
from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from django.utils.translation import ugettext_lazy as _