More validation checks in ApplicationSubmit. UI fixes in director-view and in...

More validation checks in ApplicationSubmit. UI fixes in director-view and in submited.aplication.preview
parent 6f5a2799
...@@ -195,7 +195,9 @@ class ApplicationSubmit extends ControllerBase ...@@ -195,7 +195,9 @@ class ApplicationSubmit extends ControllerBase
'guardian_surname' => $applicationForm[0]['cu_surname'], 'guardian_surname' => $applicationForm[0]['cu_surname'],
'guardian_fathername' => $applicationForm[0]['cu_fathername'], 'guardian_fathername' => $applicationForm[0]['cu_fathername'],
'guardian_mothername' => $applicationForm[0]['cu_mothername'] 'guardian_mothername' => $applicationForm[0]['cu_mothername']
]))) > 0) { ]), sizeof($applicationForm[1]), $applicationForm[0]['currentclass'],
$applicationForm[3]['sectorfield_id'],
$applicationForm[3]['coursefield_id'])) > 0) {
return $this->respondWithStatus([ return $this->respondWithStatus([
"error_code" => $errorCode "error_code" => $errorCode
], Response::HTTP_OK); ], Response::HTTP_OK);
...@@ -299,9 +301,18 @@ class ApplicationSubmit extends ControllerBase ...@@ -299,9 +301,18 @@ class ApplicationSubmit extends ControllerBase
* 8002 τα στοιχεία φοίτησης δεν επικυρώθηκαν * 8002 τα στοιχεία φοίτησης δεν επικυρώθηκαν
* 8003 τα στοιχεία φοίτησης δεν είναι έγκυρα * 8003 τα στοιχεία φοίτησης δεν είναι έγκυρα
*/ */
private function validateStudent($student) private function validateStudent($student, $numberOfSchools, $chosenClass, $chosenSector, $chosenCourse)
{ {
$error_code = 0; $error_code = 0;
if ($numberOfSchools < 1) {
return 1000;
}
if ($chosenClass === "2" && !isset($chosenSector)) {
return 999;
}
if (($chosenClass === "3" || $chosenClass === "4") && !isset($chosenCourse)) {
return 998;
}
if (!$student["agreement"]) { if (!$student["agreement"]) {
return 1001; return 1001;
} }
......
...@@ -9,6 +9,7 @@ use Drupal\Core\Controller\ControllerBase; ...@@ -9,6 +9,7 @@ use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Drupal\Core\Database\Connection;
use Drupal\epal\Crypt; use Drupal\epal\Crypt;
...@@ -16,12 +17,15 @@ class DirectorView extends ControllerBase ...@@ -16,12 +17,15 @@ class DirectorView extends ControllerBase
{ {
protected $entityTypeManager; protected $entityTypeManager;
protected $logger; protected $logger;
protected $connection;
public function __construct( public function __construct(
EntityTypeManagerInterface $entityTypeManager, EntityTypeManagerInterface $entityTypeManager,
Connection $connection,
LoggerChannelFactoryInterface $loggerChannel LoggerChannelFactoryInterface $loggerChannel
) { ) {
$this->entityTypeManager = $entityTypeManager; $this->entityTypeManager = $entityTypeManager;
$this->connection = $connection;
$this->logger = $loggerChannel->get('epal-school'); $this->logger = $loggerChannel->get('epal-school');
} }
...@@ -29,6 +33,7 @@ class DirectorView extends ControllerBase ...@@ -29,6 +33,7 @@ class DirectorView extends ControllerBase
{ {
return new static( return new static(
$container->get('entity_type.manager'), $container->get('entity_type.manager'),
$container->get('database'),
$container->get('logger.factory') $container->get('logger.factory')
); );
} }
...@@ -89,7 +94,7 @@ class DirectorView extends ControllerBase ...@@ -89,7 +94,7 @@ class DirectorView extends ControllerBase
if ($studentPerSchool) { if ($studentPerSchool) {
$list = array(); $list = array();
foreach ($studentPerSchool as $object) { foreach ($studentPerSchool as $object) {
$studentId = intval($object->student_id->getString()); $studentId = $object->student_id->target_id;
$epalStudents = $this->entityTypeManager->getStorage('epal_student')->loadByProperties(array('id' => $studentId)); $epalStudents = $this->entityTypeManager->getStorage('epal_student')->loadByProperties(array('id' => $studentId));
$epalStudent = reset($epalStudents); $epalStudent = reset($epalStudents);
if ($epalStudents) { if ($epalStudents) {
......
...@@ -31,21 +31,21 @@ import { ...@@ -31,21 +31,21 @@ import {
<p style="margin-top: 20px; line-height: 2em;"> H παρακάτω λίστα διαμορφώνει τη δυναμική του σχολείου σας σε τμήματα με κριτήριο τον αριθμό των διαθεσίμων αιθουσών. </p> <p style="margin-top: 20px; line-height: 2em;"> H παρακάτω λίστα διαμορφώνει τη δυναμική του σχολείου σας σε τμήματα με κριτήριο τον αριθμό των διαθεσίμων αιθουσών. </p>
<p style="margin-top: 20px; line-height: 2em;"> Παρακαλείστε να καταγράψετε τον αριθμό των τμημάτων ανά τάξη, τομέα και ειδικότητα. </p> <p style="margin-top: 20px; line-height: 2em;"> Παρακαλείστε να καταγράψετε τον αριθμό των τμημάτων ανά τάξη, τομέα και ειδικότητα. </p>
<div class="row"> <div class="row">
<div class="col-md-8" style="font-weight: bold;"> Τα τμήματα του σχολείου σας.</div> <div class="col-md-10" style="font-weight: bold;"> Τα τμήματα του σχολείου σας.</div>
<div class="col-md-2" style="font-weight: bold;"> Αριθμός Μαθητών</div> <div class="col-md-2" style="font-weight: bold;"> <span class="pull-right" style="text-align: right; padding-right: 2px;">Αριθμός Μαθητών</span></div>
</div> </div>
<div *ngFor="let CoursesPerSchools$ of CoursesPerSchool$ | async; let i=index; let isOdd=odd; let isEven=even" > <div *ngFor="let CoursesPerSchools$ of CoursesPerSchool$ | async; let i=index; let isOdd=odd; let isEven=even" >
<li class="list-group-item isclickable" (click)="setActive(i)" <li class="list-group-item isclickable" (click)="setActive(i)"
(click)="findstudent(CoursesPerSchools$.class, CoursesPerSchools$.newsector, CoursesPerSchools$.newspecialit)" (click)="findstudent(CoursesPerSchools$.class, CoursesPerSchools$.newsector, CoursesPerSchools$.newspecialit)"
[class.changelistcolor]= "CoursesPerSchools$.size < CoursesPerSchools$.limitdown" [class.changelistcolor]= "CoursesPerSchools$.size < CoursesPerSchools$.limitdown"
[class.oddout]="isOdd" [class.evenout]="isEven" [class.selectedout]="courseActive === i" > [class.oddout]="isOdd" [class.evenout]="isEven" [class.selectedout]="courseActive === i" >
<div class="row"> <div class="row" style="line-height: 2em;">
<div class="col-md-8" style="font-weight: bold;" >{{CoursesPerSchools$.taxi}}</div> <div class="col-md-10" style="font-weight: bold;" >{{CoursesPerSchools$.taxi}}</div>
<div class="col-md-2" style="font-weight: bold;" >{{CoursesPerSchools$.size}}</div> <div class="col-md-2" style="font-weight: bold;" ><span class="pull-right" style="text-align: right; padding-right: 2px;">{{CoursesPerSchools$.size}}</span></div>
</div> </div>
</li> </li>
<div [hidden]="courseActive !== i" *ngIf="(retrievedStudent | async)"> <div [hidden]="courseActive !== i" *ngIf="(retrievedStudent | async)">
<div *ngFor="let StudentDetails$ of StudentInfo$ | async; let j=index; let isOdd=odd; let isEven=even" class="row list-group-item isclickable" <div *ngFor="let StudentDetails$ of StudentInfo$ | async; let j=index; let isOdd=odd; let isEven=even" class="row list-group-item isclickable"
[class.selectedappout]="StudentActive === j" [class.selectedappout]="StudentActive === j"
...@@ -53,31 +53,38 @@ import { ...@@ -53,31 +53,38 @@ import {
[class.notconfirmed]="StudentDetails$.checkstatus === '0'" [class.notconfirmed]="StudentDetails$.checkstatus === '0'"
[class.notchecked]="(StudentDetails$.checkstatus !== '1') && (StudentDetails$.checkstatus !== '0')" [class.notchecked]="(StudentDetails$.checkstatus !== '1') && (StudentDetails$.checkstatus !== '0')"
[class.oddout]="isOdd" [class.evenout]="isEven" style="margin: 0px 2px 0px 2px;"> [class.oddout]="isOdd" [class.evenout]="isEven" style="margin: 0px 2px 0px 2px;">
<div class="col-md-4" style="font-size: 0.8em; font-weight: bold;" (click) ="setActiveStudent(j)" >{{StudentDetails$.studentsurname}}</div> <div class="col-md-5" style="font-size: 0.8em; font-weight: bold;" (click) ="setActiveStudent(j)" >{{StudentDetails$.studentsurname}}</div>
<div class="col-md-4" style="font-size: 0.8em; font-weight: bold;" (click) ="setActiveStudent(j)">{{StudentDetails$.name}}</div> <div class="col-md-5" style="font-size: 0.8em; font-weight: bold;" (click) ="setActiveStudent(j)">{{StudentDetails$.name}}</div>
<div [hidden]="StudentActive !== j" class="col-md-2" style="color: black;" *ngIf = "opened == true"> <span aria-hidden="true"><button type="button" class="btn-primary btn-sm" (click) ="setActiveStudentnew(j)">Κλείσιμο</button></span> </div> <div [hidden]="StudentActive !== j" class="col-md-2 pull-right" style="color: black;" > <span aria-hidden="true"><button type="button" class="btn-primary btn-sm pull-right" (click) ="setActiveStudentnew(j)">Κλείσιμο</button></span> </div>
<div style="width: 100%; color: #000000;"> <div style="width: 100%; color: #000000;">
<div [hidden]="StudentActive !== j" style="margin: 20px 10px 10px 10px;"> <div [hidden]="StudentActive !== j" style="margin: 20px 10px 10px 10px;">
<p style="margin-top: 20px; line-height: 2em;"> Παρακαλούμε, αφού γίνει ο έλεγχος των στοιχείων του μαθητή επιβεβαιώστε τη δυνατότητα εγγραφής του.</p> <p style="margin-top: 10px; margin-bottom: 5px; line-height: 2em;"> Παρακαλούμε, αφού γίνει ο έλεγχος των στοιχείων του μαθητή επιβεβαιώστε τη δυνατότητα εγγραφής του.</p>
<div class="row" style="margin-bottom: 20px;"> <div class="row" style="margin-bottom: 20px;">
<div class="col-md-6"> <div class="col-md-8">&nbsp;</div>
<div class="col-md-4">
<strong><label>Επιβεβαίωση Εγγραφής:</label> </strong> <strong><label>Επιβεβαίωση Εγγραφής:</label> </strong>
<select #cb name="{{StudentDetails$.id}}" > <select class="form-control pull-right" #cb name="{{StudentDetails$.id}}" (change)="confirmStudent(StudentDetails$.id, cb, j)">
<option value="1" [selected]="StudentDetails$.checkstatus === '1' ">Ναι</option> <option value="1" [selected]="StudentDetails$.checkstatus === '1' ">Ναι</option>
<option value="2" [selected]="StudentDetails$.checkstatus === '0' ">Όχι</option> <option value="2" [selected]="StudentDetails$.checkstatus === '0' ">Όχι</option>
<option value="3" [selected]="StudentDetails$.checkstatus != '0' && StudentDetails$.checkstatus != '1'"></option> <option value="3" [selected]="StudentDetails$.checkstatus != '0' && StudentDetails$.checkstatus != '1'">Δεν ελέγχθηκε</option>
</select> </select>
</div> </div>
<div class="col-md-6"> <!-- <div class="col-md-2">
<button type="button" class="btn-primary btn-sm pull-right" (click)="confirmStudent(StudentDetails$.id, cb, j)"> <button type="button" class="btn-primary btn-sm pull-right" (click)="confirmStudent(StudentDetails$.id, cb, j)">
Ενημέρωση Ενημέρωση
</button> </button>
</div> </div> -->
</div> </div>
<div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
<div class="col-md-3" style="font-size: 0.8em;">Αριθμός Δήλωσης Προτίμησης ΕΠΑΛ</div>
<div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.id}}</div>
<div class="col-md-3" style="font-size: 0.8em;">Υποβλήθηκε</div>
<div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.created}}</div>
</div>
<div class="row evenin" style="margin: 0px 2px 0px 2px; line-height: 2em;"> <div class="row evenin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
<div class="col-md-12" style="font-size: 1em; font-weight: bold; text-align: center;">Στοιχεία αιτούμενου</div> <div class="col-md-12" style="font-size: 1em; font-weight: bold; text-align: center;">Στοιχεία αιτούμενου</div>
......
...@@ -367,6 +367,21 @@ import { HelperDataService } from "../../services/helper-data-service"; ...@@ -367,6 +367,21 @@ import { HelperDataService } from "../../services/helper-data-service";
mText = "Η υποβολή της δήλωσής σας πραγματοποιήθηκε. Μπορείτε να τη δείτε και να την εκτυπώσετε από την επιλογή 'Εμφάνιση - Εκτύπωση Δήλωσης Προτίμησης'. Από την επιλογή 'Υποβληθείσες Δηλώσεις' θα μπορείτε να ενημερωθείτε όταν υπάρξει εξέλιξη σχετική με τη δήλωση σας. Επίσης, θα λάβετε και ενημερωτικό email."; mText = "Η υποβολή της δήλωσής σας πραγματοποιήθηκε. Μπορείτε να τη δείτε και να την εκτυπώσετε από την επιλογή 'Εμφάνιση - Εκτύπωση Δήλωσης Προτίμησης'. Από την επιλογή 'Υποβληθείσες Δηλώσεις' θα μπορείτε να ενημερωθείτε όταν υπάρξει εξέλιξη σχετική με τη δήλωση σας. Επίσης, θα λάβετε και ενημερωτικό email.";
mHeader = "modal-header-success"; mHeader = "modal-header-success";
break; break;
case 1000:
mTitle = "Αποτυχία Υποβολής Δήλωσης Προτίμησης";
mText = "Δεν έχετε επιλέξει σχολεία";
mHeader = "modal-header-danger";
break;
case 999:
mTitle = "Αποτυχία Υποβολής Δήλωσης Προτίμησης";
mText = "Δεν έχετε επιλέξει τομέα";
mHeader = "modal-header-danger";
break;
case 998:
mTitle = "Αποτυχία Υποβολής Δήλωσης Προτίμησης";
mText = "Δεν έχετε επιλέξει ειδικότητα";
mHeader = "modal-header-danger";
break;
case 1001: case 1001:
mTitle = "Αποτυχία Υποβολής Δήλωσης Προτίμησης"; mTitle = "Αποτυχία Υποβολής Δήλωσης Προτίμησης";
mText = "Δεν έχετε αποδεχθεί τους όρους χρήσης"; mText = "Δεν έχετε αποδεχθεί τους όρους χρήσης";
......
...@@ -92,7 +92,7 @@ import {Location} from '@angular/common'; ...@@ -92,7 +92,7 @@ import {Location} from '@angular/common';
<div *ngFor="let StudentResult$ of StudentResults$ | async"> <div *ngFor="let StudentResult$ of StudentResults$ | async">
<div *ngIf = "StudentResult$.applicantsResultsDisabled == '0'" > <div *ngIf = "StudentResult$.applicantsResultsDisabled == '0'" >
<div *ngIf = "StudentResult$.status == '1'" > <div *ngIf = "StudentResult$.status == '1'" >
<div class="col-md-12" style="font-size: 1.0em; color: #ffffff; font-weight: bold;"> <div class="col-md-12" style="font-size: 1.0em; color: #143147; font-weight: bold;">
Η αίτησή σας ικανοποιήθηκε. Έχετε επιλεγεί για να εγγραφείτε στο {{StudentResult$.schoolName}}. Η αίτησή σας ικανοποιήθηκε. Έχετε επιλεγεί για να εγγραφείτε στο {{StudentResult$.schoolName}}.
Παρακαλώ να προσέλθετε ΑΜΕΣΑ στο σχολείο για να προχωρήσει η διαδικασία εγγραφής σας σε αυτό, επισυνάπτοντας τα απαραίτητα δικαιολογητικά. Παρακαλώ να προσέλθετε ΑΜΕΣΑ στο σχολείο για να προχωρήσει η διαδικασία εγγραφής σας σε αυτό, επισυνάπτοντας τα απαραίτητα δικαιολογητικά.
Διεύθυνση σχολείου: {{StudentResult$.schoolAddress}}, Τηλέφωνο σχολείου: {{StudentResult$.schoolTel}}<br><br> Διεύθυνση σχολείου: {{StudentResult$.schoolAddress}}, Τηλέφωνο σχολείου: {{StudentResult$.schoolTel}}<br><br>
......
...@@ -177,7 +177,8 @@ ...@@ -177,7 +177,8 @@
background-color: #fd9665; background-color: #fd9665;
} }
.selectedappout { .selectedappout {
background-color: #a38d82; /* background-color: #a38d82; */
background-color: #b5b0a5;
} }
.changecolor .changecolor
...@@ -324,6 +325,6 @@ label { ...@@ -324,6 +325,6 @@ label {
margin-bottom: 0px; margin-bottom: 0px;
} }
.ng2-smart-pagination { .ng2-smart-pagination {
display: inline-flex !important; display: inline-flex !important;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment