Merge branch 'edge' into 'develop'

More validation checks in ApplicationSubmit. UI fixes

See merge request !206
parents 6f5a2799 86f3debe
......@@ -195,7 +195,9 @@ class ApplicationSubmit extends ControllerBase
'guardian_surname' => $applicationForm[0]['cu_surname'],
'guardian_fathername' => $applicationForm[0]['cu_fathername'],
'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([
"error_code" => $errorCode
], Response::HTTP_OK);
......@@ -299,9 +301,18 @@ class ApplicationSubmit extends ControllerBase
* 8002 τα στοιχεία φοίτησης δεν επικυρώθηκαν
* 8003 τα στοιχεία φοίτησης δεν είναι έγκυρα
*/
private function validateStudent($student)
private function validateStudent($student, $numberOfSchools, $chosenClass, $chosenSector, $chosenCourse)
{
$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"]) {
return 1001;
}
......
......@@ -9,6 +9,7 @@ use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Drupal\Core\Database\Connection;
use Drupal\epal\Crypt;
......@@ -16,12 +17,15 @@ class DirectorView extends ControllerBase
{
protected $entityTypeManager;
protected $logger;
protected $connection;
public function __construct(
EntityTypeManagerInterface $entityTypeManager,
Connection $connection,
LoggerChannelFactoryInterface $loggerChannel
) {
$this->entityTypeManager = $entityTypeManager;
$this->connection = $connection;
$this->logger = $loggerChannel->get('epal-school');
}
......@@ -29,6 +33,7 @@ class DirectorView extends ControllerBase
{
return new static(
$container->get('entity_type.manager'),
$container->get('database'),
$container->get('logger.factory')
);
}
......@@ -89,7 +94,7 @@ class DirectorView extends ControllerBase
if ($studentPerSchool) {
$list = array();
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));
$epalStudent = reset($epalStudents);
if ($epalStudents) {
......
......@@ -31,21 +31,21 @@ import {
<p style="margin-top: 20px; line-height: 2em;"> H παρακάτω λίστα διαμορφώνει τη δυναμική του σχολείου σας σε τμήματα με κριτήριο τον αριθμό των διαθεσίμων αιθουσών. </p>
<p style="margin-top: 20px; line-height: 2em;"> Παρακαλείστε να καταγράψετε τον αριθμό των τμημάτων ανά τάξη, τομέα και ειδικότητα. </p>
<div class="row">
<div class="col-md-8" style="font-weight: bold;"> Τα τμήματα του σχολείου σας.</div>
<div class="col-md-2" style="font-weight: bold;"> Αριθμός Μαθητών</div>
<div class="row">
<div class="col-md-10" 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 *ngFor="let CoursesPerSchools$ of CoursesPerSchool$ | async; let i=index; let isOdd=odd; let isEven=even" >
<li class="list-group-item isclickable" (click)="setActive(i)"
(click)="findstudent(CoursesPerSchools$.class, CoursesPerSchools$.newsector, CoursesPerSchools$.newspecialit)"
[class.changelistcolor]= "CoursesPerSchools$.size < CoursesPerSchools$.limitdown"
[class.oddout]="isOdd" [class.evenout]="isEven" [class.selectedout]="courseActive === i" >
<div class="row">
<div class="col-md-8" style="font-weight: bold;" >{{CoursesPerSchools$.taxi}}</div>
<div class="col-md-2" style="font-weight: bold;" >{{CoursesPerSchools$.size}}</div>
</div>
<div class="row" style="line-height: 2em;">
<div class="col-md-10" style="font-weight: bold;" >{{CoursesPerSchools$.taxi}}</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>
</li>
<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"
[class.selectedappout]="StudentActive === j"
......@@ -53,31 +53,38 @@ import {
[class.notconfirmed]="StudentDetails$.checkstatus === '0'"
[class.notchecked]="(StudentDetails$.checkstatus !== '1') && (StudentDetails$.checkstatus !== '0')"
[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-4" 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 class="col-md-5" 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$.name}}</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 [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="col-md-6">
<div class="col-md-8">&nbsp;</div>
<div class="col-md-4">
<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="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>
</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>
</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="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";
mText = "Η υποβολή της δήλωσής σας πραγματοποιήθηκε. Μπορείτε να τη δείτε και να την εκτυπώσετε από την επιλογή 'Εμφάνιση - Εκτύπωση Δήλωσης Προτίμησης'. Από την επιλογή 'Υποβληθείσες Δηλώσεις' θα μπορείτε να ενημερωθείτε όταν υπάρξει εξέλιξη σχετική με τη δήλωση σας. Επίσης, θα λάβετε και ενημερωτικό email.";
mHeader = "modal-header-success";
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:
mTitle = "Αποτυχία Υποβολής Δήλωσης Προτίμησης";
mText = "Δεν έχετε αποδεχθεί τους όρους χρήσης";
......
......@@ -92,7 +92,7 @@ import {Location} from '@angular/common';
<div *ngFor="let StudentResult$ of StudentResults$ | async">
<div *ngIf = "StudentResult$.applicantsResultsDisabled == '0'" >
<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$.schoolAddress}}, Τηλέφωνο σχολείου: {{StudentResult$.schoolTel}}<br><br>
......
......@@ -177,7 +177,8 @@
background-color: #fd9665;
}
.selectedappout {
background-color: #a38d82;
/* background-color: #a38d82; */
background-color: #b5b0a5;
}
.changecolor
......@@ -324,6 +325,6 @@ label {
margin-bottom: 0px;
}
.ng2-smart-pagination {
.ng2-smart-pagination {
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