[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