Changeset 292


Ignore:
Timestamp:
06/16/09 11:52:32 (5 years ago)
Author:
david
Message:

broken code....don't be mad at me

File:
1 edited

Legend:

Unmodified
Added
Removed
  • enpraxis.staticsite/trunk/enpraxis/staticsite/utilities/staticsiteutility.py

    r291 r292  
    2929        dpath = self._getDeploymentPath(ssprops.getProperty('deployment_path')) 
    3030        pstates = ssprops.getProperty('published_states') 
     31        self.base_files = ssprops.base_files 
     32        self.css_images = ssprops.css_images 
     33        self.extra_views = ssprops.extra_views 
    3134         
    3235        self._deploySiteStructure(context, ssprops, domain, dpath) 
     
    3740                  'depth':1,}, 
    3841            review_state=pstates) 
    39         for x in brains: 
    40             url = x.getURL() 
    41             self.deployObject(url, x, dpath, domain) 
    42             self.traverse(x, dpath, domain, pstates) 
     42        for brain in brains: 
     43            url = brain.getURL() 
     44            self.deployObject(url, brain, dpath, domain) 
     45            self.traverse(brain, dpath, domain, pstates) 
    4346 
    4447    def traverse(self, brain, dpath, domain, pstates): 
     
    4750            path={'query':brain.getPath(), 'depth':1}, 
    4851                  review_state=pstates) 
    49         for x in brains: 
    50             url = x.getURL() 
    51             self.deployObject(url, x, dpath, domain) 
    52             if x.is_folderish: 
    53                 self.traverse(x, dpath, domain, pstates) 
     52        for brain in brains: 
     53            url = brain.getURL() 
     54            self.deployObject(url, brain, dpath, domain) 
     55            if brain.is_folderish: 
     56                self.traverse(brain, dpath, domain, pstates) 
    5457             
    5558    def deployObject(self, url, brain, dpath, domain): 
     
    6669            #process document actions 
    6770            self._deployDocumentActions(brain, portal_url, path, soup) 
    68             self.runFilters(brain, soup, portal_url, dpath) 
     71            self.runFilters(brain, soup, dpath, portal_url) 
    6972            self._writeFile(path, soup.prettify()) 
    7073        elif brain.Type in ['Page']: 
     
    7679            #process document actions 
    7780            self._deployDocumentActions(brain, portal_url, path, soup)             
    78             self.runFilters(brain, soup, portal_url, dpath) 
     81            self.runFilters(brain, soup, dpath, portal_url) 
    7982            self._writeFile(path, soup.prettify()) 
    8083        else: 
    8184            #get file object 
    8285            path = self._getObjPath(url, portal_url, dpath) 
    83             self.linkTable[url] = {'dpath':path, 'type' : 'file'}   
    8486            raw = self._httpget(url)  
    85             soup = BeautifulSoup(raw) 
    86             self.runFilters(brain, soup, portal_url, dpath)        
    8787            self._writeFile(path, raw) 
    8888        #process rdf for the object 
     
    9797            self._writeFile(rdfpath, rdfraw)      
    9898 
    99     def runFilters(self, brain, soup, portal_url, dpath): 
     99    def runFilters(self, brain, soup, dpath, portal_url): 
    100100        """ Filter content """ 
    101101        rel_path = './' 
    102102        #overwrite file 
    103103        soup.base.extract() 
    104         self._rewriteHREF(brain, soup, dpath) 
     104        self._rewriteHREF(brain, soup, dpath, portal_url) 
    105105 
    106106    def _deploySiteStructure(self, context, ssprops, domain, dpath): 
    107107        """ Get the base framework and resources needed to build the chrome locally  """ 
    108         base_files = ssprops.base_files 
    109         css_images = ssprops.css_images 
    110         extra_views = ssprops.extra_views 
    111          
    112108        portal_url = context.portal_url() 
    113          
    114         for x in base_files: 
     109        portal_catalog = contex.portal_catalog 
     110         
     111        for x in self.base_files: 
    115112            #Download files/images that are used sitewide in the chrome 
    116113            url = '%s/%s' % (portal_url, x) 
     
    119116            self._writeFile(path, raw) 
    120117             
    121         for x in extra_views: 
     118        for x in self.extra_views: 
    122119            #Download zope3 views and/or additional views that are not included in the site catalog search 
    123120            url = '%s/%s' % (portal_url, x) 
     
    125122            path += '.html' 
    126123            raw = self._httpget(url) 
     124            #finish this 
     125            brain = portal_catalog.searchResults() 
     126            soup = BeautifulSoup(raw) 
     127            self.runFilters(brain, soup, dpath, portal_url) 
    127128            self._writeFile(path, raw) 
    128129 
     
    141142                    path = self._deployCompressedResources(url, portal_url, dpath) 
    142143                    css_path = os_split(path)[0] 
    143                 for img in css_images: 
     144                for img in self.css_images: 
    144145                    #download css_images 
    145146                    url = '%s/%s' % (portal_url, img) 
     
    210211        return action_url 
    211212 
    212     def _getURLPath(self, brain, url): 
     213    def _getURLPath(self, brain, link): 
    213214        """ Retrieve the URL path on the filesystem. """ 
    214  
    215         rel_path = self._getRelativePath('/'.join(brain.getURL().split('/')[:-1]), url) 
    216         rel_path = rel_path.split('#')[0] 
    217         urlbrains = brain.portal_catalog.searchResults(query={'path':rel_path,},id=rel_path.split('/')[0]) 
    218         for x in urlbrains: 
    219             if brains.is_folderish: 
    220                 pass 
    221             elif brain.Type == 'Page': 
    222                 pass 
     215        rel_prefix = '' 
     216        rel_middlefix = '' 
     217        rel_id = '' 
     218 
     219        rel_path = self._getRelativePath('/'.join(brain.getURL().split('/')[:-1]), link) 
     220        rel_id = rel_path.split('/')[-1] 
     221        if '#' in rel_path: 
     222            rel_prefix = rel_path.split('#')[0] 
     223            rel_middlefix = rel_path.split('#')[-1]  
     224            rel_id = rel_id.split('#')[0] 
     225 
     226        if rel_id in self.extra_views: 
     227            #mod link to have +.html 
     228            if len(rel_prefix) > 0: 
     229                rel_path = '%s%s.html' % (rel_prefix, rel_middlefix) 
    223230            else: 
    224                 pass 
     231                rel_path += '.html' 
     232        else: 
     233            #brain_url = brain.getURL() 
     234                 
     235            # rel_path = '../../division/course/page1 
     236             
     237            link_brain = brain.portal_catalog.searchResults( 
     238                          path={'query':link, 'depth':1, 'id'= rel_id})                                       
     239 
     240            #link_brain = brain.portal_catalog.searchResults(query={'path':rel_path,},id=rel_path.split('/')[0]) 
     241 
     242 
     243            if link_brain[0].is_folderish: 
     244                #mod link to have /index.html 
     245                link += '/index.html'                 
     246            elif link_brain[0].Type == 'Page': 
     247                #mod link to have +.html 
     248                link += '.html' 
     249        return link 
    225250 
    226251    def _deployCompressedResources(self, url, portal_url, dpath): 
     
    277302        return rel_path 
    278303             
    279     def _rewriteHREF(self, brain, soup, dpath): 
     304    def _rewriteHREF(self, brain, soup, dpath, portal_url): 
    280305        tags = soup.findAll('a') 
    281306        for tag in tags: 
    282             if tag.has_key('href'): 
     307            if tag.has_key('href') and contains portal_url: 
    283308                self._getURLPath(brain, tag['href']) 
    284309        return soup 
Note: See TracChangeset for help on using the changeset viewer.