diff --git a/drupal/modules/epal/epal.routing.yml b/drupal/modules/epal/epal.routing.yml index 4a0e3d5627c70ea46f7495aae8361a914aeaf134..90f25d728361897ac3a92e6f7715ddb8e573d70b 100755 --- a/drupal/modules/epal/epal.routing.yml +++ b/drupal/modules/epal/epal.routing.yml @@ -141,7 +141,7 @@ epal.ministry.log_out_go: requirements: _user_is_logged_in: 'TRUE' epal.ministry.general_report: - path: '/ministry/general-report' + path: '/ministry/general-report/{regionId}/{adminId}/{schId}' options: _auth: [ 'basic_auth' ] defaults: @@ -149,7 +149,7 @@ epal.ministry.general_report: requirements: _user_is_logged_in: 'TRUE' epal.ministry.report-completeness: - path: '/ministry/report-completeness' + path: '/ministry/report-completeness/{regionId}/{adminId}/{schId}' options: _auth: [ 'basic_auth' ] defaults: @@ -157,7 +157,7 @@ epal.ministry.report-completeness: requirements: _user_is_logged_in: 'TRUE' epal.ministry.report-all-stat: - path: '/ministry/report-all-stat' + path: '/ministry/report-all-stat/{regionId}/{adminId}/{schId}' options: _auth: [ 'basic_auth' ] defaults: diff --git a/drupal/modules/epal/src/Controller/CreateDemoData.php b/drupal/modules/epal/src/Controller/CreateDemoData.php index c667808173200a6b2d79d438ac24850ddf648fab..2b2ce217f3f79d901c4b8604ee0f8a022b151d0c 100755 --- a/drupal/modules/epal/src/Controller/CreateDemoData.php +++ b/drupal/modules/epal/src/Controller/CreateDemoData.php @@ -72,12 +72,14 @@ class CreateDemoData extends ControllerBase { $epaluserid = \Drupal::currentUser()->id(); - for ($i = 1; $i <= 500; $i++) { + for ($i = 1; $i <= 1000; $i++) { //srand($this->make_seed()); $curclass = rand(1,3); //$curclass = 2; - $currentepal = rand(137,165); + + //$currentepal = rand(137,165); + $currentepal = rand(5,399); $student = array( //'epaluser_id' => $aitisi[0][epaluser_id], @@ -146,8 +148,8 @@ class CreateDemoData extends ControllerBase { $ids = $eepalSpecialtiesInEpal_storage->getQuery() ->condition('specialty_id', $coursefield_id, "=") - ->condition('epal_id', 137, ">=") - ->condition('epal_id', 165, "<=") + //->condition('epal_id', 137, ">=") + //->condition('epal_id', 165, "<=") ->execute(); $eepalSpecialtiesInEpal = $eepalSpecialtiesInEpal_storage->loadMultiple($ids); @@ -185,8 +187,8 @@ class CreateDemoData extends ControllerBase { $ids = $eepalSectorsInEpal_storage->getQuery() ->condition('sector_id', $sectorfield_id, "=") - ->condition('epal_id', 137, ">=") - ->condition('epal_id', 165, "<=") + //->condition('epal_id', 137, ">=") + //->condition('epal_id', 165, "<=") ->execute(); $eepalSectorsInEpal = $eepalSectorsInEpal_storage->loadMultiple($ids); @@ -206,8 +208,10 @@ class CreateDemoData extends ControllerBase { else if ($curclass === 1) { print_r("
CLASS A: "); - $school_id_start = 137; - for ($l=0; $l < 29; $l++) + //$school_id_start = 137; + $school_id_start = 5; + //for ($l=0; $l < 29; $l++) + for ($l=0; $l < 395; $l++) array_push($availableSchools, $school_id_start + $l); } diff --git a/drupal/modules/epal/src/Controller/ReportsCreator.php b/drupal/modules/epal/src/Controller/ReportsCreator.php index faa23a71a9696f2a6af2a2ccd89e723779545249..5ea236fc351aa89c52af8d91104257556440845c 100644 --- a/drupal/modules/epal/src/Controller/ReportsCreator.php +++ b/drupal/modules/epal/src/Controller/ReportsCreator.php @@ -56,7 +56,7 @@ class ReportsCreator extends ControllerBase { } - public function makegGeneralReport(Request $request) { + public function makegGeneralReport(Request $request, $regionId, $adminId, $schId) { try { if (!$request->isMethod('GET')) { @@ -116,22 +116,8 @@ class ReportsCreator extends ControllerBase { ->condition('eStudent.id', $studentIds, 'NOT IN'); $numNoAllocated = $sCon->countQuery()->execute()->fetchField(); - /* - $list[] = array( - 'num_applications' => $numTotal, - 'numchoice1' => $numData[0], - 'numchoice2' => $numData[1], - 'numchoice3' => $numData[2], - 'num_noallocated' => $numNoAllocated, - ); - */ - $list = array(); - //$record = new generalReportSchema; - //$record->name = "nikos"; - //$record->numStudents = 20; - array_push($list,(object) array('name' => "Αριθμός Αιτήσεων", 'numStudents' => $numTotal)); array_push($list,(object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην πρώτη τους προτίμηση", 'numStudents' => $numData[0])); array_push($list,(object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην δεύτερή τους προτίμηση", 'numStudents' => $numData[1])); @@ -153,7 +139,7 @@ class ReportsCreator extends ControllerBase { } - public function makeReportCompleteness(Request $request) { + public function makeReportCompleteness(Request $request, $regionId, $adminId, $schId) { //$this->checkAuthorization($request); @@ -191,10 +177,17 @@ class ReportsCreator extends ControllerBase { $list = array(); - //βρες όλα τα σχολεία + //βρες όλα τα σχολεία που πληρούν τα κριτήρια / φίλτρα $sCon = $this->connection->select('eepal_school_field_data', 'eSchool') - ->fields('eSchool', array('id', 'name', 'capacity_class_a')); + ->fields('eSchool', array('id', 'name', 'capacity_class_a', 'region_edu_admin_id', 'edu_admin_id')); + if ($regionId != 0) + $sCon->condition('eSchool.region_edu_admin_id', $regionId, '='); + if ($adminId != 0) + $sCon->condition('eSchool.edu_admin_id', $adminId, '='); + if ($schId != 0) + $sCon->condition('eSchool.id', $schId, '='); $epalSchools = $sCon->execute()->fetchAll(\PDO::FETCH_OBJ); + //βρες ανώτατο επιτρεπόμενο όριο μαθητών $sCon = $this->connection->select('epal_class_limits', 'eSchool') ->fields('eSchool', array('name', 'limit_up')) @@ -245,7 +238,8 @@ class ReportsCreator extends ControllerBase { $percTotal = number_format (array_sum($num) / array_sum($capacity) * 100, 1) . "%"; //αποστολή αποτελεσμάτων / στατιστικών - if ($num[0] !== "0" || $num[1] !== "0" || $num[2] !== "0") + + //if ($num[0] !== "0" || $num[1] !== "0" || $num[2] !== "0") /* array_push($list,(object) array( @@ -282,7 +276,7 @@ class ReportsCreator extends ControllerBase { - public function makeReportAllStat(Request $request) { + public function makeReportAllStat(Request $request, $regionId, $adminId, $schId) { try { @@ -316,12 +310,18 @@ class ReportsCreator extends ControllerBase { ], Response::HTTP_FORBIDDEN); } - $list = array(); - //βρες όλα τα σχολεία + //βρες όλα τα σχολεία που πληρούν τα κριτήρια / φίλτρα $sCon = $this->connection->select('eepal_school_field_data', 'eSchool') ->fields('eSchool', array('id', 'name', 'capacity_class_a', 'region_edu_admin_id', 'edu_admin_id')); + //->condition('eSchool.region_edu_admin_id', $regionId, '='); + if ($regionId != 0) + $sCon->condition('eSchool.region_edu_admin_id', $regionId, '='); + if ($adminId != 0) + $sCon->condition('eSchool.edu_admin_id', $adminId, '='); + if ($schId != 0) + $sCon->condition('eSchool.id', $schId, '='); $epalSchools = $sCon->execute()->fetchAll(\PDO::FETCH_OBJ); foreach ($epalSchools as $epalSchool) { //για κάθε σχολείο @@ -332,14 +332,14 @@ class ReportsCreator extends ControllerBase { $adminColumn = array(); $regionColumn = array(); - //εύρεση ΠΔΕ που ανήκει το σχολείο + //εύρεση ονόματος ΠΔΕ που ανήκει το σχολείο $sCon = $this->connection->select('eepal_region_field_data', 'eRegion') ->fields('eRegion', array('id','name')) ->condition('eRegion.id', $epalSchool->region_edu_admin_id, '='); $epalRegions = $sCon->execute()->fetchAll(\PDO::FETCH_OBJ); $epalRegion = reset($epalRegions); - //εύρεση ΔΙΔΕ που ανήκει το σχολείο + //εύρεση ονόματος ΔΙΔΕ που ανήκει το σχολείο $sCon = $this->connection->select('eepal_admin_area_field_data', 'eAdmin') ->fields('eAdmin', array('id','name')) ->condition('eAdmin.id', $epalSchool->edu_admin_id, '='); diff --git a/source/components/minister/minister-informstudents.ts b/source/components/minister/minister-informstudents.ts index c19a4061fd464926b6fb4dc9e9d3b42c4b3b0927..cb1235065a6e61150afa861386b024534736ccdb 100644 --- a/source/components/minister/minister-informstudents.ts +++ b/source/components/minister/minister-informstudents.ts @@ -28,6 +28,57 @@ import { API_ENDPOINT } from '../../app.settings';
+ + + + + + + + -
-
+ ` }) @@ -78,15 +132,12 @@ import { API_ENDPOINT } from '../../app.settings'; } - ngOnDestroy() { - - if (this.loginInfoSub) this.loginInfoSub.unsubscribe(); - this.loginInfo$.unsubscribe(); - - } - ngOnInit() { + ($('#mailSuccessNotice')).appendTo("body"); + ($('#mailFailureNotice')).appendTo("body"); + ($('#mailNonSendingNotice')).appendTo("body"); + this.loginInfoSub = this._ngRedux.select(state => { if (state.loginInfo.size > 0) { state.loginInfo.reduce(({}, loginInfoToken) => { @@ -104,6 +155,32 @@ import { API_ENDPOINT } from '../../app.settings'; } + ngOnDestroy() { + + ($('#mailSuccessNotice')).remove(); + ($('#mailFailureNotice')).remove(); + ($('#mailNonSendingNotice')).remove(); + + if (this.loginInfoSub) this.loginInfoSub.unsubscribe(); + this.loginInfo$.unsubscribe(); + + } + + public showModal(popupMsgId):void { + console.log("about to show modal"); + //($('#distributionWaitingNotice')).modal('show'); + ($(popupMsgId)).modal('show'); + } + + public hideModal(popupMsgId):void { + //($('#distributionWaitingNotice')).modal('hide'); + ($(popupMsgId)).modal('hide'); + } + + public onHidden(popupMsgId):void { + + } + informUnlocatedStudents() { /* @@ -129,11 +206,14 @@ import { API_ENDPOINT } from '../../app.settings'; error => { console.log("Error"); this.successSending = 0; + this.showModal("#mailFailureNotice"); }, () => { console.log("Success"); this.successSending = 1; - //this.validCreator = true; + this.showModal("#mailSuccessNotice"); + if (this.numFailMails != 0) + this.showModal("#mailNonSendingNotice"); } ) diff --git a/source/components/minister/minister-view.ts b/source/components/minister/minister-view.ts index 8e0248bfc24e33ac4df6af66e5db23a4a75e145b..4c1f28e33753db33d480d2782d9b3a7a593930b7 100644 --- a/source/components/minister/minister-view.ts +++ b/source/components/minister/minister-view.ts @@ -33,8 +33,60 @@ import { API_ENDPOINT } from '../../app.settings'; class = "loading" *ngIf=" distStatus === 'STARTED'" > + + + + + + + - +

-
-
- -
- ` }) @@ -70,8 +116,8 @@ import { API_ENDPOINT } from '../../app.settings'; public formGroup: FormGroup; loginInfo$: BehaviorSubject; loginInfoSub: Subscription; - public isModalShown: BehaviorSubject; - public isModalShownMy: boolean; + //public isModalShownWaiting: BehaviorSubject; + //public isModalShownCompleted: BehaviorSubject; private apiEndPoint = API_ENDPOINT; private minedu_userName: string; private minedu_userPassword: string; @@ -90,47 +136,51 @@ import { API_ENDPOINT } from '../../app.settings'; this.loginInfo$ = new BehaviorSubject(LOGININFO_INITIAL_STATE); - this.isModalShown = new BehaviorSubject(false); + //this.isModalShownWaiting = new BehaviorSubject(false); + //this.isModalShownCompleted = new BehaviorSubject(false); } - /* - public showModal():void { + public showModal(popupMsgId):void { console.log("about to show modal"); - this.isModalShown.next(true); - this.isModalShownMy = true; - - } - - public hideModal():void { - this.autoShownModal.hide(); + //($('#distributionWaitingNotice')).modal('show'); + ($(popupMsgId)).modal('show'); } - public onHidden():void { - this.isModalShown.next(false); - this.isModalShownMy = false; + public hideModal(popupMsgId):void { + //($('#distributionWaitingNotice')).modal('hide'); + ($(popupMsgId)).modal('hide'); } - */ - showModal(){ -// this.bootstrapModal.show(); + public onHidden(popupMsgId):void { + /* + if (popupMsgId == "#distributionWaitingNotice") + this.isModalShownWaiting.next(false); + else if (popupMsgId == "#distributionCompletedNotice") + this.isModalShownCompleted.next(false); + */ + //this.isModalShownWaiting.next(false); } - closeModal(){ -// this.bootstrapModal.hide(); - } - - ngOnDestroy() { - if (this.loginInfoSub) this.loginInfoSub.unsubscribe(); - this.loginInfo$.unsubscribe(); + ($('#distributionWaitingNotice')).remove(); + ($('#distributionCompletedNotice')).remove(); + ($('#distributionFailureNotice')).remove(); + if (this.loginInfoSub) + this.loginInfoSub.unsubscribe(); + //this.loginInfo$.unsubscribe(); } ngOnInit() { + ($('#distributionWaitingNotice')).appendTo("body"); + ($('#distributionCompletedNotice')).appendTo("body"); + ($('#distributionFailureNotice')).appendTo("body"); + + this.loginInfoSub = this._ngRedux.select(state => { if (state.loginInfo.size > 0) { state.loginInfo.reduce(({}, loginInfoToken) => { @@ -149,19 +199,20 @@ import { API_ENDPOINT } from '../../app.settings'; runDistribution() { this.distStatus = "STARTED"; + + this.showModal("#distributionWaitingNotice"); + this._hds.makeDistribution(this.minedu_userName, this.minedu_userPassword) .catch(err => {console.log(err); this.distStatus = "ERROR"; }) .then(msg => { console.log("KATANOMH TELEIOSE"); - //this.showModal(); + this.showModal("#distributionCompletedNotice"); if (this.distStatus !== "ERROR") this.distStatus = "FINISHED"; }); } - testModal() { - this.showModal(); - } + diff --git a/source/components/minister/report-all-stat.ts b/source/components/minister/report-all-stat.ts index 417f130f04f8123ed539ed3db3509e2240b0b82c..eddae5e32eb0d8dee5413ef729e5f59c14fd9615 100644 --- a/source/components/minister/report-all-stat.ts +++ b/source/components/minister/report-all-stat.ts @@ -40,27 +40,32 @@ import { API_ENDPOINT } from '../../app.settings';
-
>Επιλογή Φίλτρων

+ +
+
- - +
- -
- -

+