added report ReportNoCapacity, updated several controlllers to conform to D...

added report ReportNoCapacity, updated several controlllers to conform to D class functionality, added boolean field aggreement in EpalStudent entity, added field capacity_class_specialty_d in EepalSpecialtiesInEpal entity
parent cb6a5670
......@@ -158,6 +158,14 @@ epal.ministry.report-all-stat:
_controller: '\Drupal\epal\Controller\ReportsCreator::makeReportAllStat'
requirements:
_user_is_logged_in: 'TRUE'
epal.ministry.report-no-capacity:
path: '/ministry/report-no-capacity/{capacityEnabled}'
options:
_auth: [ 'basic_auth' ]
defaults:
_controller: '\Drupal\epal\Controller\ReportsCreator::makeReportNoCapacity'
requirements:
_user_is_logged_in: 'TRUE'
epal.ministry.retrieve-registry-id:
path: '/ministry/retrieve-registry-id'
options:
......@@ -214,4 +222,3 @@ findschoolid:
_controller: '\Drupal\epal\Controller\DirectorView::getSchoolID'
requirements:
_user_is_logged_in: 'TRUE'
......@@ -130,7 +130,7 @@ class ApplicationSubmit extends ControllerBase {
// or: epal_student_sector_field (αφορά μαθητές Β' Λυκείου)
//if ($applicationForm[0][currentclass] === "Γ' Λυκείου") {
if ($applicationForm[0][currentclass] === "3") {
if ($applicationForm[0][currentclass] === "3" || $applicationForm[0][currentclass] === "4" ) {
//$course = array('name
$course = array(
//'name' => $aitisi[3][name],
......
......@@ -188,6 +188,8 @@ class Distribution extends ControllerBase {
$eepalSpecialtiesInEpal = $sCon->execute()->fetchAll(\PDO::FETCH_OBJ);
foreach ($eepalSpecialtiesInEpal as $eepalSpecialInEp) {
$this->checkCapacityAndArrange($eepalSchool->id, "3", $eepalSpecialInEp->specialty_id, $limitUp_class, $eepalSpecialInEp->capacity_class_specialty);
//Δ' Λυκείου
$this->checkCapacityAndArrange($eepalSchool->id, "4", $eepalSpecialInEp->specialty_id, $limitUp_class, $eepalSpecialInEp->capacity_class_specialty);
}
} //end for each school/department
......@@ -262,7 +264,8 @@ class Distribution extends ControllerBase {
$epalSectorChosen = $clCon->execute()->fetchAll(\PDO::FETCH_OBJ);
$epalSecChos = reset($epalSectorChosen);
}
elseif ($epalStudent->currentclass === "3") {
//Δ'Λυκείου - Γ' Λυκείου
elseif ($epalStudent->currentclass === "3" || $epalStudent->currentclass === "4") {
$clCon = $this->connection->select('epal_student_course_field', 'courses')
->fields('courses', array('student_id', 'coursefield_id'))
->condition('courses.student_id', $epalStudent->id , '=');
......@@ -272,7 +275,8 @@ class Distribution extends ControllerBase {
if ($epalStudent->currentclass === "2")
$specialization_id = $epalSecChos->sectorfield_id;
elseif ($epalStudent->currentclass === "3")
//Δ'Λυκείου - Γ' Λυκείου
elseif ($epalStudent->currentclass === "3" || $epalStudent->currentclass === "4")
$specialization_id = $epalCourChos->coursefield_id;
else
$specialization_id = -1;
......@@ -530,110 +534,4 @@ class Distribution extends ControllerBase {
/*
public function makegGeneralReport(Request $request) {
try {
if (!$request->isMethod('GET')) {
return $this->respondWithStatus([
"message" => t("Method Not Allowed")
], Response::HTTP_METHOD_NOT_ALLOWED);
}
//user validation
//Note: $authToken = $postData->username
$authToken = $request->headers->get('PHP_AUTH_USER');
$users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken));
$user = reset($users);
if (!$user) {
return $this->respondWithStatus([
'message' => t("User not found"),
], Response::HTTP_FORBIDDEN);
}
//user role validation
//$user = \Drupal\user\Entity\User::load($user->id());
$roles = $user->getRoles();
$validRole = false;
foreach ($roles as $role)
if ($role === "ministry") {
$validRole = true;
break;
}
if (!$validRole) {
return $this->respondWithStatus([
'message' => t("User Invalid Role"),
], Response::HTTP_FORBIDDEN);
}
//υπολογισμός αριθμού αιτήσεων
$sCon = $this->connection->select('epal_student', 'eStudent')
->fields('eStudent', array('id'));
$numTotal = $sCon->countQuery()->execute()->fetchField();
//υπολογισμός αριθμού αιτήσεων που ικανοποιήθηκαν στην i προτίμηση
$numData = array();
for ($i=0; $i < 3; $i++) {
$sCon = $this->connection->select('epal_student_class', 'eStudent')
->fields('eStudent', array('id', 'distribution_id'))
->condition('eStudent.distribution_id', $i+1, '=');
array_push($numData, $sCon->countQuery()->execute()->fetchField());
}
// υπολογισμός αριθμού αιτήσεων που ΔΕΝ ικανοποιήθηκαν
//Σημείωση: υπολογισμός με queries στη βάση
$sCon = $this->connection->select('epal_student_class', 'eStudent')
->fields('eStudent', array('id'));
$epalStudents = $sCon->execute()->fetchAll(\PDO::FETCH_OBJ);
$studentIds = array();
foreach ($epalStudents as $epalStudent)
array_push($studentIds, $epalStudent->id);
$sCon = $this->connection->select('epal_student', 'eStudent')
->fields('eStudent', array('id'))
->condition('eStudent.id', $studentIds, 'NOT IN');
$numNoAllocated = $sCon->countQuery()->execute()->fetchField();
$list = array();
//$record = new generalReportSchema;
//$record->name = "nikos";
//$record->numStudents = 20;
array_push($list,(object) array('name' => "Αριθμός Αιτήσεων", 'numStudents' => $numTotal));
// $record = (object) array('name' => "Αριθμός Αιτήσεων:", 'numStudents' => $numTotal);
array_push($list,(object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην πρώτη τους προτίμηση", 'numStudents' => $numData[0]));
//$record = (object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην πρώτη τους προτίμηση:", 'numStudents' => $numData[0]);
array_push($list,(object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην δεύτερή τους προτίμηση", 'numStudents' => $numData[1]));
//$record = (object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην δεύτερή τους προτίμηση:", 'numStudents' => $numData[1]);
array_push($list,(object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην τρίτη τους προτίμηση", 'numStudents' => $numData[2]));
//$record = (object) array('name' => "Αριθμός μαθητών που τοποθετήθηκαν στην τρίτη τους προτίμηση:", 'numStudents' => $numData[2]);
array_push($list,(object) array('name' => "Αριθμός μαθητών που δεν τοποθετήθηκαν σε καμμία τους προτίμηση", 'numStudents' => $numNoAllocated));
//$record = (object) array('name' => "Αριθμός μαθητών που δεν τοποθετήθηκαν σε καμμία τους προτίμηση:", 'numStudents' => $numNoAllocated);
return $this->respondWithStatus(
$list
, Response::HTTP_OK);
} //end try
catch (\Exception $e) {
$this->logger->warning($e->getMessage());
return $this->respondWithStatus([
"message" => t("An unexpected problem occured during DELETE proccess in makeSelectionOfStudents Method of Distribution")
], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
*/
}
......@@ -162,9 +162,10 @@ class InformUnlocatedStudents extends ControllerBase {
$key = 'massive_mail'; //to be checked..
$to = $email;
$params['message'] = t('Σας ενημερώνουμε ότι η αίτησή σας με Α/Α: ') . $appId . t('/') . date('d/m/Y', $epalNonLocatedStudent->created)
.t(' δεν ικανοποιήθηκε. Παρακαλώ επικοινωνήστε άμεσα τηλεφωνικά με τη Διεύθυνση Δευτεροβάθμιας Εκπαίδευσης / Τμήμα Επαγγελματικής Εκπαίδευσης,
στην οποία ανήκετε, ώστε να διερευνηθεί η δυνατότητα εγγραφής σας σε αντίστοιχο ΕΠΑΛ'); //e-mail body
$params['message'] = t('Σας ενημερώνουμε ότι η αίτησή σας με Α/Α: ') . t($appId) . t(' - ') . t(date('d/m/Y', $epalNonLocatedStudent->created))
.t(' δεν ικανοποιήθηκε. Παρακαλώ επικοινωνήστε άμεσα τηλεφωνικά με τη Διεύθυνση Δευτεροβάθμιας Εκπαίδευσης / Τμήμα Επαγγελματικής Εκπαίδευσης,')
.t(' στην οποία ανήκετε, ώστε να διερευνηθεί η δυνατότητα εγγραφής σας σε αντίστοιχο ΕΠΑΛ. ')
.t('\r\nΤεστ1\nΤεστ2') ;//e-mail body
//add new lines with SENDER name - check it
//$params['subject'] = t('Μη ικανοποίηση ηλεκτρονικής αίτησης για εγγραφή σε ΕΠΑΛ');
......
......@@ -963,6 +963,25 @@ class EpalStudent extends ContentEntityBase implements EpalStudentInterface {
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['agreement'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Συμφωνία όρων συστήματος'))
->setDescription(t('Συμφωνία όρων συστήματος.'))
->setSettings(array(
'text_processing' => 0,
))
->setRequired(false)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'boolean',
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'boolean',
'weight' => -4,
))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Publishing status'))
->setDescription(t('A boolean indicating whether the EPAL Student is published.'))
......
......@@ -264,6 +264,26 @@ class EepalSpecialtiesInEpal extends ContentEntityBase implements EepalSpecialti
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['capacity_class_specialty_d'] = BaseFieldDefinition::create('integer')
->setLabel(t('Μέγιστος αριθμός τμημάτων ειδικότητας για την Δ Λυκείου'))
->setDescription(t('Δώσε τον μέγιστο αριθμό τμημάτων ειδικότητας για την Δ Λυκείου.'))
->setSettings(array(
'max_length' => 2,
'text_processing' => 0,
))
->setRequired(false)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'integer',
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'integer',
'weight' => -4,
))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['status'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Publishing status'))
->setDescription(t('A boolean indicating whether the Eepal specialties in epal is published.'))
......
......@@ -47,6 +47,11 @@ import { API_ENDPOINT } from '../../app.settings';
Αριθμός Μαθητών και Πληρότητα σχολικών μονάδων ΕΠΑΛ
</button>
<br><br>
<button type="button" class="btn btn-alert" (click)="nav_to_reportpath(4)" [hidden]="minedu_userName == ''" >
<i class="fa fa-file-text"></i>
Σχολικές μονάδες που δεν έχουν δηλώσει Χωρητικότητα τμημάτων
</button>
<br><br>
</div>
</div>
......@@ -117,8 +122,10 @@ import { API_ENDPOINT } from '../../app.settings';
if (repId == 1)
this.router.navigate(['/ministry/report-general', repId]);
if (repId == 2 || repId == 3)
else if (repId == 2 || repId == 3)
this.router.navigate(['/ministry/report-all-stat', repId]);
else if (repId == 4)
this.router.navigate(['/ministry/report-no-capacity', repId]);
}
......
......@@ -77,18 +77,21 @@ import { API_ENDPOINT } from '../../app.settings';
<option value="1" >Α' Λυκείου</option>
<option value="2" >Β' Λυκείου</option>
<option value="3" >Γ' Λυκείου</option>
<option value="4" >Δ' Λυκείου</option>
</select>
</div>
<div class="col-md-11 offset-md-1">
<label *ngIf="(showSectorList | async) && enableCourseFilter && (classSelected == 2 || classSelected == 3) ">Τομέας</label>
<select #secsel class="form-control" *ngIf="(showSectorList | async) && enableCourseFilter && (classSelected == 2 || classSelected == 3)" (change)="checksector(secsel)" formControlName="sector">
<label *ngIf="(showSectorList | async) && enableCourseFilter && (classSelected == 2 || classSelected == 3 || classSelected == 4) ">Τομέας</label>
<select #secsel class="form-control" *ngIf="(showSectorList | async) && enableCourseFilter && (classSelected == 2 || classSelected == 3 || classSelected == 4)"
(change)="checksector(secsel)" formControlName="sector">
<option value="0"></option>
<option *ngFor="let SectorSelection$ of SectorSelections$ | async; let i=index" [value] = "SectorSelection$.id"> {{SectorSelection$.name}}</option>
</select>
</div>
<div class="col-md-11 offset-md-1">
<label *ngIf="(showCourseList | async) && enableCourseFilter && classSelected == 3">Ειδικότητα</label>
<select #coursel class="form-control" *ngIf="(showCourseList | async) && enableCourseFilter && classSelected == 3" (change)="checkcourse(coursel)" formControlName="course">
<label *ngIf="(showCourseList | async) && enableCourseFilter && (classSelected == 3 || classSelected == 4)">Ειδικότητα</label>
<select #coursel class="form-control" *ngIf="(showCourseList | async) && enableCourseFilter && (classSelected == 3 || classSelected == 4)"
(change)="checkcourse(coursel)" formControlName="course">
<option value="0"></option>
<option *ngFor="let CourseSelection$ of CourseSelections$ | async; let i=index" [value] = "CourseSelection$.id"> {{CourseSelection$.name}}</option>
</select>
......@@ -492,7 +495,7 @@ checkregion(regionId) {
console.log("What?");
console.log(this.classSelected);
if (this.classSelected == 2 || this.classSelected == 3) {
if (this.classSelected == 2 || this.classSelected == 3 || this.classSelected == 4) {
this.SectorSelectionsSub = this._hds.getSectors(this.minedu_userName, this.minedu_userPassword, this.classSelected).subscribe(data => {
this.SectorSelections$.next(data);
},
......@@ -513,16 +516,9 @@ checkregion(regionId) {
checksector(sectorId) {
this.courseSelected = 0;
//if (typeof courseId != 'undefined') {
// this.courseSelected = courseId.value;
// console.log("My test..");
// console.log(this.courseSelected);
//}
this.sectorSelected = sectorId.value;
//if (this.classSelected == 3) {
this.CourseSelectionsSub = this._hds.getCourses(this.minedu_userName, this.minedu_userPassword, this.sectorSelected).subscribe(data => {
this.CourseSelectionsSub = this._hds.getCourses(this.minedu_userName, this.minedu_userPassword, this.sectorSelected).subscribe(data => {
this.CourseSelections$.next(data);
},
error => {
......@@ -534,9 +530,8 @@ checkregion(regionId) {
this.showCourseList.next(true);
}
);
);
//} //end if
}
......
......@@ -68,6 +68,7 @@ import { API_ENDPOINT } from '../../app.settings';
<div class="d3-chart" *ngIf = "validCreator == 1" #chart>
</div>
<br><br><br><br><br>
</div>
......
import { Component, OnInit, OnDestroy, ElementRef, ViewChild, Input } from "@angular/core";
import { Injectable } from "@angular/core";
import { AppSettings } from '../../app.settings';
import { HelperDataService } from '../../services/helper-data-service';
import { Observable} from "rxjs/Observable";
import { Http, Headers, RequestOptions} from '@angular/http';
import { NgRedux, select } from 'ng2-redux';
import { IAppState } from '../../store/store';
import { Router, ActivatedRoute, Params} from '@angular/router';
import { BehaviorSubject, Subscription } from 'rxjs/Rx';
import { ILoginInfo } from '../../store/logininfo/logininfo.types';
import { Ng2SmartTableModule, LocalDataSource } from 'ng2-smart-table';
import {reportsSchema, TableColumn} from './reports-schema';
import { LOGININFO_INITIAL_STATE } from '../../store/logininfo/logininfo.initial-state';
import {csvCreator} from './csv-creator';
import {chartCreator} from './chart-creator';
import {
FormBuilder,
FormGroup,
FormControl,
FormArray,
Validators,
} from '@angular/forms';
import { API_ENDPOINT } from '../../app.settings';
@Component({
selector: 'report-no-capacity',
template: `
<div>
<div
class = "loading" *ngIf="validCreator == 0" >
</div>
<form [formGroup]="formGroup" #form>
<h5> >Επιλογή Φίλτρων <br><br></h5>
<div class="row">
<div class="col-md-1 ">
<input type="checkbox" formControlName="capacityEnabled"
(click)="toggleCapacityFilter()" >
</div>
<div class="col-md-9">
<label for="capacityEnabled"><i>Εμφάνιση ΚΑΙ των σχολείων που έχουν καθορίσει χωρητικότητα</i></label>
</div>
</div>
<br><br>
<button type="submit" class="btn btn-alert" (click)="createReport()" [hidden]="minedu_userName == ''" >
<i class="fa fa-file-text"></i>
Δημιουργία Αναφοράς
</button>
<button type="submit" class="btn btn-alert pull-right" (click)="navigateBack()" [hidden]="minedu_userName == ''" >
Επιστροφή
</button>
<br><br>
</form>
<div *ngIf="validCreator == 1 ">
<input #search class="search" type="text" placeholder="Αναζήτηση..." (keydown.enter)="onSearch(search.value)">
<div class="smart-table-container" reportScroll>
<ng2-smart-table [settings]="settings" [source]="source"></ng2-smart-table>
</div>
</div>
<button type="button" class="alert alert-info pull-right" (click)="export2Csv()" [hidden]="validCreator != 1">
<i class="fa fa-download"></i>
<br>Εξαγωγή σε csv
</button>
</div>
`
})
@Injectable() export default class ReportNoCapacity implements OnInit, OnDestroy {
public formGroup: FormGroup;
loginInfo$: BehaviorSubject<ILoginInfo>;
loginInfoSub: Subscription;
private generalReport$: BehaviorSubject<any>;
private generalReportSub: Subscription;
private apiEndPoint = API_ENDPOINT;
private minedu_userName: string;
private minedu_userPassword: string;
private distStatus = "READY";
private data;
private validCreator: number;
private reportId: number;
private routerSub: any;
private enableCapacityFilter: boolean;
private source: LocalDataSource;
columnMap: Map<string,TableColumn> = new Map<string,TableColumn>();
@Input() settings: any;
private reportSchema = new reportsSchema();
private csvObj = new csvCreator();
private chartObj = new chartCreator();
@ViewChild('chart') public chartContainer: ElementRef;
private d3data: Array<any>;
constructor(private fb: FormBuilder,
private _ngRedux: NgRedux<IAppState>,
private _hds: HelperDataService,
private activatedRoute: ActivatedRoute,
private router: Router) {
this.formGroup = this.fb.group({
capacityEnabled: ['', []],
});
this.loginInfo$ = new BehaviorSubject(LOGININFO_INITIAL_STATE);
this.generalReport$ = new BehaviorSubject([{}]);
this.minedu_userName = '';
this.validCreator = -1;
this.enableCapacityFilter = false;
}
ngOnInit() {
this.loginInfoSub = this._ngRedux.select(state => {
if (state.loginInfo.size > 0) {
state.loginInfo.reduce(({}, loginInfoToken) => {
this.minedu_userName = loginInfoToken.minedu_username;
this.minedu_userPassword = loginInfoToken.minedu_userpassword;
return loginInfoToken;
}, {});
}
return state.loginInfo;
}).subscribe(this.loginInfo$);
this.routerSub = this.activatedRoute.params.subscribe(params => {
this.reportId = +params['reportId'];
});
}
ngOnDestroy() {
if (this.loginInfoSub)
this.loginInfoSub.unsubscribe();
if (this.generalReportSub)
this.generalReportSub.unsubscribe();
}
createReport() {
console.log("capacityFilter:");
console.log(this.enableCapacityFilter);
this.validCreator = 0;
let route;
if (this.reportId === 4) {
route = "/ministry/report-no-capacity/";
this.settings = this.reportSchema.reportNoCapacity;
}
else {
console.log("Route argument is not equal to report_id=4!")
return;
}
this.generalReportSub = this._hds.makeReport(this.minedu_userName, this.minedu_userPassword, route, this.enableCapacityFilter, 0, 0, 0, 0,0).subscribe(data => {
this.generalReport$.next(data);
this.data = data;
},
error => {
this.generalReport$.next([{}]);
this.validCreator = -1;
console.log("Error Getting ReportNoCapacity");
},
() => {
console.log("Success Getting ReportNoCapacity");
this.validCreator = 1;
this.source = new LocalDataSource(this.data);
this.columnMap = new Map<string,TableColumn>();
//pass parametes to csv class object
this.csvObj.columnMap = this.columnMap;
this.csvObj.source = this.source;
this.csvObj.settings = this.settings;
this.csvObj.prepareColumnMap();
}
)
}
toggleCapacityFilter() {
this.enableCapacityFilter = !this.enableCapacityFilter;
}
navigateBack() {
this.router.navigate(['/ministry/minister-reports']);
}
onSearch(query: string = '') {
this.csvObj.onSearch(query);
}
export2Csv() {
this.csvObj.export2Csv();
}
}
......@@ -89,6 +89,44 @@ reportAllStatSchema = {
reportNoCapacity = {
actions: false,
pager : {
display : true,
perPage:10
},
noDataMessage: 'Δεν υπάρχουν δεδομένα που περιέχουν το κείμενο αναζήτησης',
columns: {
name: {
title: 'Σχολείο',
width: '22%',
filter: false
},
region: {
title: 'Περιφερειακή Διεύθυνση',
width: '20%',
filter: false
},
admin: {
title: 'Διεύθυνση Εκπαίδευσης',
width: '20%',
filter: false
},
section: {
title: 'Τάξη/Τομέας/Ειδικότητα',
width: '22%',
filter: false
},
capacity: {
title: 'Χωρητικότητα',
width: '15%',
filter: false
}
}
};
reportCompletenessSchema = {
actions: false,
......@@ -96,42 +134,42 @@ reportCompletenessSchema = {
columns: {
name: {
title: 'Σχολείο',
width: '17%',
width: '15%',
filter: false
},
region: {
title: 'ΠΔΕ',
width: '13%',
width: '10%',
filter: false
},
admin: {
title: 'ΔΙΔΕ',
width: '13%',
width: '10%',
filter: false
},
percTotal: {
title: 'Πληρότητα Σχολείου',
width: '11%',
title: '% Σχολείου',
width: '10%',
filter: false
},
percA: {
title: 'Πληρότητα Α\' τάξης (%)',
width: '11%',
title: '% Α\' τάξης',
width: '10%',
filter: false
},
percB: {
title: 'Πληρότητα Β\' τάξης (%)',
width: '11%',
title: '% Β\' τάξης',
width: '10%',
filter: false
},
percC: {
title: 'Πληρότητα Γ\' τάξης (%)',
width: '11%',
title: '% Γ\' τάξης',
width: '10%',
filter: false
},
percD: {
title: 'Πληρότητα Δ\' τάξης (%)',
width: '11%',
title: '% Δ\' τάξης',
width: '10%',
filter: false
}
}
......
......@@ -30,6 +30,7 @@ import MinisterView from '../components/minister/minister-view';
import MinisterReports from '../components/minister/minister-reports';
import ReportAllStat from '../components/minister/report-all-stat';
import ReportGeneral from '../components/minister/report-general';
import ReportNoCapacity from '../components/minister/report-no-capacity';
import InformStudents from '../components/minister/minister-informstudents';
import SchoolAuthGuard from '../guards/school.auth.guard';
import StudentAuthGuard from '../guards/student.auth.guard';
......@@ -62,6 +63,7 @@ export const MainRoutes: Routes = [
{ path: 'ministry/minister-reports', component: MinisterReports },
{ path: 'ministry/report-all-stat/:reportId', component: ReportAllStat },
{ path: 'ministry/report-general/:reportId', component: ReportGeneral },
{ path: 'ministry/report-no-capacity/:reportId', component: ReportNoCapacity },
{ path: 'ministry/minister-informstudents', component: InformStudents },
{ path: 'school/perfecture-view', component: PerfectureView, canActivate: [RegionEduAuthGuard] },
];
......@@ -92,6 +94,7 @@ export const MainDeclarations = [
MinisterReports,
ReportAllStat,
ReportGeneral,
ReportNoCapacity,
InformStudents,
PerfectureView,
Breadcrumbs,
......
......@@ -696,8 +696,8 @@ export class HelperDataService implements OnInit, OnDestroy {
makeReport(username, userpassword, routepath, regionsel, adminsel, schsel, clsel, secsel, coursel) {
console.log("Service..Nikos..");
console.log(regionsel);
//console.log("Service..Nikos..");
//console.log(regionsel);
let headers = new Headers({
"Content-Type": "application/json",
......@@ -719,6 +719,13 @@ export class HelperDataService implements OnInit, OnDestroy {