{% extends "base.html" %} {% block title %}System — Puntavia{% endblock %} {# Независимая админка владельца СЕРВИСА: регистрации и оплаты. Свой вход (/system/login) и своя сессия — кабинет сюда не пускает. Тексты намеренно не переводятся — страницу видит только staff, а staff читает по-русски (та же договорённость, что у вкладки «Сервис» в настройках). Инструменты рассчитаны на сотни компаний: поиск, фильтры-состояния, страницы по 50, журнал событий. Взгляд живёт в адресе (?q=&st=&page=) и переживает действия — формы несут его скрытыми полями. #} {% block head %} {% endblock %} {% block crumb %}/System{% endblock %} {% block content %}
: форма внутри абзаца — невалидная разметка, браузер рвёт её сам #}
| Компания | Владелец | Состояние | Машины | |
|---|---|---|---|---|
|
{{ r.org.name }}{% if r.org['kind'] == 'personal' %} личный{% endif %}
с {{ r.created }} · тариф
{%- if r.org['plan'] in ('s','m','l') %} {{ r.org['plan'] | upper }} ·
{{ r.org['seats'] }} машин
{%- else %} не выбран · {{ r.org['seats'] }} машин{% endif %}
{# Заметка — прямо под названием, а не в «Действиях»: она затем и
нужна, чтобы «оплачено» без оплаты объяснялось с одного взгляда. #}
{% if r.org['note'] %}{{ r.org['note'] }} {% endif %}
|
{% for o in r.owners %}
{{ o.email }}{% if not o.email_verified %} · почта не подтверждена{% endif %}
{% else %}
не назначен
{% endfor %}
|
{% if r.state == 'trial' %}демо · {{ r.days }} дн {% elif r.state == 'expired' %}кончилось · ещё {{ r.days }} дн {% elif r.state == 'blocked' %}остановлено {% else %}оплачено{% endif %} | {% if r.n_dev %}{{ r.alive }}/{{ r.n_dev }} · {{ r.seen }}{% else %}нет{% endif %} |
Действия
{% if r.state != 'blocked' %}
{% endif %}
{# Настоящее удаление — за второй дверью и с вписыванием названия:
сервер сверяет его дословно, без совпадения ничего не происходит #}
Удалить насовсем…Стираются база, скриншоты и настройки компании — восстановление только из бэкапа. Учётки людей остаются: они могут состоять в других компаниях. |