3 require_once
'Services/Form/classes/class.ilTextAreaInputGUI.php';
4 require_once
'Services/Form/classes/class.ilTextInputGUI.php';
5 require_once
'Services/Form/classes/class.ilCheckboxInputGUI.php';
6 require_once
'Services/Form/classes/class.ilNonEditableValueGUI.php';
7 require_once
'Services/Form/classes/class.ilSelectInputGUI.php';
8 require_once
'Modules/IndividualAssessment/classes/LearningProgress/class.ilIndividualAssessmentLPInterface.php';
9 require_once
'Modules/IndividualAssessment/classes/Notification/class.ilIndividualAssessmentPrimitiveInternalNotificator.php';
10 require_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();
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');
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()
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
__construct($members_gui, $a_parent_gui, $a_ref_id)
examinerId()
Get the user id of the examiner.
static updateLPStatusOfMember(ilIndividualAssessmentMember $member)
setBackTarget($a_title, $a_target, $a_frame="")
back target for upper context
withRecord($record)
Clone this object and set a record.
fillForm(ilPropertyFormGUI $a_form, ilIndividualAssessmentMember $member)
Notificate user using internal mail system.
targetWasEditedByOtherUser(ilIndividualAssessmentMember $member)
For the purpose of streamlining the grading and learning-process status definition outside of tests...
clearTargets()
clear all targets
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Edit the record of a user, set LP.
notify()
Will the user be notified after finalization?
name()
Get the examinee name corresponding to this membership.
initGradingForm($may_be_edited=true)
This class represents a non editable value in a property form.
Create new PHPExcel object
obj_idprivate
This class represents a text area property in a property form.
renderForm(ilPropertyFormGUI $a_form)
updateDataInMemberByArray(ilIndividualAssessmentMember $member, $data)
LPStatus()
Get the LP-status corresponding to this membership.
Confirmation screen class.