Skip to content

remove dependency on django-filter, resolves #2635 #2903

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 25, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 0 additions & 48 deletions readthedocs/builds/filters.py

This file was deleted.

5 changes: 1 addition & 4 deletions readthedocs/builds/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from django.core.urlresolvers import reverse

from readthedocs.builds.models import Build, Version
from readthedocs.builds.filters import BuildFilter
from readthedocs.projects.models import Project

from redis import Redis, ConnectionError
Expand Down Expand Up @@ -37,14 +36,12 @@ class BuildList(BuildBase, ListView):
def get_context_data(self, **kwargs):
context = super(BuildList, self).get_context_data(**kwargs)

filterset = BuildFilter(self.request.GET, queryset=self.get_queryset())
active_builds = self.get_queryset().exclude(state="finished").values('id')

context['project'] = self.project
context['filter'] = filterset
context['active_builds'] = active_builds
context['versions'] = Version.objects.public(user=self.request.user, project=self.project)
context['build_qs'] = filterset.qs
context['build_qs'] = self.get_queryset()

try:
redis = Redis.from_url(settings.BROKER_URL)
Expand Down
13 changes: 0 additions & 13 deletions readthedocs/core/urls/__init__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
from django.conf.urls import url

from django_filters import views as django_filters_views

from readthedocs.constants import pattern_opts
from readthedocs.core import views
from readthedocs.core.views import hooks, serve
from readthedocs.builds.filters import VersionFilter
from readthedocs.projects.feeds import LatestProjectsFeed, NewProjectsFeed
from readthedocs.projects.filters import ProjectFilter


docs_urls = [
Expand Down Expand Up @@ -52,15 +48,6 @@
]

deprecated_urls = [
url(r'^filter/version/$',
django_filters_views.object_filter,
{'filter_class': VersionFilter, 'template_name': 'filter.html'},
name='filter_version'),
url(r'^filter/project/$',
django_filters_views.object_filter,
{'filter_class': ProjectFilter, 'template_name': 'filter.html'},
name='filter_project'),

url(r'^feeds/new/$',
NewProjectsFeed(),
name="new_feed"),
Expand Down
72 changes: 0 additions & 72 deletions readthedocs/projects/filters.py

This file was deleted.

6 changes: 1 addition & 5 deletions readthedocs/projects/views/private.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
from readthedocs.bookmarks.models import Bookmark
from readthedocs.builds.models import Version
from readthedocs.builds.forms import AliasForm, VersionForm
from readthedocs.builds.filters import VersionFilter
from readthedocs.builds.models import VersionAlias
from readthedocs.core.utils import trigger_build, broadcast
from readthedocs.core.mixins import ListViewWithForm
Expand All @@ -35,7 +34,7 @@
ProjectAdvertisingForm)
from readthedocs.projects.models import Project, EmailHook, WebHook, Domain
from readthedocs.projects.views.base import ProjectAdminMixin, ProjectSpamMixin
from readthedocs.projects import constants, tasks
from readthedocs.projects import tasks
from readthedocs.oauth.services import registry
from readthedocs.oauth.utils import attach_webhook, update_webhook

Expand All @@ -61,9 +60,6 @@ def get_queryset(self):

def get_context_data(self, **kwargs):
context = super(ProjectDashboard, self).get_context_data(**kwargs)
version_filter = VersionFilter(constants.IMPORTANT_VERSION_FILTERS,
queryset=self.get_queryset())
context['filter'] = version_filter

bookmarks = Bookmark.objects.filter(user=self.request.user)

Expand Down
13 changes: 3 additions & 10 deletions readthedocs/projects/views/public.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

from .base import ProjectOnboardMixin
from readthedocs.builds.constants import LATEST
from readthedocs.builds.filters import VersionSlugFilter
from readthedocs.builds.models import Version
from readthedocs.projects.models import Project, ImportedFile
from readthedocs.search.indexes import PageIndex
Expand Down Expand Up @@ -82,8 +81,6 @@ def get_context_data(self, **kwargs):
project = self.get_object()
context['versions'] = Version.objects.public(
user=self.request.user, project=project)
context['filter'] = VersionSlugFilter(self.request.GET,
queryset=context['versions'])

protocol = 'http'
if self.request.is_secure():
Expand Down Expand Up @@ -234,11 +231,10 @@ def version_filter_autocomplete(request, project_slug):
queryset = Project.objects.public(request.user)
project = get_object_or_404(queryset, slug=project_slug)
versions = Version.objects.public(request.user)
version_filter = VersionSlugFilter(request.GET, queryset=versions)
resp_format = request.GET.get('format', 'json')

if resp_format == 'json':
names = version_filter.qs.values_list('slug', flat=True)
names = versions.values_list('slug', flat=True)
json_response = json.dumps(list(names))
return HttpResponse(json_response, content_type='text/javascript')
elif resp_format == 'html':
Expand All @@ -247,7 +243,6 @@ def version_filter_autocomplete(request, project_slug):
{
'project': project,
'versions': versions,
'filter': version_filter,
},
context_instance=RequestContext(request),
)
Expand Down Expand Up @@ -359,8 +354,6 @@ def project_versions(request, project_slug):
versions = Version.objects.public(user=request.user, project=project, only_active=False)
active_versions = versions.filter(active=True)
inactive_versions = versions.filter(active=False)
inactive_filter = VersionSlugFilter(request.GET, queryset=inactive_versions)
active_filter = VersionSlugFilter(request.GET, queryset=active_versions)

# If there's a wiped query string, check the string against the versions
# list and display a success message. Deleting directories doesn't know how
Expand All @@ -373,8 +366,8 @@ def project_versions(request, project_slug):
return render_to_response(
'projects/project_version_list.html',
{
'inactive_filter': inactive_filter,
'active_filter': active_filter,
'inactive_versions': inactive_versions,
'active_versions': active_versions,
'project': project,
},
context_instance=RequestContext(request)
Expand Down
5 changes: 0 additions & 5 deletions readthedocs/restapi/views/model_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,11 @@

from readthedocs.builds.constants import BRANCH
from readthedocs.builds.constants import TAG
from readthedocs.builds.filters import VersionFilter
from readthedocs.builds.models import Build, BuildCommandResult, Version
from readthedocs.core.utils import trigger_build
from readthedocs.oauth.services import GitHubService, registry
from readthedocs.oauth.models import RemoteOrganization, RemoteRepository
from readthedocs.builds.constants import STABLE
from readthedocs.projects.filters import ProjectFilter, DomainFilter
from readthedocs.projects.models import Project, EmailHook, Domain
from readthedocs.projects.version_handling import determine_stable_version

Expand All @@ -34,7 +32,6 @@ class ProjectViewSet(viewsets.ModelViewSet):
permission_classes = [APIPermission]
renderer_classes = (JSONRenderer,)
serializer_class = ProjectSerializer
filter_class = ProjectFilter
model = Project
paginate_by = 100
paginate_by_param = 'page_size'
Expand Down Expand Up @@ -158,7 +155,6 @@ class VersionViewSet(viewsets.ReadOnlyModelViewSet):
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
renderer_classes = (JSONRenderer,)
serializer_class = VersionSerializer
filter_class = VersionFilter
model = Version

def get_queryset(self):
Expand Down Expand Up @@ -207,7 +203,6 @@ class DomainViewSet(viewsets.ModelViewSet):
permission_classes = [APIRestrictedPermission]
renderer_classes = (JSONRenderer,)
serializer_class = DomainSerializer
filter_class = DomainFilter
model = Domain

def get_queryset(self):
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ def INSTALLED_APPS(self): # noqa
'field_name_limit': 50,
}
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
# 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE': 10,
}
Expand Down
15 changes: 0 additions & 15 deletions readthedocs/templates/builds/build_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,6 @@

{% block content %}

{% comment %}

<div class="navigable">
<h3>
Filters
</h3>
<ul>
<form action="" method="get">
{{ filter.form.as_p }}
<input type="submit" value="Filter" />
</form>
</ul>

{% endcomment %}


<!-- BEGIN queue depth warning -->
{% if queue_length > 10 %}
Expand Down
13 changes: 2 additions & 11 deletions readthedocs/templates/core/project_details.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,9 @@ <h3>{% trans "Versions" %}</h3>

<div class="module-list">

{% comment %}
<div class="filter_form">
<form id="filter_form">
{{ filter.form }}
<input type="submit" value="{% trans "Filter" %}">
</form>
</div>
{% endcomment %}

<div class="module-list-wrapper">
<ul>
{% for version in filter.qs|sort_version_aware %}
{% for version in versions|sort_version_aware %}
<li class="module-item col-span">
{% if version.uploaded or version.built %}
{# Link to the docs #}
Expand Down Expand Up @@ -70,7 +61,7 @@ <h3>{% trans "Build a version" %}</h3>
<div class="version_right">
<form method="post" action="{% url "generic_build" project.pk %}">
<select id="id_version" name="version_slug">
{% for version in filter.qs|sort_version_aware %}
{% for version in versions|sort_version_aware %}
<option value="{{ version.slug }}">{{ version.slug }}</option>
{% endfor %}
</select>
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/templates/core/version_list.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div class="module-list-wrapper">
<ul>
{% for version in filter.qs %}
{% for version in versions %}
<li class="module-item">
{# Link to the docs #}
<a class="module-item-title" href="{{ version.get_absolute_url }}">{{ version.slug }}</a>
Expand Down
Loading