Ignore:
Timestamp:
05/01/09 09:51:50 (11 years ago)
Author:
cbyrom
Message:

Restructure atom editor controllers - pulling out parent superclass
to allow re-use of shared code + use new routes names + add new method
to handle drop down setting up.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • MILK/trunk/milk_server/milk_server/controllers/atom_editor/listatom.py

    r4668 r4724  
    66''' 
    77import logging, xmlrpclib 
    8 from paste.request import parse_querystring 
    9 from ndgUtils import ndgObject 
    108from ndgUtils.models.Atom import Atom 
    119from ndgUtils import DocumentRetrieve 
    1210from ndgUtils.eXistInterface import ndg_eXist 
    13 import ndgUtils.lib.existdbclient as edc 
    14 from ndgUtils.models.MolesEntity import MolesEntity as ME 
    1511from ndgUtils.models.vocabtermdata import VocabTermData as VTD, VocabTermItem as VTI 
    1612from milk_server.lib.base import * 
    1713from editorconstants import * 
    1814import milk_server.lib.htmlUtilities as utils 
    19 from milk_server.lib.atomutilities import savePageAndRender 
    20 from editatom import EditatomController as ec 
    21  
     15from atomeditorcontroller import AtomEditorController 
    2216    
    23 class ListatomController(BaseController): 
     17class ListatomController(AtomEditorController): 
    2418    '''  
    2519    Provides the pylons controller for listing/searching NDG Atom documents. 
    2620    ''' 
    27     def __setup(self,uri=None): 
    28         ''' Common setup stuff for all the actions on this controller ''' 
    29         logging.info("Setting up EditatomController") 
    30         self.cf=request.environ['ndgConfig'] 
    31          
    32         if uri: 
    33             try: 
    34                 self.ndgObject = ndgObject(uri, config=self.cf) 
    35             except ValueError,e: 
    36                 return e 
    3721 
    38         self.inputs=dict(parse_querystring(request.environ)) 
    39  
    40         logging.info("EditatomController set up") 
    41         return 0 
    42  
    43  
     22     
    4423    def atomHome(self): 
    4524        '''  
     
    4827        logging.info("Rendering atom home page") 
    4928        c.title = ATOM_HOME_TITLE 
    50         return savePageAndRender(self.pathInfo, "atom_editor/atom_home") 
     29        return self.savePageAndRender("atom_editor/atom_home") 
    5130 
    5231 
     
    5736        logging.info("Rendering example granulite file page") 
    5837        c.title = EXAMPLE_GRANULITE_TITLE 
    59         return savePageAndRender(self.pathInfo, "atom_editor/granulite_example") 
     38        return self.savePageAndRender("atom_editor/granulite_example") 
     39 
     40 
     41    def showAtomHelp(self): 
     42        ''' 
     43        Show the help page 
     44        ''' 
     45        logging.info("Rendering help page") 
     46        c.title = HELP_PAGE_TITLE 
     47        return self.savePageAndRender("atom_editor/atom_help") 
    6048     
    6149     
     
    7563        ''' 
    7664        try: 
    77             inputs = request.params 
    7865            c.searchData = None 
     66            self._setup() 
    7967            if searchData and int(searchData) > 0: 
    8068                logging.info("Preparing atom search") 
    8169                c.searchData = searchData 
    82                 self.__setup() 
    83                 atomTypeID = inputs.get('atomTypeID') 
    84                 providerID = inputs.get('providerID') 
     70                atomTypeID = self.inputs.get('atomTypeID') 
     71                providerID = self.inputs.get('providerID') 
    8572                # NB, avoid page being reloaded in incorrect state - e.g. after 
    8673                # browser reload 
     
    9683                    atomTypeID = VTD.DEPLOYMENT_TERM 
    9784                     
    98                 c.results = self.searchAtoms(providerID, atomTypeID, inputs.get('title')) 
     85                c.results = self.searchAtoms(providerID, atomTypeID, self.inputs.get('title')) 
    9986                 
    10087            logging.info("Rendering atom listings page") 
     
    10491            c.associateLink = "" 
    10592            if associatedAtomID: 
    106                 c.associateLink = h.url_for(controller='atom_editor/editatom', action='saveAtom', \ 
    107                     uri = associatedAtomID, saveLevel = ec.ADD_ASSOCIATIONS) 
    108             c.searchLink = h.url_for(controller = 'atom_editor/listatom', action='list', \ 
    109                                      searchData='1', associatedAtomID = associatedAtomID) 
    110              
    111             c.searchTerm = inputs.get('title') 
     93                c.associateLink = h.url_for('save', uri = associatedAtomID, \ 
     94                                            saveLevel = self.ADD_ASSOCIATIONS) 
     95            c.searchLink = h.url_for('list', searchData='1',  
     96                                     associatedAtomID = associatedAtomID, \ 
     97                                     associatedAtomType = associatedAtomType, \ 
     98                                     associationType = associationType) 
    11299             
    113100            # set up the drop down content 
     
    136123            c.atomTypes = utils.getVocabTermDataDropdown(listVals, \ 
    137124                                                   defaultVal = defaultVal, \ 
    138                                                    selected = inputs.get('atomTypeID')) 
     125                                                   selected = self.inputs.get('atomTypeID')) 
    139126            c.providerIDs = utils.getVocabTermDataDropdown(g.vtd.getValidTypes(g.vtd.PROVIDER_CATEGORY),  
    140127                                                     defaultVal = allVal, \ 
    141                                                      selected = inputs.get('providerID')) 
     128                                                     selected = self.inputs.get('providerID')) 
    142129 
    143             return savePageAndRender(self.pathInfo, 'atom_editor/atom_list') 
     130            return self.savePageAndRender('atom_editor/atom_list', **self.inputs) 
    144131 
    145132        except Exception, e: 
Note: See TracChangeset for help on using the changeset viewer.