From: Martin Mares Date: Fri, 29 Jun 2007 15:33:57 +0000 (+0200) Subject: Allow to override a failed check (if configured). X-Git-Tag: python-dummy-working~327^2~7 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=fc6c3a5af5a07a8d6f658d66fd74746ae186aa11;p=moe.git Allow to override a failed check (if configured). --- diff --git a/TODO b/TODO index e219005..e323788 100644 --- a/TODO +++ b/TODO @@ -17,7 +17,6 @@ Installer: - quotas New submitter: -- contest: override failed check - contest: local history - contest: task status cache - contest: problems with SIGPIPE diff --git a/submit/MO/Submit.pm b/submit/MO/Submit.pm index e571be3..bae8b5f 100644 --- a/submit/MO/Submit.pm +++ b/submit/MO/Submit.pm @@ -24,6 +24,7 @@ sub new($) { "CACert" => "$mo/ca-cert.pem", "Trace" => defined $ENV{"MO_SUBMIT_TRACE"}, "Checks" => 1, + "AllowOverride" => 1, # "History" => "$home/.history", # Keep submission history in this directory "RefreshTimer" => 60000, # How often GUI sends STATUS commands [ms] "root" => $root, diff --git a/submit/contest b/submit/contest index 29b046e..a762d9c 100755 --- a/submit/contest +++ b/submit/contest @@ -270,6 +270,7 @@ my $subwin_vbox; my $subwin_label; my $bbutton_box; my $submitting_label; +my $text_frame; my $status_label; my $check_only; my $submit_filename; @@ -372,10 +373,42 @@ sub run_submit() { submit_ok(); } +sub checks_ok() { + if ($check_only) { + $status_label->set_markup("Checked successfully"); + $submitting_label->set_markup("The task has passed the checks."); + finish_submit(); + return; + } + + ### FIXME: Record to local history here + + $status_label->set_markup("Submitting"); + $subwin->show_all; + + # Continue when everything is displayed + Glib::Idle->add(sub { + $window->Gtk2::Gdk::flush; + run_submit(); + return 0; + }); +} + +sub checks_override() { + $submitting_label = Gtk2::Label->new("Please wait..."); + $subwin_vbox->pack_start_defaults($submitting_label); + + $subwin->window->set_cursor($busy_cursor); + $bbutton_box->destroy; + $text_frame->destroy; + checks_ok(); +} + sub checks_failed($) { my ($msg) = @_; $status_label->set_markup("Check failed"); + $submitting_label->destroy; my $text_buffer = Gtk2::TextBuffer->new; $text_buffer->set_text($msg); @@ -388,34 +421,31 @@ sub checks_failed($) { $text_scroll->set_policy("automatic", "automatic"); $text_scroll->add($text_view); - my $text_frame = Gtk2::Frame->new("Checker log"); + $text_frame = Gtk2::Frame->new("Checker log"); $text_frame->add($text_scroll); - $submitting_label->destroy; $subwin_vbox->pack_start_defaults($text_frame); - finish_submit(); -} - -sub checks_ok() { - if ($check_only) { - $status_label->set_markup("Checked successfully"); - $submitting_label->set_markup("The task has passed the checks."); + if ($check_only || !$conn->{"AllowOverride"}) { finish_submit(); return; } - ### FIXME: Record to local history here + my $close_button = Gtk2::Button->new_from_stock('gtk-close'); + $close_button->signal_connect(clicked => sub { end_submit(1) }); - $status_label->set_markup("Submitting"); - $subwin->show_all; + my $anyway_button = Gtk2::Button->new('Submit anyway'); + $anyway_button->signal_connect(clicked => \&checks_override); - # Continue when everything is displayed - Glib::Idle->add(sub { - $window->Gtk2::Gdk::flush; - run_submit(); - return 0; - }); + $bbutton_box = Gtk2::HButtonBox->new; + $bbutton_box->pack_start_defaults($anyway_button); + $bbutton_box->pack_start_defaults($close_button); + $bbutton_box->set_border_width(5); + $subwin_vbox->pack_start($bbutton_box, 0, 0, 10); + + ready("Ready"); + $subwin->show_all; + $subwin->window->set_cursor(undef); } sub run_checks() {