В статье представлены примеры создания и настройки новых папок действий.
Папка действий “На исполнении”
Допустим в корне папки “Задачи” необходим дополнительный раздел с названием “На исполнении”. При отправке задачи исполнителю, задача у инициатора в состояниях “Назначена”, “В работе”, должна попадать в раздел “На исполнении”. После выполнения задачи исполнителем и смены состояния задачи на “Выполнена”, задача у инициатора должна пропадать из раздела “На исполнении”.
Для создания такой папки необходимо выполнить следующие действия:
- Создать папку действий стандартным способом:
- Открыть папку на редактирование и в разделе “Скрипт количества записей” вставить новый скрипт:
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