mail_logger is defined in db.py
What is interesting is that I am using the same code on two environments
and on one it works ok the other causes problems
The one that works is run from PyCharm (versuib 2.8.2) whereas scheduler is
run from cmd as is also the function that starts the procedure
On the other one (production version) everything is run from cmd, version
is 2.16.1
On Wednesday, August 22, 2018 at 7:06:51 PM UTC+2, Anthony wrote:
>
> Where and how is db.mail_logger defined? Is it possible either the code
> that defines it is not being run, or that the db object is being redefined
> after it has run?
>
> On Wednesday, August 22, 2018 at 8:34:08 AM UTC-4, Yebach wrote:
>>
>> 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"] == '[email protected] <javascript:>':
>> 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
>> [email protected] <javascript:> <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 [email protected].
For more options, visit https://groups.google.com/d/optout.