Changeset 8517


Ignore:
Timestamp:
13/08/12 23:18:15 (7 years ago)
Author:
mnagni
Message:

Incomplete - # 22534: Add versiojn number to the gui page
 http://team.ceda.ac.uk/trac/ceda/ticket/22534
New classes for the moles2gui library

Location:
mauRepo/MolesManager/trunk/cedaMoles
Files:
18 added
13 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/molesSessionMiddleware.py

    r8507 r8517  
    4242from django.core.context_processors import csrf 
    4343from django.shortcuts import render_to_response 
    44 from cedaMoles import __version__ 
     44from cedaMoles import __version__, __revision__ 
    4545 
     46def assemble_version(): 
     47    VERSION = __version__ 
     48    REVISION = __revision__ 
    4649 
     50    if REVISION != 'REVISION':  
     51        return '(v. %s rev. %s)' % (VERSION, REVISION) 
     52    else: 
     53        return '(v. %s rev. %s)' % (VERSION, 'unknown')         
    4754 
    4855class MolesSessionMiddleware(object): 
     
    5562    _moles3EPBFactory = None 
    5663    _migrationEPBFactory = None 
     64     
     65    version = None 
    5766     
    5867    def _doInitialization(self): 
     
    7584             
    7685        _migration() 
     86         
     87        MolesSessionMiddleware.version = assemble_version() 
    7788    
    7889    def process_request(self, request):   
     
    122133        raise Exception("Cannot render an empty context") 
    123134     
    124     context['version'] = __version__ 
     135    context['version'] = MolesSessionMiddleware.version 
    125136    context.update(csrf(request)) 
    126137    return render_to_response(page_to_render, context)             
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/settings_local.py

    r8512 r8517  
    22# Override settings.py for local configuration here 
    33# 
    4 #RUN_MIGRATION = False 
    5 #SERVE_STATIC_CONTENT = True 
     4RUN_MIGRATION = False 
     5SERVE_STATIC_CONTENT = True 
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/views/cedaObservationView.py

    r8507 r8517  
    5555        context['coObs'] = encodeToJSON(record) 
    5656         
    57         context['new_coObs'] = encodeCedaMoles2Json(record) 
     57        #context['new_coObs'] = encodeCedaMoles2Json(record) 
    5858         
    5959        guid = request.moles3EPB.retrieveGUIDFromInstance(record) 
     
    6767def _getCedaObservation(request, obs_id):     
    6868    eagerloadthese = ['identifier.authority', 'resultTime.position.dateTime8601.month', \ 
    69                       'resultAccumulation', 'relatedParty.party', 'result.source.function', 'permission', \ 
     69                      'resultAccumulation', 'relatedParty.party', \ 
     70                      'result.source.function', 'permission', \ 
    7071                      'geographicExtent', 'phenomenonTime.*', 'keywords', 'description', \ 
    7172                      'inSupportOf.abstract', 'dataLineage'] 
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/views/moles2gui/__init__.py

    r8507 r8517  
    1717""" 
    1818 
    19 _encodeMapper = {'ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_instant.TM_Instant':  
     19_encodeMapper = {'ea_model.iso_19115_2006_metadata_corrigendum.\ 
     20extent_information.ex_geographicboundingbox.EX_GeographicBoundingBox': 
     21                    ('cedaMoles.MolesManager.views.moles2gui.ex.geographic_extent',  
     22                     'GeographicExtent'), 
     23                 'ea_model.iso_19115_2006_metadata_corrigendum.\ 
     24reference_system_information.md_identifier.MD_Identifier': 
     25                    ('cedaMoles.MolesManager.views.moles2gui.md.identifier',  
     26                     'Identifier'),                  
     27                 'ea_model.iso_19115_2006_metadata_corrigendum.\ 
     28citation_and_responsible_party_information.ci_citation.CI_Citation':  
     29                    ('cedaMoles.MolesManager.views.moles2gui.ci.citation', 'Citation'),                  
     30                 'ea_model.iso_19115_2006_metadata_corrigendum.\ 
     31citation_and_responsible_party_information.ci_date.CI_Date':  
     32                    ('cedaMoles.MolesManager.views.moles2gui.ci.date', 'Date'),                     
     33                 'ea_model.iso_19108_2006_temporal_schema.temporal_objects.\ 
     34tm_instant.TM_Instant':  
    2035                    ('cedaMoles.MolesManager.views.moles2gui.om.instant', 'Instant'), 
    21                  'ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_period.TM_Period':  
     36                 'ea_model.iso_19108_2006_temporal_schema.temporal_objects.\ 
     37tm_period.TM_Period':  
    2238                    ('cedaMoles.MolesManager.views.moles2gui.om.period', 'Period'),                     
    2339                 'ea_model.moles3_4.utilities.mo_organisation.MO_Organisation':  
     
    2541                 'ea_model.moles3_4.utilities.mo_individual.MO_Individual':  
    2642                    ('cedaMoles.MolesManager.views.moles2gui.mo.party', 'Party'), 
    27                  'ea_model.moles3_4.utilities.mo_responsiblepartyinfo.MO_ResponsiblePartyInfo':  
    28                     ('cedaMoles.MolesManager.views.moles2gui.mo.responsiblePartyInfo', 'ResponsiblePartyInfo'), 
    29                  'ea_model.ceda_metadatamodel.ceda_observation.ceda_observation.CEDA_Observation':  
    30                     ('cedaMoles.MolesManager.views.moles2gui.ceda.observation', 'Observation')                     
     43                 'ea_model.moles3_4.utilities.mo_responsiblepartyinfo.\ 
     44MO_ResponsiblePartyInfo':  
     45                    ('cedaMoles.MolesManager.views.moles2gui.mo.responsiblePartyInfo', \ 
     46                     'ResponsiblePartyInfo'), 
     47                 'ea_model.ceda_metadatamodel.ceda_observation.\ 
     48ceda_observation.CEDA_Observation':  
     49                    ('cedaMoles.MolesManager.views.moles2gui.ceda.observation', \ 
     50                     'Observation')                     
    3151                 } 
    3252 
     
    95115        if type(cedaObject) in cls.acceptedTypes:        
    96116            for item in cls.mapper.items(): 
    97                 if item[0] == 'resultTime' and item[1] == 'resultTime': 
    98                     print item[0] 
    99                 try:                         
    100                     setattr(instance, item[0], getData(cedaObject, item[1])) 
    101                 except Exception as e: 
    102                     print e 
     117                setattr(instance, item[0], getData(cedaObject, item[1])) 
    103118 
    104119    @classmethod 
     
    238253        attr = getattr(attrOwner, attrName) 
    239254        if isinstance(attr, list): 
    240             if len(value) == 0: 
    241                 del attr[:] 
     255            #if len(value) == 0: 
     256            #    del attr[:] 
    242257             
    243             if not isinstance(value[0], CedaMolesGuiAdapter): 
     258            if len(value) > 0 and not isinstance(value[0], CedaMolesGuiAdapter): 
    244259                del attr[:] 
    245260                if isinstance(value, list): 
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/views/moles2gui/ceda/observation.py

    r8486 r8517  
    3232''' 
    3333from cedaMoles.MolesManager.views.moles2gui import CedaMolesGuiAdapter 
    34 from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation 
     34from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation \ 
     35    import CEDA_Observation 
    3536 
    3637class Observation(CedaMolesGuiAdapter):   
    3738    """ 
    3839        Simplifies for the GUI an instance  
    39         from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation.CEDA_Observation 
     40        from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation. 
     41            CEDA_Observation 
    4042         
    4143        **Parameters**             
     
    4648    mapper = {'phenomenonTime': 'phenomenonTime', 
    4749              'relatedParty': 'relatedParty', 
    48               'resultTime': 'resultTime' 
     50              'resultTime': 'resultTime', 
     51              'geographicExtent': 'geographicExtent', 
     52              'identifier': 'identifier' 
    4953             } 
    5054    acceptedTypes = [CEDA_Observation] 
  • mauRepo/MolesManager/trunk/cedaMoles/__init__.py

    r8489 r8517  
    11__version__ = '0.2.0' 
     2__revision__ = 'REVISION' 
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/commons.py

    r8496 r8517  
    747747    ci_citation = CI_Citation() 
    748748    ci_citation.title = title 
    749     if date and type(date) == list: 
    750         ci_citation.date.extend(date) 
     749    if date is not None: 
     750        if isinstance(date, list): 
     751            ci_citation.date.extend(date) 
     752        else: 
     753            ci_citation.date.append(date) 
    751754    if icitedResponsibleParty: 
    752755        ci_citation.citedResponsibleParty.extend(icitedResponsibleParty) 
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/dataEntity.py

    r8496 r8517  
    126126         
    127127        if self._dataEntityHasBeenProcessed: 
    128             self._report.append('The _assignGeographicExtent update is skipped because not implemented') 
    129             DataEntityProcessor.log.warn('The _assignGeographicExtent update is skipped because not implemented') 
    130             return 
    131              
    132         self.epbRepo.moles3EPB.updateCedaObject(ceda_observationCollection, {'identifier': newIdentifier}) 
     128            self._report.append('The _assignGeographicExtent update is \ 
     129                                skipped because not implemented') 
     130            DataEntityProcessor.log.warn('The _assignGeographicExtent \ 
     131                                update is skipped because not implemented') 
     132            return 
     133             
     134        self.epbRepo.moles3EPB.updateCedaObject(ceda_observationCollection, \ 
     135                                                {'identifier': newIdentifier}) 
    133136     
    134137    def _processCitation(self, ceda_observationCollection): 
    135138        contentDict = extract_content(self._dataEntityMigration) 
    136139        if not contentDict.has_key('citation'): 
    137             self._report(NoCitationException(self._dataEntityMigration)) 
    138             DataEntityProcessor.log.info("The migration object "+ migrationObjectDescription(self._dataEntityMigration) \ 
    139                                          + " has not associated cedacat:citation") 
     140            self._report.append((NoCitationException(self._dataEntityMigration))) 
     141            DataEntityProcessor.log.info("The migration object "\ 
     142                                + migrationObjectDescription(self._dataEntityMigration) \ 
     143                                + " has not associated cedacat:citation") 
    140144            return 
    141145 
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/deployment.py

    r8496 r8517  
    464464        pt = from_date_string_to_pt(doc_phenomenon_time)     
    465465         
    466         if not self._deploymentHasBeenProcessed or not compare_phenomenon_times(pt,observation.phenomenonTime): 
     466        if self._deploymentHasBeenProcessed \ 
     467                or observation.phenomenonTime is not None \ 
     468                and not compare_phenomenon_times(pt,observation.phenomenonTime): 
    467469            self.epbRepo.moles3EPB.updateCedaObject(observation, {'phenomenonTime': pt}) 
    468         #Now update phenomenonTime but has to remove the previous phenomenonTime                 
     470            #Now update phenomenonTime but has to remove the previous phenomenonTime 
     471             
     472        elif not self._deploymentHasBeenProcessed: 
     473            observation.phenomenonTime = pt                 
    469474                 
    470475    def _assignPermission(self, observation): 
  • mauRepo/MolesManager/trunk/cedaMoles/tests/__init__.py

    r8487 r8517  
    1 from cedaMoles.tests.cedamoles.mo.responsiblePartyInfo import ResponsiblePartyInfoTest as rit 
    2 from cedaMoles.tests.moles2gui.mo.responsiblePartyInfo import ResponsiblePartyInfoTest as rit2  
     1from cedaMoles.tests.cedamoles.mo.responsiblePartyInfo \ 
     2    import ResponsiblePartyInfoTest as rit 
     3from cedaMoles.tests.moles2gui.mo.responsiblePartyInfo \ 
     4    import ResponsiblePartyInfoTest as rit2  
    35from unittest import TestSuite 
    46from cedaMoles.tests.moles2gui.om.instant import InstantTest 
     
    68from cedaMoles.tests.moles2gui.mo.party import PartyTest 
    79from cedaMoles.tests.moles2gui.ceda.observation import ObservationTest 
     10from cedaMoles.tests.moles2gui.ci.citation import CitationTest 
     11from cedaMoles.tests.moles2gui.ci.date import DateTest 
     12from cedaMoles.tests.moles2gui.ex.geographic_extent import GeographicExtentTest 
     13from cedaMoles.tests.moles2gui.md.identifier import IdentifierTest 
    814  
    915def suite(): 
     
    1420    suite.addTest(PeriodTest())     
    1521    suite.addTest(PartyTest()) 
     22    suite.addTest(CitationTest()) 
     23    suite.addTest(DateTest())     
     24    suite.addTest(GeographicExtentTest()) 
     25    suite.addTest(IdentifierTest())         
    1626    suite.addTest(ObservationTest())     
    1727         
  • mauRepo/MolesManager/trunk/cedaMoles/tests/migration/migrationprocess.py

    r8486 r8517  
    9898        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_ECMWF-TRJ.atom') 
    9999        self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_UGAMPO3.atom') 
    100         self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_12282368470627062.atom')    
    101         self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_11744364633818458.atom') 
     100        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_12282368470627062.atom')    
     101        #self.processDataEntity(DO_BADC, DS_pUBLISHED, 'dataent_11744364633818458.atom') 
    102102                              
    103103         
  • mauRepo/MolesManager/trunk/cedaMoles/tests/moles2gui/ceda/observation.py

    r8487 r8517  
    4242 
    4343    def setUp(self): 
    44         #molesDB = DbManager(MOLES3_DB_CONNECTION, MOLES3_DB_SCRIPT, sql_echo=True, session_event_manager=EVENTS_DB)       
     44        #molesDB = DbManager(MOLES3_DB_CONNECTION, MOLES3_DB_SCRIPT, s 
     45        #ql_echo=True, session_event_manager=EVENTS_DB)       
    4546        #moles3Factory = Moles3EPBFactory(molesDB) 
    4647        #self.epbRepo = EPBRepo(moles3Factory.createEPB(), None, None) 
     
    5859        #----------------------- test ------------------------ 
    5960        decJson = loads(json) 
     61        print decJson 
    6062        self.assertEqual(decJson['relatedParty']['role'], 'author', "Error") 
    61         self.assertTrue(str(getData(observation, 'phenomenonTime.begin.position.date8601.year')) in decJson['phenomenonTime']['startDate'], "Error")         
     63        self.assertTrue(str(getData(observation, \ 
     64                                    'phenomenonTime.begin.position.date8601.year')) \ 
     65                        in decJson['phenomenonTime']['startDate'], "Error")         
     66        self.assertEqual(getData(observation, \ 
     67                                     'geographicExtent[0].eastBoundLongitude'), 
     68                        decJson['geographicExtent'][0]['eastBoundLongitude'], "Error") 
     69        self.assertEqual(getData(observation, \ 
     70                                     'identifier[0].code'), 
     71                        decJson['identifier'][0]['code'], "Error")         
    6272        #----------------------------------------------------- 
    6373         
    6474        #----------------------- test ------------------------ 
    6575        new_observation = decodeJson2CedaMoles(json = json, cedaMoleObj = observation) 
    66         self.assertEqual(getData(new_observation, 'relatedParty.role'), decJson['relatedParty']['role'], "decodeJson2CedaMoles Error") 
    67         self.assertTrue(str(getData(new_observation, 'phenomenonTime.begin.position.date8601.year')) in decJson['phenomenonTime']['startDate'], "Error")         
     76        self.assertEqual(getData(new_observation, 'relatedParty.role'), \ 
     77                         decJson['relatedParty']['role'], "decodeJson2CedaMoles Error") 
     78        self.assertTrue(str(getData(new_observation, \ 
     79                                    'phenomenonTime.begin.position.date8601.year')) \ 
     80                        in decJson['phenomenonTime']['startDate'], "Error") 
     81        self.assertEqual(getData(observation, \ 
     82                                     'geographicExtent[0].eastBoundLongitude'),  
     83                         decJson['geographicExtent'][0]['eastBoundLongitude'], "Error")                 
     84        self.assertEqual(getData(observation, \ 
     85                                     'identifier[0].code'),  
     86                         decJson['identifier'][0]['code'], "Error")         
    6887        #-----------------------------------------------------              
    6988         
     
    7695        decJson = loads(json) 
    7796        decJson['relatedParty']['role'] = 'co_author' 
     97        decJson['geographicExtent'][0]['eastBoundLongitude'] = '0'         
     98        decJson['identifier'][0]['code'] = 'new_code'         
    7899        new_json = dumps(decJson) 
    79100        #----------------------- test ---------------------------- 
    80101        # Update party.name and test decoding 
    81102        new_observation = decodeJson2CedaMoles(json = new_json, cedaMoleObj = observation)        
    82         self.assertEqual(getData(new_observation, 'relatedParty.role'), decJson['relatedParty']['role'], "Error") 
     103        self.assertEqual(getData(new_observation, 'relatedParty.role'), \ 
     104                         decJson['relatedParty']['role'], "Error") 
     105        self.assertEqual(getData(new_observation, 'geographicExtent[0].eastBoundLongitude'), \ 
     106                         decJson['geographicExtent'][0]['eastBoundLongitude'], "Error") 
     107        self.assertEqual(getData(new_observation, 'identifier[0].code'), \ 
     108                         decJson['identifier'][0]['code'], "Error")                        
    83109        #---------------------------------------------------------                           
    84110         
     
    86112    unittest.main() 
    87113         
     114         
  • mauRepo/MolesManager/trunk/cedaMoles/tests/moles2gui/creationFactory.py

    r8496 r8517  
    3535    create_mo_organization, create_mo_individual, create_mo_responsible_party_info,\ 
    3636    isoDateTimeStringToTimeDate, create_datetime, create_tm_position,\ 
    37     create_tm_instant, from_date_string_to_pt 
     37    create_tm_instant, from_date_string_to_pt, create_ex_geographic_boundingbox,\ 
     38    create_date, create_ci_date, create_ci_citation, create_md_identifier 
    3839from cedaMoles.MolesManager.codelist import getCLValue, MM_RoleValue 
    3940from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation 
     41from ea_model.iso_19115_2006_metadata_corrigendum.\ 
     42    citation_and_responsible_party_information.ci_datetypecode import CI_DateTypeCode 
     43from datetime import date 
    4044 
    4145def assembleMO_Individual(name = 'CedaTest', iid = 1): 
     
    7680    return create_tm_instant(tm_position) 
    7781 
     82def assemble_ci_date(dateType, iid = 123): 
     83    #dateType = getCLValue(CI_DateTypeCode.cl_publication) 
     84    py_date = date(2012, 4, 16) 
     85    dt = create_date(py_date) 
     86    cdate = create_ci_date(dateType, date = dt) 
     87    cdate.id = iid 
     88    return cdate 
     89 
     90def assemble_ci_citation(id = 55, title = 'DOI', ci_date = None): 
     91    data_type = getCLValue(CI_DateTypeCode.cl_publication) 
     92    if ci_date is None: 
     93        ci_date = assemble_ci_date(data_type) 
     94    return create_ci_citation(title, date = ci_date)     
     95 
     96def assemble_md_identifier(iid = 33, code = 'inner_code'): 
     97    dateType = getCLValue(CI_DateTypeCode.cl_publication) 
     98    ci_date = assemble_ci_date(dateType) 
     99    i_authority = assemble_ci_citation(ci_date = ci_date) 
     100    identifier = create_md_identifier(code = code, authority=i_authority) 
     101    identifier.id = iid 
     102    return identifier 
     103 
    78104def assembleObservation(phenomenonTime = '2002-07-22/2011-08-06'): 
    79105    ceda_observation = CEDA_Observation() 
     
    81107    ceda_observation.resultTime = assembleTM_Instant() 
    82108    ceda_observation.phenomenonTime = from_date_string_to_pt(phenomenonTime) 
     109    bb = create_ex_geographic_boundingbox(180, 90, -180, -90) 
     110    bb.id = 12     
     111    ceda_observation.geographicExtent.append(bb) 
     112    ceda_observation.identifier.append(assemble_md_identifier()) 
    83113    return ceda_observation 
Note: See TracChangeset for help on using the changeset viewer.