==== Flow ==== For linear (non-branching) sections, flow, the order of questions, is solely controlled by the ``position``-field in Sections and Questions. For branching sections, the FSA comes into play. Visualizing flow ================ With ``graphviz``, the devfixtures, and the dependencies in ``requirements/dev.txt`` installed, it is possible to generate a flow chart for a section. Start up a python shell with:: python manage.py shell Inside the shell, try:: from easydmp.dmpt.models import Template, Section t = Template_objects.get(id=1) s = t.sections.all()[0] s.view_dotsource('pdf') A section with no questions will look like two double circles. A linear section will have a start-node in a double-circle, an arrow going to the first question, another from the first question to the second, all the way to the last, which will have an arrow to an end-node in a double-circle. All the arrows will be marked by ``->``, because thet marks movement through the ``position``-field. In a branching section, multiple arrows can both eneter and leave a question, and the markers on the arrows will be one of: ``->`` for movement through position. ``=>`` for movement through position from a question that has a node, usually the last node in a branch. a string for an edge with a condition. This is only for question with CannedAnswers. empty for an edge without a condition, ususally due to an edge without a CannedAnswer. Too many of the last type is usually a sign that the graph is too complex. There should be no loops. .. automodule:: flow