コード例 #1
0
def today_uurregistratie(user):
    bericht = ''
    registraties = get_nritemuurregistraties(aantalitems=7, user=user)
    pprint(registraties)
    for reg in registraties:
        if reg['actie'] == 'opmerking':
            bericht += '\n'+vertaler.vertaal(text='Opmerking',user=user)+': '+reg['time']+'\n      '+reg['opmerking']
        else:
            bericht += '\n'+vertaler.vertaal(text=reg['actie'],user=user) + ': ' + reg['time']+'\n'
    if bericht == '':
        bericht = vertaler.vertaal(text='Tijdsregistratie',user=user)
    return bericht
コード例 #2
0
def send_start(id):
    but = []
    user = DB.get_user(str(id))
    afdelingen = user['afdeling']
    for afdeling, toelating in afdelingen.items():
        afdel = {}
        afdel[vertaal(afdeling, user)] = str(id) + '_open_afdeling_' + afdeling
        but.append(afdel)
    BNinstellingen = {
        '<<< ' + vertaal('Instellingen', user): str(id) + '_instellingen_user'
    }
    but.append(BNinstellingen)
    send_msg(text='Kies een afdeling:', user=user, but=but)
コード例 #3
0
def send_instellingen_user(id):
    user = DB.get_user(str(id))
    but = []
    BNmorpremission = {
        vertaal('Vraag meer toegangen', user):
        str(user['id']) + '_meer_toegangen'
    }
    but.append(BNmorpremission)
    BNterug = {
        '<<< ' + vertaal('Terug', user): str(id) + '_terug_naar_afdelingen'
    }
    but.append(BNterug)
    send_msg('Instellingen', user, but)
コード例 #4
0
def send_msg(text, user, but=[]):
    try:
        bot.editMessageText(text=vertaal(text=text, user=user),
                            msg_identifier=(user['id'], user['last_msg_id']),
                            reply_markup=InlineKeyboardMarkup(
                                inline_keyboard=kb.Set_InlineKeyboard(but)))
    except:
        bericht = bot.sendMessage(
            chat_id=user['id'],
            text=vertaal(text=text, user=user),
            reply_markup=InlineKeyboardMarkup(
                inline_keyboard=kb.Set_InlineKeyboard(but)))
        DB.add_user_data(user['id'], 'last_msg_id', bericht['message_id'])
コード例 #5
0
def send_lijstvoertuigen(user, text):
    but = []
    afdeling = user['nu_afdeling']
    if afdeling == '':
        return False
    afdelingen = DB.get_afdelingen()
    types = [x for x in afdelingen if x['naam'] == afdeling][0]['header1']
    voertuigen = WacsClient.GetListVoertuigen()

    if len(text) < 4:
        while len(text) < 3:
            text = '0' + text
        zoekcriteria = 'Name'
        result = [
            x for x in voertuigen if x['Active'] and x['Type'].upper() in types
            and text in x[zoekcriteria]
        ]
    else:
        zoekcriteria = 'Header1'
        result1 = [
            x for x in voertuigen if x['Active'] and x['Type'].upper() in types
        ]
        result = []
        for x in result1:
            if x[zoekcriteria] != None:
                if text.upper() in x[zoekcriteria]:
                    result.append(x)
    if len(result):
        bericht = 'Kies jouw voertuig.'
        if len(result) > 15:
            bericht = 'Je imput was niet specifiek genoeg.'
        else:
            for asset in result:
                name = asset['Name'].split(' ')[0]
                buttonname = vertaal(
                    asset['Type'], user) + ' ' + name + ' ' + asset['Header1']
                afdel = {}
                afdel[buttonname] = str(
                    user['id']) + '_' + user['nu_toelating'] + '_Vgnr_' + name
                but.append(afdel)
    else:
        bericht = 'Geen voertuigen gevonden'

    BNterug = {
        '<<<' + vertaal('Terug', user):
        str(user['id']) + '_terug_naar_toelatingen_' + user['nu_afdeling']
    }
    but.append(BNterug)
    send_msg(bericht, user, but)
コード例 #6
0
def send_toelating(id, afdeling, toelating, msg=None):
    user = DB.get_user(str(id))
    but = []
    BNterug = {
        '<<< ' + vertaal('Terug', user):
        str(id) + '_terug_naar_toelatingen_' + afdeling
    }

    DB.add_user_data(user['id'], 'nu_afdeling', afdeling)
    DB.add_user_data(user['id'], 'nu_toelating', toelating)
    if toelating in [
            'Voertuiglocatie', 'Herstelaanvraag', 'Bandendrukken',
            'Voertuiginfo'
    ] and user['nu_voertuig'] == '':
        but.append(BNterug)
        send_msg('Wat is de nummer of nummerplaat van de machine?', user, but)
    elif toelating in ['Tijdsregistratie']:
        but.append(BNterug)
        send_msg(
            'Welkom bij de tijdsregistratie-module\n\nTelkens je op de knop [start dag] of [einde dag] klikt gaan we ook naar je huidige locatie vragen.\nVoor een opmerking stuur je me nu een berichtje.',
            user, but)
        bericht = DB.today_uurregistratie(user)
        send_msg_location(text=bericht, user=user)

    else:
        send_asset_info(id, toelating)
コード例 #7
0
def send_afdeling(id, afdeling):
    but = []
    user = DB.get_user(str(id))
    toegangen = user['afdeling'][afdeling]

    if (len(toegangen) % 2) == 0:
        for x, y in grouped(toegangen, 2):
            afdel = {}
            afdel[vertaal(
                x, user)] = str(id) + '_open_toegang_' + afdeling + '_' + x
            afdel[vertaal(
                y, user)] = str(id) + '_open_toegang_' + afdeling + '_' + y
            but.append(afdel)
        BNterug = {
            '<<< ' + vertaal('Terug', user): str(id) + '_terug_naar_afdelingen'
        }
        but.append(BNterug)
    else:
        for x, y in grouped(toegangen[:-1], 2):
            afdel = {}
            afdel[vertaal(
                x, user)] = str(id) + '_open_toegang_' + afdeling + '_' + x
            afdel[vertaal(
                y, user)] = str(id) + '_open_toegang_' + afdeling + '_' + y
            but.append(afdel)
        last = {}
        last['<<< ' +
             vertaal('Terug', user)] = str(id) + '_terug_naar_afdelingen'
        last[vertaal(
            toegangen[-1], user
        )] = str(id) + '_open_toegang_' + afdeling + '_' + toegangen[-1]
        but.append(last)
    send_msg('Wat wil je doen?', user, but)
コード例 #8
0
def send_new_start(id):
    but = []
    user = DB.get_user(str(id))
    afdelingen = user['afdeling']
    for afdeling, toelating in afdelingen.items():
        afdel = {}
        afdel[vertaal(afdeling, user)] = str(id) + '_open_afdeling_' + afdeling
        but.append(afdel)
    BNinstellingen = {
        '<<< ' + vertaal('Instellingen', user): str(id) + '_instellingen_user'
    }
    but.append(BNinstellingen)
    bericht = bot.sendMessage(chat_id=user['id'],
                              text=vertaal(text='Kies een afdeling:',
                                           user=user),
                              reply_markup=InlineKeyboardMarkup(
                                  inline_keyboard=kb.Set_InlineKeyboard(but)))
    DB.add_user_data(user['id'], 'last_msg_id', bericht['message_id'])
コード例 #9
0
ファイル: telegram.py プロジェクト: FilipHertsens/Hertsens
def on_chat_message(msg):
    pprint(msg)
    content_type, chat_type, chat_id = telepot.glance(msg)
    user = DB.get_user(str(chat_id))
    delete_msg(chat_id, msg['message_id'])
    if not user:
        user = DB.add_user(msg)

    if 'location' in msg:
        if user['nu_toelating'] == 'Tijdsregistratie':
            sm.send_tijdsregistratie_locatie(user=user, locatie=msg['location'])
            print ('%-25s%-25s%-60s%-20s' % ('[LOCATIE]', user['naam'], 'locatie ontvangen', sm.get_time()))

    elif 'text' in msg:
        tx = msg['text']
        text = '[BERICHT]'
        print ('%-25s%-25s%-60s%-20s' % (text, user['naam'], tx, sm.get_time()))
        if tx[0] == '/':
            if tx == '/start':
                if 'afdelingen' in user:
                    idd = user['id']
                    sm.send_new_start(id=idd)
                else:
                    bericht = bot.sendMessage(chat_id=chat_id, text=vertaal(
                        text='We hebben een toegangsaanvraag voor jou verstuurd.', user=user))
                    DB.add_user_data(chat_id, 'last_msg_id', bericht['message_id'])
                    teleadmin.send_new_user(user)

        elif 'afdeling' in user:
            if 'nu_toelating' in user:
                toelating = user['nu_toelating']
                if toelating not in ['Tijdsregistratie']:
                    sm.send_lijstvoertuigen(user=user, text=tx)
                else:
                    sm.send_tijdsregistratie_opmerking(user, tx)

        else:
            bericht = bot.sendMessage(chat_id=chat_id, text=vertaal(
                text='We hebben een toegangsaanvraag voor jouw verstuurd.', user=user))
            DB.add_user_data(chat_id, 'last_msg_id', bericht['message_id'])
            teleadmin.send_new_user(user)
コード例 #10
0
def send_msg_location(text, user):
    textbutton = DB.nexxt_uurregistratie(user) + ' werkdag'

    try:
        telegram.delete_msg(user['id'], user['last_tijdregistratie_id'])
    except:
        None
    bericht = bot.sendMessage(
        text=text,
        chat_id=user['id'],
        reply_markup=ReplyKeyboardMarkup(keyboard=[[
            KeyboardButton(text=vertaal(textbutton, user),
                           request_location=True)
        ]]))
    DB.add_user_data(user['id'], 'last_tijdregistratie_id',
                     bericht['message_id'])
コード例 #11
0
def send_asset_info(idd, infoset):
    but = []
    user = DB.get_user(str(idd))
    toegangen = user['afdeling'][user['nu_afdeling']]
    if user['nu_toelating'] in toegangen:
        toegangen.remove(user['nu_toelating'])
    if 'Tijdsregistratie' in toegangen: toegangen.remove('Tijdsregistratie')
    if (len(toegangen) % 2) == 0:
        for x, y in grouped(toegangen, 2):
            afdel = {}
            afdel[vertaal(x, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + x + \
                                '_Vgnr_' + user['nu_voertuig']
            afdel[vertaal(y, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + y + \
                                '_Vgnr_' + user['nu_voertuig']
            but.append(afdel)
        BNterug = {
            '<<< ' + vertaal('Terug', user):
            str(idd) + '_terug_naar_afdelingen'
        }
        but.append(BNterug)
    else:
        for x, y in grouped(toegangen[:-1], 2):
            afdel = {}
            afdel[vertaal(x, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + x + \
                                '_Vgnr_' + user['nu_voertuig']
            afdel[vertaal(y, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + y + \
                                '_Vgnr_' + user['nu_voertuig']
            but.append(afdel)
        last = {}
        last['<<< ' +
             vertaal('Terug', user)] = str(idd) + '_terug_naar_afdelingen'
        last[vertaal(toegangen[-1], user)] = str(
            idd) + '_open_toegang_' + user['nu_afdeling'] + '_' + toegangen[-1]
        but.append(last)

    bericht = infoset
    send_msg(vertaal(bericht, user) + ' : ' + user['nu_voertuig'], user, but)
コード例 #12
0
ファイル: telegram.py プロジェクト: FilipHertsens/Hertsens
def on_callback_query(msg):
    query_id, from_id, query_data = telepot.glance(msg, flavor='callback_query')
    user = DB.get_user(str(from_id))

    text = '[BUTTON]'
    print('%-25s%-25s%-60s%-20s' % (text, user['naam'], msg['data'], sm.get_time()))

    if '_Vgnr_' in query_data:
        nr = query_data.split('_Vgnr_')[1]
        DB.add_user_data(user['id'], 'nu_voertuig', nr)

    if 'Del_msg' in query_data:
        delete_msg(from_id, msg['message']['message_id'])

    elif '_add_afdeling_weigeren' in query_data:
        idd = int(query_data.split('_')[0])
        bot.sendMessage(chat_id=idd, text=vertaal(text='Je krijgt geen extra toegang', user=idd))
        delete_msg(from_id, msg['message']['message_id'])

    elif '_add_afdeling_' in query_data:
        idd = int(query_data.split('_')[0])
        afdeling = query_data.split('_')[3]
        teleadmin.send_toelating(afdeling1=afdeling, id=idd)

    elif '_add_afdelingtoelating_' in query_data:
        idd = int(query_data.split('_')[0])
        afdeling = query_data.split('_')[3]
        toelating = query_data.split('_')[4]
        DB.add_user_toelating(idd, afdeling, toelating)

    elif 'startgebruiker_' in query_data:
        idd = int(query_data.split('_')[1])
        sm.send_start(id=idd)

    elif '_open_afdeling_' in query_data:
        idd = int(query_data.split('_')[0])
        afdeling = query_data.split('_')[3]
        sm.send_afdeling(id=idd, afdeling=afdeling)
        DB.add_user_data(user['id'], 'nu_afdeling', afdeling)

    elif '_terug_naar_afdelingen' in query_data:
        idd = int(query_data.split('_')[0])
        sm.send_start(id=idd)
        DB.add_user_data(user['id'], 'nu_afdeling', '')
        DB.add_user_data(user['id'], 'nu_toelating', '')
        DB.add_user_data(user['id'], 'nu_voertuig', '')



    elif '_terug_naar_toelatingen_' in query_data:
        idd = int(query_data.split('_')[0])
        afdeling = query_data.split('_')[4]
        sm.send_afdeling(id=idd, afdeling=afdeling)
        DB.add_user_data(user['id'], 'nu_afdeling', afdeling)
        DB.add_user_data(user['id'], 'nu_toelating', '')
        DB.add_user_data(user['id'], 'last_tijdregistratie_id', '')
        DB.add_user_data(user['id'], 'nu_voertuig', '')
        if 'last_tijdregistratie_id' in user:
            if user['last_tijdregistratie_id'] != '':
                delete_msg(idd,user['last_tijdregistratie_id'])


    elif '_instellingen_user' in query_data:
        idd = int(query_data.split('_')[0])
        sm.send_instellingen_user(id=idd)

    elif '_meer_toegangen' in query_data:
        idd = int(query_data.split('_')[0])
        user = DB.get_user(str(idd))
        teleadmin.send_new_user(user)


    elif '_open_toegang_' in query_data:
        idd = int(query_data.split('_')[0])
        afdeling = query_data.split('_')[3]
        toelating = query_data.split('_')[4]
        sm.send_toelating(id=idd, afdeling=afdeling, toelating=toelating)

    elif '_Vgnr_' in query_data:
        idd = int(query_data.split('_')[0])
        infoset = query_data.split('_')[1]
        sm.send_asset_info(idd=idd, infoset=infoset)

    else:
        idd = user['id']
        sm.send_start(id=idd)