app/soc/modules/core.py
changeset 2849 c0462a1d3958
parent 2833 5aa891de5aa5
child 2908 391d57b91615
equal deleted inserted replaced
2848:17a31a7e6abc 2849:c0462a1d3958
   109     self.services = []
   109     self.services = []
   110 
   110 
   111     self.sitemap = []
   111     self.sitemap = []
   112     self.sidebar = []
   112     self.sidebar = []
   113     self.per_request_cache = {}
   113     self.per_request_cache = {}
       
   114     self.in_request = False
   114 
   115 
   115   ##
   116   ##
   116   ## internal
   117   ## internal
   117   ##
   118   ##
   118 
   119 
   140 
   141 
   141   def startNewRequest(self, request):
   142   def startNewRequest(self, request):
   142     """Prepares core to handle a new request.
   143     """Prepares core to handle a new request.
   143     """
   144     """
   144 
   145 
       
   146     self.in_request = True
   145     self.per_request_value = {}
   147     self.per_request_value = {}
   146     self.setRequestValue('request', request)
   148     self.setRequestValue('request', request)
   147 
   149 
   148   def endRequest(self, request):
   150   def endRequest(self, request):
   149     """Performs cleanup after current request.
   151     """Performs cleanup after current request.
   150     """
   152     """
   151 
   153 
   152     old_request = self.getRequestValue('request')
   154     old_request = self.getRequestValue('request')
   153     self.per_request_value = {}
   155     self.per_request_value = {}
       
   156     self.in_request = False
   154 
   157 
   155     if id(old_request) != id(request):
   158     if id(old_request) != id(request):
   156       logging.error("ending request: \n'%s'\n != \n'%s'\n" % (
   159       logging.error("ending request: \n'%s'\n != \n'%s'\n" % (
   157           old_request, request))
   160           old_request, request))
   158 
   161 
   159   def getRequestValue(self, key, default=None):
   162   def getRequestValue(self, key, default=None):
   160     """Gets a per-request value.
   163     """Gets a per-request value.
   161     """
   164     """
   162 
   165 
       
   166     assert self.in_request
   163     return self.per_request_value.get(key, default)
   167     return self.per_request_value.get(key, default)
   164 
   168 
   165   def setRequestValue(self, key, value):
   169   def setRequestValue(self, key, value):
   166     """Sets a per-request value.
   170     """Sets a per-request value.
   167     """
   171     """
   168 
   172 
       
   173     assert self.in_request
   169     self.per_request_value[key] = value
   174     self.per_request_value[key] = value
   170 
   175 
   171   def getPatterns(self):
   176   def getPatterns(self):
   172     """Returns the Django patterns for this site.
   177     """Returns the Django patterns for this site.
   173     """
   178     """