Changeset 3431 for TI05-delivery


Ignore:
Timestamp:
15/02/08 12:12:20 (12 years ago)
Author:
cbyrom
Message:

Add functionality to determine what selections have been made in the
'Selections' tab and then use this data with a new template, kml_aggregate.kid,
to produce a kml doc will all the associated kml info in.

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/selectedItems.py

    r3422 r3431  
    1717                del session['selection'] 
    1818            session.save() 
     19        elif 'PlotSelectedInGoogle' in self.inputs: 
     20            # get all selected selections 
     21            self.getSelectedItems() 
     22             
     23            # ensure selections have been made 
     24            if 'selectedItems' in session: 
     25                # now create the aggregated KML file 
     26                # NB, set header info correctly to open as a file 
     27                response = render_response('kml_aggregate', format='xml') 
     28                response.headers['Content-Type'] = 'text/xml' 
     29                response.headers['Content-Disposition'] = 'attachment;filename=kmlAggregate.kml' 
     30                return response;  
     31 
     32        elif 'PlotSelectedInConTerra' in self.inputs: 
     33            # TODO: not yet implemented 
     34            self.getSelectedItems() 
     35             
    1936        return render_response('selectedItems') 
     37     
     38    # check through the inputs to determine which checkboxes 
     39    # have been selected in the 'selections' tab; use these 
     40    # to build a new session list to use with the kml_aggregate template 
     41    def getSelectedItems(self): 
     42        # clear out existing data 
     43        if 'selectedItems' in session: 
     44            del session['selectedItems'] 
     45         
     46        # now check for checkboxes as inputs; NB, these have the 
     47        # same names as the DIF entryIDs - i.e. the first element 
     48        # in the selection arrays 
     49        selectedItems = [] 
     50        for selection in session['selection']: 
     51            if selection[0] in self.inputs: 
     52                selectedItems.append(selection) 
     53         
     54        if len(selectedItems) > 0: 
     55            session['selectedItems'] = selectedItems 
     56            session.save() 
     57         
     58         
    2059     
    2160    def addSelectedItem(self,entryid,kmlurl,title,divid): 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/selectedItems.kid

    r3422 r3431  
    3131                <tbody> 
    3232                    <?python x=0 ?> 
    33                         <for py:for="i in session['selection']" class="dataset"> 
     33                        <for py:for="i in session['selection']" class="dataset" py:strip="True"> 
    3434                                <span py:if="len(i) > 0"> 
    35                                     <?python 
    36                                         divid='csml_%s'%i[0] 
    37                                     ?> 
    3835                                        <tr class="${x%2 and 'rowhi' or 'rowlo'}"> 
    3936                                        <td> 
     
    4138                                        </td> 
    4239                                                <td align="center"> 
    43                                                         <input type="checkbox" id="$divid" /> 
     40                                                        <input type="checkbox" name="${i[0]}" /> 
    4441                                                </td> 
    4542                                        <td align="center"> 
     
    6966                        <td colspan="2"></td> 
    7067                                                <td> 
    71                                                         <input name="PlotAllGoogle" type="submit" value="View All" /> 
     68                                                        <input name="PlotSelectedInGoogle" type="submit" value="View Selected" /> 
    7269                        </td> 
    7370                                                <td> 
    74                                                         <input name="PlotAllConTerra" type="submit" value="View All" /> 
     71                                                        <input name="PlotSelectedInConTerra" type="submit" value="View Selected" /> 
    7572                        </td> 
    7673                                                <td> 
     
    8380            </div> 
    8481            <div py:if="'selection' not in session"> 
    85                 <p> There are no selected datasets </p> 
     82                <p> There are currently no selected datasets; please return to the 'Results' tab and select some to view. </p> 
    8683            </div>         
    8784        </div> 
Note: See TracChangeset for help on using the changeset viewer.