View | Details | Raw Unified | Return to bug 17669
Collapse All | Expand All

(-)a/Koha/UploadedFile.pm (-3 / +5 lines)
Lines 61-67 Delete uploaded file. Link Here
61
It deletes not only the record, but also the actual file (unless you pass
61
It deletes not only the record, but also the actual file (unless you pass
62
the keep_file parameter).
62
the keep_file parameter).
63
63
64
Returns filename on successful delete or undef.
64
Returns number of deleted records (1 or 0E0), or -1 for unknown. Note that this
65
depends on the storage backend. And keep in mind that a deleted record does not
66
automatically imply a deleted file; a warning may have been raised.
67
(TODO: Use exceptions.)
65
68
66
=cut
69
=cut
67
70
Lines 71-84 sub delete { Link Here
71
    my $name = $self->filename;
74
    my $name = $self->filename;
72
    my $file = $self->full_path;
75
    my $file = $self->full_path;
73
76
74
    my $retval = $self->SUPER::delete;
77
    my $retval = $self->SUPER::delete // -1; # translate (fictive) undef
75
    return $retval if $params->{keep_file};
78
    return $retval if $params->{keep_file};
76
79
77
    if( ! -e $file ) {
80
    if( ! -e $file ) {
78
        warn "Removing record for $name within category ".
81
        warn "Removing record for $name within category ".
79
            $self->uploadcategorycode. ", but file was missing.";
82
            $self->uploadcategorycode. ", but file was missing.";
80
    } elsif( ! unlink($file) ) {
83
    } elsif( ! unlink($file) ) {
81
        $retval = 0;
82
        warn "Problem while deleting: $file";
84
        warn "Problem while deleting: $file";
83
    }
85
    }
84
    return $retval;
86
    return $retval;
(-)a/Koha/UploadedFiles.pm (-7 / +10 lines)
Lines 57-77 provides a wrapper around search to look for a term in multiple columns. Link Here
57
=head3 delete
57
=head3 delete
58
58
59
Delete uploaded files.
59
Delete uploaded files.
60
Returns true if no errors occur. (So, false may mean partial success.)
61
60
62
Parameter keep_file may be used to delete records, but keep files.
61
Parameter keep_file may be used to delete records, but keep files.
63
62
63
Returns the number of deleted records (depending on storage backend). An
64
unknown value may be represented as -1; zero as 0E0. (Note: the number of
65
deleted records is not automatically the same as the number of files.)
66
64
=cut
67
=cut
65
68
66
sub delete {
69
sub delete {
67
    my ( $self, $params ) = @_;
70
    my ( $self, $params ) = @_;
68
    $self = Koha::UploadedFiles->new if !ref($self); # handle class call
71
    $self = Koha::UploadedFiles->new if !ref($self); # handle class call
69
    # We use the individual delete on each resultset record
72
    # We use the individual delete on each resultset record
70
    my $err = 0;
73
    my $rv = 0;
71
    while( my $row = $self->next ) {
74
    while( my $row = $self->next ) {
72
        $err++ if !$row->delete( $params );
75
        my $delete= $row->delete( $params ) // -1; # handle fictive undef
76
        $rv = ( $delete < 0 || $rv < 0 ) ? -1 : ( $rv + $delete );
73
    }
77
    }
74
    return $err==0;
78
    return $rv==0 ? "0E0" : $rv;
75
}
79
}
76
80
77
=head3 delete_temporary
81
=head3 delete_temporary
Lines 80-86 Delete_temporary is called by cleanup_database and only removes temporary Link Here
80
uploads older than [pref UploadPurgeTemporaryFilesDays] days.
84
uploads older than [pref UploadPurgeTemporaryFilesDays] days.
81
It is possible to override the pref with the override_pref parameter.
85
It is possible to override the pref with the override_pref parameter.
82
86
83
Returns true if no errors occur. (Even when no files had to be deleted.)
87
Return value: see delete.
84
88
85
=cut
89
=cut
86
90
Lines 90-96 sub delete_temporary { Link Here
90
    if( exists $params->{override_pref} ) {
94
    if( exists $params->{override_pref} ) {
91
        $days = $params->{override_pref};
95
        $days = $params->{override_pref};
92
    } elsif( !defined($days) || $days eq '' ) { # allow 0, not NULL or ""
96
    } elsif( !defined($days) || $days eq '' ) { # allow 0, not NULL or ""
93
        return 1;
97
        return "0E0"; # in analogy with DBI (passed thru by DBIx)
94
    }
98
    }
95
    my $dt = dt_from_string();
99
    my $dt = dt_from_string();
96
    $dt->subtract( days => $days );
100
    $dt->subtract( days => $days );
97
- 

Return to bug 17669