def build_schema(self): fields = get_detail_schema( DataSet(), 'dataset', lambda x: x.show_in_detail ) fields['datapointFile'] = get_schema_fieldinformation( 'datapoint_file','') fields['safVersion'] = get_schema_fieldinformation('saf_version','') fields['screeningFacility'] = get_schema_fieldinformation( 'screening_facility','') schema['fields'] = OrderedDict(sorted( fields.items(), key=lambda x: x[0])) return schema
def build_schema(self): schema = super(DataSetResource,self).build_schema() original_dict = schema['fields'] # TODO: reincorporate this information (this default information is about the DB schema definition) fields = get_detail_schema(DataSet(), 'dataset', lambda x: x.show_in_detail ) # Custom fields for SAF: TODO: generate the names here from the fieldinformation fields['datapointFile'] = get_schema_fieldinformation('datapoint_file','') fields['safVersion'] = get_schema_fieldinformation('saf_version','') fields['screeningFacility'] = get_schema_fieldinformation('screening_facility','') schema['fields'] = OrderedDict(sorted(fields.items(), key=lambda x: x[0])) # sort alpha, todo sort on fi.order ds_fieldinformation = DataSetDataResource.get_datasetdata_column_fieldinformation() ds_fieldinformation.append(('datapoint_value',get_fieldinformation('datapoint_value',[''])) ) ds_fieldinformation.append(('timepoint',get_fieldinformation('timepoint',[''])) ) ds_fieldinformation.append(('timepoint_unit',get_fieldinformation('timepoint_unit',[''])) ) ds_fieldinformation.append(('timepoint_description',get_fieldinformation('timepoint_description',[''])) ) meta_field_info = get_listing(FieldInformation(),['fieldinformation']) fields = {} for field,fi in ds_fieldinformation: field_schema_info = {} for item in meta_field_info.items(): meta_fi_attr = item[0] meta_fi = item[1]['fieldinformation'] field_schema_info[meta_fi.get_camel_case_dwg_name()] = getattr(fi,meta_fi_attr) fields[fi.get_camel_case_dwg_name()]= field_schema_info schema['datasetDataFile'] = OrderedDict(sorted(fields.items(), key=lambda x: x[0])) # sort alpha, todo sort on fi.order dc_fieldinformation = FieldInformation.objects.all().filter(table='datacolumn', show_in_detail=True) datapoint_fields = {} for fi in dc_fieldinformation: field_schema_info = {} for item in meta_field_info.items(): meta_fi_attr = item[0] meta_fi = item[1]['fieldinformation'] field_schema_info[meta_fi.get_camel_case_dwg_name()] = getattr(fi,meta_fi_attr) datapoint_fields[fi.get_camel_case_dwg_name()]= field_schema_info schema['datapointInformation'] = OrderedDict(sorted(datapoint_fields.items(), key=lambda x: x[0])) # sort alpha, todo sort on fi.order return schema