Ejemplo n.º 1
0
def get_inbox_partials(service_id):

    if 'inbound_sms' not in current_service['permissions']:
        abort(403)

    messages_to_show = list()
    inbound_messages = service_api_client.get_inbound_sms(service_id)

    for message in inbound_messages:
        if format_phone_number_human_readable(message['user_number']) not in {
                format_phone_number_human_readable(message['user_number'])
                for message in messages_to_show
        }:
            messages_to_show.append(message)

    if not inbound_messages:
        inbound_number = inbound_number_client.get_inbound_sms_number_for_service(
            service_id)['data']['number']
    else:
        inbound_number = None

    return {
        'messages':
        render_template(
            'views/dashboard/_inbox_messages.html',
            messages=messages_to_show,
            count_of_messages=len(inbound_messages),
            count_of_users=len(messages_to_show),
            inbound_number=inbound_number,
        )
    }
Ejemplo n.º 2
0
def get_inbox_partials(service_id):
    page = int(request.args.get('page', 1))
    if 'inbound_sms' not in current_service['permissions']:
        abort(403)

    inbound_messages_data = service_api_client.get_most_recent_inbound_sms(service_id, page=page)
    inbound_messages = inbound_messages_data['data']

    if not inbound_messages:
        inbound_number = inbound_number_client.get_inbound_sms_number_for_service(service_id)['data']['number']
    else:
        inbound_number = None

    prev_page = None
    if page > 1:
        prev_page = generate_previous_dict('main.inbox', service_id, page)
    next_page = None
    if inbound_messages_data['has_next']:
        next_page = generate_next_dict('main.inbox', service_id, page)

    return {'messages': render_template(
        'views/dashboard/_inbox_messages.html',
        messages=inbound_messages,
        inbound_number=inbound_number,
        prev_page=prev_page,
        next_page=next_page

    )}
Ejemplo n.º 3
0
def service_set_inbound_sms(service_id):
    number = inbound_number_client.get_inbound_sms_number_for_service(
        service_id)['data'].get('number', '')
    return render_template(
        'views/service-settings/set-inbound-sms.html',
        inbound_number=number,
    )
Ejemplo n.º 4
0
def service_set_inbound_number(service_id):
    available_inbound_numbers = inbound_number_client.get_available_inbound_sms_numbers(
    )
    service_has_inbound_number = inbound_number_client.get_inbound_sms_number_for_service(
        service_id)['data'] != {}
    inbound_numbers_value_and_label = [
        (number['id'], number['number'])
        for number in available_inbound_numbers['data']
    ]
    no_available_numbers = available_inbound_numbers['data'] == []
    form = ServiceInboundNumberForm(
        inbound_number_choices=inbound_numbers_value_and_label)
    if form.validate_on_submit():
        service_api_client.add_sms_sender(
            current_service['id'],
            sms_sender=form.inbound_number.data,
            is_default=True,
            inbound_number_id=form.inbound_number.data)
        switch_service_permissions(current_service['id'], 'inbound_sms')
        return redirect(url_for('.service_settings', service_id=service_id))
    return render_template(
        'views/service-settings/set-inbound-number.html',
        form=form,
        no_available_numbers=no_available_numbers,
        service_has_inbound_number=service_has_inbound_number)
Ejemplo n.º 5
0
def service_settings(service_id):
    letter_branding_organisations = email_branding_client.get_letter_email_branding(
    )
    organisation = organisations_client.get_service_organisation(
        service_id).get('name', None)

    if current_service['email_branding']:
        email_branding = email_branding_client.get_email_branding(
            current_service['email_branding'])['email_branding']
    else:
        email_branding = None

    inbound_number = inbound_number_client.get_inbound_sms_number_for_service(
        service_id)
    disp_inbound_number = inbound_number['data'].get('number', '')
    reply_to_email_addresses = service_api_client.get_reply_to_email_addresses(
        service_id)
    reply_to_email_address_count = len(reply_to_email_addresses)
    default_reply_to_email_address = next(
        (x['email_address']
         for x in reply_to_email_addresses if x['is_default']), "Not set")
    letter_contact_details = service_api_client.get_letter_contacts(service_id)
    letter_contact_details_count = len(letter_contact_details)
    default_letter_contact_block = next(
        (Field(x['contact_block'], html='escape')
         for x in letter_contact_details if x['is_default']), "Not set")
    sms_senders = service_api_client.get_sms_senders(service_id)
    sms_sender_count = len(sms_senders)
    default_sms_sender = next((Field(x['sms_sender'], html='escape')
                               for x in sms_senders if x['is_default']),
                              "None")

    free_sms_fragment_limit = billing_api_client.get_free_sms_fragment_limit_for_year(
        service_id)
    data_retention = service_api_client.get_service_data_retention(service_id)

    return render_template(
        'views/service-settings.html',
        email_branding=email_branding,
        letter_branding=letter_branding_organisations.get(
            current_service.get('dvla_organisation', '001')),
        can_receive_inbound=('inbound_sms' in current_service['permissions']),
        inbound_number=disp_inbound_number,
        default_reply_to_email_address=default_reply_to_email_address,
        reply_to_email_address_count=reply_to_email_address_count,
        default_letter_contact_block=default_letter_contact_block,
        letter_contact_details_count=letter_contact_details_count,
        default_sms_sender=default_sms_sender,
        sms_sender_count=sms_sender_count,
        free_sms_fragment_limit=free_sms_fragment_limit,
        prefix_sms=current_service['prefix_sms'],
        organisation=organisation,
        data_retention=data_retention,
    )