Пример #1
0
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
Пример #2
0
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)
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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'
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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
Пример #14
0
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
Пример #15
0
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
Пример #16
0
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)