예제 #1
0
def get_random_areas_localisation(foret):
    '''
        renvoie des localisations aléatoires
        TODO
    '''

    id_area = foret['areas_foret'][0]['id_area']
    area_foret = DB.session.query(TAreas).filter(
        id_area == TAreas.id_area).first()
    areas_localisation = []

    if area_foret.id_type == get_id_type('OEASC_ONF_FRT'):
        area_ONF_PRF = get_random_area_onf_prf(area_foret.area_code)

        if area_ONF_PRF:
            areas_localisation.append({'id_area': area_ONF_PRF['id_area']})
            area_ONF_UG = get_random_area_onf_ug(area_ONF_PRF['area_code'])
            if area_ONF_UG:
                areas_localisation.append({'id_area': area_ONF_UG['id_area']})

    if area_foret.id_type == get_id_type('OEASC_SECTION'):
        area = get_random_area_section_cadastre(area_foret.area_code)
        areas_localisation.append({'id_area': area['id_area']})

    if area_foret.id_type == get_id_type('OEASC_DGD'):
        area = get_random_area_dgd_cadastre(area_foret.area_code)
        areas_localisation.append({'id_area': area['id_area']})

    return areas_localisation
예제 #2
0
def get_random_area_commune():
    '''
        get_random_area_commune
    '''
    area = (DB.session.query(TAreas).filter(
        TAreas.id_type == get_id_type('OEASC_COMMUNE')).order_by(
            func.random()).first())
    if area:
        return area.as_dict()

    return None
예제 #3
0
def get_random_area_section_cadastre(area_code_section):
    '''
        get_random_area_section_cadastre
    '''
    area = (DB.session.query(TAreas).filter(
        TAreas.id_type == get_id_type('OEASC_CADASTRE')).filter(
            TAreas.area_code.like(area_code_section + '-%')).order_by(
                func.random()).first())

    if area:
        return area.as_dict()

    return None
예제 #4
0
def get_random_area_onf_ug(area_code_onf_prf):
    '''
        get_random_area_onf_ug
    '''
    area = (DB.session.query(TAreas).filter(
        TAreas.id_type == get_id_type('OEASC_ONF_UG')).filter(
            TAreas.area_code.like(area_code_onf_prf + '-%')).order_by(
                func.random()).first())

    if area:
        return area.as_dict()

    return None
예제 #5
0
def get_random_area_section(area_code_commune):
    '''
        get_random_area_section
    '''
    area = (DB.session.query(TAreas).filter(
        TAreas.id_type == get_id_type('OEASC_SECTION')).filter(
            TAreas.area_code.like(area_code_commune + '-%')).order_by(
                func.random()).first())

    if area:
        return area.as_dict()

    return None
예제 #6
0
def get_random_area_dgd_cadastre(area_code_dgd):
    '''
        get_random_area_dgd_cadastre
    '''
    res = DB.engine.execute(
        text("SELECT area_code_cadastre \
        FROM oeasc_forets.cor_dgd_cadastre \
        WHERE area_code_dgd = '{}' \
        ORDER BY RANDOM() \
        LIMIT 1;".format(area_code_dgd))).first()[0]
    area_code = res
    area = (DB.session.query(TAreas).filter(
        TAreas.id_type == get_id_type('OEASC_CADASTRE')).filter(
            TAreas.area_code == area_code).first())

    if area:
        return area.as_dict()

    return None