Rev 1295 | Blame | Compare with Previous | Last modification | View Log | RSS feed
################################################################################ Codestriker: Copyright (c) 2001, 2002 David Sitsky. All rights reserved.# sits@users.sourceforge.net## This program is free software; you can redistribute it and modify it under# the terms of the GPL.# Action object for handling the submission of changing the properties of a# topic.package Codestriker::Action::SubmitEditTopicMetrics;use strict;use Codestriker::Model::Topic;# Attempt to change the topic's state, or to delete it.sub process($$$) {my ($type, $http_input, $http_response) = @_;my $query = $http_response->get_query();# Check that the appropriate fields have been filled in.my $topicid = $http_input->get('topic');my $mode = $http_input->get('mode');my $version = $http_input->get('version');my $email = $http_input->get('email');my $topic = Codestriker::Model::Topic->new($topicid);my $metrics = $topic->get_metrics();my $feedback = "";my @topic_metric = @{$http_input->get('topic_metric')};$feedback .= $metrics->verify_topic_metrics(@topic_metric);$metrics->set_topic_metrics(@topic_metric);$metrics->set_user_metric($topic->{author},@{$http_input->{author_metric}});my @reviewer_list = $topic->get_metrics()->get_list_of_topic_participants();# Remove the author from the list just in case somebody put themselves# in twice.@reviewer_list = grep { $_ ne $topic->{author} } @reviewer_list;for (my $userindex = 0; $userindex < scalar(@reviewer_list); ++$userindex) {if (defined($http_input->get("reviewer_metric,$userindex"))) {my @usermetrics = @{$http_input->get("reviewer_metric,$userindex")};$feedback .= $metrics->verify_user_metrics($reviewer_list[$userindex],@usermetrics);$metrics->set_user_metric($reviewer_list[$userindex], @usermetrics);}}my @author_metrics = @{$http_input->get('author_metric')};$feedback .= $metrics->verify_user_metrics($topic->{author},@author_metrics);$metrics->set_user_metric($topic->{author}, @author_metrics);$metrics->store();if ( $feedback eq ""){$feedback = "Topic metrics successfully updated.";}# The feedback var is not html escaped in the template, so it must be done directly# with HTML::Entities::encode if needed.$http_input->{feedback} = $feedback;# Go to the view topic metrics screen.Codestriker::Action::ViewTopicInfo->process($http_input, $http_response);}1;