示例#1
0
    def validate_user(cls, user, msg):
        """
        Handles the case of a first time user or a user who needs to renew this contact information.

        @param user: the user to send the email to
        @type user: models.User
        @param veri_link: the verification link to enter in their information
        @type veri_link: string
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        veri_link = msg.verification_link()


        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject='Re: ' + msg.subject,
                      html_body=render_without_request("emails/validate_user.html",
                                                        context={'verification_link': veri_link,
                                                                 'user': user}),
                      text_body=render_without_request('emails/validate_user.txt.html',
                                                       context={'verification_link': veri_link,
                                                                 'user': user}),
                      track_opens=True,
                      custom_headers={
                          'In-Reply-To': msg.email_uid,
                          'References': msg.email_uid,
                        }
                      )
示例#2
0
    def validate_user(cls, user, msg):
        """
        Handles the case of a first time user or a user who needs to renew this contact information.

        @param user: the user to send the email to
        @type user: models.User
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        veri_link = msg.verification_link()

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject='Re: ' + msg.subject,
                      html_body=render_without_request(
                          "emails/validate_user.html",
                          context={
                              'verification_link': veri_link,
                              'user': user
                          }),
                      track_opens=True,
                      custom_headers={
                          'In-Reply-To': msg.email_uid,
                          'References': msg.email_uid,
                      })
示例#3
0
    def signup_success(cls, user, msg):
        """

        @param user: the user to send the email to
        @type user: models.User
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        return PMMail(
            api_key=settings.POSTMARK_API_KEY,
            sender=cls.SENDER_EMAIL,
            to=user.email,
            subject="You are successfully signed up for Email Congress!",
            html_body=render_without_request(
                'emails/signup_success.html',
                context={
                    'link': user.address_change_link(),
                    'user': user,
                    'moc': user.default_info.members_of_congress
                }),
            custom_headers={
                'In-Reply-To': msg.email_uid,
                'References': msg.email_uid,
            })
示例#4
0
    def send_status(cls, user, msg_legs, msg):
        """
        Handles the case where phantom of the capitol is unable to send a message to a particular
        legislator. Notifies the user of such and includes the contact form URL in the body.

        @param user: the user to send the email to
        @type user: models.User
        @param leg: the legislator that was uncontactable
        @type leg: models.Legislator
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        send_statuses = {True: [], False: []}
        for ml in msg_legs:
            send_statuses[ml.get_send_status()['status'] == 'success'].append(ml.legislator)

        if len(send_statuses[False]) > 0:
            subject = 'There were errors processing your recent message to congress.'
        else:
            subject = 'Your recent message to congress has successfully sent.'

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject=subject,
                      html_body=render_without_request("emails/send_status.html",
                                                        context={'legislators': send_statuses,
                                                                 'user': user}),
                      track_opens=True,
                                    custom_headers={
                  'In-Reply-To': msg.email_uid,
                  'References': msg.email_uid,
                },
                      )
示例#5
0
 def remind_reps(cls, user):
     return PMMail(api_key=settings.POSTMARK_API_KEY,
                   sender=cls.SENDER_EMAIL,
                   to=user.email,
                   subject="Reminder of your members of Congress",
                   html_body=render_without_request(
                       'emails/remind_reps.html',
                       context={
                           'link': user.address_change_link(),
                           'user': user,
                           'moc': user.default_info.members_of_congress
                       }))
示例#6
0
    def reconfirm_info(cls, user, msg):

        veri_link = msg.verification_link()

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="Complete your email to Congress",
                      html_body=render_without_request("emails/revalidate_user.html",
                                                        context={'verification_link': veri_link,
                                                                 'user': user}),
                      track_opens=True
                      )
示例#7
0
    def message_queued(cls, user, legs, msg):

        return PMMail(api_key=settings.POSTMARK_API_KEY,
              sender=cls.SENDER_EMAIL,
              to=user.email,
              subject="Your email is now on its way!",
              html_body=render_without_request("emails/message_queued.html",
                                                context={'legislators': legs,
                                                         'user': user}),
              custom_headers={
                  'In-Reply-To': msg.email_uid,
                  'References': msg.email_uid,
              },
              track_opens=True
              )
示例#8
0
    def message_undeliverable(cls, user, leg_buckets, msg):

        return PMMail(api_key=settings.POSTMARK_API_KEY,
              sender=cls.SENDER_EMAIL,
              to=user.email,
              subject="Your message to congress is unable to be delivered.",
              html_body=render_without_request("emails/message_undeliverable.html",
                                                context={'leg_buckets': leg_buckets,
                                                         'user': user}),
              custom_headers={
                  'In-Reply-To': msg.email_uid,
                  'References': msg.email_uid,
              },
              track_opens=True
              )
示例#9
0
    def reconfirm_info(cls, user, msg):

        veri_link = msg.verification_link()

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="Complete your email to Congress",
                      html_body=render_without_request(
                          "emails/revalidate_user.html",
                          context={
                              'verification_link': veri_link,
                              'user': user
                          }),
                      track_opens=True)
示例#10
0
    def token_reset(cls, user):
        """


        @return: a python representation of a postmark object
        @rtype: PMMail
        """
        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="You've requested to reset your OpenCongress token.",
                      html_body=render_without_request("emails/token_reset.html",
                                                        context={'verification_link': user.tmp_token_link(),
                                                                 'user': user}),
                      track_opens=True
                      )
示例#11
0
    def message_queued(cls, user, legs, msg):

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="Your email is now on its way!",
                      html_body=render_without_request(
                          "emails/message_queued.html",
                          context={
                              'legislators': legs,
                              'user': user
                          }),
                      custom_headers={
                          'In-Reply-To': msg.email_uid,
                          'References': msg.email_uid,
                      },
                      track_opens=True)
示例#12
0
    def over_rate_limit(cls, user, msg):

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="You've sent too many emails recently.",
                      html_body=render_without_request(
                          "emails/over_rate_limit.html",
                          context={
                              'user': user,
                              'msg': msg
                          }),
                      custom_headers={
                          'In-Reply-To': msg.email_uid,
                          'References': msg.email_uid,
                      },
                      track_opens=True)
示例#13
0
    def message_undeliverable(cls, user, leg_buckets, msg):

        return PMMail(
            api_key=settings.POSTMARK_API_KEY,
            sender=cls.SENDER_EMAIL,
            to=user.email,
            subject="Your message to congress is unable to be delivered.",
            html_body=render_without_request(
                "emails/message_undeliverable.html",
                context={
                    'leg_buckets': leg_buckets,
                    'user': user
                }),
            custom_headers={
                'In-Reply-To': msg.email_uid,
                'References': msg.email_uid,
            },
            track_opens=True)
示例#14
0
    def address_changed(cls, user):
        """
        Handles the case of notifying a user when they've changed their address information.

        @param user: the user to send the email to
        @type user: models.User
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject='Your OpenCongress contact information has changed.',
                      html_body=render_without_request('emails/address_changed.html',
                                                       context={'link': user.address_change_link(),
                                                                'user': user,
                                                                'moc': user.default_info.members_of_congress})
                      )
示例#15
0
    def successfully_reset_token(cls, user):
        """
        Handles the case of notifying a user when they've changed their address information.

        @param user: the user to send the email to
        @type user: models.User
        @param umi: user message information instance
        @type umi: models.UserMessageInfo
        @return: a python representation of a postmark object
        @rtype: PMMail
        """
        link = user.token.link()

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject='Your OpenCongress email token has been successfully reset.',
                      html_body=render_without_request('emails/successfully_reset_token.html',
                                                       context={'user': user, 'link': link})
                      )
示例#16
0
    def signup_confirm(cls, user):
        """
        If user signs up through index page then they receive a confirmation email with their change address link
        to verify they are indeed the owner of the email.


        @return: a python representation of a postmark object
        @rtype: PMMail
        """
        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="Confirm your Email Congress account.",
                      html_body=render_without_request(
                          "emails/signup_confirm.html",
                          context={
                              'verification_link': user.address_change_link(),
                              'user': user
                          }),
                      track_opens=True)
示例#17
0
    def message_receipt(cls, user, legs, msg):
        """
        Handles the follow-up email for every time a user sends an email message.

        @param user: the user to send the email to
        @type user: models.User
        @param legs: dictionary of different cases of contactability with lists of legislators
        @type legs: dict
        @param veri_link: the verification link if a captcha is required
        @type veri_link: string
        @param rls: the rate limit status
        @type rls: string
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        rls = msg.status

        subject = {
            None: 'Your message to your representatives will be sent.',
            'free':
            'Your message to your representatives is schedule to be sent.',
            'captcha':
            "You must solve a captcha to complete your message to congress",
            'g_captcha': 'You must complete your message to Congress.',
            'block': 'Unable to send your message to congress at this time.'
        }.get(rls)

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject=subject,
                      html_body=render_without_request(
                          "emails/message_receipt.html",
                          context={
                              'legislators': legs,
                              'msg': msg,
                              'user': user,
                              'rls': rls
                          }),
                      track_opens=True)
示例#18
0
    def token_reset(cls, user):
        """


        @return: a python representation of a postmark object
        @rtype: PMMail
        """
        return PMMail(
            api_key=settings.POSTMARK_API_KEY,
            sender=cls.SENDER_EMAIL,
            to=user.email,
            subject=
            "You've requested to change your address information on  Email Congress.",
            html_body=render_without_request("emails/token_reset.html",
                                             context={
                                                 'verification_link':
                                                 user.address_change_link(),
                                                 'user':
                                                 user
                                             }),
            track_opens=True)
示例#19
0
    def send_status(cls, user, msg_legs, msg):
        """
        Handles the case where phantom of the capitol is unable to send a message to a particular
        legislator. Notifies the user of such and includes the contact form URL in the body.

        @param user: the user to send the email to
        @type user: models.User
        @param leg: the legislator that was uncontactable
        @type leg: models.Legislator
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        send_statuses = {True: [], False: []}
        for ml in msg_legs:
            send_statuses[ml.get_send_status()['status'] == 'success'].append(
                ml.legislator)

        if len(send_statuses[False]) > 0:
            subject = 'There were errors processing your recent message to congress.'
        else:
            subject = 'Your recent message to congress has successfully sent.'

        return PMMail(
            api_key=settings.POSTMARK_API_KEY,
            sender=cls.SENDER_EMAIL,
            to=user.email,
            subject=subject,
            html_body=render_without_request("emails/send_status.html",
                                             context={
                                                 'legislators': send_statuses,
                                                 'user': user
                                             }),
            track_opens=True,
            custom_headers={
                'In-Reply-To': msg.email_uid,
                'References': msg.email_uid,
            },
        )
示例#20
0
    def address_changed(cls, user):
        """
        Handles the case of notifying a user when they've changed their address information.

        @param user: the user to send the email to
        @type user: models.User
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        return PMMail(
            api_key=settings.POSTMARK_API_KEY,
            sender=cls.SENDER_EMAIL,
            to=user.email,
            subject='Your Email Congress contact information has changed.',
            html_body=render_without_request(
                'emails/address_changed.html',
                context={
                    'link': user.address_change_link(),
                    'user': user,
                    'moc': user.default_info.members_of_congress
                }))
示例#21
0
    def signup_success(cls, user, msg):
        """

        @param user: the user to send the email to
        @type user: models.User
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        return PMMail(api_key=settings.POSTMARK_API_KEY,
              sender=cls.SENDER_EMAIL,
              to=user.email,
              subject="You are successfully signed up for OpenCongress email congress.",
              html_body=render_without_request('emails/signup_success.html',
                                               context={'link': user.address_change_link(),
                                                        'user': user,
                                                        'moc': user.default_info.members_of_congress}),
              custom_headers={
                  'In-Reply-To': msg.email_uid,
                  'References': msg.email_uid,
                }
              )
示例#22
0
    def validate_user(cls, user, msg):
        """
        Handles the case of a first time user or a user who needs to renew this contact infomration.

        @param user: the user to send the email to
        @type user: models.User
        @param veri_link: the verification link to enter in their information
        @type veri_link: string
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        veri_link = msg.verification_link()

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject="Complete your email to Congress",
                      html_body=render_without_request("emails/validate_user.html",
                                                        context={'verification_link': veri_link,
                                                                 'user': user}),
                      track_opens=True
                      )
示例#23
0
    def message_receipt(cls, user, legs, msg):
        """
        Handles the follow-up email for every time a user sends an email message.

        @param user: the user to send the email to
        @type user: models.User
        @param legs: dictionary of different cases of contactability with lists of legislators
        @type legs: dict
        @param veri_link: the verification link if a captcha is required
        @type veri_link: string
        @param rls: the rate limit status
        @type rls: string
        @return: a python representation of a postmark object
        @rtype: PMMail
        """

        rls = msg.status

        subject = {
            None: 'Your message to your representatives will be sent.',
            'free': 'Your message to your representatives is schedule to be sent.',
            'captcha': "You must solve a captcha to complete your message to congress",
            'g_captcha': 'You must complete your message to Congress.',
            'block': 'Unable to send your message to congress at this time.'
        }.get(rls)

        return PMMail(api_key=settings.POSTMARK_API_KEY,
                      sender=cls.SENDER_EMAIL,
                      to=user.email,
                      subject=subject,
                      html_body=render_without_request("emails/message_receipt.html",
                                                       context={'legislators': legs,
                                                                'msg': msg,
                                                                'user': user,
                                                                'rls': rls}),
                      track_opens=True
                      )
示例#24
0
    def successfully_reset_token(cls, user):
        """
        Handles the case of notifying a user when they've changed their address information.

        @param user: the user to send the email to
        @type user: models.User
        @param umi: user message information instance
        @type umi: models.UserMessageInfo
        @return: a python representation of a postmark object
        @rtype: PMMail
        """
        link = user.token.link()

        return PMMail(
            api_key=settings.POSTMARK_API_KEY,
            sender=cls.SENDER_EMAIL,
            to=user.email,
            subject='Your Email Congress token has been successfully reset.',
            html_body=render_without_request(
                'emails/successfully_reset_token.html',
                context={
                    'user': user,
                    'link': link
                }))
示例#25
0
 def __html__(self):
     return render_without_request('snippets/user.html', user=self)