[freeside-commits] branch master updated. d0b3acc1efb65855d5e52d54c33bb035c9776e2d

Ivan ivan at 420.am
Mon Oct 5 18:35:14 PDT 2015


The branch, master has been updated
       via  d0b3acc1efb65855d5e52d54c33bb035c9776e2d (commit)
      from  cace897d9c5fbe1f80277b0cb14e85c9d2272cf1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d0b3acc1efb65855d5e52d54c33bb035c9776e2d
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Oct 5 18:35:13 2015 -0700

    ticket_system-appointment-queueid config, RT#34237

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 1e0d999..fa4ff41 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -3074,12 +3074,14 @@ and customer address. Include units.',
                            }
                          },
   },
+
   {
     'key'         => 'ticket_system-force_default_queueid',
     'section'     => 'ticketing',
     'description' => 'Disallow queue selection when creating new tickets from customer view.',
     'type'        => 'checkbox',
   },
+
   {
     'key'         => 'ticket_system-selfservice_queueid',
     'section'     => 'ticketing',
@@ -3158,6 +3160,34 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'ticket_system-appointment-queueid',
+    'section'     => 'ticketing',
+    'description' => 'Custom field from the ticketing system to use as an appointment classification.',
+    #false laziness w/above
+    'type'        => 'select-sub',
+    'options_sub' => sub {
+                           my $conf = new FS::Conf;
+                           if ( $conf->config('ticket_system') ) {
+                             eval "use FS::TicketSystem;";
+                             die $@ if $@;
+                             FS::TicketSystem->queues();
+                           } else {
+                             ();
+                           }
+                         },
+    'option_sub'  => sub { 
+                           my $conf = new FS::Conf;
+                           if ( $conf->config('ticket_system') ) {
+                             eval "use FS::TicketSystem;";
+                             die $@ if $@;
+                             FS::TicketSystem->queue(shift);
+                           } else {
+                             '';
+                           }
+                         },
+  },
+
+  {
     'key'         => 'ticket_system-escalation',
     'section'     => 'ticketing',
     'description' => 'Enable priority escalation of tickets as part of daily batch processing.',
diff --git a/rt/share/html/Elements/CalendarSlotSchedule b/rt/share/html/Elements/CalendarSlotSchedule
index 045d6e4..4a9b3bc 100644
--- a/rt/share/html/Elements/CalendarSlotSchedule
+++ b/rt/share/html/Elements/CalendarSlotSchedule
@@ -87,7 +87,11 @@
 %         # (XXX and eventually, package)
 %         my $cust_main = qsearchs('cust_main', { custnum=>$custnum } )
 %           or die "unknown custnum $custnum";
-%         my $Queue = $cust_main->agent->ticketing_queueid || 1; # || $default_queueid;#XXX really, pick pkg_category queue
+%
+%         my $conf = new FS::Conf;
+%         my $Queue = $conf->config('ticket_system-appointment-queueid')
+%           or die "ticket_system-appointment-queueid configuration not set";
+%
 %         my $member = "freeside://freeside/cust_main/$custnum";
 %
 %warn         my $Starts = int($tod_row/60). ':'. sprintf('%02d',$tod_row%60). ':00';
diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html
index be5a140..c729ff0 100644
--- a/rt/share/html/Search/Schedule.html
+++ b/rt/share/html/Search/Schedule.html
@@ -201,8 +201,8 @@
 <& /Search/Calendar.html,
      @_,
      Query       => "( Status = 'new' OR Status = 'open' OR Status = 'stalled')
-                     AND ( Type = 'reminder' OR 'Type' = 'ticket' )",
-                    #XXX and we have the magic custom field
+                     AND ( Type = 'reminder' OR 'Type' = 'ticket' )
+                     AND Queue.id = $queueid ",
      slots       => scalar(@usernames),
      Embed       => 'Schedule.html',
      DimPast     => 1,
@@ -222,6 +222,11 @@ my $timestep =  RT->Config->Get('CalendarWeeklySizeMin') || 30; #1/2h
 </%ONCE>
 <%init>
 
+#abstraction-leaking
+my $conf = new FS::Conf;
+my $queueid = $conf->config('ticket_system-appointment-queueid')
+  or die "ticket_system-appointment-queueid configuration not set";
+
 my @files = ();
 #if ( ! $initialized ) {
   push @files, map "overlibmws$_", ( '', qw( _iframe _draggable _crossframe ) );

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm                               |   30 +++++++++++++++++++++++++++
 rt/share/html/Elements/CalendarSlotSchedule |    6 +++++-
 rt/share/html/Search/Schedule.html          |    9 ++++++--
 3 files changed, 42 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list