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]':
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] <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.