Beispiel #1
0
    def get_assaults_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        assaults_class = getattr(
            importlib.import_module("comport.data.models"),
            "AssaultOnOfficer{}".format(self.short_name))

        csv_schema = assaults_class.get_csv_schema()
        csv_headers = [col[0] for col in csv_schema]
        csv_vars = [col[1] for col in csv_schema]

        writer.writerow(csv_headers)

        incidents = assaults_class.query.all()

        for incident in incidents:
            values = []
            for incident_var in csv_vars:
                incident_value = getattr(incident, incident_var)
                if incident_var == "occured_date":
                    incident_value = coalesce_date(incident_value)
                values.append(incident_value)

            writer.writerow(values)

        return output.getvalue()
Beispiel #2
0
    def get_assaults_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        assaults_class = getattr(importlib.import_module("comport.data.models"), "AssaultOnOfficer{}".format(self.short_name))

        csv_schema = assaults_class.get_csv_schema()
        csv_headers = [col[0] for col in csv_schema]
        csv_vars = [col[1] for col in csv_schema]

        writer.writerow(csv_headers)

        incidents = assaults_class.query.all()

        for incident in incidents:
            values = []
            for incident_var in csv_vars:
                incident_value = getattr(incident, incident_var)
                if incident_var == "occured_date":
                    incident_value = coalesce_date(incident_value)
                values.append(incident_value)

            writer.writerow(values)

        return output.getvalue()
Beispiel #3
0
    def get_complaint_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        complaint_class = getattr(
            importlib.import_module("comport.data.models"),
            "CitizenComplaint{}".format(self.short_name))

        csv_schema = complaint_class.get_csv_schema()
        csv_headers = [col[0] for col in csv_schema]
        csv_vars = [col[1] for col in csv_schema]

        writer.writerow(csv_headers)

        complaints = complaint_class.query.all()

        for complaint in complaints:
            values = []
            for incident_var in csv_vars:
                incident_value = getattr(complaint, incident_var)
                if incident_var.endswith("_date"):
                    incident_value = coalesce_date(incident_value)
                values.append(incident_value)

            writer.writerow(values)

        return output.getvalue()
Beispiel #4
0
    def get_uof_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        writer.writerow(["id", "occurredDate", "division", "district", "shift", "beat",
                         "useOfForceReason", "officerForceType", "disposition",
                         "serviceType", "arrestMade", "arrestCharges", "residentInjured",
                         "residentHospitalized", "residentCondition", "officerInjured",
                         "officerHospitalized", "officerCondition", "residentRace",
                         "residentSex", "residentAge", "officerRace", "officerSex",
                         "officerAge", "officerYearsOfService", "officerIdentifier"])

        use_of_force_incidents = self.use_of_force_incidents

        for incident in use_of_force_incidents:
            occured_date = coalesce_date(incident.occured_date)
            values = [
                incident.opaque_id,
                occured_date,
                incident.division,
                incident.precinct,
                incident.shift,
                incident.beat,
                incident.use_of_force_reason,
                incident.officer_force_type,
                incident.disposition,
                incident.service_type,
                incident.arrest_made,
                incident.arrest_charges,
                incident.resident_injured,
                incident.resident_hospitalized,
                incident.resident_condition,
                incident.officer_injured,
                incident.officer_hospitalized,
                incident.officer_condition,
                incident.resident_race,
                incident.resident_sex,
                incident.resident_age,
                incident.officer_race,
                incident.officer_sex,
                incident.officer_age,
                incident.officer_years_of_service,
                incident.officer_identifier
            ]
            writer.writerow(values)

        return output.getvalue()
Beispiel #5
0
    def get_complaint_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        writer.writerow(["id","occuredDate","serviceType", "source","division",
        "district","shift","beat","finding","allegationType",
        "allegation","censusTract","residentRace",
        "residentSex","residentAge","officerRace","officerSex","officerAge",
        "officerYearsOfService","officerIdentifier"])

        complaints = self.citizen_complaints

        for complaint in complaints:
            occured_date = coalesce_date(complaint.occured_date)
            values = [
                complaint.opaque_id,
                occured_date,
                complaint.service_type,
                complaint.source,
                complaint.division,
                complaint.precinct,
                complaint.shift,
                complaint.beat,
                complaint.disposition,
                complaint.allegation_type,
                complaint.allegation,
                complaint.census_tract,
                complaint.resident_race,
                complaint.resident_sex,
                complaint.resident_age,
                complaint.officer_race,
                complaint.officer_sex,
                complaint.officer_age,
                complaint.officer_years_of_service,
                complaint.officer_identifier
            ]
            writer.writerow(values)

        return output.getvalue()
Beispiel #6
0
    def get_ois_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        writer.writerow(["id", "occurredDate", "division", "district", "shift", "beat",
                         "disposition", "residentWeaponUsed", "officerWeaponUsed",
                         "serviceType", "residentCondition", "officerCondition",
                         "residentRace", "residentSex", "residentAge", "officerRace",
                         "officerSex", "officerAge", "officerYearsOfService",
                         "officerIdentifier"])

        officer_involved_shootings = self.officer_involved_shootings
        for incident in officer_involved_shootings:
            occured_date = coalesce_date(incident.occured_date)
            values = [
                incident.opaque_id,
                occured_date,
                incident.division,
                incident.precinct,
                incident.shift,
                incident.beat,
                incident.disposition,
                incident.resident_weapon_used,
                incident.officer_weapon_used,
                incident.service_type,
                incident.resident_condition,
                incident.officer_condition,
                incident.resident_race,
                incident.resident_sex,
                incident.resident_age,
                incident.officer_race,
                incident.officer_sex,
                incident.officer_age,
                incident.officer_years_of_service,
                incident.officer_identifier
            ]
            writer.writerow(values)

        return output.getvalue()
Beispiel #7
0
    def get_complaint_csv(self):
        output = io.StringIO()

        writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)

        writer.writerow(["id", "occurredDate", "division", "district", "shift",
                         "beat", "serviceType", "source", "allegationType",
                         "allegation", "finding", "residentRace", "residentSex",
                         "residentAge", "officerRace", "officerSex", "officerAge",
                         "officerYearsOfService", "officerIdentifier"])

        complaints = self.citizen_complaints

        for complaint in complaints:
            occured_date = coalesce_date(complaint.occured_date)
            values = [
                complaint.opaque_id,
                occured_date,
                complaint.division,
                complaint.precinct,
                complaint.shift,
                complaint.beat,
                complaint.service_type,
                complaint.source,
                complaint.allegation_type,
                complaint.allegation,
                complaint.disposition,
                complaint.resident_race,
                complaint.resident_sex,
                complaint.resident_age,
                complaint.officer_race,
                complaint.officer_sex,
                complaint.officer_age,
                complaint.officer_years_of_service,
                complaint.officer_identifier
            ]
            writer.writerow(values)

        return output.getvalue()