diff --git a/drupal/modules/epal/epal.routing.yml b/drupal/modules/epal/epal.routing.yml index 2ffe9ae84b431efc7616ce486f594e2dd00bf036..1c9e4082e8b0ae34b88208d1e2ed92a7fe8af703 100755 --- a/drupal/modules/epal/epal.routing.yml +++ b/drupal/modules/epal/epal.routing.yml @@ -79,7 +79,7 @@ epal.allocation: requirements: _user_is_logged_in: 'TRUE' epal.sectorperschool: - path: '/epal/sectorperSchool' + path: '/epal/sectorperschool' options: _auth: [ 'basic_auth' ] defaults: @@ -87,7 +87,7 @@ epal.sectorperschool: requirements: _user_is_logged_in: 'TRUE' epal.specialityperschool: - path: '/epal/specialityperSchool/{sectorId}' + path: '/epal/specialityperschool/{sectorId}' options: _auth: [ 'basic_auth' ] defaults: @@ -103,7 +103,7 @@ epal.confirmstudents: requirements: _user_is_logged_in: 'TRUE' epal.studentperschool: - path: '/epal/studentperSchool/{selectId}/{classId}/{limitdown}/{limitup}' + path: '/epal/studentperschool/{selectId}/{classId}/{limitdown}/{limitup}' options: _auth: [ 'basic_auth' ] defaults: @@ -215,7 +215,7 @@ epal.perfectureschools: requirements: _user_is_logged_in: 'TRUE' epal.coursesperschools: - path: '/epal/CoursesperSch/{schoolid}' + path: '/epal/coursespersch/{schoolid}' options: _auth: [ 'basic_auth' ] defaults: @@ -231,7 +231,7 @@ epal.critirioschosen: requirements: _user_is_logged_in: 'TRUE' epal.findcapacity: - path: '/epal/findCapacity/{taxi}/{tomeas}/{specialit}' + path: '/epal/findcapacity/{taxi}/{tomeas}/{specialit}' options: _auth: [ 'basic_auth' ] defaults: @@ -254,11 +254,19 @@ epal.gettypeofschool: _controller: '\Drupal\epal\Controller\DirectorView::gettypeofschool' requirements: _user_is_logged_in: 'TRUE' -getlimitspercourse: - path: '/epal/getlimitsperCourse/{classid}' +epal.getlimitspercourse: + path: '/epal/getlimitspercourse/{classid}' options: _auth: [ 'basic_auth' ] defaults: _controller: '\Drupal\epal\Controller\DirectorView::getlimitsperCourse' requirements: _user_is_logged_in: 'TRUE' +epal.findcapacityperschool: + path: '/epal/findcapacityperschool' + options: + _auth: [ 'basic_auth' ] + defaults: + _controller: '\Drupal\epal\Controller\DirectorView::FindCapacityPerSchool' + requirements: + _user_is_logged_in: 'TRUE' diff --git a/drupal/modules/epal/src/Controller/DirectorView.php b/drupal/modules/epal/src/Controller/DirectorView.php index c658f0b4c4b02a990a1167ab9289d32007d17017..c85205553bc08fb03df1fce27581e2efa90124bf 100755 --- a/drupal/modules/epal/src/Controller/DirectorView.php +++ b/drupal/modules/epal/src/Controller/DirectorView.php @@ -499,9 +499,6 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit) } - - - public function getCoursesPerSchool(Request $request, $schoolid) { $authToken = $request->headers->get('PHP_AUTH_USER'); @@ -509,13 +506,31 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit) $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken)); $user = reset($users); if ($user) - { + { + $newid = $user -> init -> value; + $userRoles = $user->getRoles(); + $userRole = ''; + foreach ($userRoles as $tmpRole) { + if (($tmpRole === 'regioneduadmin') || ($tmpRole === 'eduadmin')) { + $userRole = $tmpRole; + } + } + if ($userRole === '') { + return $this->respondWithStatus([ + 'error_code' => 4003, + ], Response::HTTP_FORBIDDEN); + } - $list= array(); + else if ($userRole === 'regioneduadmin') { + $SchoolCats = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('id'=> $schoolid, 'region_edu_admin_id' => $newid)); + } + else if ($userRole === 'eduadmin') { + $SchoolCats = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('id'=> $schoolid , 'edu_admin_id' => $newid)); + } - $SchoolCats = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('id'=> $schoolid )); $SchoolCat = reset($SchoolCats); if ($SchoolCat){ + $list= array(); $categ = $SchoolCat-> metathesis_region -> value; } $CourseA = $this->entityTypeManager->getStorage('epal_student')->loadByProperties(array('id'=> $schoolid )); @@ -981,6 +996,110 @@ public function gettypeofschool(Request $request) + public function FindCapacityPerSchool(Request $request) + { + + + $authToken = $request->headers->get('PHP_AUTH_USER'); + + $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken)); + $user = reset($users); + if ($user) { + $schoolid = $user -> init -> value; + $schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('id'=> $schoolid)); + $school = reset($schools); + if (!$school) { + $this->logger->warning("no access to this school=" . $user->id()); + $response = new Response(); + $response->setContent('No access to this school'); + $response->setStatusCode(Response::HTTP_FORBIDDEN); + $response->headers->set('Content-Type', 'application/json'); + return $response; + } + + $list = array(); + $CapacityPerClass = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('id' => $schoolid )); + $classcapacity = reset($CapacityPerClass); + + + if ($classcapacity) { + + + $list[] = array( + 'class' => 1, + 'taxi' => 'Ά Λυκείου', + 'capacity' => $classcapacity -> capacity_class_a -> value , + ); + } + + $CourseB = $this->entityTypeManager->getStorage('eepal_sectors_in_epal')->loadByProperties(array('epal_id' => $schoolid )); + if ($CourseB) + { + foreach ($CourseB as $object) + { + $sectorid = $object -> sector_id -> entity -> id(); + $CapacityPerClass = $this->entityTypeManager->getStorage('eepal_sectors_in_epal')->loadByProperties(array('epal_id' => $schoolid, 'sector_id' => $sectorid )); + $classcapacity = reset($CapacityPerClass); + if ($classcapacity) { + $list[] = array( + 'class' => 2, + 'taxi' => 'Β Λυκείου '.$object -> sector_id -> entity-> get('name')->value, + 'capacity' => $classcapacity -> capacity_class_sector -> value , + ); + } + } + } + $CourseC = $this->entityTypeManager->getStorage('eepal_specialties_in_epal')->loadByProperties(array('epal_id' => $schoolid )); + if ($CourseC) + { + foreach ($CourseC as $object) { + $specialityid = $object -> specialty_id -> entity -> id() ; + $CapacityPerClass = $this->entityTypeManager->getStorage('eepal_specialties_in_epal')->loadByProperties(array('epal_id' => $schoolid, 'specialty_id' => $specialityid)); + $classcapacity = reset($CapacityPerClass); + if ($classcapacity) { + $list[] = array( + 'class' => 3, + 'taxi' => 'Γ Λυκείου '.$object -> specialty_id -> entity-> get('name')->value, + 'capacity' => $classcapacity -> capacity_class_specialty -> value , + ); + } + } + } + + if ($CourseC) + { + foreach ($CourseC as $object) + { + $specialityid = $object -> specialty_id -> entity -> id() ; + $CapacityPerClass = $this->entityTypeManager->getStorage('eepal_specialties_in_epal')->loadByProperties(array('epal_id' => $schoolid, 'specialty_id' => $specialityid)); + $classcapacity = reset($CapacityPerClass); + if ($classcapacity) { + $list[] = array( + 'class' => 4, + 'taxi' => 'Δ Λυκείου '.$object -> specialty_id -> entity-> get('name')->value, + 'capacity' => $classcapacity -> capacity_class_specialty_d -> value , + + ); + } + } + } + + return $this->respondWithStatus( + $list + , Response::HTTP_OK); + + + } else { + return $this->respondWithStatus([ + 'message' => t("EPAL user not found"), + ], Response::HTTP_FORBIDDEN); + } + } + + + + + private function respondWithStatus($arr, $s) { $res = new JsonResponse($arr); $res->setStatusCode($s); diff --git a/source/components/director/director-classcapacity.ts b/source/components/director/director-classcapacity.ts index e5d337a481f65c907ecbec35b2a27d65928df0d5..e75949669c6a59e682f3f295a323002e76fca70e 100644 --- a/source/components/director/director-classcapacity.ts +++ b/source/components/director/director-classcapacity.ts @@ -17,13 +17,14 @@ import {minValue} from '../../constants'; import { FormBuilder, FormGroup, - FormControl, + FormControl, FormArray, Validators, } from '@angular/forms'; @Component({ selector: 'director-classcapacity', template: ` +

@@ -68,8 +69,21 @@ import { Αποθήκευση
+
+
+
Οι δηλώσεις σας
+
+
  • +
    {{CapacityPerCourses$.taxi}} {{CapacityPerCourses$.capacity}}
    +
  • + +
    + + + +