Add support for generating diagrams from workflows.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-08-08 02:47:20 -04:00
parent 28a1edbc72
commit 8fea65e3f1
7 changed files with 147 additions and 35 deletions

View File

@@ -1,6 +1,8 @@
from __future__ import unicode_literals
from django.utils.html import format_html_join
from django import forms
from django.urls import reverse
from django.utils.html import format_html_join, mark_safe
def widget_transition_events(transition):
@@ -11,3 +13,23 @@ def widget_transition_events(transition):
) for transition_trigger in transition.trigger_events.all()
)
)
def widget_workflow_diagram(workflow):
return mark_safe(
'<img class="img-responsive" src="{}">'.format(
reverse('document_states:workflow_image', args=(workflow.pk,))
)
)
class WorkflowImageWidget(forms.widgets.Widget):
def render(self, name, value, attrs=None):
final_attrs = self.build_attrs(attrs)
if value:
output = []
output.append(widget_workflow_diagram(value))
return mark_safe(''.join(output))
else:
return ''