added more columns to spreadsheet exports (#2413)

This commit is contained in:
Kevin Papst
2021-03-08 18:32:11 +01:00
committed by GitHub
parent 30ac5e4c24
commit 0b7d551048
13 changed files with 321 additions and 9 deletions

View File

@@ -49,7 +49,6 @@ use Symfony\Component\Validator\Constraints as Assert;
*
* @Exporter\Order({"id", "name", "project", "budget", "timeBudget", "color", "visible", "comment"})
* @Exporter\Expose("project", label="label.project", exp="object.getProject() === null ? null : object.getProject().getName()")
* @ Exporter\Expose("teams", label="label.team", exp="object.getTeams().toArray()", type="array")
*/
class Activity implements EntityWithMetaFields
{
@@ -368,7 +367,22 @@ class Activity implements EntityWithMetaFields
{
if ($this->id) {
$this->id = null;
$this->meta = new ArrayCollection();
}
$currentTeams = $this->teams;
$this->teams = new ArrayCollection();
/** @var Team $team */
foreach ($currentTeams as $team) {
$this->addTeam($team);
}
$currentMeta = $this->meta;
$this->meta = new ArrayCollection();
/** @var ProjectMeta $meta */
foreach ($currentMeta as $meta) {
$newMeta = clone $meta;
$newMeta->setEntity($this);
$this->setMetaField($newMeta);
}
}
}

View File

@@ -632,4 +632,27 @@ class Customer implements EntityWithMetaFields
{
return $this->getName();
}
public function __clone()
{
if ($this->id) {
$this->id = null;
}
$currentTeams = $this->teams;
$this->teams = new ArrayCollection();
/** @var Team $team */
foreach ($currentTeams as $team) {
$this->addTeam($team);
}
$currentMeta = $this->meta;
$this->meta = new ArrayCollection();
/** @var ProjectMeta $meta */
foreach ($currentMeta as $meta) {
$newMeta = clone $meta;
$newMeta->setEntity($this);
$this->setMetaField($newMeta);
}
}
}

View File

@@ -531,8 +531,22 @@ class Project implements EntityWithMetaFields
{
if ($this->id) {
$this->id = null;
$this->teams = new ArrayCollection();
$this->meta = new ArrayCollection();
}
$currentTeams = $this->teams;
$this->teams = new ArrayCollection();
/** @var Team $team */
foreach ($currentTeams as $team) {
$this->addTeam($team);
}
$currentMeta = $this->meta;
$this->meta = new ArrayCollection();
/** @var ProjectMeta $meta */
foreach ($currentMeta as $meta) {
$newMeta = clone $meta;
$newMeta->setEntity($this);
$this->setMetaField($newMeta);
}
}
}

View File

@@ -166,8 +166,6 @@ class Timesheet implements EntityWithMetaFields, ExportItemInterface
*/
private $user;
/**
* Activity
*
* @var Activity
*
* @Serializer\Expose()
@@ -180,8 +178,6 @@ class Timesheet implements EntityWithMetaFields, ExportItemInterface
*/
private $activity;
/**
* Project
*
* @var Project
*
* @Serializer\Expose()
@@ -727,6 +723,13 @@ class Timesheet implements EntityWithMetaFields, ExportItemInterface
$timesheet->setMetaField(clone $meta);
}
$timesheet->tags = new ArrayCollection();
/** @var Tag $tag */
foreach ($this->tags as $tag) {
$timesheet->addTag($tag);
}
return $timesheet;
}
@@ -734,7 +737,24 @@ class Timesheet implements EntityWithMetaFields, ExportItemInterface
{
if ($this->id) {
$this->id = null;
$this->exported = false;
}
$this->exported = false;
$currentMeta = $this->meta;
$this->meta = new ArrayCollection();
/** @var TimesheetMeta $meta */
foreach ($currentMeta as $meta) {
$newMeta = clone $meta;
$newMeta->setEntity($this);
$this->setMetaField($newMeta);
}
$currentTags = $this->tags;
$this->tags = new ArrayCollection();
/** @var Tag $tag */
foreach ($currentTags as $tag) {
$this->addTag($tag);
}
}
}