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, ) }
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 )}
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, )
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)
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, )