Exemple #1
0
    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 
Exemple #2
0
 def get_request_ip(self):
     return get_client_ip(self.request) if self.request else self.storage.get("ip")