def createEntitiesCleanup(self, file, fields, cases_map, fix): reader = csv.reader(file, skipinitialspace=True, delimiter=b",", quoting=csv.QUOTE_MINIMAL, quotechar=b'"') for line in reader: row = {} for f, d in zip(fields, line): c = d.strip() if f == "case_id": if c == "": row[f] = 0 else: row[f] = cases_map[int(c)] elif str(f) == "role": row["role"] = FindInList(self.roles, "role", c, default={"id": 1, "role": ""})["id"] elif str(f) == "prefix": row["prefix"] = FindInList(self.prefixs, "prefix", c, default={"id": 1, "prefix": ""})["id"] elif str(f) == "suffix": row["suffix"] = FindInList(self.suffixs, "suffix", c, default={"id": 1, "suffix": ""})["id"] else: row[f] = c.replace("\n", "").replace("\r", "").replace('"', "").strip() row["import_file"] = self.request.params.get("import.marker", "not provided") if fix: self._fix_firstname_issues_and_insert(row) else: entities = Entities(**row) lastid = entities.insert(self.request) print "Uploaded Entity ID: " + str(lastid)
def _fix_firstname_issues_and_insert(self, row): firstname = row["firstname"].replace(" and ", "|") firstname = firstname.replace(" & ", "|") firstname = firstname.replace(", ", "|") entities = firstname.split("|") for e in entities: p, f, m, s = self._fix_firstnames(e) row["firstname"] = f row["middlename"] = m row["prefix"] = FindInList(self.prefixs, "prefix", p, default={"id": 1, "prefix": ""})["id"] row["suffix"] = FindInList(self.suffixs, "suffix", s, default={"id": 1, "suffix": ""})["id"] entities = Entities(**row) lastid = entities.insert(self.request) print "Uploaded 'CLEANED' Entity ID: " + str(lastid)
def _save(self, case_id): entities, new_entities = {}, {} cases, new_cases = {}, {} for k,v in self.request.params.items(): action, table, attr, id = k.split('.') if action == 'edit': if table == 'Entities': if id not in entities: entities[id] = { attr : v } else: entities[id][attr] = v if table == 'Cases': if id not in cases: cases[id] = { attr : v } else: cases[id][attr] = v if action == 'new': if table == 'Entities': if id not in new_entities: new_entities[id] = { attr : v } else: new_entities[id][attr] = v if table == 'Cases': if id not in new_cases: new_cases[id] = { attr : v } else: new_cases[id][attr] = v #new_cases[id]['year'] = self._determine_year # save new cases for k,v in new_cases.items(): case = Cases() for attr,value in v.items(): setattr(case,attr,value) case.year = self._determine_year(case.year_text)[0] case_id = case.insert(self.request) # save new entities for k,v in new_entities.items(): entity = Entities() for attr,value in v.items(): setattr(entity,attr,value) entity.case_id = case_id entity.insert(self.request) # save existing cases for k,v in cases.items(): case = Cases.load(id=k) for attr,value in v.items(): setattr(case,attr,value) case.year = self._determine_year(case.year_text)[0] case.save(self.request) # save existing entities for k,v in entities.items(): entity = Entities.load(id=k) for attr,value in v.items(): setattr(entity,attr,value) entity.save(self.request)