Changeset 8435 for mauRepo/MolesManager


Ignore:
Timestamp:
04/07/12 17:42:18 (7 years ago)
Author:
mnagni
Message:

Corrects how the CEDA_Observation.phenomenonTime both in the ingestion side and in the GUI side.
"Should" not require a brand new db migration

Location:
mauRepo/MolesManager/trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/MolesManager/trunk/src/MolesManager/static/js/cedaObservation.js

    r8433 r8435  
    5555        } 
    5656                 
     57        function buildTimeString(year, month, day, hour, minute, second) { 
     58                ret = '' 
     59                if (year){ 
     60                        ret = ret + year 
     61                        if (month){ 
     62                                ret = ret + '-' + month 
     63                                if (day){ 
     64                                        ret = ret + '-' + day 
     65                                        if (hour){ 
     66                                                ret = ret + ' ' + hour 
     67                                                if (minute){ 
     68                                                        ret = ret + ':' + minute 
     69                                                        if (second){ 
     70                                                                ret = ret + ':' + second 
     71                                                        }                                                                                
     72                                                }                        
     73                                        }                                                                
     74                                }                        
     75                        } 
     76                } 
     77                return ret 
     78        } 
     79         
    5780        function resultTime(timeDetails){ 
    5881                timeArray = {}; 
    5982                //console.log(timeDetails); 
    60                 if (timeDetails != null){ 
     83                if (timeDetails){                        
     84                        if (timeDetails.hasOwnProperty('position')){ 
     85                                idate = timeDetails.position.date8601 
     86                                timeArray['startDate'] = buildTimeString(idate.year, idate.month, idate.day,  
     87                                                idate.hour, idate.minute, idate.second) 
     88                                timeArray['endDate'] = null                                              
     89                        }  
    6190                         
    6291                        if (timeDetails.hasOwnProperty('begin')){ 
    63                                 timeArray['startYear'] = timeDetails.begin.position.date8601.year; 
    64                                 timeArray['startMonth'] = timeLead0(timeDetails.begin.position.date8601.month); 
    65                                 timeArray['startDay'] = timeLead0(timeDetails.begin.position.date8601.day); 
    66                                 //timeArray['startHour'] = timeLead0(timeDetails.begin.position.date8601.hour); 
    67                                 //timeArray['startMinute'] = timeLead0(timeDetails.begin.position.date8601.minute); 
    68                                 //timeArray['startSecond'] = timeLead0(timeDetails.begin.position.date8601.second); 
    69                                 timeArray['startDate'] = timeArray['startYear'] + '-' + timeArray['startMonth'] + '-' + timeArray['startDay'] //+ 
    70                                                                                 //timeArray['startHour'] + ':' + timeArray['startMinute'] + ':' + timeArray['startSecond'] 
     92                                idate = timeDetails.begin.position.date8601 
     93                                timeArray['startDate'] = buildTimeString(idate.year, idate.month, idate.day,  
     94                                                idate.hour, idate.minute, idate.second) 
    7195                        }  
    7296                        if (timeDetails.hasOwnProperty('end')){ 
    73                                 timeArray['endYear'] = timeDetails.end.position.date8601.year; 
    74                                 timeArray['endMonth'] = timeLead0(timeDetails.end.position.date8601.month); 
    75                                 timeArray['endDay'] = timeLead0(timeDetails.end.position.date8601.day); 
    76                                 //timeArray['endHour'] = timeLead0(timeDetails.end.position.date8601.hour); 
    77                                 //timeArray['endMinute'] = timeLead0(timeDetails.end.position.date8601.minute); 
    78                                 //timeArray['endSecond'] = timeLead0(timeDetails.end.position.date8601.second); 
    79                                 timeArray['endDate'] = timeArray['endYear'] + '-' + timeArray['endMonth'] + '-' + timeArray['endDay']// + 
    80                                                                         //      timeArray['endHour'] + ':' + timeArray['endMinute'] + ':' + timeArray['endSecond'] 
    81                                  
    82                         } 
    83                         timeArray['timeString'] = '<p>Data Start Date: <b>'+ timeArray['startDate'] + '</b></p><p>Data End Date: <b>' + timeArray['endDate']  
    84                         //timeArray['timeString'] = '<p>Test time string</p>' 
    85                 } 
    86                 else { 
    87                 timeArray['startDate'] = 'not defined' 
    88                 timeArray['endDate'] = 'not defined' 
    89                 } 
    90                 timeArray['timeString'] = '<p>Data Start Date: <b>'+ timeArray['startDate'] + '</b></p><p>Data End Date: <b>' + timeArray['endDate']  
    91  
     97                                idate = timeDetails.begin.position.date8601 
     98                                timeArray['endDate'] = buildTimeString(idate.year, idate.month, idate.day,  
     99                                                isdate.hour, idate.minute, idate.second)                                 
     100                        } 
     101                } else { 
     102                        timeArray['startDate'] = 'not defined' 
     103                        timeArray['endDate'] = 'not defined' 
     104                } 
     105                timeArray['timeString'] = '<p>Data Start Date: <b>'+ timeArray['startDate'] 
     106                if (!timeArray['timeString']){ 
     107                        timeArray['timeString'] = timeArray['timeString'] + '</b></p><p>Data End Date: <b>' + timeArray['endDate'] 
     108                }   
    92109                return timeArray 
    93110        } 
  • mauRepo/MolesManager/trunk/src/MolesManager/views/cedaObservationView.py

    r8433 r8435  
    6565    eagerloadthese = ['identifier.authority', 'resultTime.position.dateTime8601.month', \ 
    6666                      'resultAccumulation', 'relatedParty.party', 'result.source.function', 'permission', \ 
    67                       'geographicExtent', 'phenomenonTime', 'keywords', 'description', \ 
     67                      'geographicExtent', 'phenomenonTime.*', 'keywords', 'description', \ 
    6868                      'inSupportOf.abstract', 'dataLineage'] 
    6969    return request.moles3EPB.searchSelectiveLoad(CEDA_Observation, obs_id, eagerloadthese) 
  • mauRepo/MolesManager/trunk/src/libs/epb.py

    r8433 r8435  
    3333from sqlalchemy.orm import subqueryload 
    3434from sqlalchemy.sql.expression import text 
     35from MolesManager.forms.date import methodsWithDecorator 
    3536 
    3637class EPB(object): 
     
    120121            ['resultAccumulation', 'identifier.authority', 'resultTime.position.dateTime8601.month', \ 
    121122                      'relatedParty.party', 'result.source.function', 'permission', \ 
    122                       'geographicExtent', 'phenomenonTime', 'keywords', 'description', \ 
     123                      'geographicExtent', 'phenomenonTime.*', 'keywords', 'description', \ 
    123124                      'inSupportOf.abstract', 'dataLineage'] 
    124125            the first parameter refers to the main class so is equivalent to  
    125             clazz.resultAccumulation 
     126            instance.resultAccumulation 
    126127            the second parameter is equivalent to invoke 
    127             clazz.identifier.authority 
     128            instance.identifier.authority 
    128129            As single string "attributes" could be as well just 'identifier.authority' 
     130            An universal marker '*' can be used to request a full loading from the attribute downward 
    129131            It does not return anything because it does not close the session 
    130132            @param instance: an instance containing the appropriate id 
     
    175177            EPB._drillData(obj, [attrs]) 
    176178        for item in attrs: 
    177             attr = item.split('.')[0]             
    178             if isinstance(obj, list): 
     179            attr = item.split('.')[0]  
     180            if attr == '*': 
     181                EPB._drillALLData(obj)          
     182            elif isinstance(obj, list): 
    179183                for element in obj: 
    180184                    EPB._drillData(element, [item]) 
     
    185189                        EPB._drillData(nobj, [item[len(attr) + 1:]]) 
    186190 
     191    @classmethod 
     192    def _drillALLData(cls, obj): 
     193        if isinstance(obj, list): 
     194            for element in obj: 
     195                EPB._drillALLData(element) 
     196        else: 
     197            keys = dir(obj) 
     198            keys.extend(list(methodsWithDecorator(type(obj), "property"))) 
     199            for key in keys: 
     200                try: 
     201                    if '_' not in key: 
     202                        nobj = getattr(obj, key) 
     203                        EPB._drillALLData(nobj) 
     204                except Exception as e: 
     205                    pass 
    187206         
  • mauRepo/MolesManager/trunk/src/libs/migration/processor/deployment.py

    r8425 r8435  
    440440 
    441441    def _assignPhenomenonTime(self, observation):   
    442         if self._deploymentHasSameHash: 
     442        if self._deploymentHasSameHash and getattr(observation, 'phenomenonTime') != None: 
    443443            return   
    444444               
     
    458458                pt = createTM_Period(begin_tm_instant, end_tm_instant) 
    459459            else: 
    460                 pt = createTM_Position(date8601 = createDate(isoDateStringToTimeDate(doc_phenomenon_time))) 
     460                tm_position = createTM_Position(date8601 = createDate(isoDateStringToTimeDate(doc_phenomenon_time))) 
     461                pt = createTM_Instant(tm_position) 
    461462             
    462463            if not self._deploymentHasBeenProcessed: 
Note: See TracChangeset for help on using the changeset viewer.