Настройка тикетной системы: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
 
(Не показано 28 проміжних версій цього користувача)
Рядок 1: Рядок 1:
Чтобы сотрудник имел доступ к задачам (тикетам) и сообщениям - необходимо, чтобы его административная учетная запись была связана с обычной учетной записью. Это сделано для того, чтобы автором тикета мог быть не только сотрудник, но и абонент.
Чтобы сотрудник имел доступ к задачам (тикетам) и сообщениям - необходимо, чтобы его административная учетная запись была связана с обычной учетной записью. Это сделано для того, чтобы автором тикета мог быть не только сотрудник, но и абонент.


Вам необходимо создать группу "Сотрудники", в которой установить такие параметры:
Вам необходимо создать группу «Сотрудники», в которой заполнить такие параметры:
* Имя идентификационного поля - ФИО (можно иной идентификатор сотрудника)
* Имя идентификационного поля - ФИО (можно иной идентификатор сотрудника)
* Установить галку данной группе находятся сотрудники компании"
* Установить галку «В данной группе находятся сотрудники компании»
* Если необходимо, установите галку "имеют баланс"
* Если необходимо, установить галку «имеют баланс»
* Все остальные галки убрать
* Все остальные галки убрать


В дополнительных полях можно создать поле "должность" типа "строковое однострочное", а также в поле "телефон" поставить галку доступности поля в группе "сотрудники".
В дополнительных полях можно создать поле «должность» типа «одна строка», а также в поле «телефон» поставить галку доступности поля в группе «сотрудники».


Создайте учетные записи сотрудников. Если сотрудник имеет доступ в админку (это не обязательно), то в настройках в разделе "Администраторы" свяжите его логин с соответствующей  учетной записью в группе "сотрудники" (параметр "он же" в данных администратора).
Создайте учетные записи сотрудников. Если сотрудник имеет доступ в админку (это не обязательно), то в настройках в разделе "Администраторы" свяжите его логин с соответствующей  учетной записью в группе "сотрудники" (параметр "он же" в данных администратора).
Рядок 17: Рядок 17:
Есть возможность для задачи по ее данным формировать документ-наряд для распечатки его. При этом может быть множество шаблонов для разных ситуаций.
Есть возможность для задачи по ее данным формировать документ-наряд для распечатки его. При этом может быть множество шаблонов для разных ситуаций.


На титульной странице админке нажмите на "Документы". В разделе "Документы" создайте папку "Наряды". Естественно, вы можете иначе назвать эту папку или несколько папок и поместить их не в "Документы", а иную папку. В папке "Наряды" создайте документ с именем, скажем, "Подключение" или "Ремонт". Вставьте в него следующий текст:
На титульной странице админки нажмите на «Документы». В разделе «Документы» создайте папку «Наряды». Естественно, вы можете иначе назвать эту папку или несколько папок и поместить их не в «Документы», а иную папку. В папке «Наряды» создайте документ с именем, скажем, «Подключение» или «Ремонт». Вставьте в него следующий текст:


<pre>
<!doctype html>
<!doctype html>
<html>
<html>
Рядок 35: Рядок 36:
     margin: 0 auto;
     margin: 0 auto;
}
}
.tbl {
table {
     border: 1px solid #666;
     border: 1px solid #666;
     border-collapse: collapse;
     border-collapse: collapse;
Рядок 41: Рядок 42:
     text-align: left;
     text-align: left;
}
}
.tbl td {
td {
     padding: 4pt 25pt;
     padding: 4pt 25pt;
     border-width: 1px;
     border-width: 1px;
Рядок 51: Рядок 52:
<body>
<body>


<table class='tbl'>
<table>
<tr> <td>Id клиента</td>           <td>{{id}}</td>             </tr>
<tr><td>Id тикета</td><td>{{id}}</td></tr>
<tr> <td>Платежный код</td>         <td>{{ppc}}</td>           </tr>
<tr><td>Создан</td><td>{{created_time}}</td></tr>
<tr> <td>Логин</td>                 <td>{{name|safe}}</td>     </tr>
<tr><td>Тикет создал</td><td>{{creator.name}}</td></tr>
<tr> <td>ФИО</td>                   <td>{{fio|safe}}</td>      </tr>
<tr><td>Исполнитель</td><td>
<tr> <td>Номер группы</td>          <td>{{grp}}</td>            </tr>
  {% if performer %}{{performer.name}} ({{performer.dopdata._adr_telefon.show()}}){% endif %}</td></tr>
<tr> <td>Имя группы</td>            <td>{{grp_name|safe}}</td>  </tr>
<tr> <td>Договор</td>              <td>{{contract|safe}}</td>  </tr>
<tr> <td>Доступ</td>                <td>{% if state_off %} Заблокирован {% else %} Включен {% endif %}</td>    </tr>
<tr> <td>Баланс</td>                <td>{{balance}}</td>        </tr>
<tr> <td>Граница отключения</td>    <td>{{limit_balance}} </td> </tr>
<tr> <td>Авторизация</td>          <td>{% if lstate %} Выключена {% else %} Включена {% endif %}</td>     </tr>
<tr> <td>&nbsp;</td>                <td>&nbsp;</td>    </tr>
 
</table>
</table>


</body>
</body>
</html>
</html>
</pre>
Доступны следующие переменные:
<pre>
id          : Id тикета
created_time : Создан
updated_time : Последнее изменение
start_time  : Когда выполнить
creator      : Тикет создал
    creator.id : id
    creator.name : логин
    creator.doptata.имя_поля.show() : дополнительное поле
    и другие поля записи из таблицы users
performer    : Исполнитель
    теже поля, что и у creator, но обратить внимание, что
    исполнитель может отсутствовать (в примере проверка с помощью if)
client      : Клиент
    теже поля, что и у creator, например:
    client.fio, client.balance, client.dopdata._adr_street.show()
type        : Тип тикета
type_id      : Тип тикета в числовом виде
level        : Приоритет
state        : Состояние
state_id    : Состояние (в латинице)
subject      : Тема
comment      : Комментарий
</pre>
==Настройка пуш-уведомлений==
==Настройка пуш-уведомлений==


Внимание, пуш-уведомления могут работать только если ваш сайт имеет валидный не самоподписанный сертификат!
Внимание! Пуш-уведомления могут работать только если ваш сайт имеет валидный не самоподписанный сертификат.


* Заходим [https://console.developers.google.com/ Google Developers Console]. Создаем проект (нажимаем Create a project). Даем название проекту NoDeny.
* Заходим в [https://console.cloud.google.com/ Google Cloud Platform]. Меню "Начало работы". Затем "Создать пустой проект". В поле "Название проекта" вводим "NoDeny". Нажимаем "Создать"
* Переходим в меню управления google api (нажимаем Use Google APIs). Выбираем Google Cloud Messaging for Android. Нажимаем Enable API
* Переходим в "Панель управления". Если в виджете "информация о проекте" отображаются данные иного проекта (допустим, вы его создали ранее), меняем проект в выпадающем списке в верху страницы
* В левом меню нажимаем Credentials. Нажимаем Add credentials. В появившемся списке выбираем API key. В появившемся диалоговом окне нажимаем кнопку Server key. Далее вводим имя ключа, например, NoDeny и нажимаем Create.  Созданный ключ вносим в настройки NoDeny в разделе "Тикеты". В этом же разделе настроек указываем Project number - он должен состоять только из цифр - найдем в настройках нашего проекта в Google Developers Console
* В боковом меню выбираем "API и сервисы"
* Вверху нажимаем на кнопку "Включить API и сервисы"
* В поиске вбиваем "google cloud messaging"
* Найдется несколько вариантов, но нам нужен именно "Google Cloud Messaging"
* Нажимаем "Включить"
* После включения появится сообщение "Чтобы использовать этот API, нужно создать учетные данные". Справа от него нажимаем на "Создать"
* В выпадающем списке "Какой API вы используете?" выбираем "Google Cloud Messaging"
* Нажимаем на "Выбрать тип учетных данных"
* В результате получим ключ (строку из случайных символов). Копируем ее и вставляем в настройки админки в раздел "Push notification" в поле "API key"
* Нажимаем "Готово"
* Для работы push-уведомлений также необходима проверка домена со стороны Google. Это делается на вкладке "Подтверждение прав на домен". Нажимаем на "Добавить домен" и указываем адрес своего сайта.
* Переходим на стартовую страницу (кликаем по заголовку Google Cloud Platform)
* Переходим к настройкам проекта
* В настройках находим параметр "Номер проекта" (число) , копируем его и вставляем в админку в поле "Project number". Сохраняем настройки
* Создаем файл-манифест:
<pre>
perl install.pl -x
</pre>
* Проверяем, что создался файл-манифест:
<pre>
cat /usr/local/nodeny/htdocs/manifest.json
</pre>
* На титульной странице админки нажимаем "Включить push-notification". Затем "Включить"
* Если получаем ошибку, то открывает dev-консоль браузера и смотрим в чем проблема

Поточна версія на 20:34, 15 квітня 2019

Чтобы сотрудник имел доступ к задачам (тикетам) и сообщениям - необходимо, чтобы его административная учетная запись была связана с обычной учетной записью. Это сделано для того, чтобы автором тикета мог быть не только сотрудник, но и абонент.

Вам необходимо создать группу «Сотрудники», в которой заполнить такие параметры:

  • Имя идентификационного поля - ФИО (можно иной идентификатор сотрудника)
  • Установить галку «В данной группе находятся сотрудники компании»
  • Если необходимо, установить галку «имеют баланс»
  • Все остальные галки убрать

В дополнительных полях можно создать поле «должность» типа «одна строка», а также в поле «телефон» поставить галку доступности поля в группе «сотрудники».

Создайте учетные записи сотрудников. Если сотрудник имеет доступ в админку (это не обязательно), то в настройках в разделе "Администраторы" свяжите его логин с соответствующей учетной записью в группе "сотрудники" (параметр "он же" в данных администратора).

В общих настройках в разделе "Тикеты" установите типы задач, например: ремонт, настройка, заявка на подключение, плановая проверка, мобилизация и т.д.

Наряды

Есть возможность для задачи по ее данным формировать документ-наряд для распечатки его. При этом может быть множество шаблонов для разных ситуаций.

На титульной странице админки нажмите на «Документы». В разделе «Документы» создайте папку «Наряды». Естественно, вы можете иначе назвать эту папку или несколько папок и поместить их не в «Документы», а иную папку. В папке «Наряды» создайте документ с именем, скажем, «Подключение» или «Ремонт». Вставьте в него следующий текст:

<!doctype html>
<html>
<head>
<meta http-equiv='Cache-Control' content='no-cache'>
<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style type='text/css'>
body { 
    max-width: 800px;
    font-size: 9pt;
    font-family: Tahoma,sans-serif;
    color: #000;
    background-color: #fff;
    text-align: left;
    margin: 0 auto;
}
table {
    border: 1px solid #666;
    border-collapse: collapse;
    margin: 0 auto;
    text-align: left;
}
td {
    padding: 4pt 25pt;
    border-width: 1px;
    border-style: solid;
    border-color: #c0c0c0 #ffffff #c0c0c0 #ffffff;
}
</style>
</head>
<body>

<table>
<tr><td>Id тикета</td><td>{{id}}</td></tr>
<tr><td>Создан</td><td>{{created_time}}</td></tr>
<tr><td>Тикет создал</td><td>{{creator.name}}</td></tr>
<tr><td>Исполнитель</td><td>
  {% if performer %}{{performer.name}} ({{performer.dopdata._adr_telefon.show()}}){% endif %}</td></tr>
</table>

</body>
</html>

Доступны следующие переменные:

id           : Id тикета
created_time : Создан
updated_time : Последнее изменение
start_time   : Когда выполнить
creator      : Тикет создал
    creator.id : id
    creator.name : логин
    creator.doptata.имя_поля.show() : дополнительное поле
    и другие поля записи из таблицы users
performer    : Исполнитель
    теже поля, что и у creator, но обратить внимание, что
    исполнитель может отсутствовать (в примере проверка с помощью if)
client       : Клиент
    теже поля, что и у creator, например:
    client.fio, client.balance, client.dopdata._adr_street.show()
type         : Тип тикета
type_id      : Тип тикета в числовом виде
level        : Приоритет
state        : Состояние
state_id     : Состояние (в латинице)
subject      : Тема
comment      : Комментарий

Настройка пуш-уведомлений

Внимание! Пуш-уведомления могут работать только если ваш сайт имеет валидный не самоподписанный сертификат.

  • Заходим в Google Cloud Platform. Меню "Начало работы". Затем "Создать пустой проект". В поле "Название проекта" вводим "NoDeny". Нажимаем "Создать"
  • Переходим в "Панель управления". Если в виджете "информация о проекте" отображаются данные иного проекта (допустим, вы его создали ранее), меняем проект в выпадающем списке в верху страницы
  • В боковом меню выбираем "API и сервисы"
  • Вверху нажимаем на кнопку "Включить API и сервисы"
  • В поиске вбиваем "google cloud messaging"
  • Найдется несколько вариантов, но нам нужен именно "Google Cloud Messaging"
  • Нажимаем "Включить"
  • После включения появится сообщение "Чтобы использовать этот API, нужно создать учетные данные". Справа от него нажимаем на "Создать"
  • В выпадающем списке "Какой API вы используете?" выбираем "Google Cloud Messaging"
  • Нажимаем на "Выбрать тип учетных данных"
  • В результате получим ключ (строку из случайных символов). Копируем ее и вставляем в настройки админки в раздел "Push notification" в поле "API key"
  • Нажимаем "Готово"
  • Для работы push-уведомлений также необходима проверка домена со стороны Google. Это делается на вкладке "Подтверждение прав на домен". Нажимаем на "Добавить домен" и указываем адрес своего сайта.
  • Переходим на стартовую страницу (кликаем по заголовку Google Cloud Platform)
  • Переходим к настройкам проекта
  • В настройках находим параметр "Номер проекта" (число) , копируем его и вставляем в админку в поле "Project number". Сохраняем настройки
  • Создаем файл-манифест:
perl install.pl -x
  • Проверяем, что создался файл-манифест:
cat /usr/local/nodeny/htdocs/manifest.json
  • На титульной странице админки нажимаем "Включить push-notification". Затем "Включить"
  • Если получаем ошибку, то открывает dev-консоль браузера и смотрим в чем проблема