def create_project(self, label, short_des): """ Creates a new project in the Manifest and projects tables """ uuid = GenUUID.uuid4() man_proj = Manifest() man_proj.uuid = uuid man_proj.label = label man_proj.source_id = "manual" man_proj.item_type = "projects" man_proj.project_uuid = uuid man_proj.des_predicate_uuid = "" man_proj.class_uri = "" man_proj.views = 0 man_proj.save() pobj = Project() pobj.uuid = uuid pobj.source_id = "manual" pobj.project_uuid = uuid pobj.label = label pobj.edit_status = 0 pobj.short_des = short_des pobj.content = "" pobj.save() return uuid
def create_project(self, post_data): """ creates a project item into a project """ ok = True required_params = ['source_id', 'label', 'short_des'] for r_param in required_params: if r_param not in post_data: # we're missing some required data # don't create the item ok = False message = 'Missing paramater: ' + r_param + '' if self.errors['params'] is False: self.errors['params'] = message else: self.errors['params'] += '; ' + message uuid = self.create_or_validate_uuid(post_data) if uuid is False: ok = False note = self.errors['uuid'] if ok: label = post_data['label'] if self.oc_root_project: project_uuid = uuid else: project_uuid = self.project_uuid new_proj = Project() new_proj.uuid = uuid new_proj.project_uuid = project_uuid new_proj.source_id = post_data['source_id'] new_proj.edit_status = 0 new_proj.label = label new_proj.short_des = post_data['short_des'] new_proj.save() new_man = Manifest() new_man.uuid = uuid new_man.project_uuid = project_uuid new_man.source_id = post_data['source_id'] new_man.item_type = 'projects' new_man.repo = '' new_man.class_uri = '' new_man.label = label new_man.des_predicate_uuid = '' new_man.views = 0 new_man.save() else: label = '[Item not created]' uuid = False self.response = { 'action': 'create-item-into', 'ok': ok, 'change': { 'uuid': uuid, 'label': label, 'note': self.add_creation_note(ok) } } return self.response
def create_project(self, post_data): """ creates a project item into a project """ ok = True required_params = ['source_id', 'label', 'short_des'] for r_param in required_params: if r_param not in post_data: # we're missing some required data # don't create the item ok = False message = 'Missing paramater: ' + r_param + '' if self.errors['params'] is False: self.errors['params'] = message else: self.errors['params'] += '; ' + message uuid = self.create_or_validate_uuid(post_data) if uuid is False: ok = False note = self.errors['uuid'] if ok: label = post_data['label'] if self.oc_root_project: project_uuid = uuid else: project_uuid = self.project_uuid new_proj = Project() new_proj.uuid = uuid new_proj.project_uuid = project_uuid new_proj.source_id = post_data['source_id'] new_proj.edit_status = 0 new_proj.label = label new_proj.short_des = post_data['short_des'] new_proj.save() new_man = Manifest() new_man.uuid = uuid new_man.project_uuid = project_uuid new_man.source_id = post_data['source_id'] new_man.item_type = 'projects' new_man.repo = '' new_man.class_uri = '' new_man.label = label new_man.des_predicate_uuid = '' new_man.views = 0 new_man.save() else: label = '[Item not created]' uuid = False self.response = {'action': 'create-item-into', 'ok': ok, 'change': {'uuid': uuid, 'label': label, 'note': self.add_creation_note(ok)}} return self.response
def store_records(self, act_table, recs): """ stores records retrieved for a given table """ i = 0 for record in recs: i += 1 allow_write = self.check_allow_write(act_table, record) record = self.prep_update_keep_old(act_table, record) if (allow_write is False and self.update_keep_old is False): print('\n Not allowed to overwite record.' + str(i)) else: # print('\n Adding record:' + str(record)) newr = False if (act_table == 'link_annotations'): newr = LinkAnnotation(**record) elif (act_table == 'link_entities'): newr = LinkEntity(**record) elif (act_table == 'oc_assertions'): newr = Assertion(**record) elif (act_table == 'oc_manifest'): newr = Manifest(**record) elif (act_table == 'oc_subjects'): newr = Subject(**record) elif (act_table == 'oc_mediafiles'): newr = Mediafile(**record) elif (act_table == 'oc_documents'): newr = OCdocument(**record) elif (act_table == 'oc_persons'): newr = Person(**record) elif (act_table == 'oc_projects'): newr = Project(**record) elif (act_table == 'oc_strings'): newr = OCstring(**record) elif (act_table == 'oc_types'): newr = OCtype(**record) elif (act_table == 'oc_geospace'): newr = Geospace(**record) elif (act_table == 'oc_events'): newr = Event(**record) elif (act_table == 'oc_predicates'): newr = Predicate(**record) elif (act_table == 'oc_identifiers'): newr = StableIdentifer(**record) elif (act_table == 'oc_obsmetadata'): newr = ObsMetadata(**record) if (newr is not False): try: newr.save(force_insert=self.force_insert, force_update=self.update_keep_old) except Exception as error: print('Something slipped past in ' + act_table + '...' + str(error))
def store_records(self, act_table, recs): """ stores records retrieved for a given table """ for rkey, record in recs.items(): if (act_table == 'link_annotations'): newr = LinkAnnotation(**record) newr.save() elif (act_table == 'link_entities'): newr = LinkEntity(**record) newr.save() elif (act_table == 'link_hierarchies'): newr = LinkHierarchy(**record) newr.save() elif (act_table == 'oc_chronology'): newr = Chronology(**record) newr.save() elif (act_table == 'oc_geodata'): newr = Geodata(**record) newr.save() elif (act_table == 'oc_mediafiles'): newr = Mediafile(**record) newr.save() elif (act_table == 'oc_documents'): newr = OCdocument(**record) newr.save() elif (act_table == 'oc_persons'): newr = Person(**record) newr.save() elif (act_table == 'oc_projects'): newr = Project(**record) newr.save() elif (act_table == 'oc_strings'): newr = OCstring(**record) newr.save() elif (act_table == 'oc_types'): newr = OCtype(**record) newr.save() elif (act_table == 'oc_events'): newr = Event(**record) newr.save() elif (act_table == 'oc_predicates'): newr = Predicate(**record) newr.save() elif (act_table == 'oc_identifiers'): newr = StableIdentifer(**record) newr.save() elif (act_table == 'oc_obsmetadata'): newr = ObsMetadata(**record) newr.save()
def check_exists(self, uuid): """ checks to see if the input profile exists """ if self.exists_ok is None: self.uuid = uuid ok = True try: self.inp_prof = InputProfile.objects.get(uuid=uuid) self.label = self.inp_prof.label self.project_uuid = self.inp_prof.project_uuid except InputProfile.DoesNotExist: self.inp_prof = False ok = False if ok and self.project_uuid == '0': self.project_man = Manifest() self.project_man.label = 'Open Context (General Project)' self.project = Project() self.project.label = self.project_man.label self.project.slug = 'oc' if ok and self.project_uuid != '0': try: self.project_man = Manifest.objects.get( uuid=self.project_uuid, item_type='projects') except Manifest.DoesNotExist: self.project_man = False ok = False if ok and self.project_uuid != '0': try: self.project = Project.objects.get(uuid=self.project_uuid) self.project.label = self.project_man.label self.project.slug = self.project_man.slug except Project.DoesNotExist: self.project = False ok = False self.exists_ok = ok else: ok = self.exists_ok return ok
def create_project(self, label, short_des): """ Creates a new project in the Manifest and projects tables """ uuid = GenUUID.uuid4() man_proj = Manifest() man_proj.uuid = uuid man_proj.label = label man_proj.source_id = 'manual' man_proj.item_type = 'projects' man_proj.project_uuid = uuid man_proj.des_predicate_uuid = '' man_proj.class_uri = '' man_proj.views = 0 man_proj.save() pobj = Project() pobj.uuid = uuid pobj.source_id = 'manual' pobj.project_uuid = uuid pobj.label = label pobj.edit_status = 0 pobj.short_des = short_des pobj.content = '' pobj.save() return uuid