Attaching code

#scheduler koda za pošiljanje mailov za stanje števcev
def send_mail_stevci(first_reminder = False):
    dons = datetime.datetime.now()
    #a = True
    try:
        if dons.day in [22,25,28]:
        #if a:
            counters_data_oddani = db((db.counters.c_date.year() == 
dons.year) &
                               (db.counters.c_date.month() == 
dons.month)).select(db.counters.c_user_inserted,
                                                                            
      db.counters.c_machine_id,
                                                                            
      db.machines.m_code,
                                                                            
      join= db.machines.on(db.machines.id == 
db.counters.c_machine_id)).as_list()
            users_machines = db(db.user_machines.um_status == 
1).select(db.user_machines.um_user,
                                        db.machines.m_code,
                                        db.machines.id,
                                        db.auth_user.email,
                                        join = 
[db.machines.on(db.user_machines.um_machine == db.machines.id),
                                        
db.auth_user.on(db.user_machines.um_user == db.auth_user.id)]).as_list()




            from itertools import groupby
            from operator import itemgetter

            nw_users_machines = []
            #pogledamo kaj vse mašine ki jih user ima in za katere ni še 
oddal ta mesec
            #glede na to mu bomo pol pošiljal maile
            for rec in users_machines:
                if not any(d['counters']['c_machine_id'] == 
rec["machines"]["id"] for d in counters_data_oddani):
                    nw_users_machines.append({"user": 
rec["user_machines"]["um_user"], "m_code" : rec["machines"]["m_code"], 
"email": rec["auth_user"]["email"],
                                          "machine_id": 
rec["machines"]["id"]})



            #print nw_masine_neoodanih

            masine_uporabnikov_unique = [dict(t) for t in 
set([tuple(d.items()) for d in nw_users_machines])]

            #sortiramo po worker_nick
            sortWorkers = sorted(masine_uporabnikov_unique , 
key=itemgetter('user'))
            #print sortWorkers
            grouper = lambda x: (x["user"])
            result = []
            #print masine_neoddanih_unique
            masine_uporabnikov_grupirane= []
            for key, grp in groupby(sorted(sortWorkers, key = grouper), 
grouper):
                group = list(grp)
                all_machines =  [item['m_code'] for item in group]
                all_machines_codes = [(item['machine_id']) for item in 
group]
                # print group
                # print group[0]["user"], all_machines
                masine_uporabnikov_grupirane.append({"user": 
group[0]["user"], "mail" :group[0]["email"], "machines": all_machines, 
"machines_codes": all_machines_codes})

            for neoddan in masine_uporabnikov_grupirane:
                #if neoddan["machines"]:
                if neoddan["mail"] == 'vid.og...@gmail.com':
                    mail_send = False
                    dan = dons.day
                    #dan = 28
                    msg = "Email ni bil poslan. Ali še ni pravi datum ali 
pa nekaj ne dela"
                    if dan == 22:

                        msg = """<html>Pozdravljeni,<br />
                        <br />
                        bliža se konec meseca in ponovno je čas, da 
pristopite k vašim napravam, jim ukažete, da vam pokažejo,
                        koliko ste jih v tem mesecu mučili s tiskanjem ter 
nam to sporočite preko našega portala.<br />
                        <br />
                        Oddati morate stanja števcev za naprave s kodami 
<b>%s </b>.<br />
                        <br />
                        Sledite povezavi:<br />
                        
http://stevci.bilban-resitve.si:8000/bilbanstevci/default/index/login
                        kjer se prijavite z vašim uporabniškim imenom in 
geslom, katerega že poznate, ter oddate stanja za vsako napravo,
                        ki jo uporabljate.<br />
                        <br />
                        Punce v našem podjetju vam bodo zelo hvaležne, saj 
jim boste olajšali delo. Prav tako vas ne bodo motile pri vašem delu
                        s prošnjami glede stanja števcev, saj imate 
zagotovo dovolj dela, ker se bliža konec meseca. <br />
                        <br />
                        Za vsa vprašanja smo vam na voljo na 
ste...@bilban-resitve.si <br />
                        <br />
                        Lep pozdrav<br />
                        <br />
                        Ekipa Bilban<br />
                        </html>""" % (', '.join(x for x in 
neoddan["machines"]))
                        #print msg
                        mail_send = mail_reminder(neoddan, msg)

                    elif dan == 25:
                        msg = """<html>Pozdravljeni,<br />
                        <br />
                        radi bi vam sporočili, da smo že <b>25.</b> v 
mesecu, sistem pa nam sporoča, da nam še niste sporočili
                        stanja števcev vaših naprav. Res bi bili veseli in 
hvaležni, če lahko to uredite v čimkrajšem času.<br />
                        <br />
                        Za naprave s kodami <b> %s </b> še niste oddali 
stanja števcev. <br />
                        <br />
                        Prosimo sledite povezavi:<br />
                        
http://stevci.bilban-resitve.si:8000/bilbanstevci/default/index/login <br />
                        kjer se prijavite z vašim uporabniškim imenom in 
geslom, katerega že poznate, ter oddate stanja za vsako napravo,
                        ki jo uporabljate.<br />
                        <br />
                        Hvala še enkret in lep pozdrav.<br />
                        <br />
                        Ekipa Bilban
                        </html>""" % (', '.join(x for x in 
neoddan["machines"]))
                        #print msg
                        mail_send = mail_reminder(neoddan, msg)

                    elif dan == 28:
                        msg = """<html>Pozdravljeni,<br />
                        <br />
                        spet mi iz Bilbana. Torej ja, ammmmm.... konec 
meseca je tu in stanja števcev vaših naprav še vedno ni v sistemu.<br />
                        <br />
                        Res, res, res bi vas prosili če si vzamete 10 minut 
časa, sledite povezavi
                        
http://stevci.bilban-resitve.si:8000/bilbanstevci/default/index/login
                        in nam sporočite stanja števcev za sledeče naprave 
<b>%s</b>. <br />
                        <br />
                        Naše punce so že pretežno nervozne, saj morajo po 
končanem zbiranju podatkov narediti še obračun in druga administrativna 
dela,
                        kar jim vzame precej časa. Prav tako bo kmalu nov 
mesec, kar pomeni kup težav, če nimamo podatkov in tudi vi boste jezni, če
                        računi in izračuni ne bodo prispeli v doglednem 
času. Skratka, ni prijetno. <br />
                        Tudi jaz vam bom hvaležen, sicer je v ŽIVČNEM krču 
tudi IT služba. In še jaz sem kriv za to da števci niso popisani,
                        čeprav sem samo informatik tukaj.<br />
                        <br />
                        Hvala vam, ker vemo da boste oddali stanje števcev 
vaših naprav.<br />
                        <br />
                        Lep pozdrav<br />
                        <br />
                        Ekipa Bilban
                        </html>""" % (', '.join(x for x in 
neoddan["machines"]))
                        #print msg
                        mail_send = mail_reminder(neoddan, msg)

                    if mail_send:
                        db.mail_logger.insert(ml_touser = neoddan["user"],
                                              ml_text = msg,
                                              ml_status =1 ) #status = 1 
pomen da je blo poslano
                    else:
                        db.mail_logger.insert(ml_touser = neoddan["user"],
                                              ml_text = msg,
                                              ml_status = 2 ) #status = 2 
pomen da ni blo poslano
                else:
                    db.mail_logger.insert(ml_touser = neoddan["user"],
                                  ml_text = "User nima naprav",
                                  ml_status = 2 ) #status = 2 pomen da ni 
blo poslano
                db.commit()
        # else:
        #     db.mail_logger.insert(ml_touser = 2,
        #                           ml_text = "Ni še datum za poslat maile",
        #                           ml_status = 2 ) #status = 2 pomen da ni 
blo poslano
    #    db.commit()
    except Exception as e:
        import sys
        exc_type, exc_obj, exc_tb = sys.exc_info()
        fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
        errmsg = ["error pri pošiljanju e-mailov", exc_type, fname, 
exc_tb.tb_lineno,e.__doc__ , e.message]

        #Writte error to log file
        mailErrorLogger(errmsg)


# instantiate Scheduler class
from gluon.scheduler import Scheduler
scheduler = Scheduler(db)



On Wednesday, August 22, 2018 at 1:56:08 PM UTC+2, Anthony wrote:
>
> Hard to say without seeing code. Obviously the mail_logger table is not 
> defined in the context of the task being executed. Is it possible the db 
> object is redefined somewhere in the code?
>
> On Wednesday, August 22, 2018 at 6:15:47 AM UTC-4, Yebach wrote:
>>
>> Hello
>>
>> I have a scheduler running some emailing tasks. After email is sent it 
>> should write into table mail_logger. When insert should happen I get an 
>> error DAL object has no attribute mail_logger. 
>>
>> On my test environment everything is working fine. 
>>
>> any suggestions?
>>
>> Thank you
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to