def get_charts_geojson_scale_range_multiple_db_context(scale_ranges): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) geojson = repo.find_geojson_scale_range_multiple(catalogueDB, scale_ranges) ctx_scale_ranges = {} if SCALE_1_TEXT in scale_ranges: ctx_scale_ranges['sc1checked'] = 'checked' if SCALE_2_TEXT in scale_ranges: ctx_scale_ranges['sc2checked'] = 'checked' if SCALE_3_TEXT in scale_ranges: ctx_scale_ranges['sc3checked'] = 'checked' if SCALE_4_TEXT in scale_ranges: ctx_scale_ranges['sc4checked'] = 'checked' if SCALE_5_TEXT in scale_ranges: ctx_scale_ranges['sc5checked'] = 'checked' if SCALE_6_TEXT in scale_ranges: ctx_scale_ranges['sc6checked'] = 'checked' if SCALE_7_TEXT in scale_ranges: ctx_scale_ranges['sc7checked'] = 'checked' # print(geojson) context = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, 'charts_geojson': geojson, } ctx = {**get_base_context(), **context, **ctx_scale_ranges} return ctx
def generate_geojson_and_save_db(scale_range): catalogue = repo.get_latest_catalogue() chartsDB = [] for scale in scale_range: geojson = Geojson() if scale == SCALE_ALL_TEXT: chartsDB = Chart.objects.using(DB_SNC).filter(catalogue=catalogue) # .latest('id') geojson.scale_range = scale_range else: chartsDB = Chart.objects.using(DB_SNC).filter(catalogue=catalogue, max_scale_category=scale) # .latest('id') geojson.scale_range = scale print(scale) charts = service_converters.chartsDB_2_chartsDTO(chartsDB) if len(charts) > 0: gjson = generate_geojson(charts) geojson.json = gjson geojson.catalogue = catalogue geojson.cat_id = catalogue.id geojson.ready = True geojson.save(using=DB_SNC) return 'generated and saved in DB geojson for charts: ' + ', '.join(scale_range)
def get_charts_geojson_scale_range_single_db_context(scale_range): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) geojson = repo.find_geojson_scale_range_single(catalogueDB, scale_range) ctx_scale_ranges = {'sc1checked': 'checked', 'sc2checked': 'checked', 'sc3checked': 'checked', 'sc4checked': 'checked', 'sc5checked': 'checked', 'sc6checked': 'checked', 'sc7checked': 'checked' } # print(geojson) context = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, 'charts_geojson': geojson.json, } ctx = {**get_base_context(), **context, **ctx_scale_ranges} return ctx
def get_info_context(): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) context = { 'catalogue': catalogueDTO, } ctx = {**get_index_context(), **context} return ctx
def get_single_context(num): chart = ChartDTO() catalogueDB = repo.get_latest_catalogue() catalogue = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) if catalogueDB.chart_set.filter(number=num).exists(): chartDB = catalogueDB.chart_set.get(number=num) chart = service_converters.chartDB_2_chartDTO(chartDB) return chart
def generate_geojson_single_chart(num): geojson = '' catalogue = repo.get_latest_catalogue() if Chart.objects.using(DB_SNC).filter(catalogue=catalogue, number=num).exists(): chartDB = Chart.objects.using(DB_SNC).get(catalogue=catalogue, number=num) print(chartDB) chart = service_converters.chartDB_2_chartDTO(chartDB) geojson = generate_geojson([chart]) return geojson
def get_chs_index_context(): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) context = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, } ctx = {**get_base_context(), **context} return ctx
def get_charts(nums): charts = [] catalogueDB = repo.get_latest_catalogue() catalogue = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) for num in nums: if catalogueDB.chart_set.filter(number=num).exists(): chartDB = catalogueDB.chart_set.get(number=num) chart = service_converters.chartDB_2_chartDTO(chartDB) charts.append(chart) # print(charts[0]) # print(charts[0].polygons) return charts
def get_chart_single_geojson_db_context(num): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) geojson = repo.find_geojson_single(num) print(geojson) context = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, 'charts_geojson': geojson.json, } ctx = {**get_base_context(), **context} return ctx
def generate_geojson_and_save_db_8XXX(): catalogue = repo.get_latest_catalogue() chartsDB = catalogue.chart_set.all() charts = service_converters.chartsDB_2_chartsDTO_except8XXX(chartsDB) if len(charts) > 0: geojson = Geojson() gjson = generate_geojson(charts) geojson.scale_range = PORT_APPROACHES geojson.json = gjson geojson.catalogue = catalogue geojson.cat_id = catalogue.id geojson.ready = True geojson.save(using=DB_SNC) return 'generated and saved in DB geojson for 8XXX charts'
def get_charts_chs_geojson_file_context(file_path): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) charts_geojson = '' with open(file_path, 'r') as reader: charts_geojson = reader.read() context = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, 'charts_geojson': charts_geojson, } ctx = {**get_base_context(), **context} return ctx
def get_charts_chs_geojson_file_split_scale_context(file_path): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) # charts_geojson = '' # with open(CHS_GEOJSON_FILE_SCALE_1, 'r') as reader: # charts_geojson = reader.read() context_main = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, # 'charts_geojson': charts_geojson, } context_geojson = service_geojson_chs.create_split_scale_geojson_context(CHS_GEOJSON_FILE) ctx = {**get_base_context(), **context_main, **context_geojson} return ctx
def get_charts_geojson_scale_range_all_split_scales_db_context(scale_range): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) # dict of geojsons for each scale range geojson = repo.find_geojson_scale_range_all_split_scales(catalogueDB) # check boxes in charts.html ctx_scale_ranges_check = {'sc1checked': 'checked', 'sc2checked': 'checked', 'sc3checked': 'checked', 'sc4checked': 'checked', 'sc5checked': 'checked', 'sc6checked': 'checked', 'sc7checked': '' } ctx_scale_ranges = {'sc1_const': SCALE_1_TEXT, 'sc2_const': SCALE_2_TEXT, 'sc3_const': SCALE_3_TEXT, 'sc4_const': SCALE_4_TEXT, 'sc5_const': SCALE_5_TEXT, 'sc6_const': SCALE_6_TEXT, 'sc7_const': SCALE_7_TEXT, } # print(geojson) context = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, 'charts_geojson_scale_1': geojson['scale1'], 'charts_geojson_scale_2': geojson['scale2'], 'charts_geojson_scale_3': geojson['scale3'], 'charts_geojson_scale_4': geojson['scale4'], 'charts_geojson_scale_5': geojson['scale5'], 'charts_geojson_scale_6': geojson['scale6'], 'charts_geojson_scale_7': geojson['scale7'], 'charts_geojson_scale_8XXX': geojson['8XXX'], } ctx = {**get_base_context(), **context, **ctx_scale_ranges_check, **ctx_scale_ranges, **get_chs_catalogue_info_context()} return ctx
def get_search_multiple_context(nums): catalogueDB = repo.get_latest_catalogue() catalogue = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) # print(nums) charts = [] if len(nums) > 0 and len(nums) <= 15: for num in nums: if catalogueDB.chart_set.filter(number=num).exists(): chartDB = catalogueDB.chart_set.get(number=num) chart = service_converters.chartDB_2_chartDTO(chartDB) charts.append(chart) context = { 'catalogue': catalogue, 'charts': charts, 'search_multi_ok': 'Found ' + str(len(charts)) + ' chart(s)' } elif len(nums) > 15: nums_str = '' for n in nums: nums_str = nums_str + str(n) + ', ' context = { 'catalogue': catalogue, 'charts': charts, 'search_multi_ok': '', 'search_multi_error': 'Maximum allowed number of charts is 15.', 'search_multi_error1': 'You searched for ' + str(len(nums)) + ' charts.', 'search_multi_error2': nums_str } else: nums_str = '' for n in nums: nums_str = nums_str + ', ' + str(n) context = { 'catalogue': catalogue, 'charts': charts, 'search_multi_ok': '', 'search_multi_error': 'No charts found for search term: ' + '\'' + nums_str + '\'' } ctx = {**get_index_context(), **context, **get_chs_catalogue_info_context()} return ctx
def get_charts_chs_geojson_db_split_scale_context(): catalogueDB = repo.get_latest_catalogue() catalogueDTO = service_converters.catalogueDB_2_catalogueDTO(catalogueDB) context_main = { 'catalogue': catalogueDTO, 'google_api_key_dev_un': GOOGLE_API_KEY_DEV_UN, 'google_api_key_dev': GOOGLE_API_KEY_DEV, 'google_api_key_prod': GOOGLE_API_KEY_PROD, } geojson = repo.find_geojson_chs_scale_range() import_date = geojson.import_date import_date_short = import_date.strftime('%B %Y') context_geojson = { 'geojson_scale_1': geojson.json_scale_1, 'geojson_scale_2': geojson.json_scale_2, 'geojson_scale_3': geojson.json_scale_3, 'geojson_scale_4': geojson.json_scale_4, 'geojson_scale_5': geojson.json_scale_5, 'catalogue_id': geojson.id, 'import_date': geojson.import_date, 'import_date_short': import_date_short, 'total_chart_count': geojson.total_chart_count, 'scale_1': CHS_SCALE_1, 'scale_2': CHS_SCALE_2, 'scale_3': CHS_SCALE_3, 'scale_4': CHS_SCALE_4, } context_scale_ranges_check = {'sc1checked': 'checked', 'sc2checked': 'checked', 'sc3checked': 'checked', 'sc4checked': 'checked', 'sc5checked': 'checked', } ctx = {**get_base_context(), **context_main, **context_geojson, **context_scale_ranges_check} return ctx
def generate_geojson_and_save_db_single_charts(nums): catalogue = repo.get_latest_catalogue() processed = [] if len(nums) == 0: chartsDB = catalogue.chart_set.all() for chartDB in chartsDB: chart = service_converters.chartDB_2_chartDTO(chartDB) gjson = generate_geojson([chart]) geojson = Geojson() geojson.type = 'single' geojson.chart_number = chartDB.number geojson.json = gjson geojson.catalogue = catalogue geojson.cat_id = catalogue.id geojson.ready = True geojson.save(using=DB_SNC) processed.append(chartDB.number) else: for num in nums: if Chart.objects.using(DB_SNC).filter(catalogue=catalogue, number=num).exists(): chartDB = Chart.objects.using(DB_SNC).get(catalogue=catalogue, number=num) chart = service_converters.chartDB_2_chartDTO(chartDB) gjson = generate_geojson([chart]) geojson = Geojson() geojson.type = 'single' geojson.chart_number = num geojson.json = gjson geojson.catalogue = catalogue geojson.cat_id = catalogue.id geojson.ready = True geojson.save(using=DB_SNC) processed.append(num) return 'generated and saved in DB geojson for charts: ' + str(range)