[freeside-commits] branch master updated. 5894069e99fa3579a76e6ede96e5262de9ac32c4

Jonathan Prykop jonathan at 420.am
Tue Apr 28 12:22:58 PDT 2015


The branch, master has been updated
       via  5894069e99fa3579a76e6ede96e5262de9ac32c4 (commit)
      from  c8cfa4829c828793e26082d0ce1dfb9733bbcef0 (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 5894069e99fa3579a76e6ede96e5262de9ac32c4
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Tue Apr 28 14:22:20 2015 -0500

    RT#28526: Package tab takes a long time to load with lots of packages

diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index 6b9a846..07e02f9 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -3495,6 +3495,9 @@ cust_pkg status is 'suspended' and expire is set
 to cancel package within the next day (or however
 many days are set in global config part_pkg-delay_cancel-days.
 
+Accepts option I<part_pkg-delay_cancel-days> which should be
+the value of the config setting, to avoid looking it up again.
+
 This is not a real status, this only meant for hacking display 
 values, because otherwise treating the package as suspended is 
 really the whole point of the delay_cancel option.
@@ -3502,15 +3505,18 @@ really the whole point of the delay_cancel option.
 =cut
 
 sub is_status_delay_cancel {
-  my ($self) = @_;
+  my ($self,%opt) = @_;
   if ( $self->main_pkgnum and $self->pkglinknum ) {
     return $self->main_pkg->is_status_delay_cancel;
   }
   return 0 unless $self->part_pkg->option('delay_cancel',1);
   return 0 unless $self->status eq 'suspended';
   return 0 unless $self->expire;
-  my $conf = new FS::Conf;
-  my $expdays = $conf->config('part_pkg-delay_cancel-days') || 1;
+  my $expdays = $opt{'part_pkg-delay_cancel-days'};
+  unless ($expdays) {
+    my $conf = new FS::Conf;
+    $expdays = $conf->config('part_pkg-delay_cancel-days') || 1;
+  }
   my $expsecs = 60*60*24*$expdays;
   return 0 unless $self->expire < time + $expsecs;
   return 1;
diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html
index ce965c5..7a85d6b 100755
--- a/httemplate/view/cust_main/packages/section.html
+++ b/httemplate/view/cust_main/packages/section.html
@@ -116,6 +116,7 @@ my %conf_opt = (
   #for status.html
   'cust_pkg-show_autosuspend' => $conf->exists('cust_pkg-show_autosuspend'),
   'pkg_attached'              => $pkg_attached,
+  'part_pkg-delay_cancel-days' => $conf->config('part_pkg-delay_cancel-days') || 1,
   #for status.html pkg-balances
   'pkg-balances'              => $conf->exists('pkg-balances'),
   'money_char'                => ( $conf->config('money_char') || '$' ),
diff --git a/httemplate/view/cust_main/packages/status.html b/httemplate/view/cust_main/packages/status.html
index 5dbffb2..af2bb06 100644
--- a/httemplate/view/cust_main/packages/status.html
+++ b/httemplate/view/cust_main/packages/status.html
@@ -55,7 +55,7 @@
 
 %     } else { #status: suspended
 %       my ($cpr,$susplabel);
-%       if ($cust_pkg->is_status_delay_cancel) {
+%       if ($cust_pkg->is_status_delay_cancel(%opt)) {
 %         $cpr = $cust_pkg->last_cust_pkg_reason('expire');
 %         $susplabel = 'Suspended (Cancelled)';
 %       } else {

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

Summary of changes:
 FS/FS/cust_pkg.pm                               |   12 +++++++++---
 httemplate/view/cust_main/packages/section.html |    1 +
 httemplate/view/cust_main/packages/status.html  |    2 +-
 3 files changed, 11 insertions(+), 4 deletions(-)




More information about the freeside-commits mailing list