Changeset 1a9ed6 in indico


Ignore:
Timestamp:
10/04/11 15:21:26 (20 months ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 0da0c1403bae8e51d8229f460181c71b9e6dda72
Children:
cb44f7
Parents:
f17f3f
Message:

[IMP] Avoid unneeded connection to DB for getVars

File:
1 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/webinterface/rh/JSContent.py

    r988cfe r1a9ed6  
    3030        return hashlib.md5(str(value)).hexdigest() 
    3131 
    32     def _checkParams( self, params ): 
     32    def _setHeaders(self): 
     33        # send out the Etag and Last-Modified headers 
     34        creationTime = datetime.datetime.fromtimestamp(os.path.getctime(self._htmlPath)) 
     35        self._req.headers_out["Etag"] = self._generateEtag(creationTime) 
     36        self._req.headers_out["Last-Modified"] = formatdate(time.mktime(creationTime.timetuple())) 
     37        self._req.content_type = "application/x-javascript" 
     38 
     39    def process( self, params ): 
    3340 
    3441        # Check incoming headers 
     
    5158        if os.access(self._htmlPath, os.R_OK): 
    5259 
    53             self._regenerate = False; 
    54  
    5560            # get the OS creation time 
    5661            creationTime = datetime.datetime.fromtimestamp(os.path.getctime(self._htmlPath)) 
     
    5863                # if the etag the same, send NOT_MODIFIED 
    5964                self._req.status = apache.HTTP_NOT_MODIFIED 
    60                 self._doProcess = False 
     65                return 
    6166            else: 
    62                 self._regenerate = True 
    63         else: 
    64             # file needs to be regenerated 
    65             self._regenerate = True 
     67                # Read and send the file 
     68                fh = open(self._htmlPath, "r") 
     69                self._htmlData = fh.read() 
     70                fh.close() 
     71                self._setHeaders() 
     72                return self._htmlData 
     73        # file needs to be regenerated 
     74        return base.RH.process(self, params) 
    6675 
    6776 
    6877    def _process( self ): 
    6978        try: 
    70             # regenerate file if needed 
    71             if self._regenerate: 
    72                 self._dict["__rh__"] = self 
    73                 self._dict["user"] = None 
     79            # regenerate file is needed 
     80            self._dict["__rh__"] = self 
     81            self._dict["user"] = None 
    7482 
    75                 htmlData = templateEngine.render(self._tplFile, self._dict) 
    76                 fh = open(self._htmlPath, "w") 
    77                 fh.write(htmlData) 
    78                 fh.close() 
    79             else: 
    80                 # otherwise just send it to the client 
    81                 fh = open(self._htmlPath, "r") 
    82                 htmlData = fh.read() 
    83                 fh.close() 
     83            self._htmlData = templateEngine.render(self._tplFile, self._dict) 
     84            fh = open(self._htmlPath, "w") 
     85            fh.write(self._htmlData) 
     86            fh.close() 
    8487 
    85             # send out the Etag and Last-Modified headers 
    86             creationTime = datetime.datetime.fromtimestamp(os.path.getctime(self._htmlPath)) 
    87             self._req.headers_out["Etag"] = self._generateEtag(creationTime) 
    88             self._req.headers_out["Last-Modified"] = formatdate(time.mktime(creationTime.timetuple())) 
    89             self._req.content_type = "application/x-javascript" 
     88            self._setHeaders() 
    9089 
    9190        except Exception, e: 
    9291            return 'indicoError: %s' % e 
    9392 
    94         return htmlData 
     93        return self._htmlData 
    9594 
    9695class RHGetVarsJs(RHTemplateContentJS): 
Note: See TracChangeset for help on using the changeset viewer.