3require_once
'Services/Form/classes/class.ilTextAreaInputGUI.php';
4require_once
'Services/Form/classes/class.ilTextInputGUI.php';
5require_once
'Services/Form/classes/class.ilCheckboxInputGUI.php';
6require_once
'Services/Form/classes/class.ilNonEditableValueGUI.php';
7require_once
'Services/Form/classes/class.ilSelectInputGUI.php';
8require_once
'Modules/IndividualAssessment/classes/LearningProgress/class.ilIndividualAssessmentLPInterface.php';
9require_once
'Modules/IndividualAssessment/classes/Notification/class.ilIndividualAssessmentPrimitiveInternalNotificator.php';
10require_once
'Modules/IndividualAssessment/classes/class.ilIndividualAssessmentLP.php';
22 public function __construct($members_gui ,$a_parent_gui, $a_ref_id) {
25 $this->ctrl =
$DIC[
'ilCtrl'];
26 $this->members_gui = $members_gui;
27 $this->parent_gui = $a_parent_gui;
28 $this->
object = $a_parent_gui->object;
29 $this->ref_id = $a_ref_id;
30 $this->tpl =
$DIC[
'tpl'];
31 $this->lng =
$DIC[
'lng'];
32 $this->ctrl->saveParameter($this,
'usr_id');
34 $this->examiner =
$DIC[
'ilUser'];
36 $this->member = $this->
object->membersStorage()
37 ->loadMember($this->
object, $this->examinee);
42 $read_permission = $this->
object->accessHandler()->checkAccessToObj($this->
object,
'read_learning_progress');
43 $edit_permission = $this->
object->accessHandler()->checkAccessToObj($this->
object,
'edit_learning_progress');
44 if(!$read_permission && !$edit_permission) {
45 $a_parent_gui->handleAccessViolation();
47 $cmd = $this->ctrl->getCmd();
52 case 'finalizeConfirmation':
53 if($edited_by_other || !$edit_permission) {
54 $a_parent_gui->handleAccessViolation();
58 if(($edited_by_other || !$edit_permission) && !$read_permission) {
59 $a_parent_gui->handleAccessViolation();
65 $a_parent_gui->handleAccessViolation();
73 $this->getBackLink());
77 return $this->ctrl->getLinkTargetByClass(
78 array(get_class($this->parent_gui)
79 ,get_class($this->members_gui))
84 $this->ctrl->redirect($this->members_gui);
90 $form->setValuesByArray(
$_POST);
91 if($form->checkInput()) {
93 if($member->mayBeFinalized()) {
94 $this->parent_gui->setScreenId(
"iass",
"member",
"finalizeConfirmation");
95 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
97 $confirm->addHiddenItem(
'record',
$_POST[
'record']);
98 $confirm->addHiddenItem(
'internal_note',
$_POST[
'internal_note']);
99 $confirm->addHiddenItem(
'notify',
$_POST[
'notify']);
100 $confirm->addHiddenItem(
'learning_progress',
$_POST[
'learning_progress']);
101 $confirm->setHeaderText($this->lng->txt(
'iass_finalize_user_qst'));
102 $confirm->setFormAction($this->ctrl->getFormAction($this));
103 $confirm->setConfirm($this->lng->txt(
'iass_finalize'),
'finalize');
104 $confirm->setCancel($this->lng->txt(
'cancel'),
'save');
105 $this->tpl->setContent($confirm->getHTML());
121 $form->setValuesByArray(
$_POST);
122 if($form->checkInput()) {
124 if($member->mayBeFinalized()) {
125 $this->member = $member->withFinalized()->maybeSendNotification($this->notificator);
126 $this->
object->membersStorage()->updateMember($this->member);
128 if($this->object->isActiveLP()) {
150 $this->parent_gui->setScreenId(
"iass",
"member",
"edit");
159 $this->tpl->setContent($a_form->
getHTML());
163 $this->parent_gui->setScreenId(
"iass",
"member",
"view");
170 $this->parent_gui->setScreenId(
"iass",
"member",
"save");
172 $form->setValuesByArray(
$_POST);
173 if($form->checkInput()) {
175 $this->
object->membersStorage()->updateMember($this->member);
177 if($this->object->isActiveLP()) {
189 ->withInternalNote(
$data[
'internal_note'])
190 ->withLPStatus(
$data[
'learning_progress'])
191 ->withExaminerId($this->examiner->getId())
192 ->withNotify((
$data[
'notify'] == 1 ?
true :
false));
197 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
199 $form->setFormAction($this->ctrl->getFormAction($this));
200 $form->setTitle($this->lng->txt(
'iass_edit_record'));
202 $examinee_name = $this->examinee->getLastname().
', '.$this->examinee->getFirstname();
205 $form->addItem($usr_name);
208 $ti->setInfo($this->lng->txt(
'iass_record_info'));
211 $ti->setDisabled(!$may_be_edited);
216 $ta->setInfo($this->lng->txt(
'iass_internal_note_info'));
219 $ta->setDisabled(!$may_be_edited);
222 $learning_progress =
new ilSelectInputGUI($this->lng->txt(
'grading'),
'learning_progress');
223 $learning_progress->setOptions(
227 $learning_progress->setDisabled(!$may_be_edited);
228 $form->addItem($learning_progress);
232 $notify->setInfo($this->lng->txt(
'iass_notify_explanation'));
233 $notify->setDisabled(!$may_be_edited);
234 $form->addItem($notify);
237 $form->addCommandButton(
'save', $this->lng->txt(
'save'));
238 $form->addCommandButton(
'finalizeConfirmation',$this->lng->txt(
'iass_finalize'));
240 $form->addCommandButton(
'cancel', $this->lng->txt(
'iass_return'));
246 'name' => $member->
name()
247 ,
'record' => $member->
record()
249 ,
'notify' => $member->
notify()
250 ,
'learning_progress' => (
int)$member->
LPStatus()
256 return (
int)$member->
examinerId() !== (int)$this->examiner->getId()
An exception for terminatinating execution or to throw for unit testing.
Confirmation screen class.
static updateLPStatusOfMember(ilIndividualAssessmentMember $member)
For the purpose of streamlining the grading and learning-process status definition outside of tests,...
__construct($members_gui, $a_parent_gui, $a_ref_id)
fillForm(ilPropertyFormGUI $a_form, ilIndividualAssessmentMember $member)
renderForm(ilPropertyFormGUI $a_form)
targetWasEditedByOtherUser(ilIndividualAssessmentMember $member)
initGradingForm($may_be_edited=true)
updateDataInMemberByArray(ilIndividualAssessmentMember $member, $data)
Edit the record of a user, set LP.
examinerId()
Get the user id of the examiner.
LPStatus()
Get the LP-status corresponding to this membership.
withRecord($record)
Clone this object and set a record.
name()
Get the examinee name corresponding to this membership.
Notificate user using internal mail system.
This class represents a non editable value in a property form.
clearTargets()
clear all targets
setBackTarget($a_title, $a_target, $a_frame="")
back target for upper context
This class represents a text area property in a property form.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.