summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2011-04-24 08:57:09 -0700
committerBharat Mediratta <bharat@menalto.com>2011-04-24 08:59:33 -0700
commitf8493a1df26f242959e931d862c5f1282dd324e8 (patch)
tree1183711c66d979bc6145c33070044ce55c5c6dd5 /modules
parentbbd5417fef9c3ad28c6e57cb787e86684f49a71b (diff)
Revert my two "fixes" on top of Andy's tag combine change. Leave Tag_Model::items() calling
Item_Model::viewable() because it's too dangerous to separate that out, and it's fragile to rely on only admins doing tag combines. Revert "Undo the change made in 5ce85636329b14673718836b3631a3e46efdc3bb because it messes up tag counts" - This reverts commit 67d2e8081c6e5f0b679881bca3fdc81fe1e78ccc. Revert "Move the calculation for item_related_update ahead of the duplicate" - This reverts commit 5ce85636329b14673718836b3631a3e46efdc3bb.
Diffstat (limited to 'modules')
-rw-r--r--modules/tag/models/tag.php9
1 files changed, 6 insertions, 3 deletions
diff --git a/modules/tag/models/tag.php b/modules/tag/models/tag.php
index 13e253ba..bb79e707 100644
--- a/modules/tag/models/tag.php
+++ b/modules/tag/models/tag.php
@@ -75,8 +75,12 @@ class Tag_Model_Core extends ORM {
->where("id", "!=", $this->id)
->find();
if ($duplicate_tag->loaded()) {
- // If so, tag its items with this tag so as to merge it.
- foreach ($duplicate_tag->items() as $item) {
+ // If so, tag its items with this tag so as to merge it
+ $duplicate_tag_items = ORM::factory("item")
+ ->join("items_tags", "items.id", "items_tags.item_id")
+ ->where("items_tags.tag_id", "=", $duplicate_tag->id)
+ ->find_all();
+ foreach ($duplicate_tag_items as $item) {
$this->add($item);
}
@@ -84,7 +88,6 @@ class Tag_Model_Core extends ORM {
$duplicate_tag->delete();
}
- // Figure out what items have changed in this tag for our item_related_update event below
if (isset($this->object_relations["items"])) {
$added = array_diff($this->changed_relations["items"], $this->object_relations["items"]);
$removed = array_diff($this->object_relations["items"], $this->changed_relations["items"]);