This repository has been archived on 2025-05-24. You can view files and clone it, but cannot push or open issues or pull requests.
Files
qemudb/include/testData_queue.php
Alexander Nicolaysen Sørnes d09f78ca00 Get rid of the distribution queue. If a testData entry is deleted and its associated
distribution has not been approved and has no other testData assigned to it the distribution
is now deleted. This change makes the distribution queue unnecessary as distributions are
accepted along the testData
2007-04-27 23:45:19 +00:00

174 lines
4.8 KiB
PHP

<?php
class testData_queue
{
var $oTestData;
var $oDistribution;
function testData_queue($iTestId = null)
{
$this->oTestData = new testData($iTestId);
$this->oDistribution = new distribution($this->oTestData->iDistributionId);
}
function create()
{
if(!$this->oTestData->iDistributionId)
{
$this->oDistribution->create();
$this->oTestData->iDistributionId = $this->oDistribution->iDistributionId;
}
return $this->oTestData->create();
}
function delete()
{
$bSuccess = $this->oTestData->delete();
/* We delete the distribution if it has not been approved and is not associated
with any other testData. Otherwise we would have to have a distribution
queue for admins to clean up unused, queued entries */
$this->oDistribution = new distribution($this->oDistribution->iDistributionId);
if(!sizeof($this->oDistribution->aTestingIds) &&
$this->oDistribution->sQueued != "false")
$this->oDistribution->delete();
return $bSuccess;
}
function reQueue()
{
$this->oTestData->reQueue();
if($this->oDistribution->sQueued == "rejected")
$this->oDistribution->reQueue();
}
function unQueue()
{
$this->oTestData->unQueue();
/* Avoid a misguiding message about the distribution being unqueued */
if($this->oDistribution->sQueued != "false")
$this->oDistribution->unQueue();
}
function reject()
{
$this->oTestData->reject();
}
function update()
{
$this->oTestData->update();
/* If the distribution was already un-queued the form for editing it would
not have been displayed and getOutputEditorValues() wouldn't have
retrieved a valid sName for the distribution. If sName isn't valid
we shouldn't update the distribution */
if($this->oDistribution->sName)
$this->oDistribution->update();
}
function outputEditor()
{
$this->oTestData->outputEditor();
/* If we are processing queued test results with a queued distribution,
we display some additional help here */
if($this->oDistribution->iDistributionId &&
$this->oDistribution->sQueued != "false" && $this->canEdit())
{
echo "The user submitted a new distribution, which will be un-queued ".
"together with the test data unless you select an existing one ".
"from the list above.";
}
/* If the testData is already associated with a distribution and the
distribution is un-queued, there is no need to display the
distribution form here */
if(!$this->oTestData->iDistributionId or
$this->oDistribution->sQueued != "false")
{
echo html_frame_start("New Distribution", "90%");
$this->oDistribution->outputEditor();
echo html_frame_end();
}
}
function getOutputEditorValues($aClean)
{
$this->oTestData->getOutputEditorValues($aClean);
$this->oDistribution->getOutputEditorValues($aClean);
}
function checkOutputEditorInput($aClean)
{
return $this->oTestData->checkOutputEditorInput($aClean);
}
function canEdit()
{
return $this->oTestData->canEdit();
}
function mustBeQueued()
{
return $this->oTestData->mustBeQueued();
}
function objectDisplayAddItemHelp()
{
$this->oTestData->objectDisplayAddItemHelp();
}
function objectGetEntries($bQueued, $bRejected)
{
return $this->oTestData->objectGetEntries($bQueued, $bRejected);
}
function objectGetHeader()
{
return $this->oTestData->objectGetHeader();
}
function objectGetInstanceFromRow($oRow)
{
return testData::objectGetInstanceFromRow($oRow);
}
function objectOutputTableRow($oObject, $sClass, $sEditLinkLabel)
{
return $this->oTestData->objectOutputTableRow($oObject, $sClass, $sEditLinkLabel);
}
function objectDisplayQueueProcessingHelp()
{
$oTest = new testData();
echo "<p>";
if($oTest->canEdit)
echo "This is the list of rejected test results, waiting to be resubmitted or deleted.";
else
echo "This is the list of your rejected test results. Here you can make changes to ".
"them and resubmit them into the database.";
echo "</p>\n";
}
function display()
{
return $this->oTest->display();
}
function objectMakeUrl()
{
return $this->oTest->objectMakeUrl();
}
function objectMakeLink()
{
return $this->oTest->objectMakeLink();
}
}
?>