def _populate()

in libraries/edge/opensearch/datacastingresponsebysolr.py [0:0]


    def _populate(self, solrDatasetResponse, solrGranuleResponse = None):
        if solrDatasetResponse is not None:
            solrJson = json.loads(solrDatasetResponse)

            logging.debug('dataset count: '+str(len(solrJson['response']['docs'])))

            if len(solrJson['response']['docs']) == 1:
                # ok now populate variables!
                doc = solrJson['response']['docs'][0]
                
                self.variables['doc'] = doc
                
                # Format dates
                try:
                    self.variables['DatasetCitation_ReleaseYear'] = DateUtility.convertTimeLong(doc['DatasetCitation-ReleaseDateLong'][0], '%Y')
                except:
                    pass
                
                # Link to dataset portal page
                self.variables['DatasetPortalPage'] = self.portalUrl+'/'+doc['Dataset-ShortName'][0]
                
                # Set default pub date to x hours ago because we cast all granules archived within the last x hours
                self.variables['PubDate'] = DateUtility.pastDateRFC822(self.archivedWithin)
            else:
                raise Exception('No dataset found')
                
        if solrGranuleResponse is not None:
            solrGranuleJson = json.loads(solrGranuleResponse)
            
            logging.debug('granule count: '+str(len(solrGranuleJson['response']['docs'])))
            
            pubDate = 0
            for doc in solrGranuleJson['response']['docs']:
                if (doc['Granule-ArchiveTimeLong'][0] > pubDate):
                    pubDate = doc['Granule-ArchiveTimeLong'][0]
                self._populateItem(solrGranuleResponse, doc, None)
            
            if pubDate != 0:
                # Set pub date to latest granule archive date
                self.variables['PubDate'] = DateUtility.convertTimeLongToRFC822(pubDate)
                
            self.variables['granules'] = solrGranuleJson['response']['docs']
        else:
            raise Exception('No granules found')