def check_plan_expiration(sender=None, request=None, user=None, related=None, **kwargs): """ Verify user plan expiration upon user login. This will be connected to the user_logged_in signal. It will downgrade the user plan if: - the user plan has no expiration date - the user plan has expired And will send an email to the user. """ if related or has_user_related(user): related = related or get_user_related(user) if related.is_premium: if related.plan_expires_at: expires = related.plan_expires_at now = datetime.now(utc) if expires.tzinfo else datetime.now() if expires >= now: return related.plan = "basic" related.plan_expires_at = None related.save() send_mail_from_template_with_noreply( "email/plan.html", {}, subject=u"Votre plan premium vient d'expirer", to=[related.email] )
def send_verification_email(self, request): """ Send a verification email to a user after signup. """ keygroup = KeyGroup.objects.get(name="activate_account") key = Key.generate(group=keygroup) key.claimed_by = self.user key.claimed = None key.save() activate_url = reverse('verification-claim-get', kwargs={'key': key, 'group': key.group}) activate_url = request.build_absolute_uri(activate_url) send_mail_from_template_with_noreply( "email/verification.html", {"activate_url": activate_url}, subject=u"Email de vérification", to=[self.email] )
def send_notification(self): context = { 'site': RequestSite(self.request), 'user': self.user, 'username': get_username(self.user), 'token': signing.dumps(self.user.pk, salt=self.salt), 'secure': self.request.is_secure(), } subject = loader.render_to_string( self.email_subject_template_name, context ).strip() mail.send_mail_from_template_with_noreply( self.email_template_name, context, subject=subject, to=[self.user.email] )