changed log file name and changed mail content
This commit is contained in:
parent
0c670fbefc
commit
7628783dbc
68
verteiler.py
68
verteiler.py
|
|
@ -31,7 +31,8 @@ console_handler.setLevel(logging.INFO)
|
|||
console_handler.setFormatter(log_format)
|
||||
|
||||
# Handler für Datei
|
||||
file_handler = logging.FileHandler('logs/verteiler.log', encoding='utf-8')
|
||||
log_filename = datetime.now().strftime('logs/%Y-%m-%d-%H-%M-%S_verteiler.log')
|
||||
file_handler = logging.FileHandler(log_filename, encoding='utf-8')
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
file_handler.setFormatter(log_format)
|
||||
|
||||
|
|
@ -73,6 +74,8 @@ EMAIL_BODY_TEMPLATE = """
|
|||
|
||||
<p>
|
||||
Vor der Nutzung werden wir dich fragen, ob du die Videos angesehen hast. Auf dieser Vertrauensbasis wird deine Freigabe im System aktiviert.
|
||||
Hattest du bereits eine Einweisung für die neuen Maschinen, entfällt diese Abfrage für dich und du musst dir die Videos auch nicht anschauen.
|
||||
Es schadet aber auch nicht :).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
@ -338,17 +341,14 @@ def get_all_employees(models, db, uid, password):
|
|||
|
||||
|
||||
@click.command()
|
||||
@click.option('--send', is_flag=True, help='Wenn gesetzt, wird sofort eine E-Mail versendet.')
|
||||
@click.option('--years', default=2, help='Anzahl der Jahre für die Nutzungsauswertung (Standard: 2 Jahre).')
|
||||
@click.option('--testmail', is_flag=True, help='Wenn gesetzt, wird eine Test-E-Mail an die eigene Adresse gesendet.')
|
||||
def main(send,years,testmail):
|
||||
@click.option('--send', is_flag=True, help='Wenn gesetzt, wird sofort eine E-Mail versendet.')
|
||||
@click.option('--group', type=click.Choice(['testmail', 'thekenheld', 'nutzer']), default='testmail', show_default=True, help='Gruppe für E-Mail-Versand: testmail, thekenheld oder nutzer.')
|
||||
def main(years, send, group):
|
||||
secrets = load_odoo_api_credentials()
|
||||
if not secrets:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
url, db, uid, models = test_odoo_api_connection(secrets)
|
||||
if not uid:
|
||||
return
|
||||
|
|
@ -367,37 +367,51 @@ def main(send,years,testmail):
|
|||
partners = get_partner_emails(models, db, uid, secrets['odoo-api']['password'], partner_ids)
|
||||
employee_partner_ids = get_all_employees(models, db, uid, secrets['odoo-api']['password'])
|
||||
|
||||
|
||||
count = 0
|
||||
count_hero = 0
|
||||
|
||||
for i, partner in enumerate(partners):
|
||||
|
||||
is_employee = partner['id'] in employee_partner_ids
|
||||
|
||||
if group == 'thekenheld':
|
||||
name = partner['name']
|
||||
email = partner['email']
|
||||
if testmail:
|
||||
message = EMAIL_BODY_TEMPLATE.format(name=name)
|
||||
if is_employee:
|
||||
count_hero += 1
|
||||
if send:
|
||||
send_email(secrets, email, subject=EMAIL_SUBJECT, body=message)
|
||||
logger.info(f"📧 (Thekenheld) E-Mail an {email} gesendet.")
|
||||
else:
|
||||
logger.info(f"📧 (Thekenheld) E-Mail an {email} würde gesendet werden.")
|
||||
|
||||
elif group == 'nutzer':
|
||||
name = partner['name']
|
||||
email = partner['email']
|
||||
message = EMAIL_BODY_TEMPLATE.format(name=name)
|
||||
if not is_employee:
|
||||
count += 1
|
||||
if send:
|
||||
send_email(secrets, email, subject=EMAIL_SUBJECT, body=message)
|
||||
logger.info(f"📧 (Nutzer) E-Mail an {email} gesendet.")
|
||||
else:
|
||||
logger.info(f"📧 (Nutzer) E-Mail an {email} würde gesendet werden.")
|
||||
|
||||
elif group == 'testmail':
|
||||
name = 'Matthias Lotz'
|
||||
email = secrets['mail']['email_receiver']
|
||||
message = EMAIL_BODY_TEMPLATE.format(name=name)
|
||||
if partner['id'] not in employee_partner_ids:
|
||||
if send or testmail:
|
||||
send_email(secrets, email, subject=EMAIL_SUBJECT, body=message)
|
||||
logger.debug(f"📧 E-Mail an {email} gesendet.")
|
||||
# Pausieren nach jedem BATCH_SIZE-Versand
|
||||
if (i + 1) % BATCH_SIZE == 0:
|
||||
logger.info(f"⏸️ Batchgrenze erreicht – Warte {BATCH_WAIT_SECONDS // 60} Minuten ...")
|
||||
time.sleep(BATCH_WAIT_SECONDS)
|
||||
else:
|
||||
logger.debug(f"🔍 Testmodus: {email} würde E-Mail erhalten. Name: {name}")
|
||||
count += 1
|
||||
else:
|
||||
count_hero += 1
|
||||
logger.debug(f"👨🔧 {name} ist ein Mitarbeiter und erhält keine E-Mail.")
|
||||
|
||||
if testmail:
|
||||
logger.info(f"📧 (Testmail) Test-E-Mail an {email} gesendet.")
|
||||
break
|
||||
|
||||
logger.info(f"📋 Es wurden {len(partners)} Partner mit E-Mail gefunden.")
|
||||
logger.info(f"📋 Davon sind {count_hero} Thekenheld(en)")
|
||||
logger.info(f"📊 Insgesamt verarbeitet: {count} Partner")
|
||||
else: # debug
|
||||
logger.debug(f"Hier solltest du nicht landen. Gruppe: {group}")
|
||||
|
||||
|
||||
logger.info(f"📋 Email an Thekenhelden: {count_hero}")
|
||||
logger.info(f"📊 Email an Nutzer: {count} Partner")
|
||||
logger.info("🏁 Fertig.")
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user