Skip to content

Commit 09b9e94

Browse files
author
Emmanouil Konstantinidis
committed
List urls with namespaces' urls (parent patterns)
1 parent f0882de commit 09b9e94

File tree

4 files changed

+15
-7
lines changed

4 files changed

+15
-7
lines changed

drfdocs/api_docs.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@ def __init__(self):
1212
root_urlconf = __import__(settings.ROOT_URLCONF)
1313
self.get_all_view_names(root_urlconf.urls.urlpatterns)
1414

15-
def get_all_view_names(self, urlpatterns):
15+
def get_all_view_names(self, urlpatterns, parent_pattern=None):
1616
for pattern in urlpatterns:
1717
if isinstance(pattern, RegexURLResolver) and (pattern.app_name not in self.excluded_apps):
18-
self.get_all_view_names(pattern.url_patterns)
18+
self.get_all_view_names(urlpatterns=pattern.url_patterns, parent_pattern=pattern)
1919
elif isinstance(pattern, RegexURLPattern) and (pattern.callback.__name__ not in self.excluded_endpoints):
20-
api_endpoint = ApiEndpoint(pattern)
20+
api_endpoint = ApiEndpoint(pattern, parent_pattern)
2121
self.endpoints.append(api_endpoint)
2222

23+
def _filter_drf_views(self, endpoints):
24+
# Should keep only the endpoints with views that inherit from DRF's APIView
25+
pass
26+
2327
def get_endpoints(self):
2428
return self.endpoints

drfdocs/api_endpoint.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44

55
class ApiEndpoint(object):
66

7-
def __init__(self, pattern):
7+
def __init__(self, pattern, parent_pattern=None):
88
self.pattern = pattern
9+
self.url_parent_regex = simplify_regex(parent_pattern.regex.pattern)[:-1] if parent_pattern else None
10+
self.url_regex = ("{0}{1}".format(self.url_parent_regex, simplify_regex(pattern.regex.pattern))) if self.url_parent_regex else simplify_regex(pattern.regex.pattern)
11+
self.url_name = pattern.name
912
self.regex = simplify_regex(pattern._regex)
1013
self.view_name = pattern.callback.__name__
1114
# self._get_api_callback(pattern)

drfdocs/templates/drfdocs/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
<body>
2323
<a href="https://github.com/ekonstantinidis/drf-docs/" class="github-corner" target="_blank">
24-
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#64CEAA; color:#fff; position: absolute; top: 0; border: 0; right: 0;">
24+
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#18bc9c; color:#fff; position: absolute; top: 0; border: 0; right: 0;">
2525
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
2626
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
2727
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>

drfdocs/templates/drfdocs/home.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ <h2>API Endpoints</h2>
55

66
{% for endpoint in endpoints %}
77
<div class="endpoint">
8-
<h3 class="title">{{ endpoint.regex }}</h3>
9-
<p>{{ endpoint.view_name }}</p>
8+
<h3 class="title">{{ endpoint.url_regex }}</h3>
9+
<p>View Name: {{ endpoint.view_name }}</p>
10+
<p>URL Name: {{ endpoint.url_name }}</p>
1011
</div>
1112
{% endfor %}
1213
{% endblock %}

0 commit comments

Comments
 (0)