Add ExtraField entities in order to unify fields.

1.10.x
Julio Montoya 10 years ago
parent 08a5404abd
commit 6c57ec9c1b
  1. 319
      src/Chamilo/CoreBundle/Entity/ExtraField.php
  2. 153
      src/Chamilo/CoreBundle/Entity/ExtraFieldOptionRelFieldOption.php
  3. 135
      src/Chamilo/CoreBundle/Entity/ExtraFieldOptions.php
  4. 134
      src/Chamilo/CoreBundle/Entity/ExtraFieldValues.php

@ -0,0 +1,319 @@
<?php
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Sylius\Component\Attribute\Model\Attribute as BaseAttribute;
/**
* Class ExtraField
*
* @ORM\Entity
* @ORM\Table(name="extra_field")
*
* @ORM\MappedSuperclass
*/
class ExtraField extends BaseAttribute
{
const USER_FIELD_TYPE = 1;
const COURSE_FIELD_TYPE = 2;
const SESSION_FIELD_TYPE = 3;
const QUESTION_FIELD_TYPE = 4;
const CALENDAR_FIELD_TYPE = 5;
const LP_FIELD_TYPE = 6;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue
*/
protected $id;
/**
* @var integer
*
* @ORM\Column(name="extra_field_type", type="integer", nullable=false, unique=false)
*/
protected $extraFieldType;
/**
* @var integer
*
* @ORM\Column(name="field_type", type="integer", nullable=false, unique=false)
*/
protected $fieldType;
/**
* @var string
*
* @ORM\Column(name="variable", type="string", length=64, nullable=false, unique=false)
*/
protected $variable;
/**
* @var string
*
* @ORM\Column(name="display_text", type="string", length=255, nullable=true, unique=false)
*/
protected $displayText;
/**
* @var string
*
* @ORM\Column(name="default_value", type="text", nullable=true, unique=false)
*/
protected $defaultValue;
/**
* @var integer
*
* @ORM\Column(name="field_order", type="integer", nullable=true, unique=false)
*/
protected $fieldOrder;
/**
* @var boolean
*
* @ORM\Column(name="visible", type="boolean", nullable=true, unique=false)
*/
protected $visible;
/**
* @var boolean
*
* @ORM\Column(name="changeable", type="boolean", nullable=true, unique=false)
*/
protected $changeable;
/**
* @var boolean
*
* @ORM\Column(name="filter", type="boolean", nullable=true, unique=false)
*/
protected $filter;
/**
* @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\ExtraFieldOptions", mappedBy="field")
**/
protected $options;
/**
* @var \DateTime $created
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
protected $createdAt;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* @return int
*/
public function getExtraFieldType()
{
return $this->extraFieldType;
}
/**
* @param int $extraFieldType
*
* @return $this
*/
public function setExtraFieldType($extraFieldType)
{
$this->extraFieldType = $extraFieldType;
return $this;
}
/**
* @return int
*/
public function getFieldType()
{
return $this->fieldType;
}
/**
* @param int $fieldType
*
* @return $this
*/
public function setFieldType($fieldType)
{
$this->fieldType = $fieldType;
return $this;
}
/**
* @return string
*/
public function getVariable()
{
return $this->variable;
}
/**
* @param string $variable
*
* @return $this
*/
public function setVariable($variable)
{
$this->variable = $variable;
return $this;
}
/**
* @return string
*/
public function getDisplayText()
{
return $this->displayText;
}
/**
* @param string $displayText
*
* @return $this
*/
public function setDisplayText($displayText)
{
$this->displayText = $displayText;
return $this;
}
/**
* @return string
*/
public function getDefaultValue()
{
return $this->defaultValue;
}
/**
* @param string $defaultValue
*
* @return $this
*/
public function setDefaultValue($defaultValue)
{
$this->defaultValue = $defaultValue;
return $this;
}
/**
* @return int
*/
public function getFieldOrder()
{
return $this->fieldOrder;
}
/**
* @param int $fieldOrder
*
* @return $this
*/
public function setFieldOrder($fieldOrder)
{
$this->fieldOrder = $fieldOrder;
return $this;
}
/**
* @return boolean
*/
public function isVisible()
{
return $this->visible;
}
/**
* @param boolean $visible
*
* @return $this
*/
public function setVisible($visible)
{
$this->visible = $visible;
return $this;
}
/**
* @return boolean
*/
public function isChangeable()
{
return $this->changeable;
}
/**
* @param boolean $changeable
*
* @return $this
*/
public function setChangeable($changeable)
{
$this->changeable = $changeable;
return $this;
}
/**
* @return boolean
*/
public function isFilter()
{
return $this->filter;
}
/**
* @param boolean $filter
*
* @return $this
*/
public function setFilter($filter)
{
$this->filter = $filter;
return $this;
}
/**
* @return string
*/
public function getTypeToString()
{
switch ($this->type) {
case \ExtraField::FIELD_TYPE_TEXT:
case \ExtraField::FIELD_TYPE_TEXTAREA:
return 'text';
case \ExtraField::FIELD_TYPE_RADIO:
case \ExtraField::FIELD_TYPE_SELECT:
return 'choice';
default:
return 'text';
}
}
}

@ -0,0 +1,153 @@
<?php
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ExtraFieldOptionRelFieldOption
*
* @ORM\Table(name="extra_field_option_rel_field_option", uniqueConstraints={@ORM\UniqueConstraint(name="idx", columns={"field_id", "role_id", "field_option_id", "related_field_option_id"})})
* @ORM\Entity
*/
class ExtraFieldOptionRelFieldOption
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var integer
*
* @ORM\Column(name="field_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
*/
private $fieldId;
/**
* @var integer
*
* @ORM\Column(name="field_option_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
*/
protected $fieldOptionId;
/**
* @var integer
*
* @ORM\Column(name="related_field_option_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
*/
protected $relatedFieldOptionId;
/**
* @var integer
*
* @ORM\Column(name="role_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
*/
protected $roleId;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set fieldId
*
* @param integer $fieldId
* @return ExtraFieldOptionRelFieldOption
*/
public function setFieldId($fieldId)
{
$this->fieldId = $fieldId;
return $this;
}
/**
* Get fieldId
*
* @return integer
*/
public function getFieldId()
{
return $this->fieldId;
}
/**
* Set fieldOptionId
*
* @param integer $fieldOptionId
* @return ExtraFieldOptionRelFieldOption
*/
public function setFieldOptionId($fieldOptionId)
{
$this->fieldOptionId = $fieldOptionId;
return $this;
}
/**
* Get fieldOptionId
*
* @return integer
*/
public function getFieldOptionId()
{
return $this->fieldOptionId;
}
/**
* Set relatedFieldOptionId
*
* @param integer $relatedFieldOptionId
* @return ExtraFieldOptionRelFieldOption
*/
public function setRelatedFieldOptionId($relatedFieldOptionId)
{
$this->relatedFieldOptionId = $relatedFieldOptionId;
return $this;
}
/**
* Get relatedFieldOptionId
*
* @return integer
*/
public function getRelatedFieldOptionId()
{
return $this->relatedFieldOptionId;
}
/**
* Set roleId
*
* @param integer $roleId
* @return ExtraFieldOptionRelFieldOption
*/
public function setRoleId($roleId)
{
$this->roleId = $roleId;
return $this;
}
/**
* Get roleId
*
* @return integer
*/
public function getRoleId()
{
return $this->roleId;
}
}

@ -0,0 +1,135 @@
<?php
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* Class ExtraField
*
* @ORM\Entity
* @ORM\Table(name="extra_field_options")
*
* @ORM\MappedSuperclass
*/
class ExtraFieldOptions
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\ExtraField", inversedBy="options", cascade={"persist"})
* @ORM\JoinColumn(name="field_id", referencedColumnName="id")
*/
protected $field;
/**
* @var string
*
* @ORM\Column(name="value", type="text", nullable=true)
*/
private $value;
/**
* @var string
*
* @ORM\Column(name="display_text", type="string", length=64, nullable=true)
*/
private $displayText;
/**
* @var integer
*
* @ORM\Column(name="optionOrder", type="integer", nullable=true)
*/
private $optionOrder;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return int
*/
public function getOptionOrder()
{
return $this->optionOrder;
}
/**
* @param int $optionOrder
*/
public function setOptionOrder($optionOrder)
{
$this->optionOrder = $optionOrder;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return mixed
*/
public function getField()
{
return $this->field;
}
/**
* @param mixed $field
*/
public function setField($field)
{
$this->field = $field;
}
/**
* @return string
*/
public function getValue()
{
return $this->value;
}
/**
* @param string $value
*/
public function setValue($value)
{
$this->value = $value;
}
/**
* @return string
*/
public function getDisplayText()
{
return $this->displayText;
}
/**
* @param string $displayText
*/
public function setDisplayText($displayText)
{
$this->displayText = $displayText;
}
}

@ -0,0 +1,134 @@
<?php
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Sylius\Component\Attribute\Model\AttributeValue as BaseAttributeValue;
/**
* Class ExtraFieldValues
*
* @ORM\Table(name="extra_field_values")
* @ORM\Entity
* @ORM\MappedSuperclass
*/
class ExtraFieldValues extends BaseAttributeValue
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue()
*/
protected $id;
/**
* @var string
* @ORM\Column(name="value", type="string", nullable=true, unique=false)
*/
protected $value;
/**
* @var string
* @ORM\Column(name="field_id", type="integer", nullable=false, unique=false)
*/
protected $fieldId;
/**
* @var string
* @ORM\Column(name="item_id", type="integer", nullable=false, unique=false)
*/
protected $itemId;
/**
* @var \DateTime $created
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @var \DateTime $updated
*
* @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/
private $updatedAt;
/**
* Constructor
*/
public function __construct()
{
$this->tms = new \DateTime();
}
/**
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* @param \DateTime $createdAt
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;
}
/**
* @return \DateTime
*/
public function getUpdatedAt()
{
return $this->updatedAt;
}
/**
* @param \DateTime $updatedAt
*/
public function setUpdatedAt($updatedAt)
{
$this->updatedAt = $updatedAt;
}
/**
* Set comment
*
* @param string $comment
*
* @return ExtraFieldValues
*/
public function setComment($comment)
{
$this->comment = $comment;
return $this;
}
/**
* Get comment
*
* @return string
*/
public function getComment()
{
return $this->comment;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
Loading…
Cancel
Save