Фильтрация задач по статусам - не работает

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dimyy
    Active Community Member
    • Jun 2018
    • 569

    Фильтрация задач по статусам - не работает



    Фильтр по статусам не срабатывает. Возможно проблема в том что нет английских аналогов статусам и определяются они видимо динамически. По всей видимости есть какой то обходной путь корректного задания статусов.

    На текущий момент
    select distinct status from task дает следующий результат: Not Started Started В плане В работе Закрыта Новая Обратная связь Отказ Отложена Решена По всей видимости последствия импорта данных, отдельно статусы не настраивались,
    Настройках поля status в администрировании при выборе русского языка в настройках: http://joxi.ru/L21lNQ3T8VdaDm
    Настройках поля status в администрировании при выборе английского языка в настройках: http://joxi.ru/Q2K4bljH4XKP3A

    Вариант поиска с any of дает пустую выборку: http://joxi.ru/EA41gWaUwZ7K1r

    Что надо сделать для исправления?
    Last edited by dimyy; 06-28-2018, 07:49 AM.
  • tanya
    Senior Member
    • Jun 2014
    • 4308

    #2
    У вас не должно быть разбежностей между значениями в таблице и вариантами в описании поля в администрировании. Надо либо расширять варианты, либо менять значения в базе.
    В поиске есть возможность выбрать только из заданных вариантов. С фильтром None of Закрыта (для системы это ключ Completed) запрос строится, что значений не должно быть Completed. А для базы "Completed" не то же что "Закрыта"

    Comment

    • dimyy
      Active Community Member
      • Jun 2018
      • 569

      #3
      Т.е. то что слева в колонке администрирования - это значения которые должны быть прописаны в БД, справа - это настройка отображения в конкретном языке?

      "Completed" жестко зарезервировано под закрытые задачи и так и должно быть прописано в БД на закрытых задачах?

      Comment

      • tanya
        Senior Member
        • Jun 2014
        • 4308

        #4
        Нет жесткой резервации, просто должно быть соответсвие между левой колонкой и значениями в базе.

        Но вот стандартные фильтры могут не работать. Их надо будет переопределить (те фильтры, что слева от поиска)
        EspoCRM – Open Source CRM Application. Contribute to espocrm/espocrm development by creating an account on GitHub.

        Comment

        • dimyy
          Active Community Member
          • Jun 2018
          • 569

          #5
          Есть ли корректный метод переопределения или правильнее исходный код править?

          В самом простом варианте необходимо в функции

          protected function filterActual(&$result)
          {
          $result['whereClause'][] = array(
          'status!=' => ['Completed', 'Canceled', 'Deferred']
          );
          }

          добавить в массив 'Closed'

          Comment

          • tanya
            Senior Member
            • Jun 2014
            • 4308

            #6
            В файле custom/Espo/Custom/SelectManagers/Task.php создаете класс Task, наследуете данный класс, переодределяете нужные функции
            пространство имен - namespace Espo\Custom\SelectManagers;

            Comment

            • dimyy
              Active Community Member
              • Jun 2018
              • 569

              #7
              Спасибо!

              Все работает как хотелось бы.
              Last edited by dimyy; 06-28-2018, 12:21 PM.

              Comment

              Working...