def form_valid(self, form): messages.success(self.request, "Profil opdateret") redirect_url = super().form_valid(form) if "deactivate" in self.request.POST: self.object.isActiveBartender = False self.object.save() active_count = Bartender.objects.filter( isActiveBartender=True).count() send_template_email( subject=f"Bartender har meldt sig inaktiv: {self.object.name}", body_template=f"""Dette er en automatisk email. {self.object.name} har meldt sig inaktiv. Der er nu {active_count} aktive bartendere. /snek""", to=["*****@*****.**"], ) elif "subscribe_maillist" in self.request.POST: self.object.add_to_mailing_list() elif "unsubscribe_maillist" in self.request.POST: self.object.remove_from_mailing_list() self.object.unavailable_dates.all().delete() for ordinal in self.request.POST.getlist("unavailable_ordinals"): date = datetime.date.fromordinal(int(ordinal)) BartenderUnavailableDate(date=date, bartender=self.object).save() return redirect_url
def send_reminder_email(self, bartenders, event): humanized_bartenders = self.humanized_bartenders(bartenders) send_template_email( subject=self.email_subject(humanized_bartenders, event), body_template=self.email_body(humanized_bartenders, event), text_format={}, html_format={}, to=self.filter_with_warning(bartenders), cc=["*****@*****.**"], reply_to=self.email_reply_to(), ) print( f'Reminders sent to {", ".join(f"{b.name} ({b.email})" for b in bartenders if b.email)}!' )
def send_email(self, next): email_address = self.cleaned_data["email"] email_token, _ = EmailToken.objects.get_or_create(email=email_address) url = urljoin( settings.SELF_URL, reverse("email_login", args=(email_address, email_token.token)), ) if next: url += f"?next={next}" return send_template_email( subject="fredagscafeen.dk login", body_template="""{link} for at logge ind. /snek""", text_format={"link": f"Gå ind på {url}"}, html_format={"link": mark_safe(f'<a href="{url}">Klik her</a>')}, to=[email_address], )
def send_email(self, pk): d = self.cleaned_data url = urljoin( settings.SELF_URL, reverse("admin:udlejning_udlejningapplication_change", args=(pk, )), ) return send_template_email( subject= f'Ny anmodning om reservation af fadølsanlæg af {d["whoReserved"]}', body_template="""Dette er en automatisk email. {whoReserved} har ansøgt om at låne et fadølsanlæg: Dato: {dateFrom} til {dateTo} Kontakt email: {contactEmail} Kontakt telefonnummer: {contactPhone} Betaler: {whoPays} Betalingsform: {paymentType} EAN-nummer: {EANnumber} Lokation: {where} Forventet forbrug: {expectedConsummation} Kommentarer: {comments} Ansøgningen kan blive accepteret eller afvist i {link} , men husk at kontakte personen efter dette. /snek""", text_format={ "link": f"admin interfacet: {url}", **d }, html_format={ "link": mark_safe(f'<a href="{url}">admin interfacet</a>'), **d, }, to=["*****@*****.**"], )
def send_email(self, pk): d = self.cleaned_data url = urljoin( settings.SELF_URL, reverse("admin:bartenders_bartenderapplication_change", args=(pk,)), ) extra_info = "" if d["info"]: extra_info = f""" Ekstra information: {d["info"]} """ d["extra_info"] = extra_info return send_template_email( subject=f'Bartendertilmelding: {d["name"]}', body_template="""Dette er en automatisk email. {name} har ansøgt om at blive bartender: Navn: {name} Brugernavn: {username} Studienummer: {studentNumber} Email: {email} Telefonnummer: {phoneNumber} {extra_info} Ansøgningen kan blive accepteret eller afvist i {link}. /snek""", text_format={"link": f"admin interfacet: {url}", **d}, html_format={ "link": mark_safe(f'<a href="{url}">admin interfacet</a>'), **d, }, to=["*****@*****.**"], )
def _send_accept_email(self): URLS = [ "barplan", "guides", "profile", ] text_format = {"name": self.name} html_format = {"name": self.name} for url_name in URLS: url = urljoin(settings.SELF_URL, reverse(url_name)) link_name = f"{url_name}_link" text_format[link_name] = f"her: {url}" html_format[link_name] = mark_safe(f'<a href="{url}">her</a>') return send_template_email( subject=f"Bartendertilmelding: {self.name}", body_template="""Hej {name}, Din ansøgning om at blive bartender ved Fredagscaféen er blevet accepteret. Scheduleren vil tildele dig barvagter, når den nye barplan bliver lavet. Du kan se barplanen {barplan_link} og du kan markere, hvilke dage du ikke kan stå i bar {profile_link}. Du er blevet tilføjet til vores mailing liste ([email protected]). Husk at læse bartenderguides'ne, som kan ses {guides_link}. Ses i baren! :) /Bestyrelsen""", text_format=text_format, html_format=html_format, to=[self.email], cc=["*****@*****.**"], )