Список участников для задачи
Данный скрипт вычисляет значение дополнительного поля типа User и выводит список пользователей, оставивших к задаче комментарии (или выполнивших любые операции над ней). Скрипт возвращает значение типа ArrayList<String>. Это значение можно использовать в фильтрах по задачам (например, выводить фильтром только те задачи, участником в которых является текущий пользователь.
Значение поля для разных пользователей может быть разным. Оно зависит от настроек видимости различных операций. Значение поля можно (и нужно) кешировать.
Ниже приложен исходный код скрипта и его скомпилированная версия.
package scripts.task_custom_field_value;
import com.trackstudio.exception.GranException;
import com.trackstudio.external.TaskUDFValueScript;
import com.trackstudio.secured.SecuredMessageBean;
import com.trackstudio.secured.SecuredTaskBean;
import java.util.ArrayList;
public class Participants implements TaskUDFValueScript {
    public Object calculate(SecuredTaskBean securedTaskBean) throws GranException {
        ArrayList<String> userIds = new ArrayList<String>();
        ArrayList<SecuredMessageBean> messages = securedTaskBean.getMessages();
        for (SecuredMessageBean m: messages){
            if (!userIds.contains(m.getSubmitter().getLogin())) userIds.add(m.getSubmitter().getLogin());
        }
        return userIds;
    }
}
| Attachment | Size | 
|---|---|
| Participants.class | 1.61 KB |