Changeset 8538
- Timestamp:
- 17/08/12 14:10:49 (9 years ago)
- Location:
- mauRepo/MolesManager/trunk/cedaMoles
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
mauRepo/MolesManager/trunk/cedaMoles/MolesManager/forms/date.py
r8488 r8538 4 4 @author: mnagni 5 5 ''' 6 from cedaMoles.MolesManager.forms.formsFactory import create FieldInstance6 from cedaMoles.MolesManager.forms.formsFactory import create_field_instance 7 7 from django.forms.forms import Form 8 8 from sqlalchemy.orm.properties import ColumnProperty, RelationshipProperty … … 62 62 columns = getattr(clazz_property, 'columns') 63 63 if len(columns) > 0: 64 self._coreFields[clazz_property.key] = create FieldInstance(columns[0].type, clazz_property.key, instance)64 self._coreFields[clazz_property.key] = create_field_instance(columns[0].type, clazz_property.key, instance) 65 65 66 66 def _manageRelationshipProperty(self, relationship_property, instance): -
mauRepo/MolesManager/trunk/cedaMoles/MolesManager/forms/formsFactory.py
r8488 r8538 5 5 ''' 6 6 from django.db import models 7 from django.forms.fields import CharField, DecimalField, IntegerField, \7 from django.forms.fields import CharField, DecimalField, IntegerField, \ 8 8 ChoiceField 9 9 from ascore.asenumeration import EnumSymbol, ASEnumType … … 14 14 15 15 16 _ fieldFactory= {16 _FIELD_FACTORY = { 17 17 'Text': CharField, 18 18 'TEXT': CharField, … … 22 22 } 23 23 24 def create ASEnumField(clazz, **kwargs):24 def create_as_enumfield(clazz, **kwargs): 25 25 sel = [] 26 26 for attrName in clazz.enum.__dict__: … … 33 33 34 34 35 def get TypeName(clazz):35 def get_type_name(clazz): 36 36 return type(clazz).__name__ 37 37 38 def create Field(name):39 return _ fieldFactory.get(name)38 def create_field(name): 39 return _FIELD_FACTORY.get(name) 40 40 41 def _extract Value(self, property_name, instance):41 def _extract_value(self, property_name, instance): 42 42 kwargs = {} 43 43 if self._instance: … … 46 46 return kwargs 47 47 48 def create FieldInstance(clazz, fieldName, iinstance):49 name = get TypeName(clazz)48 def create_field_instance(clazz, fieldName, iinstance): 49 name = get_type_name(clazz) 50 50 if (name == 'ASEnumType'): 51 return create ASEnumField(clazz)51 return create_as_enumfield(clazz) 52 52 elif (name == 'ARRAY'): 53 return formset_factory(create Field(getTypeName(clazz.item_type)))54 elif _ fieldFactory.has_key(name):55 kwargs = _extract Value(fieldName, iinstance)56 return create Field(name)(**kwargs)53 return formset_factory(create_field(get_type_name(clazz.item_type))) 54 elif _FIELD_FACTORY.has_key(name): 55 kwargs = _extract_value(fieldName, iinstance) 56 return create_field(name)(**kwargs) 57 57 58 def create Field_(field, kwargs = None):58 def create_field_(field, kwargs = None): 59 59 if not kwargs: 60 60 return field() … … 63 63 64 64 def extractInteger(column, kwargs = None): 65 return create Field_(IntegerField, kwargs)65 return create_field_(IntegerField, kwargs) 66 66 67 def extract Char(column, kwargs = None):68 return create Field_(CharField, kwargs)67 def extract_char(column, kwargs = None): 68 return create_field_(CharField, kwargs) 69 69 70 def extract Enum(column, kwargs = None):70 def extract_enum(column, kwargs = None): 71 71 if not kwargs: 72 72 kwargs = {} 73 73 kwargs['choices'] = [(value, value) for value in column.enums] 74 return create Field_(ChoiceField, kwargs) #ChoiceField(choices=values)74 return create_field_(ChoiceField, kwargs) #ChoiceField(choices=values) 75 75 76 76 def convertColumnToFormField(columnToConvert): … … 89 89 formField = extractInteger(column) 90 90 elif (issubclass(ctype, ASEnumType)): 91 formField = extract Enum(column.type.impl)91 formField = extract_enum(column.type.impl) 92 92 elif (issubclass(ctype, String)): 93 93 if (issubclass(ctype, Enum)): 94 formField = extract Enum(column)94 formField = extract_enum(column) 95 95 else: 96 formField = extract Char(column)96 formField = extract_char(column) 97 97 if not formField: 98 print "Have not way to convert %s type" % (get TypeName(column.type))98 print "Have not way to convert %s type" % (get_type_name(column.type)) 99 99 return None 100 100 -
mauRepo/MolesManager/trunk/cedaMoles/MolesManager/moles3epb.py
r8537 r8538 69 69 70 70 def _associate_ceda_guid(self): 71 guid_table = Table('ceda_guid', self._db_manager.metadata, \72 Column('id', String, primary_key=True), \73 Column('ceda_observationcollection', \71 guid_table = Table('ceda_guid', self._db_manager.metadata, 72 Column('id', String, primary_key=True), 73 Column('ceda_observationcollection', 74 74 Integer, ForeignKey('ceda_observationcollection.id')), 75 Column('ceda_observation', \75 Column('ceda_observation', 76 76 Integer, ForeignKey('ceda_observation.id')), 77 Column('ceda_project', \77 Column('ceda_project', 78 78 Integer, ForeignKey('ceda_project.id'))) 79 79 mapper(CedaGUID, guid_table) -
mauRepo/MolesManager/trunk/cedaMoles/MolesManager/views/cedaObservationView.py
r8536 r8538 31 31 @author: mnagni 32 32 ''' 33 from django.shortcuts import render_to_response34 from django.core.context_processors import csrf35 33 from cedaMoles.MolesManager.djencoder import encodeToJSON 36 34 from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation … … 66 64 67 65 def _getCedaObservation(request, obs_id): 68 eagerloadthese = ['identifier.authority', 'resultTime.position.dateTime8601.month', \69 'resultAccumulation', 'relatedParty.party', \70 'result.source.function', 'permission', \71 'geographicExtent', 'phenomenonTime.*', 'keywords', 'description', \66 eagerloadthese = ['identifier.authority', 'resultTime.position.dateTime8601.month', 67 'resultAccumulation', 'relatedParty.party', 68 'result.source.function', 'permission', 69 'geographicExtent', 'phenomenonTime.*', 'keywords', 'description', 72 70 'inSupportOf.abstract', 'dataLineage'] 73 71 return request.moles3EPB.searchSelectiveLoad(CEDA_Observation, obs_id, eagerloadthese) -
mauRepo/MolesManager/trunk/cedaMoles/libs/migration/MigrationEPB.py
r8513 r8538 4 4 @author: mnagni 5 5 ''' 6 from cedaMoles.libs.migration.db.classes import DeploymentDataMigration, DataEntityMigration,\7 D eploymentsMigration, MigrationObject6 from cedaMoles.libs.migration.db.classes import DeploymentDataMigration, \ 7 DataEntityMigration, DeploymentsMigration 8 8 from sqlalchemy.sql.expression import asc 9 9 from cedaMoles.libs.epb import EPB … … 42 42 return self._session.query(mo_type).filter(*[EPB.buildFilter('doc_name', doc_name)]).first() 43 43 44 def _getMigrationObjectByName(self, mo_type, migration Object, doc_name):45 return self._getMigrationObject(mo_type, migration Object.doc_status, migrationObject.doc_owner, doc_name)44 def _getMigrationObjectByName(self, mo_type, migration_object, doc_name): 45 return self._getMigrationObject(mo_type, migration_object.doc_status, migration_object.doc_owner, doc_name) 46 46 47 def get DeploymentsMigrationByName(self, migrationObject, doc_name):48 if migration Object is None:47 def get_deployment_data_migration_by_name(self, migration_object, doc_name): 48 if migration_object is None: 49 49 raise Exception("migrationObject is None") 50 return self._getMigrationObjectByName(Deployment sMigration, migrationObject, doc_name)50 return self._getMigrationObjectByName(DeploymentDataMigration, migration_object, doc_name) 51 51 52 def getDeploymentDataMigrationByName(self, migrationObject, doc_name): 53 if migrationObject is None: 54 raise Exception("migrationObject is None") 55 return self._getMigrationObjectByName(DeploymentDataMigration, migrationObject, doc_name) 56 57 def getDataEntityMigrationbyPath(self, migrationObject): 52 def getDataEntityMigrationbyPath(self, migration_object): 58 53 """ 59 54 Returns the DataEntityMigration associated with the given path 60 @param migration Object: the migration object to look for. If None returns all the DataEntityMigration items55 @param migration_object: the migration object to look for. If None returns all the DataEntityMigration items 61 56 """ 62 57 ret = [] 63 if migration Object:64 ret.append(self._session.query(DataEntityMigration).filter(*[EPB.buildFilter('doc_name', migration Object.doc_name)]).first())58 if migration_object: 59 ret.append(self._session.query(DataEntityMigration).filter(*[EPB.buildFilter('doc_name', migration_object.doc_name)]).first()) 65 60 else: #then process all the DataEntities 66 61 res = self._session.query(DataEntityMigration).all() -
mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/deployment.py
r8522 r8538 461 461 obsList = [] 462 462 for obs in links['OBS']: 463 observationStation = self.epbRepo.migrationEPB.get DeploymentDataMigrationByName(self._deployment_migration, obs + '.atom')463 observationStation = self.epbRepo.migrationEPB.get_deployment_data_migration_by_name(self._deployment_migration, obs + '.atom') 464 464 obsList.append((extract_title(observationStation), find_subtype_in_dpt(observationStation))) 465 465 … … 477 477 if links.has_key('ACTIVITY'): 478 478 for link in links['ACTIVITY']: 479 activity = self.epbRepo.migrationEPB.get DeploymentDataMigrationByName(self._deployment_migration, link + '.atom')479 activity = self.epbRepo.migrationEPB.get_deployment_data_migration_by_name(self._deployment_migration, link + '.atom') 480 480 481 481 projSubType = find_subtype_in_dpt(activity) -
mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/deployment_data.py
r8496 r8538 31 31 @author: Maurizio Nagni 32 32 ''' 33 from cedaMoles.libs.migration.processor.commons import find_subtype_in_dpt, \34 create_ceda_processing, create_ceda_instrument, create_ceda_project, \35 find_summary, find_documentation_in_migration_document, create_ci_citation, \36 create_mo_online_resource, find_links_in_deployment, has_mo_been_processed, \33 from cedaMoles.libs.migration.processor.commons import find_subtype_in_dpt, \ 34 create_ceda_processing, create_ceda_instrument, create_ceda_project, \ 35 find_summary, find_documentation_in_migration_document, create_ci_citation, \ 36 create_mo_online_resource, find_links_in_deployment, has_mo_been_processed, \ 37 37 get_atom_document_hash_by_mo, calculate_hash, has_mo_same_hash 38 from ea_model.moles3_4.utilities.ceda_publicationstatevalue import CEDA_PublicationStateValue 38 from ea_model.moles3_4.utilities.ceda_publicationstatevalue \ 39 import CEDA_PublicationStateValue 39 40 from cedaMoles.MolesManager.codelist import getCLValue 40 41 from cedaMoles.MolesManager.ceda_guid import CedaGUID … … 56 57 self._links = find_links_in_deployment(self._deploymentMigration) 57 58 58 def _commitDeploymentMigration(self, associateWithCedaObservation, dataProductionTool, dataProductionToolField): 59 def _commitDeploymentMigration(self, associateWithCedaObservation, \ 60 dataProductionTool, dataProductionToolField): 59 61 self.epbRepo.moles3EPB.persistInstance(associateWithCedaObservation) 60 self.epbRepo.migrationEPB.updateMigrationObject(dataProductionTool, {dataProductionToolField: associateWithCedaObservation.id}) 62 self.epbRepo.migrationEPB.\ 63 updateMigrationObject(dataProductionTool, \ 64 {dataProductionToolField: associateWithCedaObservation.id}) 61 65 62 66 def _createProject(self, activity): … … 68 72 i_documentation = create_ci_citation("Documentation resource") 69 73 i_resource = create_mo_online_resource(doc_link[0]['href']) 70 project = create_ceda_project(abstract=i_abstract, publication_state=getCLValue(CEDA_PublicationStateValue.cl_working), \ 71 documentation=i_documentation, project_resource=i_resource) 74 project = create_ceda_project(abstract=i_abstract, \ 75 publication_state=getCLValue(CEDA_PublicationStateValue.cl_working), \ 76 documentation=i_documentation, project_resource=i_resource) 72 77 self._commitDeploymentMigration(project, activity, 'ceda_project_id') 73 78 return project … … 77 82 if self._links.has_key('ACTIVITY'): 78 83 for link in self._links['ACTIVITY']: 79 activity = self.epbRepo.migrationEPB.getDeploymentDataMigrationByName(self._deploymentMigration, link + '.atom') 84 activity = self.epbRepo.migrationEPB.\ 85 get_deployment_data_migration_by_name(self._deploymentMigration, \ 86 link + '.atom') 80 87 deploymentDataHasSameHash = has_mo_same_hash(activity) 81 88 deploymentDataHasBeenProcessed = has_mo_been_processed(activity) … … 83 90 if activity.ceda_project_id is not None: 84 91 #obsColl = self.epbRepo.moles3EPB.search(CEDA_ObservationCollection, self._dataEntityMigration.ceda_observation_coll_id) 85 project = self.epbRepo.moles3EPB.search(CEDA_Project, activity.ceda_project_id) 92 project = self.epbRepo.moles3EPB.search(CEDA_Project, 93 activity.ceda_project_id) 86 94 else: 87 95 project = self._createProject(activity) … … 120 128 hasCedaAcquisition = False 121 129 for dpt in self._links['DPT']: 122 dataProductionTool = self.epbRepo.migrationEPB.getDeploymentDataMigrationByName(self._deploymentMigration, dpt + '.atom') 130 dataProductionTool = self.epbRepo.migrationEPB.\ 131 get_deployment_data_migration_by_name(self._deploymentMigration, \ 132 dpt + '.atom') 123 133 124 134 #has the document changed? … … 134 144 if dataProductionTool.ceda_processing_id is None: 135 145 associateWithCedaObservation = create_ceda_processing() 136 self._commitDeploymentMigration(associateWithCedaObservation, dataProductionTool, 'ceda_processing_id') 146 self._commitDeploymentMigration(associateWithCedaObservation, 147 dataProductionTool, 148 'ceda_processing_id') 137 149 if not (hasCedaComposite or hasCedaProcessing): 138 150 hasCedaProcessing = True … … 154 166 #if not a DPT.subType == 'model' then.... 155 167 for obs in self._links['OBS']: 156 observationStation = self.epbRepo.migrationEPB.get DeploymentDataMigrationByName(self._deploymentMigration, obs + '.atom')168 observationStation = self.epbRepo.migrationEPB.get_deployment_data_migration_by_name(self._deploymentMigration, obs + '.atom') 157 169 158 170 #has the document changed? -
mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/loadResources.py
r8496 r8538 31 31 @author: Maurizio Nagni 32 32 ''' 33 from cedaMoles.libs.migration.processor.commons import DOC_STATUS, get_collection_refs, \34 find_moles_creation_date, find_id, stringToTimestamp, build_exist_type_path, \35 build_exist_doc_path, DT_DATA_ENTITIES, DT_DEPLOYMENTS, DT_DEPLOYMENT_DATA, \33 from cedaMoles.libs.migration.processor.commons import DOC_STATUS, get_collection_refs, \ 34 find_moles_creation_date, find_id, stringToTimestamp, build_exist_type_path, \ 35 build_exist_doc_path, DT_DATA_ENTITIES, DT_DEPLOYMENTS, DT_DEPLOYMENT_DATA, \ 36 36 get_owner_refs, get_atom_document_as_elementtree 37 37 from cedaMoles.libs.migration.exception.exceptions import NoCreationDate, NoDocumentID 38 from cedaMoles.libs.migration.db.classes import DeploymentDataMigration, \38 from cedaMoles.libs.migration.db.classes import DeploymentDataMigration, \ 39 39 DeploymentsMigration, DataEntityMigration 40 40 -
mauRepo/MolesManager/trunk/cedaMoles/tests/migration/test_utils.py
r8496 r8538 4 4 @author: mnagni 5 5 ''' 6 from ea_model.ceda_metadatamodel.ceda_observationcollection.ceda_observationcollection import CEDA_ObservationCollection 7 from cedaMoles.libs.migration.processor.commons import create_ci_citation,\ 6 from ea_model.ceda_metadatamodel.ceda_observationcollection.ceda_observationcollection \ 7 import CEDA_ObservationCollection 8 from cedaMoles.libs.migration.processor.commons import create_ci_citation, \ 8 9 create_md_identifier 9 10 from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation … … 16 17 oc.identifier[0].authority.title = 'test_title' 17 18 ''' 18 observation Collection = CEDA_ObservationCollection()19 observation_collection = CEDA_ObservationCollection() 19 20 auth = create_ci_citation('test_title') 20 21 i_identifier = create_md_identifier(code = 'test_code', authority=auth) 21 observation Collection.identifier.append(i_identifier)22 return observation Collection22 observation_collection.identifier.append(i_identifier) 23 return observation_collection 23 24 24 25 def createObservation(): -
mauRepo/MolesManager/trunk/cedaMoles/tests/moles2gui/ceda/observation.py
r8517 r8538 33 33 import unittest 34 34 from json import loads, dumps 35 from cedaMoles.MolesManager.views.moles2gui import encodeCedaMoles2Json, \35 from cedaMoles.MolesManager.views.moles2gui import encodeCedaMoles2Json, \ 36 36 decodeJson2CedaMoles, getData 37 37 from cedaMoles.tests.moles2gui.creationFactory import assembleObservation -
mauRepo/MolesManager/trunk/cedaMoles/tests/moles2gui/om/instant.py
r8510 r8538 33 33 import unittest 34 34 from json import loads, dumps 35 from cedaMoles.MolesManager.views.moles2gui import encodeCedaMoles2Json, \35 from cedaMoles.MolesManager.views.moles2gui import encodeCedaMoles2Json, \ 36 36 decodeJson2CedaMoles, getData 37 37 from cedaMoles.tests.moles2gui.creationFactory import assembleTM_Instant
Note: See TracChangeset
for help on using the changeset viewer.