Пример #1
0
    def send_message_after_validation(status: int, validated_by: int,
                                      mapped_by: int, task_id: int,
                                      project_id: int):
        """ Sends mapper a notification after their task has been marked valid or invalid """
        if validated_by == mapped_by:
            return  # No need to send a message to yourself

        user = UserService.get_user_by_id(mapped_by)
        if user.validation_message == False:
            return  # No need to send validation message

        text_template = get_template('invalidation_message_en.txt' if status == TaskStatus.INVALIDATED \
                                                                   else 'validation_message_en.txt')
        status_text = 'marked invalid' if status == TaskStatus.INVALIDATED else 'validated'
        task_link = MessageService.get_task_link(project_id, task_id)

        text_template = text_template.replace('[USERNAME]', user.username)
        text_template = text_template.replace('[TASK_LINK]', task_link)

        validation_message = Message()
        validation_message.from_user_id = validated_by
        validation_message.to_user_id = mapped_by
        validation_message.subject = f'Your mapping in Project {project_id} on {task_link} has just been {status_text}'
        validation_message.message = text_template
        validation_message.add_message()

        SMTPService.send_email_alert(user.email_address, user.username)
Пример #2
0
    def notify_level_upgrade(user_id: int, username: str, level: str):
        text_template = get_template('level_upgrade_message_en.txt')

        if username is not None:
            text_template = text_template.replace('[USERNAME]', username)

        text_template = text_template.replace('[LEVEL]', level)
        level_upgrade_message = Message()
        level_upgrade_message.to_user_id = user_id
        level_upgrade_message.subject = 'Mapper Level Upgrade '
        level_upgrade_message.message = text_template
        level_upgrade_message.save()
Пример #3
0
    def send_email_alert(to_address: str, username: str):
        """ Send an email to user to alert them they have a new message"""
        current_app.logger.debug(f'Test if email required {to_address}')
        if not to_address:
            return False  # Many users will not have supplied email address so return

        # TODO these could be localised if needed, in the future
        html_template = get_template('message_alert_en.html')
        text_template = get_template('message_alert_en.txt')
        inbox_url = f"{current_app.config['APP_BASE_URL']}/inbox"

        html_template = html_template.replace('[USERNAME]', username)
        html_template = html_template.replace('[PROFILE_LINK]', inbox_url)

        text_template = text_template.replace('[USERNAME]', username)
        text_template = text_template.replace('[PROFILE_LINK]', inbox_url)

        subject = 'You have a new message on the HOT Tasking Manager'
        SMTPService._send_mesage(to_address, subject, html_template,
                                 text_template)

        return True
Пример #4
0
    def send_email_alert(to_address: str, username: str):
        """ Send an email to user to alert them they have a new message"""
        if not to_address:
            return False  # Many users will not have supplied email address so return

        # TODO these could be localised if needed, in the future
        html_template = get_template('message_alert_en.html')
        text_template = get_template('message_alert_en.txt')

        html_template = html_template.replace('[USERNAME]', username)
        html_template = html_template.replace('[PROFILE_LINK]',
                                              get_profile_url(username))

        text_template = text_template.replace('[USERNAME]', username)
        text_template = text_template.replace('[PROFILE_LINK]',
                                              get_profile_url(username))

        subject = 'You have a new message on the HOT Tasking Manager'
        SMTPService._send_mesage(to_address, subject, html_template,
                                 text_template)

        return True
Пример #5
0
    def send_verification_email(to_address: str, username: str):
        """ Sends a verification email with a unique token so we can verify user owns this email address """

        # TODO these could be localised if needed, in the future
        html_template = get_template('email_verification_en.html')
        text_template = get_template('email_verification_en.txt')

        verification_url = SMTPService._generate_email_verification_url(
            to_address, username)

        html_template = html_template.replace('[USERNAME]', username)
        html_template = html_template.replace('[VEFIFICATION_LINK]',
                                              verification_url)

        text_template = text_template.replace('[USERNAME]', username)
        text_template = text_template.replace('[VEFIFICATION_LINK]',
                                              verification_url)

        subject = 'HOT Tasking Manager - Email Verification'
        SMTPService._send_mesage(to_address, subject, html_template,
                                 text_template)

        return True
    def send_welcome_message(user: User):
        """ Sends welcome message to all new users at Sign up"""
        text_template = get_template('welcome_message_en.txt')

        text_template = text_template.replace('[USERNAME]', user.username)
        text_template = text_template.replace('[PROFILE_LINK]', get_profile_url(user.username))

        welcome_message = Message()
        welcome_message.to_user_id = user.id
        welcome_message.subject = 'Welcome to the HOT Tasking Manager'
        welcome_message.message = text_template
        welcome_message.save()

        return welcome_message.id
    def send_message_after_validation(validated_by: int, mapped_by: int, task_id: int, project_id: int):
        """ Sends mapper a thank you, after their task has been marked as valid """
        if validated_by == mapped_by:
            return  # No need to send a thankyou to yourself

        text_template = get_template('validation_message_en.txt')
        task_link = MessageService.get_task_link(project_id, task_id)

        user = UserService.get_user_by_id(mapped_by)
        text_template = text_template.replace('[USERNAME]', user.username)
        text_template = text_template.replace('[TASK_LINK]', task_link)

        validation_message = Message()
        validation_message.from_user_id = validated_by
        validation_message.to_user_id = mapped_by
        validation_message.subject = f'Your mapping on {task_link} has just been validated'
        validation_message.message = text_template
        validation_message.add_message()

        SMTPService.send_email_alert(user.email_address, user.username)