WikiENS/wiki_groups/views.py

26 lines
793 B
Python
Raw Normal View History

2019-12-29 18:29:49 +01:00
from django.http import HttpResponse
from django.views.generic import TemplateView
2019-12-29 18:29:49 +01:00
from wiki_groups.models import WikiGroup
def dot_graph(request):
response = HttpResponse(content_type="text/vnd.graphviz")
response["Content-Disposition"] = 'attachment; filename="groups.dot"'
response.write("digraph {\n")
nodes = WikiGroup.objects.values_list("id", "django_group__name")
edges = WikiGroup.includes_groups.through.objects.values_list(
"to_wikigroup", "from_wikigroup"
)
for id, name in nodes:
response.write(' {} ["label"="{}"];\n'.format(id, name))
for u, v in edges:
response.write(" {} -> {};\n".format(u, v))
response.write("}\n")
return response
graph = TemplateView.as_view(template_name="wiki_groups/graph.html")