示例#1
0
def _generate_name_query(pattern, names, exact):
    vorname, zweiter_vorname, vorname_kurz, nachname = name_logic.parse_name_combination(
        names, pattern)

    vorname = escape_SQL(vorname)
    nachname = escape_SQL(nachname)
    vorname_kurz = escape_SQL(vorname_kurz)
    zweiter_vorname = escape_SQL(zweiter_vorname)

    # Problem Adèle Thorens-Goumaz vs Adèle Thorens Goumaz

    # case Stefan vs Stefano Kunz (person_id 390 and 663)
    # case Streiff vs Streiff-Feller (parlamentarier_id 195)
    if exact:
        query = " AND (nachname = '{}' OR nachname = '{}' OR nachname = '{}')".format(
            vorname, nachname, nachname.replace('-', ' '),
            re.sub(r'-.*', '', nachname))
        if vorname:
            query += " AND vorname = '{}'".format(vorname)
        if zweiter_vorname:
            query += " AND zweiter_vorname = '{}'".format(zweiter_vorname)
        if vorname_kurz:
            query += " AND vorname_kurz = '{}'".format(vorname_kurz)
    else:
        query = " AND (vorname LIKE '{}%' OR vorname_kurz LIKE '{}%') AND (nachname LIKE '{}%' OR nachname LIKE '{}%' OR nachname LIKE '{}%' OR nachname LIKE '%{}')".format(
            vorname, vorname_kurz, nachname, nachname.replace('-', ' '),
            re.sub(r'-.*', '', nachname), nachname)
        if zweiter_vorname:
            query += " AND zweiter_vorname LIKE '{}%'".format(zweiter_vorname)

    return query
示例#2
0
def _generate_name_query(pattern, names):
    vorname, zweiter_vorname, nachname = name_logic.parse_name_combination(
        names, pattern)

    query = " AND vorname LIKE '{}%' AND nachname LIKE '{}%'".format(
        vorname, nachname)
    if zweiter_vorname:
        query += " AND zweiter_vorname LIKE '{}%'".format(zweiter_vorname)

    return query
示例#3
0
def _generate_name_query(names, pattern):
    vorname, zweiter_vorname, nachname = name_logic.parse_name_combination(
        pattern, names)

    query = " AND vorname LIKE '{}%' AND nachname LIKE '{}%'".format(
        vorname, nachname)
    if zweiter_vorname:
        query += " AND zweiter_vorname LIKE '{}%'".format(zweiter_vorname)

    return query