stages/consent: add FlowPlan context variable for template name
This commit is contained in:
		@ -1,25 +1,30 @@
 | 
				
			|||||||
"""passbook consent stage"""
 | 
					"""passbook consent stage"""
 | 
				
			||||||
from typing import Any, Dict
 | 
					from typing import List, Dict, Any
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.views.generic import FormView
 | 
					from django.views.generic import FormView
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from passbook.flows.stage import StageView
 | 
					from passbook.flows.stage import StageView
 | 
				
			||||||
from passbook.lib.utils.template import render_to_string
 | 
					 | 
				
			||||||
from passbook.stages.consent.forms import ConsentForm
 | 
					from passbook.stages.consent.forms import ConsentForm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PLAN_CONTEXT_CONSENT_TEMPLATE = "consent_template"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ConsentStage(FormView, StageView):
 | 
					class ConsentStage(FormView, StageView):
 | 
				
			||||||
    """Simple consent checker."""
 | 
					    """Simple consent checker."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    body_template_name: str
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    form_class = ConsentForm
 | 
					    form_class = ConsentForm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_context_data(self, **kwargs: Dict[str, Any]) -> Dict[str, Any]:
 | 
					    def get_context_data(self, **kwargs: Dict[str, Any]) -> Dict[str, Any]:
 | 
				
			||||||
        kwargs = super().get_context_data(**kwargs)
 | 
					        kwargs = super().get_context_data(**kwargs)
 | 
				
			||||||
        if self.body_template_name:
 | 
					        kwargs['current_stage'] = self.executor.current_stage
 | 
				
			||||||
            kwargs["body"] = render_to_string(self.body_template_name, kwargs)
 | 
					        kwargs['context'] = self.executor.plan.context
 | 
				
			||||||
        return kwargs
 | 
					        return kwargs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_template_names(self) -> List[str]:
 | 
				
			||||||
 | 
					        if PLAN_CONTEXT_CONSENT_TEMPLATE in self.executor.plan.context:
 | 
				
			||||||
 | 
					            template_name = self.executor.plan.context[PLAN_CONTEXT_CONSENT_TEMPLATE]
 | 
				
			||||||
 | 
					            return [template_name]
 | 
				
			||||||
 | 
					        return super().get_template_names()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def form_valid(self, form):
 | 
					    def form_valid(self, form):
 | 
				
			||||||
        return self.executor.stage_ok()
 | 
					        return self.executor.stage_ok()
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user