Commit a376b7fb authored by Χάρης Παπαδόπουλος's avatar Χάρης Παπαδόπουλος
Browse files

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