Updated Selection Plan mapping

Added field max_submission_allowed_per_user

Change-Id: Id976628aa88f458b0edaa4144f4006b0b384450a
This commit is contained in:
Sebastian Marcet 2018-06-12 09:55:25 -07:00
parent 2116c3f314
commit eec7c45ef3
6 changed files with 47 additions and 11 deletions

View File

@ -27,6 +27,7 @@ final class SummitSelectionPlanValidationRulesFactory
return [
'name' => 'sometimes|string|max:255',
'is_enabled' => 'sometimes|boolean',
'max_submission_allowed_per_user' => 'sometimes|integer|min:1',
'submission_begin_date' => 'nullable|date_format:U',
'submission_end_date' => 'nullable|required_with:submission_begin_date|date_format:U|after_or_equal:submission_begin_date',
'voting_begin_date' => 'nullable|date_format:U',
@ -38,6 +39,7 @@ final class SummitSelectionPlanValidationRulesFactory
return [
'name' => 'required|string|max:255',
'is_enabled' => 'required|boolean',
'max_submission_allowed_per_user' => 'sometimes|integer|min:1',
'submission_begin_date' => 'nullable|date_format:U',
'submission_end_date' => 'nullable|required_with:submission_begin_date|date_format:U|after_or_equal:submission_begin_date',
'voting_begin_date' => 'nullable|date_format:U',

View File

@ -21,15 +21,16 @@ use ModelSerializers\SilverStripeSerializer;
final class SelectionPlanSerializer extends SilverStripeSerializer
{
protected static $array_mappings = [
'Name' => 'name:json_string',
'Enabled' => 'is_enabled:json_boolean',
'SubmissionBeginDate' => 'submission_begin_date:datetime_epoch',
'SubmissionEndDate' => 'submission_end_date:datetime_epoch',
'VotingBeginDate' => 'voting_begin_date:datetime_epoch',
'VotingEndDate' => 'voting_end_date:datetime_epoch',
'SelectionBeginDate' => 'selection_begin_date:datetime_epoch',
'SelectionEndDate' => 'selection_end_date:datetime_epoch',
'SummitId' => 'summit_id:json_int',
'Name' => 'name:json_string',
'Enabled' => 'is_enabled:json_boolean',
'SubmissionBeginDate' => 'submission_begin_date:datetime_epoch',
'SubmissionEndDate' => 'submission_end_date:datetime_epoch',
'MaxSubmissionAllowedPerUser' => 'max_submission_allowed_per_user:json_int',
'VotingBeginDate' => 'voting_begin_date:datetime_epoch',
'VotingEndDate' => 'voting_end_date:datetime_epoch',
'SelectionBeginDate' => 'selection_begin_date:datetime_epoch',
'SelectionEndDate' => 'selection_end_date:datetime_epoch',
'SummitId' => 'summit_id:json_int',
];
/**

View File

@ -33,6 +33,7 @@ class SummitSerializer extends SilverStripeSerializer
'Active' => 'active:json_boolean',
'TypeId' => 'type_id:json_int' ,
'DatesLabel' => 'dates_label:json_string' ,
'MaxSubmissionAllowedPerUser' => 'max_submission_allowed_per_user:json_int',
// calculated attributes
'PresentationVotesCount' => 'presentation_votes_count:json_int' ,
'PresentationVotersCount' => 'presentation_voters_count:json_int' ,

View File

@ -41,6 +41,10 @@ final class SummitFactory
$summit->setTimeZoneId(trim($data['time_zone_id']));
}
if(isset($data['max_submission_allowed_per_user']) ){
$summit->setMaxSubmissionAllowedPerUser(intval($data['max_submission_allowed_per_user']));
}
if(isset($data['active']) ){
$summit->setActive(boolval($data['active']));
}

View File

@ -44,6 +44,10 @@ final class SummitSelectionPlanFactory
if(isset($data['is_enabled']))
$selection_plan->setIsEnabled(boolval($data['is_enabled']));
if(isset($data['max_submission_allowed_per_user']) ){
$selection_plan->setMaxSubmissionAllowedPerUser(intval($data['max_submission_allowed_per_user']));
}
if(array_key_exists('submission_begin_date', $data) && array_key_exists('submission_end_date', $data)) {
if (isset($data['submission_begin_date']) && isset($data['submission_end_date'])) {
$start_datetime = intval($data['submission_begin_date']);

View File

@ -14,6 +14,7 @@
use App\Models\Utils\TimeZoneEntity;
use Doctrine\Common\Collections\ArrayCollection;
use models\summit\PresentationCategoryGroup;
use models\summit\Summit;
use models\summit\SummitOwned;
use models\utils\SilverstripeBaseModel;
use Doctrine\ORM\Mapping AS ORM;
@ -44,6 +45,12 @@ class SelectionPlan extends SilverstripeBaseModel
*/
private $name;
/**
* @ORM\Column(name="MaxSubmissionAllowedPerUser", type="integer")
* @var int
*/
private $max_submission_allowed_per_user;
/**
* @ORM\Column(name="Enabled", type="boolean")
* @var bool
@ -245,8 +252,9 @@ class SelectionPlan extends SilverstripeBaseModel
public function __construct()
{
parent::__construct();
$this->is_enabled = false;
$this->category_groups = new ArrayCollection;
$this->is_enabled = false;
$this->category_groups = new ArrayCollection;
$this->max_submission_allowed_per_user = Summit::DefaultMaxSubmissionAllowedPerUser;
}
/**
@ -273,4 +281,20 @@ class SelectionPlan extends SilverstripeBaseModel
$this->category_groups->removeElement($track_group);
}
/**
* @return int
*/
public function getMaxSubmissionAllowedPerUser()
{
return $this->max_submission_allowed_per_user;
}
/**
* @param int $max_submission_allowed_per_user
*/
public function setMaxSubmissionAllowedPerUser($max_submission_allowed_per_user)
{
$this->max_submission_allowed_per_user = $max_submission_allowed_per_user;
}
}