def add_service_template(service_id, template_type):
    if template_type not in ['sms', 'email']:
        abort(404)

    form = form_objects[template_type]()
    if form.validate_on_submit():
        try:
            service_api_client.create_service_template(
                form.name.data, template_type, form.template_content.data,
                service_id,
                form.subject.data if hasattr(form, 'subject') else None)
        except HTTPError as e:
            if e.status_code == 400:
                if 'content' in e.message and any([
                        'character count greater than' in x
                        for x in e.message['content']
                ]):
                    form.template_content.errors.extend(e.message['content'])
                else:
                    raise e
            else:
                raise e
        else:
            return redirect(
                url_for('.choose_template',
                        service_id=service_id,
                        template_type=template_type))

    return render_template('views/edit-{}-template.html'.format(template_type),
                           form=form,
                           template_type=template_type,
                           heading_action='Add')
def add_service_template(service_id, template_type):
    if template_type not in ['sms', 'email', 'letter']:
        abort(404)
    if not current_service['can_send_letters'] and template_type == 'letter':
        abort(403)

    form = form_objects[template_type]()
    if form.validate_on_submit():
        try:
            service_api_client.create_service_template(
                form.name.data,
                template_type,
                form.template_content.data,
                service_id,
                form.subject.data if hasattr(form, 'subject') else None
            )
        except HTTPError as e:
            if e.status_code == 400:
                if 'content' in e.message and any(['character count greater than' in x for x in e.message['content']]):
                    form.template_content.errors.extend(e.message['content'])
                else:
                    raise e
            else:
                raise e
        else:
            return redirect(
                url_for('.choose_template', service_id=service_id, template_type=template_type)
            )

    return render_template(
        'views/edit-{}-template.html'.format(template_type),
        form=form,
        template_type=template_type,
        heading_action='Add'
    )
Beispiel #3
0
def _add_template_by_type(template_type, template_folder_id):

    if template_type == 'copy-existing':
        return redirect(
            url_for(
                '.choose_template_to_copy',
                service_id=current_service.id,
            ))

    if template_type == 'letter':
        blank_letter = service_api_client.create_service_template(
            'New letter template', 'letter', 'Body', current_service.id,
            'Main heading', 'normal', template_folder_id)
        return redirect(
            url_for(
                '.view_template',
                service_id=current_service.id,
                template_id=blank_letter['data']['id'],
            ))

    return redirect(
        url_for(
            '.add_service_template',
            service_id=current_service.id,
            template_type=template_type,
            template_folder_id=template_folder_id,
        ))
Beispiel #4
0
def _add_template_by_type(template_type, template_folder_id):

    if template_type == 'copy-existing':
        return redirect(
            url_for(
                '.choose_template_to_copy',
                service_id=current_service.id,
            ))

    if template_type == 'letter':
        blank_letter = service_api_client.create_service_template(
            'New letter template', 'letter', 'Body', current_service.id,
            'Main heading', 'normal', template_folder_id)
        return redirect(
            url_for(
                '.view_template',
                service_id=current_service.id,
                template_id=blank_letter['data']['id'],
            ))

    if email_or_sms_not_enabled(template_type, current_service.permissions):
        return redirect(
            url_for('.action_blocked',
                    service_id=current_service.id,
                    notification_type=template_type,
                    return_to='add_new_template',
                    template_id='0'))
    else:
        return redirect(
            url_for(
                '.add_service_template',
                service_id=current_service.id,
                template_type=template_type,
                template_folder_id=template_folder_id,
            ))
def _create_example_template(service_id):
    example_sms_template = service_api_client.create_service_template(
        'Example text message template',
        'sms',
        'Hey ((name)), I’m trying out Notify. Today is ((day of week)) and my favourite colour is ((colour)).',
        service_id,
    )
    return example_sms_template
Beispiel #6
0
def _create_example_template(service_id):
    example_email_template = service_api_client.create_service_template(
        'Example email template',
        'email',
        'Hey ((name)), I’m trying out Notify. Today is ((day of week)) and my favourite colour is ((colour)).',
        service_id,
        subject='Example email template')
    return example_email_template
Beispiel #7
0
def add_template_by_type(service_id):

    form = ChooseTemplateType(
        include_letters=current_service.has_permission('letter'),
        include_copy=any((
            service_api_client.count_service_templates(service_id) > 0,
            len(user_api_client.get_service_ids_for_user(current_user)) > 1,
        )),
    )

    if form.validate_on_submit():

        if form.template_type.data == 'copy-existing':
            return redirect(
                url_for(
                    '.choose_template_to_copy',
                    service_id=service_id,
                ))

        if form.template_type.data == 'letter':
            blank_letter = service_api_client.create_service_template(
                'Untitled',
                'letter',
                'Body',
                service_id,
                'Main heading',
                'normal',
            )
            return redirect(
                url_for(
                    '.view_template',
                    service_id=service_id,
                    template_id=blank_letter['data']['id'],
                ))

        if email_or_sms_not_enabled(form.template_type.data,
                                    current_service.permissions):
            return redirect(
                url_for('.action_blocked',
                        service_id=service_id,
                        notification_type=form.template_type.data,
                        return_to='add_new_template',
                        template_id='0'))
        else:
            return redirect(
                url_for(
                    '.add_service_template',
                    service_id=service_id,
                    template_type=form.template_type.data,
                ))

    return render_template('views/templates/add.html', form=form)
def add_service_template(service_id, template_type, template_folder_id=None):

    if not current_service.has_permission('letter') and template_type == 'letter':
        abort(403)

    form = form_objects[template_type]()
    if form.validate_on_submit():
        if form.process_type.data == 'priority':
            abort_403_if_not_admin_user()
        try:
            new_template = service_api_client.create_service_template(
                form.name.data,
                template_type,
                form.template_content.data,
                service_id,
                form.subject.data if hasattr(form, 'subject') else None,
                form.process_type.data,
                template_folder_id
            )
        except HTTPError as e:
            if (
                e.status_code == 400
                and 'content' in e.message
                and any(['character count greater than' in x for x in e.message['content']])
            ):
                form.template_content.errors.extend(e.message['content'])
            else:
                raise e
        else:
            return redirect(
                url_for('.view_template', service_id=service_id, template_id=new_template['data']['id'])
            )

    if email_or_sms_not_enabled(template_type, current_service.permissions):
        return redirect(url_for(
            '.action_blocked',
            service_id=service_id,
            notification_type=template_type,
            template_folder_id=template_folder_id,
            return_to='templates',
        ))
    else:
        return render_template(
            'views/edit-{}-template.html'.format(template_type),
            form=form,
            template_type=template_type,
            template_folder_id=template_folder_id,
            heading_action='New',
        )
Beispiel #9
0
def add_service():
    invited_user = session.get('invited_user')
    if invited_user:
        invitation = InvitedUser(**invited_user)
        # if invited user add to service and redirect to dashboard
        user = user_api_client.get_user(session['user_id'])
        service_id = invited_user['service']
        user_api_client.add_user_to_service(service_id, user.id,
                                            invitation.permissions)
        invite_api_client.accept_invite(service_id, invitation.id)
        return redirect(
            url_for('main.service_dashboard', service_id=service_id))

    form = AddServiceForm(service_api_client.find_all_service_email_from)
    heading = 'Which service do you want to set up notifications for?'
    if form.validate_on_submit():
        email_from = email_safe(form.name.data)
        service_id = service_api_client.create_service(
            service_name=form.name.data,
            active=False,
            message_limit=current_app.config['DEFAULT_SERVICE_LIMIT'],
            restricted=True,
            user_id=session['user_id'],
            email_from=email_from)
        session['service_id'] = service_id

        if (len(
                service_api_client.get_services({
                    'user_id': session['user_id']
                }).get('data', [])) > 1):
            return redirect(
                url_for('main.service_dashboard', service_id=service_id))

        example_sms_template = service_api_client.create_service_template(
            'Example text message template', 'sms',
            'Hey ((name)), I’m trying out Notify. Today is ((day of week)) and my favourite colour is ((colour)).',
            service_id)

        return redirect(
            url_for('main.send_test',
                    service_id=service_id,
                    template_id=example_sms_template['data']['id'],
                    help=1))
    else:
        return render_template('views/add-service.html',
                               form=form,
                               heading=heading)
def add_service():
    invited_user = session.get('invited_user')
    if invited_user:
        invitation = InvitedUser(**invited_user)
        # if invited user add to service and redirect to dashboard
        user = user_api_client.get_user(session['user_id'])
        service_id = invited_user['service']
        user_api_client.add_user_to_service(service_id, user.id, invitation.permissions)
        invite_api_client.accept_invite(service_id, invitation.id)
        return redirect(url_for('main.service_dashboard', service_id=service_id))

    form = AddServiceForm(service_api_client.find_all_service_email_from)
    heading = 'Which service do you want to set up notifications for?'
    if form.validate_on_submit():
        email_from = email_safe(form.name.data)
        service_id = service_api_client.create_service(service_name=form.name.data,
                                                       active=False,
                                                       message_limit=current_app.config['DEFAULT_SERVICE_LIMIT'],
                                                       restricted=True,
                                                       user_id=session['user_id'],
                                                       email_from=email_from)
        session['service_id'] = service_id

        if (len(service_api_client.get_services({'user_id': session['user_id']}).get('data', [])) > 1):
            return redirect(url_for('main.service_dashboard', service_id=service_id))

        example_sms_template = service_api_client.create_service_template(
            'Example text message template',
            'sms',
            'Hey ((name)), I’m trying out Notify. Today is ((day of week)) and my favourite colour is ((colour)).',
            service_id
        )

        return redirect(url_for(
            'main.send_test',
            service_id=service_id,
            template_id=example_sms_template['data']['id'],
            help=1
        ))
    else:
        return render_template(
            'views/add-service.html',
            form=form,
            heading=heading
        )
Beispiel #11
0
def _add_template_by_type(template_type, template_folder_id):

    if template_type == "copy-existing":
        return redirect(
            url_for(
                ".choose_template_to_copy",
                service_id=current_service.id,
            ))

    if template_type == "letter":
        blank_letter = service_api_client.create_service_template(
            "New letter template",
            "letter",
            "Body",
            current_service.id,
            "Main heading",
            "normal",
            template_folder_id,
        )
        return redirect(
            url_for(
                ".view_template",
                service_id=current_service.id,
                template_id=blank_letter["data"]["id"],
            ))

    if email_or_sms_not_enabled(template_type, current_service.permissions):
        return redirect(
            url_for(
                ".action_blocked",
                service_id=current_service.id,
                notification_type=template_type,
                return_to="add_new_template",
                template_id="0",
            ))
    else:
        return redirect(
            url_for(
                ".add_service_template",
                service_id=current_service.id,
                template_type=template_type,
                template_folder_id=template_folder_id,
            ))
Beispiel #12
0
def add_template_by_type(service_id):

    form = ChooseTemplateType(
        include_letters='letter' in current_service['permissions'])

    if form.validate_on_submit():

        if form.template_type.data == 'letter':
            blank_letter = service_api_client.create_service_template(
                'Untitled',
                'letter',
                'Body',
                service_id,
                'Main heading',
                'normal',
            )
            return redirect(
                url_for(
                    '.view_template',
                    service_id=service_id,
                    template_id=blank_letter['data']['id'],
                ))

        if email_or_sms_not_enabled(form.template_type.data,
                                    current_service['permissions']):
            return redirect(
                url_for('.action_blocked',
                        service_id=service_id,
                        notification_type=form.template_type.data,
                        return_to='add_new_template',
                        template_id='0'))
        else:
            return redirect(
                url_for(
                    '.add_service_template',
                    service_id=service_id,
                    template_type=form.template_type.data,
                ))

    return render_template('views/templates/add.html', form=form)
def add_service():
    invited_user = session.get('invited_user')
    if invited_user:
        service_id = _add_invited_user_to_service(invited_user)
        return redirect(url_for('main.service_dashboard', service_id=service_id))

    if not is_gov_user(current_user.email_address):
        abort(403)

    form = AddServiceForm(service_api_client.find_all_service_email_from)
    heading = 'Which service do you want to set up notifications for?'

    if form.validate_on_submit():
        email_from = email_safe(form.name.data)
        service_name = form.name.data
        service_id = _create_service(service_name, email_from)

        if (len(service_api_client.get_active_services({'user_id': session['user_id']}).get('data', [])) > 1):
            return redirect(url_for('main.service_dashboard', service_id=service_id))

        example_sms_template = service_api_client.create_service_template(
            'Example text message template',
            'sms',
            'Hey ((name)), I’m trying out Notify. Today is ((day of week)) and my favourite colour is ((colour)).',
            service_id
        )

        return redirect(url_for(
            'main.send_test',
            service_id=service_id,
            template_id=example_sms_template['data']['id'],
            help=1
        ))
    else:
        return render_template(
            'views/add-service.html',
            form=form,
            heading=heading
        )
Beispiel #14
0
def add_service_template(service_id, template_type, template_folder_id=None):

    if template_type not in ["sms", "email", "letter"]:
        abort(404)
    if not current_service.has_permission(
            "letter") and template_type == "letter":
        abort(403)

    form = form_objects[template_type]()
    if form.validate_on_submit():
        if form.process_type.data != "normal":
            abort_403_if_not_admin_user()
        try:
            new_template = service_api_client.create_service_template(
                form.name.data,
                template_type,
                form.template_content.data,
                service_id,
                form.subject.data if hasattr(form, "subject") else None,
                form.process_type.data,
                template_folder_id,
            )
        except HTTPError as e:
            if (e.status_code == 400 and "content" in e.message and any([
                    "character count greater than" in x
                    for x in e.message["content"]
            ])):
                form.template_content.errors.extend(e.message["content"])
            else:
                raise e
        else:
            flash(
                _("'{}' template saved").format(form.name.data),
                "default_with_tick")

            return redirect(
                url_for(
                    ".view_template",
                    service_id=service_id,
                    template_id=new_template["data"]["id"],
                ))

    if email_or_sms_not_enabled(template_type, current_service.permissions):
        return redirect(
            url_for(
                ".action_blocked",
                service_id=service_id,
                notification_type=template_type,
                template_folder_id=template_folder_id,
                return_to="templates",
                template_id="0",
            ))
    else:
        return render_template(
            f"views/edit-{template_type}-template.html",
            form=form,
            template_type=template_type,
            template_folder_id=template_folder_id,
            service_id=service_id,
            heading=_l("New email template")
            if template_type == "email" else _l("New text message template"),
        )