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.