Пример #1
0
def get_settings_text(poll):
    """Compile the options text for this poll."""
    text = []
    locale = poll.user.locale
    text.append(i18n.t('settings.poll_type',
                       locale=locale,
                       poll_type=translate_poll_type(poll.poll_type, locale)))

    text.append(i18n.t('settings.language', locale=locale, language=poll.locale))

    if poll.anonymous:
        text.append(i18n.t('settings.anonymous', locale=locale))
    else:
        text.append(i18n.t('settings.not_anonymous', locale=locale))

    if poll.due_date:
        text.append(i18n.t('settings.due_date', locale=locale,
                           date=poll.get_formatted_due_date()))
    else:
        text.append(i18n.t('settings.no_due_date', locale=locale))

    if poll.results_visible:
        text.append(i18n.t('settings.results_visible', locale=locale))
    else:
        text.append(i18n.t('settings.results_not_visible', locale=locale))

    text.append('')

    if poll.allow_new_options:
        text.append(i18n.t('settings.user_options', locale=locale))
    else:
        text.append(i18n.t('settings.no_user_options', locale=locale))

    if poll.results_visible:
        if poll.show_percentage:
            text.append(i18n.t('settings.percentage', locale=locale))
        else:
            text.append(i18n.t('settings.no_percentage', locale=locale))

    if poll.has_date_option():
        if poll.european_date_format:
            text.append(i18n.t('settings.euro_date_format', locale=locale))
        else:
            text.append(i18n.t('settings.us_date_format', locale=locale))

    text.append('')

    # Sorting of user names
    if poll.poll_type == PollType.doodle.name:
        sorting_name = i18n.t(f'sorting.doodle_sorting', locale=locale)
        text.append(i18n.t('settings.user_sorting', locale=locale, name=sorting_name))
    elif not poll.anonymous:
        sorting_name = i18n.t(f'sorting.{poll.user_sorting}', locale=locale)
        text.append(i18n.t('settings.user_sorting', locale=locale, name=sorting_name))

    sorting_name = i18n.t(f'sorting.{poll.option_sorting}', locale=locale)
    text.append(i18n.t('settings.option_sorting', locale=locale, name=sorting_name))

    return '\n'.join(text)
Пример #2
0
def get_poll_type_help_text(poll):
    """Create the help text for vote types."""
    locale = poll.user.locale

    message = i18n.t(
        'creation.poll_type_help',
        locale=locale,
        poll_type=translate_poll_type(poll.poll_type, locale),
    )

    return message
def get_change_poll_type_keyboard(poll):
    """Get the inline keyboard for changing the vote type."""
    change_type = CallbackType["change_poll_type"].value

    # Dynamically create a button for each vote type
    buttons = []
    for poll_type in PollType:
        text = translate_poll_type(poll_type.name, poll.locale)
        payload = f'{change_type}:{poll.id}:{poll_type.value}'
        button = [InlineKeyboardButton(text, callback_data=payload)]
        buttons.append(button)

    return InlineKeyboardMarkup(buttons)
Пример #4
0
def get_init_text(poll):
    """Compile the poll creation initialization text."""
    locale = poll.user.locale
    poll.user.current_poll = poll
    poll.user.expected_input = ExpectedInput.name.name

    anonymity = i18n.t('creation.no_anonymity', locale=locale)
    if poll.anonymous:
        anonymity = i18n.t('creation.anonymity', locale=locale)

    results_visible = i18n.t('creation.results_not_visible', locale=locale)
    if poll.results_visible:
        results_visible = i18n.t('creation.results_visible', locale=locale)

    message = i18n.t(
        'creation.init_text',
        locale=poll.user.locale,
        poll_type=translate_poll_type(poll.poll_type, poll.locale),
        anonymity=anonymity,
        results_visible=results_visible,
    )
    return message
Пример #5
0
def get_settings_text(poll):
    """Compile the options text for this poll."""
    text = []
    locale = poll.user.locale
    text.append(
        i18n.t('settings.poll_type',
               locale=locale,
               poll_type=translate_poll_type(poll.poll_type, locale)))

    text.append(
        i18n.t('settings.language', locale=locale, language=poll.locale))

    if poll.anonymous:
        text.append(i18n.t('settings.anonymous', locale=locale))
    else:
        text.append(i18n.t('settings.not_anonymous', locale=locale))

    if poll.results_visible:
        text.append(i18n.t('settings.results_visible', locale=locale))
    else:
        text.append(i18n.t('settings.results_not_visible', locale=locale))

    if poll.due_date:
        text.append(
            i18n.t('settings.due_date',
                   locale=locale,
                   date=poll.get_formatted_due_date()))
    else:
        text.append(i18n.t('settings.no_due_date', locale=locale))

    text.append('')

    text.append('*------- Styling -------*')
    text.append('')
    if poll.allow_new_options:
        text.append(i18n.t('settings.user_options', locale=locale))
    else:
        text.append(i18n.t('settings.no_user_options', locale=locale))

    if poll.results_visible:
        if poll.show_percentage:
            text.append(i18n.t('settings.percentage', locale=locale))
        else:
            text.append(i18n.t('settings.no_percentage', locale=locale))

        if poll.permanently_summarized:
            text.append(
                i18n.t('settings.permanently_summarized', locale=locale))
        elif poll.summarize:
            text.append(i18n.t('settings.summarize', locale=locale))
        else:
            text.append(i18n.t('settings.dont_summarize', locale=locale))

    if poll.has_date_option():
        if poll.european_date_format:
            text.append(i18n.t('settings.euro_date_format', locale=locale))
        else:
            text.append(i18n.t('settings.us_date_format', locale=locale))

    text.append('')

    # Sorting of user names
    if poll.poll_type == PollType.doodle.name:
        sorting_name = i18n.t(f'sorting.doodle_sorting', locale=locale)
        text.append(
            i18n.t('settings.user_sorting', locale=locale, name=sorting_name))
    elif not poll.anonymous:
        sorting_name = i18n.t(f'sorting.{poll.user_sorting}', locale=locale)
        text.append(
            i18n.t('settings.user_sorting', locale=locale, name=sorting_name))

    sorting_name = i18n.t(f'sorting.{poll.option_sorting}', locale=locale)
    text.append(
        i18n.t('settings.option_sorting', locale=locale, name=sorting_name))

    text.append('')
    text.append(
        i18n.t('settings.sharing_link', locale=locale, name=sorting_name))

    payload = get_start_button_payload(poll, StartAction.share_poll)
    bot_name = get_escaped_bot_name()
    text.append(f'https://t.me/{bot_name}?start={payload}')

    return '\n'.join(text)