mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-03 20:29:15 +02:00
Admin UI for libraries and uploads
This commit is contained in:
parent
9aee135c2f
commit
a605bcbe76
27 changed files with 2140 additions and 361 deletions
|
@ -5,9 +5,10 @@ from django.contrib.contenttypes.fields import GenericForeignKey
|
|||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.conf import settings
|
||||
from django.core.serializers.json import DjangoJSONEncoder
|
||||
from django.db import models, transaction
|
||||
from django.db import connections, models, transaction
|
||||
from django.db.models import Lookup
|
||||
from django.db.models.fields import Field
|
||||
from django.db.models.sql.compiler import SQLCompiler
|
||||
from django.utils import timezone
|
||||
from django.urls import reverse
|
||||
|
||||
|
@ -25,6 +26,41 @@ class NotEqual(Lookup):
|
|||
return "%s <> %s" % (lhs, rhs), params
|
||||
|
||||
|
||||
class NullsLastSQLCompiler(SQLCompiler):
|
||||
def get_order_by(self):
|
||||
result = super().get_order_by()
|
||||
if result and self.connection.vendor == "postgresql":
|
||||
return [
|
||||
(
|
||||
expr,
|
||||
(
|
||||
sql + " NULLS LAST" if not sql.endswith(" NULLS LAST") else sql,
|
||||
params,
|
||||
is_ref,
|
||||
),
|
||||
)
|
||||
for (expr, (sql, params, is_ref)) in result
|
||||
]
|
||||
return result
|
||||
|
||||
|
||||
class NullsLastQuery(models.sql.query.Query):
|
||||
"""Use a custom compiler to inject 'NULLS LAST' (for PostgreSQL)."""
|
||||
|
||||
def get_compiler(self, using=None, connection=None):
|
||||
if using is None and connection is None:
|
||||
raise ValueError("Need either using or connection")
|
||||
if using:
|
||||
connection = connections[using]
|
||||
return NullsLastSQLCompiler(self, connection, using)
|
||||
|
||||
|
||||
class NullsLastQuerySet(models.QuerySet):
|
||||
def __init__(self, model=None, query=None, using=None, hints=None):
|
||||
super().__init__(model, query, using, hints)
|
||||
self.query = query or NullsLastQuery(self.model)
|
||||
|
||||
|
||||
class LocalFromFidQuerySet:
|
||||
def local(self, include=True):
|
||||
host = settings.FEDERATION_HOSTNAME
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue