def createCases_returnMap(self, file, fields, archive_id): data = {} reader = csv.reader(file, skipinitialspace=True, delimiter=b",", quoting=csv.QUOTE_MINIMAL, quotechar=b'"') for line in reader: row = {} case_id = 0 for f, d in zip(fields, line): c = d.strip() if str(f) == "case_id": case_id = int(c) elif str(f) == "year": row["year"], row["year_text"] = self._determine_year(c) elif str(f) == "actiontype": row["actiontype"] = FindInList( self.actiontypes, "actiontype", c, default={"id": 35, "actiontype": ""} )["id"] elif str(f) == "county": row["county"] = FindInList(self.counties, "county", c, default={"id": 1, "county": ""})["id"] elif str(f) == "court": row["court"] = FindInList(self.courts, "court", c, default={"id": 1, "court": ""})["id"] elif str(f) == "call_number": row["call_number"] = FindInList( self.callnumbers, "call_number", c, default={"id": 8, "call_number": ""} )["id"] elif str(f) == "container": row["container"] = FindInList(self.containers, "container", c, default={"id": 1, "container": ""})[ "id" ] else: row[f] = c.replace("\n", "").replace("\r", "").replace('"', "") row["archive"] = archive_id row["import_file"] = self.request.params.get("import.marker", "not provided") # ENFORCE CONTAINER TYPE container_enforcer = int(self.request.params.get("container.enforcer", 0)) if container_enforcer != 0: row["container"] = int(container_enforcer) # ENFORCE CALLNUMBER callnumber_enforcer = int(self.request.params.get("callnumber.enforcer", 0)) if callnumber_enforcer != 0: row["call_number"] = int(callnumber_enforcer) cases = Cases(**row) lastid = cases.insert(self.request) print "Uploaded Case ID: " + str(lastid) data[case_id] = lastid return data
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)