"""Flow and Stage forms""" from django import forms from django.utils.translation import gettext_lazy as _ from passbook.flows.models import Flow, FlowStageBinding, Stage from passbook.lib.widgets import GroupedModelChoiceField class FlowForm(forms.ModelForm): """Flow Form""" class Meta: model = Flow fields = [ "name", "slug", "designation", ] help_texts = { "name": _("Shown as the Title in Flow pages."), "slug": _("Visible in the URL."), "designation": _( ( "Decides what this Flow is used for. For example, the Authentication flow " "is redirect to when an un-authenticated user visits passbook." ) ), } widgets = { "name": forms.TextInput(), } class FlowStageBindingForm(forms.ModelForm): """FlowStageBinding Form""" stage = GroupedModelChoiceField(queryset=Stage.objects.all().select_subclasses(),) class Meta: model = FlowStageBinding fields = [ "target", "stage", "re_evaluate_policies", "order", ] labels = { "re_evaluate_policies": _("Re-evaluate Policies"), } widgets = { "name": forms.TextInput(), }