Normalized signature of Asset::duplicate. This involved going through
existing overrides and callers for that method and making sure they followed the correct signature. Various related cleanups. This should fix those bugs with collaboration systems refusing to be copied or deployed as packages.
This commit is contained in:
parent
3f45819b49
commit
c438d55310
20 changed files with 123 additions and 153 deletions
|
|
@ -145,7 +145,7 @@ sub definition {
|
|||
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
my $newStorage = $self->getStorageLocation->copy;
|
||||
$newAsset->update({storageId=>$newStorage->getId});
|
||||
return $newAsset;
|
||||
|
|
|
|||
|
|
@ -495,7 +495,7 @@ sub definition {
|
|||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate;
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
$newAsset->createSubscriptionGroup;
|
||||
return $newAsset;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -182,30 +182,30 @@ sub definition {
|
|||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
my (%dataField, %dataTab, $sthField, $sthTab, $newTabId);
|
||||
tie %dataTab, 'Tie::CPHash';
|
||||
tie %dataField, 'Tie::CPHash';
|
||||
$sthTab = $self->session->db->read("select * from DataForm_tab where assetId=".$self->session->db->quote($self->getId));
|
||||
while (%dataTab = $sthTab->hash) {
|
||||
$sthField = $self->session->db->read("select * from DataForm_field where assetId=".$self->session->db->quote($self->getId)." AND DataForm_tabId=".$self->session->db->quote($dataTab{DataForm_tabId}));
|
||||
$dataTab{DataForm_tabId} = "new";
|
||||
$newTabId = $newAsset->setCollateral("DataForm_tab","DataForm_tabId",\%dataTab);
|
||||
while (%dataField = $sthField->hash) {
|
||||
$dataField{DataForm_fieldId} = "new";
|
||||
$dataField{DataForm_tabId} = $newTabId;
|
||||
$newAsset->setCollateral("DataForm_field","DataForm_fieldId",\%dataField);
|
||||
}
|
||||
$sthField->finish;
|
||||
}
|
||||
$sthField = $self->session->db->read("select * from DataForm_field where assetId=".$self->session->db->quote($self->getId)." AND DataForm_tabId='0'");
|
||||
while (%dataField = $sthField->hash) {
|
||||
$dataField{DataForm_fieldId} = "new";
|
||||
$newAsset->setCollateral("DataForm_field","DataForm_fieldId",\%dataField);
|
||||
}
|
||||
$sthField->finish;
|
||||
$sthTab->finish;
|
||||
return $newAsset;
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
my (%dataField, %dataTab, $sthField, $sthTab, $newTabId);
|
||||
tie %dataTab, 'Tie::CPHash';
|
||||
tie %dataField, 'Tie::CPHash';
|
||||
|
||||
$sthTab = $self->session->db->read("select * from DataForm_tab where assetId=?", [$self->getId]);
|
||||
while (%dataTab = $sthTab->hash) {
|
||||
$sthField = $self->session->db->read("select * from DataForm_field where assetId=? AND DataForm_tabId=?", [$self->getId, $dataTab{DataForm_tabId}]);
|
||||
$dataTab{DataForm_tabId} = "new";
|
||||
$newTabId = $newAsset->setCollateral("DataForm_tab","DataForm_tabId",\%dataTab);
|
||||
while (%dataField = $sthField->hash) {
|
||||
$dataField{DataForm_fieldId} = "new";
|
||||
$dataField{DataForm_tabId} = $newTabId;
|
||||
$newAsset->setCollateral("DataForm_field","DataForm_fieldId",\%dataField);
|
||||
}
|
||||
}
|
||||
|
||||
$sthField = $self->session->db->read("select * from DataForm_field where assetId=? AND DataForm_tabId='0'", [$self->getId]);
|
||||
while (%dataField = $sthField->hash) {
|
||||
$dataField{DataForm_fieldId} = "new";
|
||||
$newAsset->setCollateral("DataForm_field","DataForm_fieldId",\%dataField);
|
||||
}
|
||||
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -96,7 +96,8 @@ sub definition {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
return "";
|
||||
# Buggo: how do we duplicate these?
|
||||
return undef;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -168,8 +168,8 @@ sub definition {
|
|||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
my $sth = $self->session->db->read("select * from Poll_answer where assetId=".$self->session->db->quote($self->getId));
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
my $sth = $self->session->db->read("select * from Poll_answer where assetId=?", [$self->getId]);
|
||||
while (my $data = $sth->hashRef) {
|
||||
$newAsset->setVote($data->{answer}, $data->{userId}, $data->{ipAddress});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,55 +156,35 @@ sub definition {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
|
||||
my (%data, $file, $row, $sth, $newstore);
|
||||
tie %data, 'Tie::CPHash';
|
||||
|
||||
$self->_duplicateFile($newAsset,"image1");
|
||||
$self->_duplicateFile($newAsset,"image2");
|
||||
$self->_duplicateFile($newAsset,"image3");
|
||||
$self->_duplicateFile($newAsset,"manual");
|
||||
$self->_duplicateFile($newAsset,"brochure");
|
||||
$self->_duplicateFile($newAsset,"warranty");
|
||||
|
||||
$sth = $self->session->db->read("select * from Product_feature where assetId=".$self->session->db->quote($self->getId));
|
||||
while ($row = $sth->hashRef) {
|
||||
$row->{"Product_featureId"} = "new";
|
||||
$row->{"assetId"} = $newAsset->getId;
|
||||
$newAsset->setCollateral("Product_feature","Product_featureId",$row);
|
||||
}
|
||||
$sth->finish;
|
||||
|
||||
$sth = $self->session->db->read("select * from Product_benefit where assetId=".$self->session->db->quote($self->getId));
|
||||
while ($row = $sth->hashRef) {
|
||||
$row->{"Product_benefitId"} = "new";
|
||||
$row->{"assetId"} = $newAsset->getId;
|
||||
$newAsset->setCollateral("Product_benefit","Product_benefitId",$row);
|
||||
}
|
||||
$sth->finish;
|
||||
|
||||
$sth = $self->session->db->read("select * from Product_specification where assetId=".$self->session->db->quote($self->getId));
|
||||
while ($row = $sth->hashRef) {
|
||||
$row->{"Product_specificationId"} = "new";
|
||||
$row->{"assetId"} = $newAsset->getId;
|
||||
$newAsset->setCollateral("Product_specification","Product_specificationId",$row);
|
||||
}
|
||||
$sth->finish;
|
||||
|
||||
$sth = $self->session->db->read("select * from Product_accessory where assetId=".$self->session->db->quote($self->getId));
|
||||
while (%data = $sth->hash) {
|
||||
$self->session->db->write("insert into Product_accessory (assetId,accessoryAssetId,sequenceNumber) values (".$self->session->db->quote($newAsset->getId).", ".$self->session->db->quote($data{accessoryAssetId}).", $data{sequenceNumber})");
|
||||
}
|
||||
$sth->finish;
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
|
||||
$sth = $self->session->db->read("select * from Product_related where assetId=".$self->session->db->quote($self->getId));
|
||||
while (%data = $sth->hash) {
|
||||
$self->session->db->write("insert into Product_related (assetId,relatedAssetId,sequenceNumber) values (".$self->session->db->quote($newAsset->getId).", ".$self->session->db->quote($data{relatedAssetId}).", $data{sequenceNumber})");
|
||||
}
|
||||
$sth->finish;
|
||||
return $newAsset;
|
||||
foreach my $file ('image1', 'image2', 'image3', 'manual', 'brochure', 'warranty') {
|
||||
$self->_duplicateFile($newAsset, $file);
|
||||
}
|
||||
|
||||
foreach my $basename ('feature', 'benefit', 'specification') {
|
||||
my $table = "Product_${basename}";
|
||||
my $sth = $self->session->db->read("select * from $table where assetId=?", [$self->getId]);
|
||||
while (my $row = $sth->hashRef) {
|
||||
$row->{"${table}Id"} = "new";
|
||||
$row->{"assetId"} = $newAsset->getId;
|
||||
$newAsset->setCollateral($table, "${table}Id", $row);
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $basename ('accessory', 'related') {
|
||||
my $table = "Product_${basename}";
|
||||
my $tableAssetId = "${basename}AssetId";
|
||||
my $sth = $self->session->db->read("select * from $table where assetId=?", [$self->getId]);
|
||||
my %data;
|
||||
tie %data, 'Tie::CPHash';
|
||||
while (%data = $sth->hash) {
|
||||
$self->session->db->write("insert into $table (assetId, $tableAssetId, sequenceNumber) values (?, ?, ?)", [$newAsset->getId, $data{$tableAssetId}, $data{sequenceNumber}]);
|
||||
}
|
||||
}
|
||||
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -152,13 +152,6 @@ sub definition {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
#API method called by Time Tracker to return the instance of the PM wobject which this project blongs
|
||||
sub getProjectInstance {
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ sub duplicate {
|
|||
|
||||
$self = shift;
|
||||
|
||||
$newAsset = $self->SUPER::duplicate(shift);
|
||||
$newAsset = $self->SUPER::duplicate(@_);
|
||||
$newSurveyId = $self->session->id->generate();
|
||||
$newAsset->update({
|
||||
Survey_id=>$newSurveyId
|
||||
|
|
@ -172,13 +172,9 @@ sub duplicate {
|
|||
$rdata->{Survey_questionId} = $qdata->{Survey_questionId};
|
||||
$newAsset->setCollateral("Survey_questionResponse","Survey_responseId",$rdata,0,0);
|
||||
}
|
||||
$responses->finish;
|
||||
}
|
||||
$answers->finish;
|
||||
}
|
||||
$questions->finish;
|
||||
}
|
||||
$section->finish;
|
||||
|
||||
return $newAsset;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,13 +81,6 @@ sub definition {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ wobject instances, you will need to duplicate them here.
|
|||
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(shift);
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue