[freeside-commits] branch FREESIDE_3_BRANCH updated. aa55eded7431d4781b7105b9b895f4b20e575f01
Christopher Burger
burgerc at freeside.biz
Sun Apr 21 19:01:53 PDT 2019
The branch, FREESIDE_3_BRANCH has been updated
via aa55eded7431d4781b7105b9b895f4b20e575f01 (commit)
from 609e7cb967020e23f147f4e1b475fed97e37db30 (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 aa55eded7431d4781b7105b9b895f4b20e575f01
Author: Christopher Burger <burgerc at freeside.biz>
Date: Sun Apr 21 16:14:13 2019 -0400
RT# 83039 - only towers with sectors shown on provisioning page when export requires sectors
Conflicts:
httemplate/elements/select-table.html
diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 70eea99d9..a28be6f0c 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -197,6 +197,7 @@ sub _export_insert {
'sector_name' => $sector_name,
'sector_uprate_limit' => $tower_sector->{Hash}->{sector_upratelimit},
'sector_downrate_limit' => $tower_sector->{Hash}->{sector_downratelimit},
+ 'rateplan' => $rateplan_name,
};
my $accesspoint = process_sector($self, $sector_opt);
return $self->api_error if $self->{'__saisei_error'};
@@ -816,6 +817,11 @@ sub process_tower {
sub process_sector {
my ($self, $opt) = @_;
+ if (!$opt->{sector_name} || $opt->{sector_name} eq '_default') {
+ $self->{'__saisei_error'} = "No sector attached to Tower (".$opt->{tower_name}.") for service ".$opt->{'rateplan'}.". Saisei requires a tower sector to be attached to each service that is exported to Saisei.";
+ return { error => $self->api_error, };
+ }
+
if (!$opt->{sector_uprate_limit} || !$opt->{sector_downrate_limit}) {
$self->{'__saisei_error'} = "Could not export sector ".$opt->{tower_name}." because there was no up or down rates attached to the sector. Saisei requires a up and down rate be attached to each sector.";
return { error => $self->api_error, };
@@ -852,6 +858,16 @@ sub process_sector {
return $accesspoint;
}
+=head2 require_tower_and_sector
+
+sets whether the service export requires a sector with it's tower.
+
+=cut
+
+sub require_tower_and_sector {
+ 1;
+}
+
sub process_virtual_ap {
my ($self, $opt) = @_;
diff --git a/httemplate/edit/svc_broadband.cgi b/httemplate/edit/svc_broadband.cgi
index 374af4770..5a3692e14 100644
--- a/httemplate/edit/svc_broadband.cgi
+++ b/httemplate/edit/svc_broadband.cgi
@@ -101,7 +101,21 @@ END
my @fields = (
qw( description speed_down speed_up speed_test_down speed_test_up speed_test_latency),
- { field=>'sectornum', type=>'select-tower_sector', },
+ { field=>'sectornum', type=>'select-tower_sector',
+ include_opt_callback => sub {
+ my $svc_broadband = shift;
+ my $part_svc = $svc_broadband->part_svc;
+ my $sectors_only;
+ foreach ($part_svc->part_export()) {
+ $sectors_only = '1' if $_->can('require_tower_and_sector');
+ }
+ ## incase export requires a sector and service only has tower attached it will not show on edit.
+ my $non_option_label;
+ my $sector = qsearchs({'table' => 'tower_sector', 'hashref' => { 'sectornum' => $svc_broadband->sectornum }, });
+ $non_option_label = $sector->description if $sector;
+ return ('sectorsonly' => $sectors_only, 'non_option_label' => $non_option_label);
+ },
+ },
{ field=>'routernum', type=>'select-router_block_ip',
include_opt_callback => sub {
my $svc_broadband = shift;
diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html
index 4ac0887fd..8aaa58db2 100644
--- a/httemplate/elements/select-table.html
+++ b/httemplate/elements/select-table.html
@@ -90,6 +90,7 @@ Example:
<OPTION VALUE=""><% $opt{'empty_label'} || 'all' %></OPTION>
% }
+% my $curr_option_found;
% # XXX fix this eventually, when we have time to test it
% foreach my $record ( sort { $a->$name_col() cmp $b->$name_col()
% || $a->$key() <=> $b->$key()
@@ -107,6 +108,7 @@ Example:
% $selected = ( ref($value) && $value->{$recvalue} )
% || ( $value && $value eq $recvalue ); #not == because of value_col
% }
+% $curr_option_found = $selected unless $curr_option_found;
<OPTION VALUE="<% $recvalue %>"
<% $selected ? ' SELECTED' : '' %>
% foreach my $att ( @{ $opt{'extra_option_attributes'} } ) {
@@ -128,6 +130,11 @@ Example:
<OPTION VALUE="<% $post_opt %>"
<% $selected ? 'SELECTED' : '' %>
><% $post_label %></OPTION>
+% }
+
+% my $non_option_label = $opt{'non_option_label'};
+% if (!$curr_option_found && $non_option_label && $value) {
+ <OPTION VALUE="<% $value %>" SELECTED><% $non_option_label %></OPTION>
% }
</SELECT>
diff --git a/httemplate/elements/select-tower_sector.html b/httemplate/elements/select-tower_sector.html
index 76ff25223..4dfd23dcc 100644
--- a/httemplate/elements/select-tower_sector.html
+++ b/httemplate/elements/select-tower_sector.html
@@ -3,7 +3,7 @@
table => 'tower_sector',
name_col => 'description',
addl_from => 'JOIN tower USING (towernum)',
- extra_sql => q(WHERE disabled = '' OR disabled IS NULL),
+ extra_sql => $extra_sql,
order_by => 'ORDER BY towernum,sectorname',
empty_label => ' ',
@_
@@ -67,4 +67,7 @@ foreach my $towernum (keys %sectors_of) {
}
my $empty_label = $opt{'empty_label'} || 'Include services with no sector';
+
+my $extra_sql = q(WHERE (disabled = '' OR disabled IS NULL));
+$extra_sql .= q( AND sectorname != '_default') if $opt{'sectorsonly'};
</%init>
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_export/saisei.pm | 16 ++++++++++++++++
httemplate/edit/svc_broadband.cgi | 16 +++++++++++++++-
httemplate/elements/select-table.html | 7 +++++++
httemplate/elements/select-tower_sector.html | 5 ++++-
4 files changed, 42 insertions(+), 2 deletions(-)
More information about the freeside-commits
mailing list