Beispiel #1
0
def email_sender():
    form = EmailForm()
    form.recipients.choices.extend([(str(g.id), g.name) for g in Guest.scan()])
    if form.validate_on_submit():
        footer = _(
            "Your RSVP link: ") + f"{request.url_root}rsvp/{{id}}" + "\n"
        footer += _(
            "Unsubscribe and delete my data: "
        ) + f"{request.url_root}rsvp/unsubscribe/{{id}}?email={{email}}"
        emailsender = EmailSender(os.getenv("SENDER_SMTP_SERVER"),
                                  os.getenv("SENDER_EMAIL_ADDRESS"),
                                  os.getenv("SMTP_USER"),
                                  os.getenv("SMTP_PASSWORD"),
                                  footer_template=footer)

        if "all" in form.recipients.data:
            guests = Guest.scan()
        else:
            guests = Guest.find_multi_id(form.recipients.data)
        success, failed = emailsender.send_emails(guests, form.subject.data,
                                                  form.body.data)
        if success:
            flash(
                str(len(success)) + _(" E-mails sent successfully"), "success")
        if failed:
            flash(str(len(failed)) + _(" E-mails couldn't be sent"), "warning")

    return render_template('email_sender.html',
                           title=_('Send mail'),
                           form=form)
Beispiel #2
0
def admin_dashboard():
    guest_list = [guest for guest in Guest.scan()]

    max_guests = int(os.getenv("MAX_GUEST_COUNT", 200))
    return render_template("admin_dashboard.html",
                           title=_("Admin page"),
                           guest_list=guest_list,
                           max_guests=max_guests)
Beispiel #3
0
 def export_csv() -> io.StringIO:
     guest_list = Guest.scan()
     outputfile = io.StringIO()
     fields = Guest.get_attributes().keys()
     writer = csv.DictWriter(outputfile,
                             fieldnames=fields,
                             delimiter=',',
                             quotechar='"')
     writer.writeheader()
     for guest in guest_list:
         writer.writerow(guest.attribute_values)
     return outputfile
Beispiel #4
0
def list_guest():
    guest_list = Guest.scan()
    return render_template('guest_list.html',
                           guests=guest_list,
                           title=_("Guest list"))