57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Flow and Stage forms"""
 | 
						|
 | 
						|
from django import forms
 | 
						|
from django.contrib.admin.widgets import FilteredSelectMultiple
 | 
						|
from django.utils.translation import gettext_lazy as _
 | 
						|
 | 
						|
from passbook.flows.models import Flow, FlowStageBinding
 | 
						|
 | 
						|
 | 
						|
class FlowForm(forms.ModelForm):
 | 
						|
    """Flow Form"""
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        model = Flow
 | 
						|
        fields = [
 | 
						|
            "name",
 | 
						|
            "slug",
 | 
						|
            "designation",
 | 
						|
            "stages",
 | 
						|
            "policies",
 | 
						|
        ]
 | 
						|
        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(),
 | 
						|
            "stages": FilteredSelectMultiple(_("stages"), False),
 | 
						|
            "policies": FilteredSelectMultiple(_("policies"), False),
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
class FlowStageBindingForm(forms.ModelForm):
 | 
						|
    """FlowStageBinding Form"""
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        model = FlowStageBinding
 | 
						|
        fields = [
 | 
						|
            "flow",
 | 
						|
            "stage",
 | 
						|
            "re_evaluate_policies",
 | 
						|
            "order",
 | 
						|
            "policies",
 | 
						|
        ]
 | 
						|
        widgets = {
 | 
						|
            "name": forms.TextInput(),
 | 
						|
            "policies": FilteredSelectMultiple(_("policies"), False),
 | 
						|
        }
 |