On Thu, Jul 2, 2015 at 10:26 AM, Softeisbieger <j.kitsc...@gmx.de> wrote: > I am currently thinking about the database representation. I don't think I > can solve this with django-viewflow: I need to be able to specify in advance > a deadline and an assignee for each task of a work flow.
first of all, its important to note that a full-featured workflow engine is Turing-complete, so it's theoretically undecidable. There are limits on what kind of tools an automated system can provide. specifically, it's easy to write workflows for which it's impossible to calculate a detailed schedule. if you want your system to be able to define deadlines for each task given a final deadline, or some useful "%-done" indicator, then you might be better served by a "limited shape" workflow model. The simplest case (yet widely used) is a linear pipeline of tasks, which can look similar to what you describe. with a linear pipeline, it's easy to set time estimates for each step, to calculate proposed milestone dates backward from the final deadline date. If you get behind schedule, it could even estimate "tight goals" by proportionally distributing the remaining time between the remaining tasks. some limitations of the linear model can be relaxed by defining some steps as "optional", or allowing some authorizations to skip a task, or by specifying the prerequisites of a task as not necessarily "all the previous steps". if you still want the wide flexibility of a full-featured workflow engine, recognize that it's not easy for most people to think in terms of abstract states, and planning all the interdependences between steps of any slightly complex process is in fact a programming activity, even if done graphically. IOW, if you ask users to repeatedly one-shot workflows, they will naturally limit themselves to simple lists of tasks and manage any unexpected circumstances by (ab)using 'override' permissions. workflow engines shine if you have a mid-to-large group of people doing some complex process repeatedly. a good example (and one where i've found them quite a lifesaver) is in the publishing industry: you have several editing steps, with well-defined approval points, and rules of when some work must be redone, discarded, or rushed. and it must be done again and again, for each campaign, so it pays up to do a very detailed model. note that a state-transitions diagram is usually drawn as several circles connected by arrows. The tasks are associated to the arrows (transitions), not the the circles (states). Also, in most engines, each transition has some permission restrictions and maybe a way to specify preconditions, which makes it easy to show, for a given user, which are the transitions available for a specific process. good luck! -- Javier -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAFkDaoS3bC6NZUYD%2Bu6D00g67tKSfH6vcJhwKv0a6R_Vd%2BdTZA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.