Кастомизация пользовательского портала


#21

Да, в портале тогда не отображается форма вывода запроса, выходит ошибка, в админке нет нового поля.

Тогда вместо redefine использовать define?


#22

Использовать нужно то, что подходит (define - определение новых нод, redefine - переопределение существующих), но делать это нужно не на уровне всего module_design или details, а на уровне конкретных добавляемых/переопределяемых нод. Для <field id="rejection_reason" ... _delta="define"> ты же не делал define на уровне всего UserRequest.


#23

ok, спс.
В остальном код правильный в расширении?
Насчет связи 2 классов, как я писал ранее, можешь подсказать.


#24

Вывести поле одного объекта в другом можно, если второй объект ссылается на первый по прямой ссылке (как тикет на выбранную услугу или персона на организацию). Тогда во второй объект добавляется AttributeExternalField, где указывается поле связанного объекта.

По коду:

  • отступы разные;
  • для добавления поля на портал скорее всего нужно будет делать redefine всего <twig>, т.к. его дочерние ноды не имеют атрибутов id="...", по которым iTop строит пути для поиска нужно ноды;
  • ноды, которые стоят выше переопределяемой и не являются её предками, тащить в свой модуль не нужно (например, <class>Ticket</class> и <fields/> не играют роли при переопределении <twig>).

#25

Попробовал связать класс UserRequest и ApprovalScheme. Внес изменения в файл datamodel.itop-request-mgmt-itil:
В <class id="UserRequest"> добавил:

<field id="steps" xsi:type="AttributeExternalKey">
<sql>steps</sql>
<target_class>ApprovalScheme</target_class>
<is_null_allowed>true</is_null_allowed>
<on_target_delete>DEL_MANUAL</on_target_delete>
</field>
<field id="steps" xsi:type="AttributeExternalField">
<extkey_attcode>steps</extkey_attcode>
<target_attcode>steps</target_attcode>
</field>

В <presentation><details><items> добавил:

<item id="steps">
<rank>60</rank>
</item>

Steps - это атрибут из класса ApprovalScheme, в который добавляется инфа от поля отклонения.
Данный код не вывел поле с причиной отклонения в админском портале.
Что не так?

Также прочитал тему с добавлением связей между классами http://community.itop-itsm.ru/t/sozdanie-svyazej-mezhdu-obektami-cmdb/35/26, пока не понял в чем проблема.


#26

В пользовательском портале в файл itop-portal.xml в форме <form id="ticket-edit"> добавил:
<class>ApprovalScheme</class>
В <twig> добавил:
<div class="form_field" data-field-id="steps" data-field-flags="read_only"/>
В этой форме был объявлен класс Ticket, добавил туда 2-ой класс ApprocalScheme, можно в форме определять 2 класса?

Также объявил класс:
<class id="ApprovalScheme">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT ApprovalScheme]]></oql_view>
</scope>
</scopes>
</class>
При выводе формы закрытых запросов выходит ошибка.


#27

Коллеги, подскажите пожалуйста, на сколько реально в пользовательском портале привязать шаблон к выбранной категории услуги?
Для примера попробую описать хотелку: есть шаблон запроса на доступ - таблица с нужными полями, которые надо заполнить пользователю, хочу чтобы в зависимоти от категории услуги(запроса на доступ) в поле описание запроса автоматом рисовалась таблица, которую пользователель должен заполнить.