<%args> @category_ids => () <%init> eval { my $project = $Schema->Project_t->insert ( values => { name => $ARGS{name}, description => $ARGS{description}, # NOW() is imported from Alzabo::SQLMaker::MySQL creation_date => NOW(), difficulty => $ARGS{difficulty}, project_status_id => $ARGS{project_status_id}, project_support_level_id => $ARGS{project_support_level_id}, } ); $Schema->ProjectMember_t->insert ( values => { project_id => $project->project_id, user_id => $User->user_id, role_id => $ARGS{role_id}, is_project_admin => 1, } ); foreach my $id (@category_ids) { $Schema->ProjectCategory_t->insert ( values => { project_id => $project->project_id, category_id => $id, } ); } foreach (1..2) { if (exists $ARGS{"new_url$_"} && length $ARGS{"new_url$_"}) { $Schema->ProjectLink_t->insert ( values => { project_id => $project->project_id, url => $ARGS{"new_url$_"}, description => defined $ARGS{"new_description$_"} ? $ARGS{"new_description$_"} : $ARGS{"new_url$_"}, } ); } } }; # One or more data validation checks failed $m->comp( '/lib/redirect.mas', path => 'new_project.html', query => { %ARGS, errors => $@->errors } ) if $@ && UNIVERSAL::isa( $@, 'Apprentice::Exception::DataValidation' ); # Some other unforeseen error happened die $@ if $@; $m->comp( '/lib/redirect.mas', path => '/' );