def post(self, request, user):
        """
        Configure Newsletter Subscription
        `````````````````````````````````

        Update the default newsletter subscription.

        :param boolean subscribed: should be subscribed to newsletter
        :auth: required
        """
        validator = DefaultNewsletterValidator(data=request.data)
        if not validator.is_valid():
            return self.respond(validator.errors, status=400)

        result = validator.validated_data
        email = UserEmail.get_primary_email(user)

        kwargs = {
            'subscribed': result['subscribed'],
            'verified': email.is_verified,
            'list_ids': newsletter.get_default_list_ids(),
        }
        if not result['subscribed']:
            kwargs['unsubscribed_date'] = timezone.now()
        else:
            kwargs['subscribed_date'] = timezone.now()

        newsletter.create_or_update_subscriptions(user, **kwargs)

        user.update(
            flags=F('flags').bitand(~User.flags.newsletter_consent_prompt), )

        return self.respond(status=204)
    def post(self, request, user):
        """
        Configure Newsletter Subscription
        `````````````````````````````````

        Update the default newsletter subscription.

        :param boolean subscribed: should be subscribed to newsletter
        :auth: required
        """
        validator = DefaultNewsletterValidator(data=request.DATA)
        if not validator.is_valid():
            return self.respond(validator.errors, status=400)

        result = validator.object
        email = UserEmail.get_primary_email(user)

        kwargs = {
            'subscribed': result['subscribed'],
            'verified': email.is_verified,
            'list_ids': newsletter.get_default_list_ids(),
        }
        if not result['subscribed']:
            kwargs['unsubscribed_date'] = timezone.now()
        else:
            kwargs['subscribed_date'] = timezone.now()

        newsletter.create_or_update_subscriptions(user, **kwargs)

        user.update(
            flags=F('flags').bitand(~User.flags.newsletter_consent_prompt),
        )

        return self.respond(status=204)
Exemple #3
0
 def save(self, commit=True):
     user = super(RegistrationForm, self).save(commit=False)
     user.set_password(self.cleaned_data['password'])
     if commit:
         user.save()
         if self.cleaned_data.get('subscribe'):
             newsletter.create_or_update_subscriptions(
                 user, list_ids=newsletter.get_default_list_ids())
     return user
Exemple #4
0
 def save(self, commit=True):
     user = super(RegistrationForm, self).save(commit=False)
     user.set_password(self.cleaned_data['password'])
     if commit:
         user.save()
         if self.cleaned_data.get('subscribe'):
             newsletter.create_or_update_subscriptions(
                 user, list_ids=newsletter.get_default_list_ids())
     return user
Exemple #5
0
 def save(self, commit=True):
     user = super().save(commit=False)
     user.set_password(self.cleaned_data["password"])
     if commit:
         user.save()
         if self.cleaned_data.get("subscribe"):
             newsletter.create_or_update_subscriptions(
                 user, list_ids=newsletter.get_default_list_ids())
     return user
Exemple #6
0
 def save(self, commit=True):
     user = super(PasswordlessRegistrationForm, self).save(commit=False)
     user.email = user.username
     if commit:
         user.save()
         if self.cleaned_data.get("subscribe"):
             newsletter.create_or_update_subscriptions(
                 user, list_ids=newsletter.get_default_list_ids())
     return user