Переменные шаблона личного кабинета: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
 
(Не показані 4 проміжні версії цього користувача)
Рядок 1: Рядок 1:
В шаблоне base.html личного кабинета доступны такие переменные:
В шаблоне base.html личного кабинета доступны такие переменные:
<pre>
<pre>
user_info.id             : id пользователя
user_info.id             : id пользователя
user_info.name           : логин
user_info.name           : логин
user_info.fio           : ФИО
user_info.fio             : ФИО
user_info.ppc           : платежный код
user_info.ppc             : платежный код
user_info.grp           : номер группы клиента
user_info.grp             : номер группы клиента
user_info.grp_name       : имя группы
user_info.grp_name       : имя группы
user_info.state         : on - доступ открыт, off - закрыт
user_info.state           : on - доступ открыт, off - закрыт
user_info.state_off     : установлен если state равен off
user_info.state_off       : установлен если state равен off
user_info.contract       : договор
user_info.contract       : договор
user_info.contract_date : дата договора (timestamp)
user_info.contract_date   : дата договора (timestamp)
user_info.contract_date_as_text : дата договора в виде dd.mm.yyyy
user_info.contract_date_as_text : дата договора в виде dd.mm.yyyy
user_info.balance       : баланс
user_info.balance         : баланс
user_info.limit_balance : граница отключения
user_info.limit_balance   : граница отключения
user_info.block_if_limit : отключать ли запись при достижении границы отключения
user_info.block_if_limit : отключать ли запись при достижении границы отключения
user_info.cstate         : техническое состояние (настроить/ремонт/вирусы...) в виде числа
user_info.cstate         : техническое состояние (настроить/ремонт/вирусы...) в виде числа
user_info.cstate_time   : время изменения поля cstate (timestamp)
user_info.cstate_time     : время изменения поля cstate (timestamp)
user_info.comment        : комментарий
user_info.comment        : комментарий
user_info.lstate         : нужна авторизация/всегда онлайн
user_info.lstate         : нужна авторизация/всегда онлайн
user_info.discount       : скидка
user_info.discount       : скидка
user_info.traf           : суммарный трафик
user_info.traf           : суммарный трафик
user_info.traf_in       : суммарный трафик к клиенту
user_info.traf_in         : суммарный трафик к клиенту
user_info.traf_out       : суммарный трафик от клиента
user_info.traf_out       : суммарный трафик от клиента
user_info.traf1         : трафик в байтах направления 1
user_info.traf1           : трафик в байтах направления 1
...
...
user_info.traf4         : трафик в байтах направления 4
user_info.traf4           : трафик в байтах направления 4
user_info.in1           : входящий трафик направления 1
user_info.in1             : входящий трафик направления 1
user_info.out1           : исходящий трафик направления 1
user_info.out1           : исходящий трафик направления 1
user_info.recommended_pay : рекомендованная сумма платежа
user_info.recommended_pay : рекомендованная сумма платежа
user_info.full_info     : блок информации об абоненте для администратора
user_info.full_info       : блок информации об абоненте для администратора
user_info.dopdata       : дополнительные данные
user_info.dopdata         : дополнительные данные
user_info.services       : подключенные услуги
user_info.services       : подключенные услуги
user_info.ips           : ip адреса
user_info.ips             : ip адреса
user_info.pays            : платежи
user_info.pays            : платежи
</pre>
</pre>
Рядок 44: Рядок 44:
</pre>
</pre>


Вы должны учитывать то, что в базе данных иногда значения хранятся не так как отображаются. Например, поле "улица" в базе данных может храниться как номер улицы или как цепочка Город-улица (если используются зависимые выпадающие списки). Поэтому, скорее всего, вам нужно использовать метод show(), а не value.
Вы должны учитывать то, что в базе данных иногда значения хранятся не так как отображаются. Например, поле «улица» в базе данных может храниться как номер улицы или как цепочка Город-улица (если используются зависимые выпадающие списки). Поэтому, скорее всего, вам нужно использовать метод show(), а не value.


Отобразить имя поля:
Отобразить имя поля:
Рядок 56: Рядок 56:


<pre>
<pre>
title       : имя услуги
service_id      : id услуги
text        : локализированное сообщение "{время} подлючена {услуга}"
title           : имя услуги
change_url  : ссылка "Управление" на страницу изменения услуги. Может быть пустой строкой
description    : описание
when_end    : локализированное сообщение о том, когда заканчивается услуга. Может быть пустой строкой
pay_id          : id платежа, с которым связана данная услуга
next_service : локализированное сообщение с информацией о следующей услуге
next_service_id : id следующей услуги
time_left    : сколько секунд осталось до завершения услуги
module          : модуль услуги (inet_unlim/basic/speed_up/omegatv)
frozen      : установлено, если услуга заморожена
tm_start        : время старта услуги (timestamp)
tm_end          : время окончания услуги (timestamp)
</pre>
 
<pre>
{% for s in user_info.services %}
    У услуги <b>{{ s.title }}</b> описание: {{ s.description }}<br>
{% endfor %}
</pre>
</pre>



Поточна версія на 14:50, 12 квітня 2021

В шаблоне base.html личного кабинета доступны такие переменные:

user_info.id              : id пользователя
user_info.name            : логин
user_info.fio             : ФИО
user_info.ppc             : платежный код
user_info.grp             : номер группы клиента
user_info.grp_name        : имя группы
user_info.state           : on - доступ открыт, off - закрыт
user_info.state_off       : установлен если state равен off
user_info.contract        : договор
user_info.contract_date   : дата договора (timestamp)
user_info.contract_date_as_text : дата договора в виде dd.mm.yyyy
user_info.balance         : баланс
user_info.limit_balance   : граница отключения
user_info.block_if_limit  : отключать ли запись при достижении границы отключения
user_info.cstate          : техническое состояние (настроить/ремонт/вирусы...) в виде числа
user_info.cstate_time     : время изменения поля cstate (timestamp)
user_info.comment         : комментарий
user_info.lstate          : нужна авторизация/всегда онлайн
user_info.discount        : скидка
user_info.traf            : суммарный трафик
user_info.traf_in         : суммарный трафик к клиенту
user_info.traf_out        : суммарный трафик от клиента
user_info.traf1           : трафик в байтах направления 1
...
user_info.traf4           : трафик в байтах направления 4
user_info.in1             : входящий трафик направления 1
user_info.out1            : исходящий трафик направления 1
user_info.recommended_pay : рекомендованная сумма платежа
user_info.full_info       : блок информации об абоненте для администратора
user_info.dopdata         : дополнительные данные
user_info.services        : подключенные услуги
user_info.ips             : ip адреса
user_info.pays            : платежи

Дополнительные поля

user_info.dopdata - дополнительные поля учетной записи. Доступ осуществляется как:

user_info.dopdata._adr_street.show() : отображение поля _adr_street
user_info.dopdata._adr_street.value  : значение поля _adr_street

Вы должны учитывать то, что в базе данных иногда значения хранятся не так как отображаются. Например, поле «улица» в базе данных может храниться как номер улицы или как цепочка Город-улица (если используются зависимые выпадающие списки). Поэтому, скорее всего, вам нужно использовать метод show(), а не value.

Отобразить имя поля:

{{ user_info.dopdata._adr_street.title }}

Услуги

user_info.services

service_id      : id услуги
title           : имя услуги
description     : описание
pay_id          : id платежа, с которым связана данная услуга
next_service_id : id следующей услуги
module          : модуль услуги (inet_unlim/basic/speed_up/omegatv)
tm_start        : время старта услуги (timestamp)
tm_end          : время окончания услуги (timestamp)
{% for s in user_info.services %}
    У услуги <b>{{ s.title }}</b> описание: {{ s.description }}<br>
{% endfor %}

Соединения

В случае, если у вас подключен модуль dhcp, добавляется еще одна переменная:

user_info.connection

В этой переменной хранится список соединений - это информация по ip и мак. Обычно, у абонента привязан один мак, поэтому его можно отобразить как:

{{ user_info.connection.0.mac }}

Или, например, мак устройства, к которому подключен абонент:

{{ user_info.connection.0.device_mac }}

Здесь 0 - индекс соединения (нумерация с нуля). При этом вы должны учитывать, что на одну учетную запись может быть несколько соединений. Поэтому, чтобы отобразить их все, нужно воспользоваться командой for:

{% for con in user_info.connection %}
    Ваш мак: {{ con.mac }}<br>
{% endfor %}

На самом деле, конфигурация соединений такова, что мак не обязательно будет присутствовать в случае, когда учетке выделен ip адрес, но не привязан мак. Бывают и более сложные ситуации: привязано несколько ip и несколько мак. В этом случае, возможно есть смысл проверять, указан ли в соединении мак:

{% for con in user_info.connection %}
    {% if con.mac %}
        Ваш мак: {{ con.mac }}<br>
    {% endif %}
{% endfor %}

Пример вывода полной информации по подключениям:

{% for con in user_info.connection %}
    Ваш мак: {{ con.mac }}, ip: {{ con.ipa }}, ip как число: {{ con.ip }},
    тип: {{ con.type }}, один на порту: {% if con.oneconnect %}Да{% endif %}<br>
{% endfor %}