Папки действий (настройка системы ТЕЗИС)

В статье представлены примеры создания и настройки новых папок действий.

Папка действий “На исполнении”

Допустим в корне папки “Задачи” необходим дополнительный раздел с названием “На исполнении”. При отправке задачи исполнителю, задача у инициатора в состояниях “Назначена”, “В работе”, должна попадать в раздел “На исполнении”. После выполнения задачи исполнителем и смены состояния задачи на “Выполнена”, задача у инициатора должна пропадать из раздела “На исполнении”.

Для создания такой папки необходимо выполнить следующие действия:

  1. Создать папку действий стандартным способом:
  2. Открыть папку на редактирование и в разделе “Скрипт количества записей” вставить новый скрипт:
import com.haulmont.cuba.core.global.AppBeans
import com.haulmont.cuba.core.global.LoadContext;
import com.haulmont.thesis.core.entity.Task;
import com.haulmont.cuba.core.app.DataWorker;
import com.haulmont.thesis.core.appfolders.AppFolderCounters
import com.haulmont.cuba.core.global.UserSessionProvider
 
def userId = UserSessionProvider.currentOrSubstitutedUserId()
def cardsWithAssignmentsCnt = 0
 
DataWorker dataWorker = AppBeans.get(DataWorker.NAME)
List<Map<String, Object>> result = []
LoadContext ctx = new LoadContext(Task.class)
LoadContext.Query query =
        new LoadContext.Query("select t from tm\$Task t where t.initiator.id = :userId and t.state <>',Canceled,' and t.finishDateFact is null and t.executor.id <> t.initiator.id and t.deleteTs is null")
                .setParameter("userId", userId)
ctx.setUseSecurityConstraints(false)
ctx.setView("subCard")
ctx.setQuery(query)
List<Task> list = dataWorker.loadList(ctx)
cardsWithAssignmentsCnt = list.size()
return cardsWithAssignmentsCnt