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

View File

@ -25,6 +25,7 @@ final class SelectionPlanSerializer extends SilverStripeSerializer
'Enabled' => 'is_enabled:json_boolean', 'Enabled' => 'is_enabled:json_boolean',
'SubmissionBeginDate' => 'submission_begin_date:datetime_epoch', 'SubmissionBeginDate' => 'submission_begin_date:datetime_epoch',
'SubmissionEndDate' => 'submission_end_date:datetime_epoch', 'SubmissionEndDate' => 'submission_end_date:datetime_epoch',
'MaxSubmissionAllowedPerUser' => 'max_submission_allowed_per_user:json_int',
'VotingBeginDate' => 'voting_begin_date:datetime_epoch', 'VotingBeginDate' => 'voting_begin_date:datetime_epoch',
'VotingEndDate' => 'voting_end_date:datetime_epoch', 'VotingEndDate' => 'voting_end_date:datetime_epoch',
'SelectionBeginDate' => 'selection_begin_date:datetime_epoch', 'SelectionBeginDate' => 'selection_begin_date:datetime_epoch',

View File

@ -33,6 +33,7 @@ class SummitSerializer extends SilverStripeSerializer
'Active' => 'active:json_boolean', 'Active' => 'active:json_boolean',
'TypeId' => 'type_id:json_int' , 'TypeId' => 'type_id:json_int' ,
'DatesLabel' => 'dates_label:json_string' , 'DatesLabel' => 'dates_label:json_string' ,
'MaxSubmissionAllowedPerUser' => 'max_submission_allowed_per_user:json_int',
// calculated attributes // calculated attributes
'PresentationVotesCount' => 'presentation_votes_count:json_int' , 'PresentationVotesCount' => 'presentation_votes_count:json_int' ,
'PresentationVotersCount' => 'presentation_voters_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'])); $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']) ){ if(isset($data['active']) ){
$summit->setActive(boolval($data['active'])); $summit->setActive(boolval($data['active']));
} }

View File

@ -44,6 +44,10 @@ final class SummitSelectionPlanFactory
if(isset($data['is_enabled'])) if(isset($data['is_enabled']))
$selection_plan->setIsEnabled(boolval($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(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'])) { if (isset($data['submission_begin_date']) && isset($data['submission_end_date'])) {
$start_datetime = intval($data['submission_begin_date']); $start_datetime = intval($data['submission_begin_date']);

View File

@ -14,6 +14,7 @@
use App\Models\Utils\TimeZoneEntity; use App\Models\Utils\TimeZoneEntity;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use models\summit\PresentationCategoryGroup; use models\summit\PresentationCategoryGroup;
use models\summit\Summit;
use models\summit\SummitOwned; use models\summit\SummitOwned;
use models\utils\SilverstripeBaseModel; use models\utils\SilverstripeBaseModel;
use Doctrine\ORM\Mapping AS ORM; use Doctrine\ORM\Mapping AS ORM;
@ -44,6 +45,12 @@ class SelectionPlan extends SilverstripeBaseModel
*/ */
private $name; private $name;
/**
* @ORM\Column(name="MaxSubmissionAllowedPerUser", type="integer")
* @var int
*/
private $max_submission_allowed_per_user;
/** /**
* @ORM\Column(name="Enabled", type="boolean") * @ORM\Column(name="Enabled", type="boolean")
* @var bool * @var bool
@ -247,6 +254,7 @@ class SelectionPlan extends SilverstripeBaseModel
parent::__construct(); parent::__construct();
$this->is_enabled = false; $this->is_enabled = false;
$this->category_groups = new ArrayCollection; $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); $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;
}
} }