add series external view
This commit is contained in:
116
website/agenda/series.cgi
Normal file
116
website/agenda/series.cgi
Normal file
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use warnings "all";
|
||||
use strict;
|
||||
use Data::Dumper;
|
||||
|
||||
use params;
|
||||
use config;
|
||||
#use log;
|
||||
use template;
|
||||
#use auth;
|
||||
#use uac;
|
||||
#use roles;
|
||||
#use project;
|
||||
use studios;
|
||||
#use events;
|
||||
use series;
|
||||
#use series_schedule;
|
||||
#use series_events;
|
||||
#use series_dates;
|
||||
#use user_stats;
|
||||
#use markup;
|
||||
#use URI::Escape;
|
||||
#use Encode;
|
||||
#use localization;
|
||||
|
||||
binmode STDOUT, ":utf8";
|
||||
print "Content-Type: text/html; charset=utf-8\n\n";
|
||||
|
||||
my $r = shift;
|
||||
( my $cgi, my $params, my $error ) = params::get($r);
|
||||
|
||||
my $config = config::get('config/config.cgi');
|
||||
|
||||
$params = check_params($params);
|
||||
|
||||
list_series( $config, $params );
|
||||
|
||||
sub list_series {
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
|
||||
$config->{access}->{write} = 0;
|
||||
|
||||
my $project_id = $params->{project_id};
|
||||
my $studio_id = $params->{studio_id};
|
||||
my $location = $params->{location};
|
||||
|
||||
if (defined $location){
|
||||
my $studios = studios::get(
|
||||
$config,
|
||||
{
|
||||
project_id => $project_id,
|
||||
location => $location
|
||||
}
|
||||
);
|
||||
|
||||
$studio_id = $studios->[0]->{id};
|
||||
}
|
||||
|
||||
my $conditions = {};
|
||||
$conditions->{project_id} = $project_id if defined $project_id;
|
||||
$conditions->{studio_id} = $studio_id if defined $studio_id;
|
||||
|
||||
if (scalar (keys %$conditions) == 0){
|
||||
$params->{info} .= "missing parameters";
|
||||
return;
|
||||
}
|
||||
$params->{info}.= Dumper($conditions);
|
||||
|
||||
my $series = series::get_event_age( $config, $conditions );
|
||||
my $series2 = [];
|
||||
for my $serie ( sort { lc $a->{series_name} cmp lc $b->{series_name} } (@$series) ) {
|
||||
next if $serie->{days_over} > 80 ;
|
||||
next if $serie->{days_over} == 0 ;
|
||||
next unless defined $serie->{series_name};
|
||||
next if $serie->{series_name} eq '_single_';
|
||||
push @$series2, $serie;
|
||||
}
|
||||
$params->{series} = $series2;
|
||||
|
||||
$params->{info}.="no results found" if scalar(@$series)==0;
|
||||
$params->{info}='';
|
||||
|
||||
template::process( 'print', 'templates/series.html', $params );
|
||||
}
|
||||
|
||||
|
||||
sub check_params {
|
||||
my $params = shift;
|
||||
|
||||
my $checked = {};
|
||||
|
||||
my $debug = $params->{debug} || '';
|
||||
if ( $debug =~ /([a-z\_\,]+)/ ) {
|
||||
$debug = $1;
|
||||
}
|
||||
$checked->{debug} = $debug;
|
||||
|
||||
for my $param ('project_id', 'studio_id') {
|
||||
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
|
||||
$checked->{$param} = $params->{$param};
|
||||
}
|
||||
}
|
||||
|
||||
for my $param ( 'location') {
|
||||
if ( defined $params->{$param} ) {
|
||||
$checked->{$param} = $params->{$param};
|
||||
$checked->{$param} =~ s/^\s+//g;
|
||||
$checked->{$param} =~ s/\s+$//g;
|
||||
}
|
||||
}
|
||||
|
||||
return $checked;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user