Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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)