Отображение в дайджесте компании и агента

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Ответить
alex
OTRS Новобранец
Сообщения: 48
Зарегистрирован: 01 ноя 2010, 14:47
Откуда: Воронеж
Контактная информация:

Отображение в дайджесте компании и агента

Сообщение alex » 24 май 2012, 16:44

В нашей OTRS в дайджесте (dashboard) вместо TicketID отображается название компании клиента а также владельцы заблокированных заявок (как это выглядит показано на скриншоте).
Для этого изменения потребовалось внести правки в шаблон AgentDashboardTicketGeneric.dtl и изменить файл /opt/otrs/Kernel/Output/DashboardTicketGeneric.pm

Файл шаблона желательно править в своей теме, а не в дефолтной теме Standard. Как сделать свою тему написано здесь http://doc.otrs.org/3.0/ru/html/themes.html (все проще простого).
Вот такие изменения вносим в шаблон:

Код: Выделить всё

--- AgentDashboardTicketGeneric.dtl.orig	2012-02-27 12:26:14.000000000 +0400
+++ AgentDashboardTicketGeneric.dtl	2012-02-20 22:03:44.000000000 +0400
@@ -97,25 +97,26 @@
 <!-- dtl:block:ContentLargeTicketGenericRowMeta -->
             <td class="W10pc">
-               <a href="$Env{"Baselink"}Action=AgentTicketZoom;TicketID=$Data{"TicketID"}" title="$QData{"Title"}" class="AsBlock MasterActionLink">$Data{"TicketNumber"}</a>
+              <a href="$Env{"Baselink"}Action=AgentTicketZoom;TicketID=$QData{"TicketID"}"  class="AsBlock MasterActionLink">$QData{"CompanyName","15"}</a>
           </td>
             <td class="W50pc">
                 <div title="$QData{"Title"}">$QData{"Title","70"}</div>
             </td>
+            <td  class="W10pc">$QData{"Owner"}</td>
             <td>$QData{"Time"}</td>
         </tr>
В этом файле меняется поле TicketNumber на поле CompanyName и доваляется поле Owner.
Вложения
dashboard.jpg
dashboard.jpg (121.87 КБ) 20111 просмотров
OTRS::ITSM 5.0.5

alex
OTRS Новобранец
Сообщения: 48
Зарегистрирован: 01 ноя 2010, 14:47
Откуда: Воронеж
Контактная информация:

Re: Отображение в дайджесте компании и агента

Сообщение alex » 24 май 2012, 16:47

Файл /opt/otrs/Kernel/Output/DashboardTicketGeneric.pm копируем в /opt/otrs/Custom/Kernel/Output/DashboardTicketGeneric.pm (все необходимые каталоги создаем и не забываем сменить их владельца на otrs) и вносим следующие правки:

Код: Выделить всё

--- DashboardTicketGeneric.pm.orig	2012-04-18 23:42:29.000000000 +0400
+++ DashboardTicketGeneric.pm	2012-02-20 22:12:49.000000000 +0400
@@ -1,28 +1,36 @@
 use strict;
 use warnings;
 
+use Kernel::Config;
+use Kernel::System::Encode;
+use Kernel::System::Log;
+use Kernel::System::Main;
+use Kernel::System::Time;
+use Kernel::System::DB;
+use Kernel::System::CustomerCompany;
+
 use vars qw($VERSION);
 
 sub new {

@@ -352,20 +360,60 @@
                 Space => ' ',
             );
         }
         else {
             $Ticket{Time} = $Self->{LayoutObject}->CustomerAge(
                 Age   => $Ticket{ $Self->{Config}->{Time} },
                 Space => ' ',
             );
         }
 
+       my $ConfigObject = Kernel::Config->new();
+        my $EncodeObject = Kernel::System::Encode->new(
+           ConfigObject => $ConfigObject,
+       );
+       my $LogObject = Kernel::System::Log->new(
+           ConfigObject => $ConfigObject,
+           EncodeObject => $EncodeObject,
+       );
+       my $TimeObject = Kernel::System::Time->new(
+           ConfigObject => $ConfigObject,
+           LogObject    => $LogObject,
+       );
+       my $MainObject = Kernel::System::Main->new(
+           ConfigObject => $ConfigObject,
+           EncodeObject => $EncodeObject,
+           LogObject    => $LogObject,
+       );
+       my $DBObject = Kernel::System::DB->new(
+           ConfigObject => $ConfigObject,
+           EncodeObject => $EncodeObject,
+           LogObject    => $LogObject,
+           MainObject   => $MainObject,
+       );
+       my $CustomerCompanyObject = Kernel::System::CustomerCompany->new(
+           ConfigObject => $ConfigObject,
+           LogObject    => $LogObject,
+           DBObject     => $DBObject,
+           TimeObject   => $TimeObject,
+           EncodeObject => $EncodeObject,
+           MainObject   => $MainObject,
+       );
+
+	# Получаем информацию о компании клиента
+       my %CustomerCompany = $CustomerCompanyObject->CustomerCompanyGet(
+               CustomerID => $Ticket{CustomerID},
+                   );
+       $Ticket{CompanyName} = $CustomerCompany{CustomerCompanyName}; # Поле CompanyName в дальнейшем используется в dtl-файле
+       if ( $Ticket{Lock} eq 'unlock' ) { $Ticket{Owner}=''; } # Если заявка не заблокирована - не отображаем имя владельца на Dashboard
+
+
         # show ticket
         $Self->{LayoutObject}->Block(
             Name => 'ContentLargeTicketGenericRow',
             Data => \%Ticket,
         );
 
         # show ticket flags
         my @TicketMetaItems = $Self->{LayoutObject}->TicketMetaItems(
             Ticket => \%Ticket,
         );
OTRS::ITSM 5.0.5

fendibober
OTRS Новобранец
Сообщения: 41
Зарегистрирован: 24 фев 2013, 09:54
Откуда: Омск
Благодарил (а): 3 раза

Re: Отображение в дайджесте компании и агента

Сообщение fendibober » 09 янв 2015, 01:57

Не подскажете как сделать подобное в 4-ой версии?)
OTRS 6.0.2
MySQL
Centos 7

До 3 мая 2020:
OTRS 4
MySQL
Debian GNU/Linux 7.11 (wheezy)

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Отображение в дайджесте компании и агента

Сообщение ykolesnikov » 09 янв 2015, 08:41

Отчего же, подскажем. Начиная с 3.3 настройка колонок Дайджеста включена в стандартный функционал. При наведении указателя мыши на правый верхний угол любого виджета Дайджеста появляется изображение шестеренки. Щелкате по нему - далее, все увидите и поймете сами.
А вообще, даже если не переходите на новые версии, надо хотя бы интересоваться перечнем What's new в описании каждого нового релиза, это происходит не каждый день и не занимает много времени, зато будете в курсе всего нового в интерфейсе и функционале. Это, на мой взгляд правило хорошего тона для любого админа. Простите за назидание. :oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

drevofil
OTRS Новобранец
Сообщения: 1
Зарегистрирован: 24 апр 2015, 15:23

Re: Отображение в дайджесте компании и агента

Сообщение drevofil » 24 апр 2015, 15:26

А не подскажете, на что заменить переменную Owner, чтобы отображалось Фамилия Имя, а не логин агента?

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Отображение в дайджесте компании и агента

Сообщение ykolesnikov » 24 апр 2015, 18:03

Никак, потому что Владелец отображается так, как он скофигурирован в SysConfig. Не помню сейчас где, где-то в настройках просмотров, возможно и Дайджеста. В самом же Дайджесте можно указать, какой атрибут показывать. У меня, например, он показывает ФИО.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

Ответить