Skip to content
Snippets Groups Projects
workflow.py 548 B
Newer Older
  • Learn to ignore specific revisions
  • from typing import Iterator, Iterable
    
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    from django.forms import Form
    
    
    
    class Workflow(Iterable['Stage']):
        def __init__(self, name: str, *stages: 'Stage') -> None:
    
            self.name = name
    
            if not stages:
                raise ValueError('Stages must be supplied')
            self.stages = stages
    
        def __iter__(self) -> Iterator['Stage']:
            yield from self.stages
    
    
        def next(self):
            return self.stages[0]
    
    
    
    class Stage:
    
    Todd Dembrey's avatar
    Todd Dembrey committed
        def __init__(self, name: str, form: Form) -> None:
    
            self.name = name
    
    Todd Dembrey's avatar
    Todd Dembrey committed
            self.form = form