refactoring
optimize imports reformat source code remove unused cpu and memory log functionality
This commit is contained in:
@@ -1,151 +1,156 @@
|
||||
package eventOps;
|
||||
package eventOps;
|
||||
use warnings "all";
|
||||
use strict;
|
||||
|
||||
use uac;
|
||||
use events;
|
||||
use series;
|
||||
use series_dates;
|
||||
use time;
|
||||
use studios;
|
||||
use series_events;
|
||||
use user_stats;
|
||||
use uac();
|
||||
use events();
|
||||
use series();
|
||||
use series_dates();
|
||||
use time();
|
||||
use studios();
|
||||
use series_events();
|
||||
use user_stats();
|
||||
|
||||
require Exporter;
|
||||
our @ISA = qw(Exporter);
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT_OK = qw(
|
||||
setAttributesFromSeriesTemplate
|
||||
setAttributesFromSchedule
|
||||
setAttributesFromOtherEvent
|
||||
setAttributesForCurrentTime
|
||||
getRecurrenceBaseId
|
||||
setAttributesFromSeriesTemplate
|
||||
setAttributesFromSchedule
|
||||
setAttributesFromOtherEvent
|
||||
setAttributesForCurrentTime
|
||||
getRecurrenceBaseId
|
||||
);
|
||||
our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] );
|
||||
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
|
||||
|
||||
# functions: to be separated
|
||||
sub setAttributesFromSeriesTemplate{
|
||||
my $config=shift;
|
||||
my $params=shift;
|
||||
my $event=shift;
|
||||
|
||||
#get attributes from series
|
||||
my $series=series::get(
|
||||
$config,{
|
||||
project_id => $params->{project_id},
|
||||
studio_id => $params->{studio_id},
|
||||
series_id => $params->{series_id},
|
||||
}
|
||||
);
|
||||
if(@$series!=1){
|
||||
uac::print_error("series not found");
|
||||
return undef;
|
||||
}
|
||||
sub setAttributesFromSeriesTemplate {
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
my $event = shift;
|
||||
|
||||
#copy fields from series template
|
||||
my $serie=$series->[0];
|
||||
for my $attr(
|
||||
'program','series_name','title',
|
||||
'excerpt', 'topic', 'content', 'html_content',
|
||||
'project','category','location','image', 'live',
|
||||
'archive_url', 'podcast_url'
|
||||
){
|
||||
$event->{$attr}=$serie->{$attr};
|
||||
}
|
||||
$event->{series_image} = $serie->{image};
|
||||
$event->{series_image_label} = $serie->{licence};
|
||||
return $serie;
|
||||
#get attributes from series
|
||||
my $series = series::get(
|
||||
$config,
|
||||
{
|
||||
project_id => $params->{project_id},
|
||||
studio_id => $params->{studio_id},
|
||||
series_id => $params->{series_id},
|
||||
}
|
||||
);
|
||||
if ( @$series != 1 ) {
|
||||
uac::print_error("series not found");
|
||||
return undef;
|
||||
}
|
||||
|
||||
#copy fields from series template
|
||||
my $serie = $series->[0];
|
||||
for my $attr (
|
||||
'program', 'series_name', 'title', 'excerpt', 'topic', 'content', 'html_content', 'project',
|
||||
'category', 'location', 'image', 'live', 'archive_url', 'podcast_url'
|
||||
)
|
||||
{
|
||||
$event->{$attr} = $serie->{$attr};
|
||||
}
|
||||
$event->{series_image} = $serie->{image};
|
||||
$event->{series_image_label} = $serie->{licence};
|
||||
return $serie;
|
||||
}
|
||||
|
||||
sub setAttributesFromSchedule{
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
my $event = shift;
|
||||
sub setAttributesFromSchedule {
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
my $event = shift;
|
||||
|
||||
#print 'setAttributesFromSchedule:'.Dumper($params);
|
||||
#set attributes from schedule
|
||||
my $schedules=series_dates::get(
|
||||
$config, {
|
||||
project_id => $params->{project_id},
|
||||
studio_id => $params->{studio_id},
|
||||
series_id => $params->{series_id},
|
||||
start_at => $params->{start_date}
|
||||
}
|
||||
);
|
||||
#print 'setAttributesFromSchedule:'.Dumper($params);
|
||||
#set attributes from schedule
|
||||
my $schedules = series_dates::get(
|
||||
$config,
|
||||
{
|
||||
project_id => $params->{project_id},
|
||||
studio_id => $params->{studio_id},
|
||||
series_id => $params->{series_id},
|
||||
start_at => $params->{start_date}
|
||||
}
|
||||
);
|
||||
|
||||
if(@$schedules!=1){
|
||||
uac::print_error("schedule not found");
|
||||
return undef;
|
||||
}
|
||||
if ( @$schedules != 1 ) {
|
||||
uac::print_error("schedule not found");
|
||||
return undef;
|
||||
}
|
||||
|
||||
my $schedule=$schedules->[0];
|
||||
for my $attr(
|
||||
'start','end',
|
||||
'day', 'weekday',
|
||||
'start_date', 'end_date'
|
||||
){
|
||||
$event->{$attr}=$schedule->{$attr};
|
||||
}
|
||||
my $schedule = $schedules->[0];
|
||||
for my $attr ( 'start', 'end', 'day', 'weekday', 'start_date', 'end_date' ) {
|
||||
$event->{$attr} = $schedule->{$attr};
|
||||
}
|
||||
|
||||
my $timezone=$config->{date}->{time_zone};
|
||||
$event->{duration} = time::get_duration($event->{start}, $event->{end}, $timezone);
|
||||
my $timezone = $config->{date}->{time_zone};
|
||||
$event->{duration} = time::get_duration( $event->{start}, $event->{end}, $timezone );
|
||||
|
||||
return $event;
|
||||
return $event;
|
||||
}
|
||||
|
||||
sub setAttributesFromOtherEvent{
|
||||
my $config=shift;
|
||||
my $params=shift;
|
||||
my $event=shift;
|
||||
sub setAttributesFromOtherEvent {
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
my $event = shift;
|
||||
|
||||
my $event2=series::get_event($config, {
|
||||
allow_any => 1,
|
||||
#project_id => $params->{project_id},
|
||||
#studio_id => $params->{studio_id},
|
||||
#series_id => $params->{series_id},
|
||||
event_id => $params->{source_event_id}
|
||||
});
|
||||
if (defined $event2){
|
||||
for my $attr ('title', 'user_title', 'excerpt', 'user_excerpt', 'content', 'html_content', 'topics', 'image', 'series_image', 'live', 'no_event_sync', 'podcast_url', 'archive_url', 'image_label', 'series_image_label'){
|
||||
$event->{$attr}=$event2->{$attr};
|
||||
}
|
||||
$event->{rerun}=1;
|
||||
$event->{recurrence}=getRecurrenceBaseId($event2);
|
||||
}
|
||||
my $event2 = series::get_event(
|
||||
$config,
|
||||
{
|
||||
allow_any => 1,
|
||||
|
||||
return $event;
|
||||
#project_id => $params->{project_id},
|
||||
#studio_id => $params->{studio_id},
|
||||
#series_id => $params->{series_id},
|
||||
event_id => $params->{source_event_id}
|
||||
}
|
||||
);
|
||||
if ( defined $event2 ) {
|
||||
for my $attr (
|
||||
'title', 'user_title', 'excerpt', 'user_excerpt', 'content', 'html_content',
|
||||
'topics', 'image', 'series_image', 'live', 'no_event_sync', 'podcast_url',
|
||||
'archive_url', 'image_label', 'series_image_label'
|
||||
)
|
||||
{
|
||||
$event->{$attr} = $event2->{$attr};
|
||||
}
|
||||
$event->{rerun} = 1;
|
||||
$event->{recurrence} = getRecurrenceBaseId($event2);
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
sub setAttributesForCurrentTime{
|
||||
my $serie=shift;
|
||||
my $event=shift;
|
||||
|
||||
#on new event not from schedule use current time
|
||||
if($event->{start}eq''){
|
||||
$event->{start}=time::time_to_datetime();
|
||||
if ($event->{start}=~/(\d\d\d\d\-\d\d\-\d\d \d\d)/){
|
||||
$event->{start}=$1.':00';
|
||||
}
|
||||
}
|
||||
$event->{duration}=$serie->{duration}||60;
|
||||
$event->{end} =time::add_minutes_to_datetime($event->{start}, $event->{duration});
|
||||
$event->{end}=~s/(\d\d:\d\d)\:\d\d/$1/;
|
||||
sub setAttributesForCurrentTime {
|
||||
my $serie = shift;
|
||||
my $event = shift;
|
||||
|
||||
return $event;
|
||||
#on new event not from schedule use current time
|
||||
if ( $event->{start} eq '' ) {
|
||||
$event->{start} = time::time_to_datetime();
|
||||
if ( $event->{start} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d)/ ) {
|
||||
$event->{start} = $1 . ':00';
|
||||
}
|
||||
}
|
||||
$event->{duration} = $serie->{duration} || 60;
|
||||
$event->{end} = time::add_minutes_to_datetime( $event->{start}, $event->{duration} );
|
||||
$event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/;
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
# get recurrence base id
|
||||
sub getRecurrenceBaseId{
|
||||
my $event = shift;
|
||||
return $event->{recurrence} if (defined $event->{recurrence}) && ($event->{recurrence} ne '') && ($event->{recurrence} ne '0');
|
||||
return $event->{event_id};
|
||||
# get recurrence base id
|
||||
sub getRecurrenceBaseId {
|
||||
my $event = shift;
|
||||
return $event->{recurrence} if ( defined $event->{recurrence} ) && ( $event->{recurrence} ne '' ) && ( $event->{recurrence} ne '0' );
|
||||
return $event->{event_id};
|
||||
}
|
||||
|
||||
# get a new event for given series
|
||||
sub getNewEvent{
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
my $action = shift;
|
||||
|
||||
sub getNewEvent {
|
||||
my $config = shift;
|
||||
my $params = shift;
|
||||
my $action = shift;
|
||||
|
||||
# check for missing parameters
|
||||
my $required_fields = [ 'project_id', 'studio_id', 'series_id' ];
|
||||
@@ -162,7 +167,7 @@ sub getNewEvent{
|
||||
|
||||
my $serie = eventOps::setAttributesFromSeriesTemplate( $config, $params, $event );
|
||||
|
||||
#print Dumper($params);
|
||||
#print Dumper($params);
|
||||
if ( $action eq 'show_new_event_from_schedule' ) {
|
||||
eventOps::setAttributesFromSchedule( $config, $params, $event );
|
||||
} else {
|
||||
@@ -198,30 +203,31 @@ sub getNewEvent{
|
||||
$event->{published} = 1;
|
||||
$event->{new_event} = 1;
|
||||
|
||||
return $event;
|
||||
return $event;
|
||||
}
|
||||
|
||||
# add user, action
|
||||
sub createEvent{
|
||||
my $request = shift;
|
||||
my $event = shift;
|
||||
my $action = shift;
|
||||
|
||||
my $config = $request->{config};
|
||||
my $permissions = $request->{permissions};
|
||||
my $user = $request->{user};
|
||||
sub createEvent {
|
||||
my $request = shift;
|
||||
my $event = shift;
|
||||
my $action = shift;
|
||||
|
||||
my $config = $request->{config};
|
||||
my $permissions = $request->{permissions};
|
||||
my $user = $request->{user};
|
||||
|
||||
my $checklist = [ 'studio', 'user', 'create_events', 'studio_timeslots' ];
|
||||
if ( $action eq 'create_event_from_schedule' ) {
|
||||
push @$checklist, 'schedule' if $action eq 'create_event_from_schedule';
|
||||
}
|
||||
|
||||
#use Data::Dumper;
|
||||
#print Dumper($checklist);
|
||||
#print Dumper($request);
|
||||
#print Dumper($event);
|
||||
|
||||
my $start = $event->{start_date},
|
||||
my $end = time::add_minutes_to_datetime( $event->{start_date}, $event->{duration} );
|
||||
my $start = $event->{start_date}, my $end = time::add_minutes_to_datetime( $event->{start_date}, $event->{duration} );
|
||||
|
||||
#print Dumper($start);
|
||||
#print Dumper($end);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user