예제 #1
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
예제 #2
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
예제 #3
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
예제 #4
0
def find_charts(nums):
    charts = []
    catalogueDB = get_latest_catalogue()
    # catalogue = service_converters.catalogueDB_2_catalogueDTO(catalogueDB)

    if len(nums) == 0:
        nums = range(1, 3)
    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)
    return charts
예제 #5
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)
예제 #6
0
def print_chart_detail():
    catalogue = get_latest_catalogue()

    if catalogue != '':
        chartsDB = Chart.objects.using(DB_SNC).filter(catalogue=catalogue.id,
                                                      number='1006')

        for ch in chartsDB:
            chart = service_converters.chartDB_2_chartDTO(ch)

            print('\n')
            print('chart number----------------')
            print(chart.number)
            print(chart.title)
            print(chart.scale)
            print(chart.status)
            print(chart.status_date)
            print(chart.folio)
            print(chart.cat_number)

            print('chart polygons----------------')
            print(chart.polygons)
            if len(chart.polygons) > 0:
                print(len(chart.polygons))
                print(chart.polygons[0].positions[0].lat)
                print(chart.polygons[0].positions[0].lon)

            print('panels----------------')
            print(chart.panels)
            if len(chart.panels) > 0:
                print(chart.panels[0].polygons)
                print(chart.panels[0].polygons[0].positions[0].lat)
                print(chart.panels[0].polygons[0].positions[0].lon)

            print('notices----------------')
            print(chart.notices)
            if len(chart.notices) > 0:
                print(chart.notices[0].week)

    else:
        print('no catalogue loaded')
예제 #7
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