Skip to content

Commit 7546f05

Browse files
author
Emmanouil Konstantinidis
committed
Clean up
1 parent cf94201 commit 7546f05

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

drfdocs/api_docs.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from django.conf import settings
2+
from django.core.urlresolvers import RegexURLResolver, RegexURLPattern
3+
4+
5+
class ApiDocumentation(object):
6+
excluded_apps = ["admin", "drfdocs"]
7+
root_urlconf = __import__(settings.ROOT_URLCONF)
8+
9+
def __init__(self):
10+
self.view_names = []
11+
self.get_all_view_names(self.root_urlconf.urls.urlpatterns)
12+
13+
def get_all_view_names(self, urlpatterns):
14+
for pattern in urlpatterns:
15+
print(pattern)
16+
if isinstance(pattern, RegexURLResolver) and (pattern.app_name not in self.excluded_apps):
17+
self.get_all_view_names(pattern.url_patterns)
18+
elif isinstance(pattern, RegexURLPattern):
19+
self.view_names.append(pattern.callback.__name__)
20+
21+
def get_views(self):
22+
return self.view_names

drfdocs/api_endpoint.py

Whitespace-only changes.

drfdocs/views.py

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,13 @@
1-
from django.conf import settings
21
from django.views.generic.base import TemplateView
3-
from django.core.urlresolvers import RegexURLResolver, RegexURLPattern
2+
from drfdocs.api_docs import ApiDocumentation
43

54

65
class DRFDocsView(TemplateView):
76

8-
root_urlconf = __import__(settings.ROOT_URLCONF)
97
template_name = "drfdocs/home.html"
10-
EXCLUDED_APPS = ["admin", "drfdocs"]
11-
VIEW_NAMES = []
12-
13-
def get_all_view_names(self, urlpatterns):
14-
for pattern in urlpatterns:
15-
if isinstance(pattern, RegexURLResolver):
16-
if pattern.app_name not in self.EXCLUDED_APPS:
17-
self.get_all_view_names(pattern.url_patterns)
18-
elif isinstance(pattern, RegexURLPattern):
19-
view_name = pattern.callback.__name__
20-
self.VIEW_NAMES.append(view_name)
21-
return self.VIEW_NAMES
228

239
def get_context_data(self, **kwargs):
24-
self.VIEW_NAMES = []
2510
context = super(DRFDocsView, self).get_context_data(**kwargs)
26-
all_urlpatterns = self.root_urlconf.urls.urlpatterns
27-
context['views'] = self.get_all_view_names(all_urlpatterns)
11+
docs = ApiDocumentation()
12+
context['views'] = docs.get_views()
2813
return context

0 commit comments

Comments
 (0)