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

(-)a/installer/data/mysql/updatedatabase.pl (-1 / +27 lines)
Lines 4719-4724 if (C4::Context->preference("Version") < TransformToNum($DBversion)) { Link Here
4719
    SetVersion ($DBversion);
4719
    SetVersion ($DBversion);
4720
}
4720
}
4721
4721
4722
$DBversion = "3.07.99.XXX"; #FIXME
4723
if ( C4::Context->preference("Version") lt TransformToNum($DBversion) ) {
4724
    $dbh->do("ALTER TABLE virtualshelves MODIFY COLUMN owner int"); #should have been int already (fk to borrowers)
4725
    $dbh->do("UPDATE virtualshelves vi LEFT JOIN borrowers bo ON bo.borrowernumber=vi.owner SET vi.owner=NULL where bo.borrowernumber IS NULL"); #before adding the constraint on borrowernumber, we need to get rid of deleted owners
4726
    $dbh->do("DELETE FROM virtualshelves WHERE owner IS NULL and category=1"); #delete private lists without owner (cascades to shelfcontents)
4727
    $dbh->do("ALTER TABLE virtualshelves ADD COLUMN allow_add tinyint(1) DEFAULT 0, ADD COLUMN allow_delete_own tinyint(1) DEFAULT 1, ADD COLUMN allow_delete_other tinyint(1) DEFAULT 0, ADD CONSTRAINT `virtualshelves_ibfk_1` FOREIGN KEY (`owner`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL");
4728
    $dbh->do("UPDATE virtualshelves SET allow_add=0, allow_delete_own=1, allow_delete_other=0 WHERE category=1");
4729
    $dbh->do("UPDATE virtualshelves SET allow_add=0, allow_delete_own=1, allow_delete_other=0 WHERE category=2");
4730
    $dbh->do("UPDATE virtualshelves SET allow_add=1, allow_delete_own=1, allow_delete_other=1 WHERE category=3");
4731
    $dbh->do("UPDATE virtualshelves SET category=2 WHERE category=3");
4732
4733
    $dbh->do("ALTER TABLE virtualshelfcontents ADD COLUMN borrowernumber int, ADD CONSTRAINT `shelfcontents_ibfk_3` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL");
4734
    $dbh->do("UPDATE virtualshelfcontents co LEFT JOIN virtualshelves sh USING (shelfnumber) SET co.borrowernumber=sh.owner");
4735
4736
    $dbh->do("CREATE TABLE virtualshelfshares
4737
	(id int AUTO_INCREMENT PRIMARY KEY, shelfnumber int NOT NULL,
4738
	borrowernumber int, invitekey varchar(10), sharedate datetime,
4739
	CONSTRAINT `virtualshelfshares_ibfk_1` FOREIGN KEY (`shelfnumber`) REFERENCES `virtualshelves` (`shelfnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
4740
        CONSTRAINT `virtualshelfshares_ibfk_2` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8");
4741
4742
    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacAllowPublicListCreation',1,'If set, allows opac users to create public lists',NULL,'YesNo');");
4743
    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacAllowSharingPrivateLists',0,'If set, allows opac users to share private lists with other patrons',NULL,'YesNo');");
4744
4745
    print "Upgrade to $DBversion done (BZ7310: Improving list permissions)\n";
4746
    SetVersion($DBversion);
4747
}
4748
4722
=head1 FUNCTIONS
4749
=head1 FUNCTIONS
4723
4750
4724
=head2 DropAllForeignKeys($table)
4751
=head2 DropAllForeignKeys($table)
4725
- 

Return to bug 7310