Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Bricolage: commits

[8487] Cover date is now required at the database level.

 

 

Bricolage commits RSS feed   Index | Next | Previous | View Threaded


theory at bricolage

Mar 11, 2009, 11:16 AM

Post #1 of 1 (411 views)
Permalink
[8487] Cover date is now required at the database level.

Revision: 8487
Author: theory
Date: 2009-03-11 11:16:49 -0700 (Wed, 11 Mar 2009)
ViewCVS: http://viewsvn.bricolage.cc/?rev=8487&view=rev

Log Message:
-----------
Cover date is now required at the database level. It has always been required
in the UI.

Modified Paths:
--------------
bricolage/trunk/lib/Bric/Changes.pod
bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Media.sql
bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Story.sql
bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Media.sql
bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Story.sql

Added Paths:
-----------
bricolage/trunk/inst/upgrade/1.11.2/
bricolage/trunk/inst/upgrade/1.11.2/cover_date_not_null.pl

Added: bricolage/trunk/inst/upgrade/1.11.2/cover_date_not_null.pl
===================================================================
--- bricolage/trunk/inst/upgrade/1.11.2/cover_date_not_null.pl (rev 0)
+++ bricolage/trunk/inst/upgrade/1.11.2/cover_date_not_null.pl 2009-03-11 18:16:49 UTC (rev 8487)
@@ -0,0 +1,46 @@
+#!/usr/bin/perl -w
+
+use strict;
+use File::Spec::Functions qw(catdir updir);
+use FindBin;
+use lib catdir $FindBin::Bin, updir, 'lib';
+use bric_upgrade qw(:all);
+
+for my $doc qw(story media) {
+ # Skip it if the cover_date column is already NOT NULL.
+ next if test_column "$doc\_instance", 'cover_date', undef, 1;
+
+ my $default = 'CURRENT_TIMESTAMP';
+
+ if (Bric::Config::DBD_TYPE eq 'Pg') {
+ do_sql qq{
+ UPDATE $doc\_instance
+ SET cover_date = COALESCE( first_publish_date, publish_date, $default)
+ FROM $doc
+ WHERE $doc.id = $doc\_instance.$doc\__id
+ AND cover_date IS NULL
+ },
+ qq{
+ ALTER TABLE $doc\_instance
+ ALTER COLUMN cover_date SET DEFAULT $default
+ },
+ qq{
+ ALTER TABLE $doc\_instance
+ ALTER COLUMN cover_date SET NOT NULL
+ };
+ } elsif (Bric::Config::DBD_TYPE eq 'mysql') {
+ do_sql qq{
+ UPDATE $doc\_instance, $doc
+ SET cover_date = COALESCE( first_publish_date, publish_date, $default)
+ WHERE $doc.id = $doc\_instance.$doc\__id
+ AND cover_date IS NULL
+ },
+ # Fuck you, MySQL. http://bugs.mysql.com/bug.php?id=31452
+ qq{
+ ALTER TABLE $doc\_instance
+ CHANGE cover_date cover_date TIMESTAMP NOT NULL DEFAULT $default
+ };
+ } else {
+ die Bric::Config::DBD_TYPE . ' is not a supported database';
+ }
+}

Modified: bricolage/trunk/lib/Bric/Changes.pod
===================================================================
--- bricolage/trunk/lib/Bric/Changes.pod 2009-03-11 18:15:54 UTC (rev 8486)
+++ bricolage/trunk/lib/Bric/Changes.pod 2009-03-11 18:16:49 UTC (rev 8487)
@@ -101,6 +101,11 @@

Only show the subelement hint when the container is collapsed. [Adrian Yee]

+=item *
+
+Cover date is now required at the database level. It has always been required
+in the UI. [David]
+
=back

=head2 Bug Fixes
@@ -287,6 +292,11 @@
The pagination links now work in the edit related popup window. Reported by
Adam Wilson (Bug #1428). [David]

+=item *
+
+The "Related Story" popup now properly closes in Camino when a "relate" or
+"un-relate" link is clicked. [David]
+
=back

=head1 VERSION 1.11.1 (2008-10-03)

Modified: bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Media.sql
===================================================================
--- bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Media.sql 2009-03-11 18:15:54 UTC (rev 8486)
+++ bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Media.sql 2009-03-11 18:16:49 UTC (rev 8487)
@@ -80,7 +80,7 @@
file_name VARCHAR(256),
location VARCHAR(256),
uri VARCHAR(256),
- cover_date TIMESTAMP,
+ cover_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
note TEXT,
checked_out BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT pk_media_instance__id PRIMARY KEY (id)

Modified: bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Story.sql
===================================================================
--- bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Story.sql 2009-03-11 18:15:54 UTC (rev 8486)
+++ bricolage/trunk/sql/Pg/Bric/Biz/Asset/Business/Story.sql 2009-03-11 18:16:49 UTC (rev 8487)
@@ -77,7 +77,7 @@
usr__id INTEGER NOT NULL,
slug VARCHAR(64),
primary_oc__id INTEGER NOT NULL,
- cover_date TIMESTAMP,
+ cover_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
note TEXT,
checked_out BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT pk_story_instance__id PRIMARY KEY (id)

Modified: bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Media.sql
===================================================================
--- bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Media.sql 2009-03-11 18:15:54 UTC (rev 8486)
+++ bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Media.sql 2009-03-11 18:16:49 UTC (rev 8487)
@@ -60,7 +60,7 @@
file_name VARCHAR(256),
location VARCHAR(256),
uri VARCHAR(256),
- cover_date TIMESTAMP NULL DEFAULT NULL,
+ cover_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
note TEXT,
checked_out BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT pk_media_instance__id PRIMARY KEY (id)

Modified: bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Story.sql
===================================================================
--- bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Story.sql 2009-03-11 18:15:54 UTC (rev 8486)
+++ bricolage/trunk/sql/mysql/Bric/Biz/Asset/Business/Story.sql 2009-03-11 18:16:49 UTC (rev 8487)
@@ -58,7 +58,7 @@
usr__id INTEGER,
slug VARCHAR(64),
primary_oc__id INTEGER NOT NULL,
- cover_date TIMESTAMP NULL DEFAULT NULL,
+ cover_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
note TEXT,
checked_out BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT pk_story_instance__id PRIMARY KEY (id)

Bricolage commits RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.