def _create_meta(self, visit_name, site_code): # TODO: use the download.utils.SiteVisitDatasheetWriter to write the metadata wb = Workbook() mapping = DATASHEET_META_MAPPING meta_ws = wb.active # rewrite the sheet name in case of the 'Sheet' selection. meta_ws.title = mapping.sheet_name col_headers = [util_model.get_field_verbose_name(Visit, 'name'), util_model.get_field_verbose_name(Site, 'site_code')] # write column headers top_cell = meta_ws.cell(row=mapping.top_left_row, column=mapping.top_left_column) writing_direction = mapping.next_col_direction util_xls.write_values_from_cell(top_cell, col_headers, writing_direction) # write values values = [visit_name, site_code] top_cell = util_xls.get_cell_neighbour(top_cell, mapping.next_row_direction) util_xls.write_values_from_cell(top_cell, values, writing_direction) return wb
def _populate_site_characteristics(self): # export the site characteristic data from the Site mapping = get_mapping_for_model(SiteCharacteristic) if mapping is not None: row = [ self.site.underlaying_geology.value if self.site.underlaying_geology else "", self.site.closest_water_distance, self.site.closest_water_type.value if self.site.closest_water_type else "", self.site.landform_pattern.value if self.site.landform_pattern else "", self.site.landform_element.value if self.site.landform_element else "", self.site.soil_surface_texture.value if self.site.soil_surface_texture else "", self.site.soil_colour, self.site.comments, ] ws = util_xls.get_or_create_sheet(self.wb, mapping.sheet_name) top_cell = ws.cell(row=mapping.top_left_row, column=mapping.top_left_column) start_cell = util_xls.get_cell_neighbour(top_cell, mapping.next_row_direction) writing_direction = mapping.next_col_direction util_xls.write_values_from_cell(start_cell, row, writing_direction)
def _write_meta(self): mapping = DATASHEET_META_MAPPING meta_ws = util_xls.get_sheet(self.wb, mapping.sheet_name) or util_xls.get_sheet(self.wb, 'Sheet') # rewrite the sheet name in case of the 'Sheet' selection. meta_ws.title = mapping.sheet_name if meta_ws is None: meta_ws = self.wb.create_sheet(0, mapping.sheet_name) # write the visit name # populate Meta with visit/site details (very rough) col_headers = [util_model.get_field_verbose_name(Visit, 'name'), util_model.get_field_verbose_name(Site, 'site_code')] # write column headers top_cell = meta_ws.cell(row=mapping.top_left_row, column=mapping.top_left_column) writing_direction = mapping.next_col_direction util_xls.write_values_from_cell(top_cell, col_headers, writing_direction, self.column_header_font) # write values if self.visit and self.site: values = [self.visit.name, self.site.site_code] top_cell = util_xls.get_cell_neighbour(top_cell, mapping.next_row_direction) util_xls.write_values_from_cell(top_cell, values, writing_direction) return meta_ws