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

(-)a/C4/Tags.pm (-35 / +6 lines)
Lines 25-30 use Exporter; Link Here
25
25
26
use C4::Context;
26
use C4::Context;
27
use Module::Load::Conditional qw( check_install );
27
use Module::Load::Conditional qw( check_install );
28
use Koha::Tags;
29
use Koha::Tags::Approvals;
30
use Koha::Tags::Indexes;
28
#use Data::Dumper;
31
#use Data::Dumper;
29
use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created);
32
use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created);
30
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM   tags_all\n";
33
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM   tags_all\n";
Lines 38-46 BEGIN { Link Here
38
      add_tag
41
      add_tag
39
      add_tag_approval
42
      add_tag_approval
40
      add_tag_index
43
      add_tag_index
41
      delete_tag_row_by_id
42
      remove_tag
44
      remove_tag
43
      delete_tag_rows_by_ids
44
      get_approval_rows
45
      get_approval_rows
45
      blacklist
46
      blacklist
46
      whitelist
47
      whitelist
Lines 126-170 sub remove_tag { Link Here
126
	my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}});
127
	my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}});
127
	my $index = shift(@$tags);
128
	my $index = shift(@$tags);
128
	if ($index->{weight} <= 1) {
129
	if ($index->{weight} <= 1) {
129
		delete_tag_index($row->{term},$row->{biblionumber});
130
		Koha::Tags::Indexes->search({ term => $row->{term}, biblionumber => $row->{biblionumber} })->delete;
130
	} else {
131
	} else {
131
		decrement_weight($row->{term},$row->{biblionumber});
132
		decrement_weight($row->{term},$row->{biblionumber});
132
	}
133
	}
133
	if ($index->{weight_total} <= 1) {
134
	if ($index->{weight_total} <= 1) {
134
		delete_tag_approval($row->{term});
135
		Koha::Tags::Approvals->search({ term => $row->{term} })->delete;
135
	} else {
136
	} else {
136
		decrement_weight_total($row->{term});
137
		decrement_weight_total($row->{term});
137
	}
138
	}
138
	delete_tag_row_by_id($tag_id);
139
	Koha::Tags->search({ tag_id => $tag_id })->delete;
139
}
140
141
sub delete_tag_index {
142
	(@_) or return;
143
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_index WHERE term = ? AND biblionumber = ? LIMIT 1");
144
	$sth->execute(@_);
145
	return $sth->rows || 0;
146
}
147
sub delete_tag_approval {
148
	(@_) or return;
149
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_approval WHERE term = ? LIMIT 1");
150
	$sth->execute(shift);
151
	return $sth->rows || 0;
152
}
153
sub delete_tag_row_by_id {
154
	(@_) or return;
155
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_all WHERE tag_id = ? LIMIT 1");
156
	$sth->execute(shift);
157
	return $sth->rows || 0;
158
}
159
sub delete_tag_rows_by_ids {
160
	(@_) or return;
161
	my $i=0;
162
	foreach(@_) {
163
		$i += delete_tag_row_by_id($_);
164
	}
165
	($i == scalar(@_)) or
166
		warn sprintf "delete_tag_rows_by_ids tried %s tag_ids, only succeeded on $i", scalar(@_);
167
	return $i;
168
}
140
}
169
141
170
sub get_tag_rows {
142
sub get_tag_rows {
171
- 

Return to bug 31517