[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bricolage-devel
Subject:    [Bricolage-Devel] Fwd: [Bricolage-Commits] Fix for Bug # 391.
From:       David Wheeler <david () kineticode ! com>
Date:       2003-05-29 21:36:32
[Download RAW message or body]

Hi All,

Just wanted to let you know that I fixed a bug in Bricolage 1.6.0. The 
issue is that image, audio, and video media documents (identified as 
such by the Element Type on which the Element is defined) weren't 
showing up on desktops. This affects all 1.6.0 users. I've created 
patches and attached them to the bug report:

   http://bugzilla.bricolage.cc/show_bug.cgi?id=391

If you're patching an existing installation, you'll want to grab the 
upgrade patch, "Patch to apply to installed copy of 1.6.0", and patch 
your Bricolage Perl libraries (which, if you installed Bricolage using 
the "s" option for "Single installation" is somewhere in your @INC 
paths, but in the $BRICOLAGE_ROOT directory for those who used the 'm' 
multi install method). You might also want to run the upgrade script, 
"Upgrade script for installed 1.6.0. Put in inst/upgrade/1.6.1 in 
sources and run.", which you should add to your Bricolage sources (not 
the installed code) and run from there.

There are a couple of other bugs that need to be looked at in Bugzilla, 
but then I think it'll be time for 1.6.1. If you haven't been bothered 
by the problem that this fix addresses, you might just want to wait for 
1.6.1` and not worry about patching.

Regards,

David

Begin forwarded message:

> From: David Wheeler <wheeler@users.sourceforge.net>
> Date: Thu May 29, 2003  1:48:44  PM US/Pacific
> To: bricolage-commits@lists.sourceforge.net
> Subject: [Bricolage-Commits] Fix for Bug # 391.
> Reply-To: bricolage-devel@lists.sourceforge.net
>
> Log Message:
> -----------
> Fix for Bug # 391. Turned out to be a bit ugly. We had some old bogus 
> member
> tables for images, audio, and video, when they all should just go into 
> the
> media_member table. Grp::Parts::Member was also looking in the wrong 
> place
> for member table names. All is better now, though, and all tests pass.
>
> Modified Files:
> --------------
>     /cvsroot/bricolage/bricolage/lib/Bric:
>         Tag:
>         rev_1_6
>         Changes.pod
>     /cvsroot/bricolage/bricolage/lib/Bric/Util/Grp:
>         Tag:
>         rev_1_6
>         Asset.pm
>         Org.pm
>     /cvsroot/bricolage/bricolage/lib/Bric/Util/Grp/Parts:
>         Tag:
>         rev_1_6
>         Member.pm
>     /cvsroot/bricolage/bricolage/sql/Pg/Bric/Biz/Asset/Business:
>         Tag:
>         rev_1_6
>         Media.sql
>         Media.con
>
> Added Files:
> -----------
>     /cvsroot/bricolage/bricolage/inst/upgrade/1.6.1:
>         Tag:
>         rev_1_6
>         del_media_subclass_member_tables.pl
["wheeler-2003529204844-diff.txt" (wheeler-2003529204844-diff.txt)]

Index: Asset.pm
===================================================================
RCS file: /cvsroot/bricolage/bricolage/lib/Bric/Util/Grp/Asset.pm,v
retrieving revision 1.8.2.1
retrieving revision 1.8.2.2
diff -u -w -d -r1.8.2.1 -r1.8.2.2
--- Asset.pm	15 Mar 2003 03:59:49 -0000	1.8.2.1
+++ Asset.pm	29 May 2003 20:48:38 -0000	1.8.2.2
@@ -284,9 +284,9 @@
     return { &STORY_PKG  => 'story',
 	     &MEDIA_PKG  => 'media',
 	     &FORMAT_PKG => 'formatting',
-	     &AUDIO_PKG  => 'audio',
+	     &AUDIO_PKG  => 'media',
 	     &IMAGE_PKG  => 'media',
-	     &VIDEO_PKG  => 'video'
+	     &VIDEO_PKG  => 'media'
 	   }
 }
 
Index: Org.pm
===================================================================
RCS file: /cvsroot/bricolage/bricolage/lib/Bric/Util/Grp/Org.pm,v
retrieving revision 1.7.2.1
retrieving revision 1.7.2.2
diff -u -w -d -r1.7.2.1 -r1.7.2.2
--- Org.pm	15 Mar 2003 03:59:50 -0000	1.7.2.1
+++ Org.pm	29 May 2003 20:48:38 -0000	1.7.2.2
@@ -122,7 +122,7 @@
 
 sub get_supported_classes { { 'Bric::Biz::Org' => 'org',
 			      'Bric::Biz::Org::Source' => 'org',
-			      'Bric::Biz::Org::Person', => 'person' } }
+			      'Bric::Biz::Org::Person', => 'org' } }
 
 ##############################################################################
 
Index: Changes.pod
===================================================================
RCS file: /cvsroot/bricolage/bricolage/lib/Bric/Changes.pod,v
retrieving revision 1.256.2.58
retrieving revision 1.256.2.59
diff -u -w -d -r1.256.2.58 -r1.256.2.59
--- Changes.pod	27 May 2003 19:19:17 -0000	1.256.2.58
+++ Changes.pod	29 May 2003 20:48:37 -0000	1.256.2.59
@@ -97,6 +97,12 @@
 
 Fixed event logging for element fields. [David]
 
+=item *
+
+Media assets that are based on "Image", "Audio", and "Video" element types now
+properly show up on desks. Note that existing media assets missing from desks
+should be checked out via "Active Media" and moved to a new desk. [David]
+
 =back
 
 =head1 VERSION 1.6.0
Index: Member.pm
===================================================================
RCS file: /cvsroot/bricolage/bricolage/lib/Bric/Util/Grp/Parts/Member.pm,v
retrieving revision 1.14.4.1
retrieving revision 1.14.4.2
diff -u -w -d -r1.14.4.1 -r1.14.4.2
--- Member.pm	25 May 2003 19:13:15 -0000	1.14.4.1
+++ Member.pm	29 May 2003 20:48:39 -0000	1.14.4.2
@@ -1255,14 +1255,18 @@
         # we can create a joined query!
         if ($force) {
             # All members are in one member table
-            my $member_table = _get_member_table( { id => $force } );
+            my $member_table =
+              _get_member_table({ grp_pkg => $param->{grp_package},
+                                  id => $force });
             push @objs,
               _do_joined_select( $class, $member_table, $grp_id, $object_id,
                 $param->{all}, $ids );
         }
         else {
             foreach ( keys %$supported ) {
-                my $member_table = _get_member_table( { pkg_name => $_ } );
+                my $member_table =
+                  _get_member_table({ grp_pkg => $param->{grp_package},
+                                      pkg_name => $_ });
 
                 push @objs,
                   _do_joined_select(
@@ -1275,7 +1279,9 @@
     }
     else {
         if ( $package && $object_id ) {
-            my $member_table = _get_member_table( { pkg_name => $package } );
+            my $member_table =
+              _get_member_table({ grp_pkg => $param->{grp_package},
+                                  pkg_name => $package });
 
             push @objs,
               _do_joined_select( $class, $member_table, $grp_id, $object_id,
@@ -1309,7 +1315,12 @@
 }
 
 sub _get_member_table {
-    return Bric::Util::Class->lookup(shift)->get_key_name . '_member';
+    my $params = shift;
+    my $grp_pkg = delete $params->{grp_pkg};
+    my $pkg = $params->{pkg_name} ||
+      Bric::Util::Class->lookup($params)->get_pkg_name;
+    my $short = $grp_pkg->get_supported_classes->{$pkg};
+    return $short . '_member';
 }
 
 sub _do_joined_select {
@@ -1419,12 +1430,10 @@
 =cut
 
 sub _get_map_table_name {
-    my ($self) = @_;
-
-    my ( $cid, $pkg ) = $self->_get(qw(_object_class_id object_package));
-    my $short =
-      Bric::Util::Class->lookup( { id => $cid, pkg_name => $pkg } )
-      ->get_key_name;
+    my $self = shift;
+    my ($cid, $pkg, $grp) =
+      $self->_get(qw(_object_class_id object_package grp));
+    my $short = $grp->get_supported_classes->{$pkg};
     return $short . '_member';
 }
 
Index: Media.sql
===================================================================
RCS file: /cvsroot/bricolage/bricolage/sql/Pg/Bric/Biz/Asset/Business/Media.sql,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -w -d -r1.3 -r1.3.2.1
--- Media.sql	7 Mar 2003 05:26:41 -0000	1.3
+++ Media.sql	29 May 2003 20:48:39 -0000	1.3.2.1
@@ -21,10 +21,6 @@
 -- Unique IDs for the media_member table
 CREATE SEQUENCE seq_media_member START 1024;
 
-CREATE SEQUENCE seq_image_member START  1024;
-CREATE SEQUENCE seq_audio_member START  1024;
-CREATE SEQUENCE seq_video_member START  1024;
-
 CREATE SEQUENCE seq_media_fields START 1024;
 
 -- Unique IDs for the attr_media table
@@ -167,50 +163,6 @@
 );
 
 
--- -----------------------------------------------------------------------------
--- Table: image_member
---
--- Description: The link between image objects and member objects
---
-
-CREATE TABLE image_member (
-    id          NUMERIC(10,0)  NOT NULL
-                               DEFAULT NEXTVAL('seq_image_member'),
-    object_id   NUMERIC(10,0)  NOT NULL,
-    member__id  NUMERIC(10,0)  NOT NULL,
-    CONSTRAINT pk_image_member__id PRIMARY KEY (id)
-);
-
-
--- -----------------------------------------------------------------------------
--- Table: audio_member
---
--- Description: The link between audio objects and member objects
---
-
-CREATE TABLE audio_member (
-    id          NUMERIC(10,0)  NOT NULL
-                               DEFAULT NEXTVAL('seq_audio_member'),
-    object_id   NUMERIC(10,0)  NOT NULL,
-    member__id  NUMERIC(10,0)  NOT NULL,
-    CONSTRAINT pk_audio_member__id PRIMARY KEY (id)
-);
-
--- -----------------------------------------------------------------------------
--- Table: video_member
---
--- Description: The link between video objects and member objects
---
-
-CREATE TABLE video_member (
-    id          NUMERIC(10,0)  NOT NULL
-                               DEFAULT NEXTVAL('seq_video_member'),
-    object_id   NUMERIC(10,0)  NOT NULL,
-    member__id  NUMERIC(10,0)  NOT NULL,
-    CONSTRAINT pk_video_member__id PRIMARY KEY (id)
-);
-
-
 -- Table: attr_media
 --
 -- Description: A table to represent types of attributes.  A type is defined by
@@ -295,18 +247,6 @@
 -- media_member.
 CREATE INDEX fkx_media__media_member ON media_member(object_id);
 CREATE INDEX fkx_member__media_member ON media_member(member__id);
-
--- image_member.
-CREATE INDEX fkx_image__image_member ON image_member(object_id);
-CREATE INDEX fkx_member__image_member ON image_member(member__id);
-
--- audio_member.
-CREATE INDEX fkx_audio__audio_member ON audio_member(object_id);
-CREATE INDEX fkx_member__audio_member ON audio_member(member__id);
-
--- video_member.
-CREATE INDEX fkx_video__video_member ON video_member(object_id);
-CREATE INDEX fkx_member__video_member ON video_member(member__id);
 
 -- Unique index on subsystem/name pair
 CREATE UNIQUE INDEX udx_attr_media__subsys__name ON attr_media(subsys, name);
Index: Media.con
===================================================================
RCS file: /cvsroot/bricolage/bricolage/sql/Pg/Bric/Biz/Asset/Business/Media.con,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -w -d -r1.1 -r1.1.4.1
--- Media.con	2 Feb 2003 19:46:46 -0000	1.1
+++ Media.con	29 May 2003 20:48:39 -0000	1.1.4.1
@@ -67,19 +67,6 @@
 REFERENCES     member(id) ON DELETE CASCADE;
 
 -- -----------------------------------------------------------------------------
--- Table: image_member
-
-ALTER TABLE    image_member
-ADD CONSTRAINT fk_image__image_member FOREIGN KEY (object_id)
-REFERENCES     media(id) ON DELETE CASCADE;
-
-ALTER TABLE    image_member
-ADD CONSTRAINT fk_member__image_member FOREIGN KEY (member__id)
-REFERENCES     member(id) ON DELETE CASCADE;
-
-
-
--- -----------------------------------------------------------------------------
 -- Table: attr_media
 
 -- -----------------------------------------------------------------------------
--- NEW FILE: del_media_subclass_member_tables.pl ---
#!/usr/bin/perl -w

use strict;
use FindBin;
use lib "$FindBin::Bin/../lib";
use bric_upgrade qw(:all);

# We should never have used the image, audio, and video member tables.
foreach my $key (qw(image audio video)) {
    do_sql
      qq{DROP TABLE $key\_member},
      qq{DROP SEQUENCE seq_$key\_member}
      ;
}

1;
__END__

>
-- 
David Wheeler                                     AIM: dwTheory
david@kineticode.com                              ICQ: 15726394
http://kineticode.com/                         Yahoo!: dew7e
                                                Jabber: Theory@jabber.org
Kineticode. Setting knowledge in motion.[sm]


-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
Bricolage-Devel mailing list
Bricolage-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bricolage-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic