[dw-free] Status messages can't be sent to the community itself, send to all maintainers
[commit: http://hg.dwscoalition.org/dw-free/rev/b7c1c3dc51d4]
Status messages can't be sent to the community itself, send to all
maintainers
Patch by
mark.
Files modified:
Status messages can't be sent to the community itself, send to all
maintainers
Patch by
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Files modified:
- cgi-bin/DW/Worker/ContentImporter.pm
-------------------------------------------------------------------------------- diff -r f6ef8b023acd -r b7c1c3dc51d4 cgi-bin/DW/Worker/ContentImporter.pm --- a/cgi-bin/DW/Worker/ContentImporter.pm Thu Dec 29 21:34:27 2011 +0000 +++ b/cgi-bin/DW/Worker/ContentImporter.pm Thu Dec 29 23:37:11 2011 +0000 @@ -108,6 +108,23 @@ return $hr; } +=head2 C<< $class->userids_to_message( $userid ) >> + +For communities, this returns the userids for all of the admins so we let them know what has +happened with their import. + +=cut + +sub userids_to_message { + my ( $class, $uid ) = @_; + + my $u = LJ::load_userid( $uid ) + or return $uid; # fail? + return $uid unless $u->is_community; + + return $u->maintainer_userids; +} + =head2 C<< $class->fail( $import_data, $item, $job, "text", [arguments, ...] ) >> Permanently fail this import job. @@ -130,7 +147,9 @@ if $LJ::IS_DEV_SERVER; # fire an event for the user to know that it failed - LJ::Event::ImportStatus->new( $imp->{userid}, $item, { type => 'fail', msg => $msg } )->fire; + foreach my $uid ( $class->userids_to_message( $imp->{userid} ) ) { + LJ::Event::ImportStatus->new( $uid, $item, { type => 'fail', msg => $msg } )->fire; + } $job->permanent_failure( $msg ); return; @@ -156,14 +175,16 @@ if $LJ::IS_DEV_SERVER; # fire an event for the user to know that it failed (temporarily) - LJ::Event::ImportStatus->new( $imp->{userid}, $item, - { - type => 'temp_fail', - msg => $msg, - failures => $job->failures, - retries => $job->funcname->max_retries, - } - )->fire; + foreach my $uid ( $class->userids_to_message( $imp->{userid} ) ) { + LJ::Event::ImportStatus->new( $uid, $item, + { + type => 'temp_fail', + msg => $msg, + failures => $job->failures, + retries => $job->funcname->max_retries, + } + )->fire; + } $job->failed( $msg ); return; @@ -187,8 +208,11 @@ } # advise the user this finished - LJ::Event::ImportStatus->new( $imp->{userid}, $item, { type => 'ok' } )->fire - unless defined $show && $show == 0; + unless ( defined $show && $show == 0 ) { + foreach my $uid ( $class->userids_to_message( $imp->{userid} ) ) { + LJ::Event::ImportStatus->new( $uid, $item, { type => 'ok' } )->fire + } + } $job->completed; return; @@ -232,7 +256,9 @@ sub status { my ( $class, $imp, $item, $args ) = @_; - return LJ::Event::ImportStatus->new( $imp->{userid}, $item, { type => 'status', %{ $args || {} } } )->fire; + foreach my $uid ( $class->userids_to_message( $imp->{userid} ) ) { + LJ::Event::ImportStatus->new( $uid, $item, { type => 'status', %{ $args || {} } } )->fire; + } } --------------------------------------------------------------------------------