def dispatch(self, request,*args, **kwargs): self.args = args self.kwargs = kwargs self.request = request self.is_ajax = request.is_ajax() current_step = self.get_request_step(request,*args,**kwargs) self.current_step = current_step self.has_step_label = current_step in self.step_labels if current_step is not None and current_step not in self.get_form_list() : raise Http404 self.load_for_request(request) if current_step == self.done_step: return self.render_done() self.storage.set("user",self.request.user) self.storage.set('ip', get_client_ip(self.request)) self.storage.set('args',args) self.storage.set('kwargs',kwargs) self.storage.set('subdomain',getattr(request,'subdomain',None)) #if somebody arrives in the middle without having started from the beginning then #they should be sent back to the first url if current_step == None or not self.is_marked() : self.clear() if self.is_forbidden(current_step): return self.render_forbidden() self.mark() return self.redirect(self.get_step_url(self.steps.first)) response = super(CommonWizard,self).dispatch(request,*args,**kwargs) return response
def get_request_ip(self): return get_client_ip(self.request) if self.request else self.storage.get("ip")