Fixed director view bug. Other fixes

parent 88da1f2e
...@@ -5,8 +5,6 @@ use Drupal\Core\Entity\Query\QueryFactory; ...@@ -5,8 +5,6 @@ use Drupal\Core\Entity\Query\QueryFactory;
use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Entity\EntityTypeManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Controller\ControllerBase;
// require_once '/home/haris/devel/eepal/drupal/modules/casost/src/CAS/phpCAS.php';
use phpCAS; use phpCAS;
use Drupal\user\Entity\User; use Drupal\user\Entity\User;
use Drupal\Core\Database\Connection; use Drupal\Core\Database\Connection;
......
...@@ -14,30 +14,48 @@ use Drupal\Core\Logger\LoggerChannelFactoryInterface; ...@@ -14,30 +14,48 @@ use Drupal\Core\Logger\LoggerChannelFactoryInterface;
class DirectorView extends ControllerBase class DirectorView extends ControllerBase
{ {
protected $entityTypeManager; protected $entityTypeManager;
protected $logger;
protected $testSchoolId='0640050';
public function __construct(EntityTypeManagerInterface $entityTypeManager) public function __construct(EntityTypeManagerInterface $entityTypeManager,
LoggerChannelFactoryInterface $loggerChannel)
{ {
$this->entityTypeManager = $entityTypeManager; $this->entityTypeManager = $entityTypeManager;
$this->logger = $loggerChannel->get('epal-school');
} }
public static function create(ContainerInterface $container) public static function create(ContainerInterface $container)
{ {
return new static( return new static(
$container->get('entity_type.manager') $container->get('entity_type.manager'),
$container->get('logger.factory')
); );
} }
public function getSectorsPerSchool(Request $request, $epalId) public function getSectorsPerSchool(Request $request, $epalId)
{ {
$authToken = $request->headers->get('PHP_AUTH_USER'); $authToken = $request->headers->get('PHP_AUTH_USER');
$epalUsers = $this->entityTypeManager->getStorage('epal_users')->loadByProperties(array('authtoken' => $authToken)); $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken));
$epalUser = reset($epalUsers); $user = reset($users);
if ($epalUser) { if ($user) {
$userid = $epalUser -> user_id -> entity -> id(); // $schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $user->mail->value, 'id' => intval($epalId)));
$schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $this->testSchoolId, 'id' => intval($epalId)));
$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;
}
$userid = $user -> id();
$epalIdNew = intval($epalId); $epalIdNew = intval($epalId);
$sectorPerSchool = $this->entityTypeManager->getStorage('eepal_sectors_in_epal')->loadByProperties(array('epal_id'=> $epalIdNew)); $sectorPerSchool = $this->entityTypeManager->getStorage('eepal_sectors_in_epal')->loadByProperties(array('epal_id'=> $epalIdNew));
$i = 0; $i = 0;
...@@ -52,7 +70,7 @@ public function getSectorsPerSchool(Request $request, $epalId) ...@@ -52,7 +70,7 @@ public function getSectorsPerSchool(Request $request, $epalId)
$i++; $i++;
} }
return $this->respondWithStatus( return $this->respondWithStatus(
$list $list
, Response::HTTP_OK); , Response::HTTP_OK);
...@@ -60,9 +78,9 @@ public function getSectorsPerSchool(Request $request, $epalId) ...@@ -60,9 +78,9 @@ public function getSectorsPerSchool(Request $request, $epalId)
else { else {
return $this->respondWithStatus([ return $this->respondWithStatus([
'message' => t("School not found!!!"), 'message' => t("School not found!!!"),
], Response::HTTP_FORBIDDEN); ], Response::HTTP_OK);
} }
} else { } else {
...@@ -71,18 +89,29 @@ public function getSectorsPerSchool(Request $request, $epalId) ...@@ -71,18 +89,29 @@ public function getSectorsPerSchool(Request $request, $epalId)
'message' => t("User not found!"), 'message' => t("User not found!"),
], Response::HTTP_FORBIDDEN); ], Response::HTTP_FORBIDDEN);
} }
} }
public function getSpecialPerSchool(Request $request, $epalId , $sectorId) public function getSpecialPerSchool(Request $request, $epalId , $sectorId)
{ {
$authToken = $request->headers->get('PHP_AUTH_USER'); $authToken = $request->headers->get('PHP_AUTH_USER');
$epalUsers = $this->entityTypeManager->getStorage('epal_users')->loadByProperties(array('authtoken' => $authToken)); $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken));
$epalUser = reset($epalUsers); $user = reset($users);
if ($epalUser) { if ($user) {
$userid = $epalUser -> user_id -> entity -> id(); // $schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $user->mail->value, 'id' => intval($epalId)));
$schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $this->testSchoolId, 'id' => intval($epalId)));
$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;
}
$userid = $user -> id();
$epalIdNew = intval($epalId); $epalIdNew = intval($epalId);
$specialityPerSchool = $this->entityTypeManager->getStorage('eepal_specialties_in_epal')->loadByProperties(array('epal_id'=> $epalIdNew)); $specialityPerSchool = $this->entityTypeManager->getStorage('eepal_specialties_in_epal')->loadByProperties(array('epal_id'=> $epalIdNew));
$i = 0; $i = 0;
...@@ -95,15 +124,15 @@ public function getSpecialPerSchool(Request $request, $epalId , $sectorId) ...@@ -95,15 +124,15 @@ public function getSpecialPerSchool(Request $request, $epalId , $sectorId)
$specialityPerSector = $this->entityTypeManager->getStorage('eepal_specialty')->loadByProperties(array('id'=> $idSpecial,'sector_id' => $SectorIdNew )); $specialityPerSector = $this->entityTypeManager->getStorage('eepal_specialty')->loadByProperties(array('id'=> $idSpecial,'sector_id' => $SectorIdNew ));
$specialPerSec = reset($specialityPerSector); $specialPerSec = reset($specialityPerSector);
if ($specialPerSec) if ($specialPerSec)
{ $list[] = array( { $list[] = array(
'specialty_id' => $object -> specialty_id ->entity->get('name')->value , 'specialty_id' => $object -> specialty_id ->entity->get('name')->value ,
'id' => $object -> specialty_id -> entity -> id() ); 'id' => $object -> specialty_id -> entity -> id() );
$i++; $i++;
} }
} }
return $this->respondWithStatus( return $this->respondWithStatus(
$list $list
, Response::HTTP_OK); , Response::HTTP_OK);
...@@ -111,9 +140,9 @@ public function getSpecialPerSchool(Request $request, $epalId , $sectorId) ...@@ -111,9 +140,9 @@ public function getSpecialPerSchool(Request $request, $epalId , $sectorId)
else { else {
return $this->respondWithStatus([ return $this->respondWithStatus([
'message' => t("School not found!!!"), 'message' => t("School not found!!!"),
], Response::HTTP_FORBIDDEN); ], Response::HTTP_OK);
} }
} else { } else {
...@@ -122,43 +151,55 @@ public function getSpecialPerSchool(Request $request, $epalId , $sectorId) ...@@ -122,43 +151,55 @@ public function getSpecialPerSchool(Request $request, $epalId , $sectorId)
'message' => t("User not found!"), 'message' => t("User not found!"),
], Response::HTTP_FORBIDDEN); ], Response::HTTP_FORBIDDEN);
} }
} }
public function getStudentPerSchool(Request $request, $epalId , $selectId, $classId) public function getStudentPerSchool(Request $request, $epalId , $selectId, $classId)
{ {
$authToken = $request->headers->get('PHP_AUTH_USER'); $authToken = $request->headers->get('PHP_AUTH_USER');
$epalUsers = $this->entityTypeManager->getStorage('epal_users')->loadByProperties(array('authtoken' => $authToken)); $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken));
$epalUser = reset($epalUsers); $user = reset($users);
if ($epalUser) { if ($user) {
$userid = $epalUser -> user_id -> entity -> id(); // $schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $user->mail->value, 'id' => intval($epalId)));
$schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $this->testSchoolId, 'id' => intval($epalId)));
$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;
}
$userid = $user -> id();
$epalIdNew = intval($epalId); $epalIdNew = intval($epalId);
$selectIdNew = intval($selectId); $selectIdNew = intval($selectId);
if ($classId == 1) if ($classId == 1)
{ {
$selectIdNew = -1; $selectIdNew = -1;
$studentPerSchool = $this->entityTypeManager->getStorage('epal_student_class')->loadByProperties(array('epal_id'=> $epalIdNew, 'specialization_id' => $selectIdNew, 'currentclass' => $classId )); $studentPerSchool = $this->entityTypeManager->getStorage('epal_student_class')->loadByProperties(array('epal_id'=> $epalIdNew, 'specialization_id' => $selectIdNew, 'currentclass' => $classId ));
} }
else else
{ {
$studentPerSchool = $this->entityTypeManager->getStorage('epal_student_class')->loadByProperties(array('epal_id'=> $epalIdNew, 'specialization_id' => $selectIdNew, 'currentclass' => $classId )); $studentPerSchool = $this->entityTypeManager->getStorage('epal_student_class')->loadByProperties(array('epal_id'=> $epalIdNew, 'specialization_id' => $selectIdNew, 'currentclass' => $classId ));
} }
$i = 0; $i = 0;
if ($studentPerSchool) { if ($studentPerSchool) {
$list = array(); $list = array();
foreach ($studentPerSchool as $object) foreach ($studentPerSchool as $object)
{ {
$studentId = $object -> id() ; $studentId = $object -> id() ;
$epalStudents = $this->entityTypeManager->getStorage('epal_student')->loadByProperties(array('id'=> $studentId)); $epalStudents = $this->entityTypeManager->getStorage('epal_student')->loadByProperties(array('id'=> $studentId));
$epalStudent = reset($epalStudents); $epalStudent = reset($epalStudents);
$i = 0; $i = 0;
if ($epalStudents) { if ($epalStudents) {
$list[] = array( $list[] = array(
'id' => $epalStudent -> id(), 'id' => $epalStudent -> id(),
'name' => $epalStudent -> name ->value, 'name' => $epalStudent -> name ->value,
...@@ -180,19 +221,19 @@ public function getStudentPerSchool(Request $request, $epalId , $selectId, $clas ...@@ -180,19 +221,19 @@ public function getStudentPerSchool(Request $request, $epalId , $selectId, $clas
else { else {
return $this->respondWithStatus([ return $this->respondWithStatus([
'message' => t("No students found!!!"), 'message' => t("No students found!!!"),
], Response::HTTP_FORBIDDEN); ], Response::HTTP_OK);
} }
}
}
else { else {
return $this->respondWithStatus([ return $this->respondWithStatus([
'message' => t("User not found!"), 'message' => t("User not found!"),
], Response::HTTP_FORBIDDEN); ], Response::HTTP_FORBIDDEN);
} }
} }
...@@ -201,15 +242,27 @@ public function getStudentPerSchool(Request $request, $epalId , $selectId, $clas ...@@ -201,15 +242,27 @@ public function getStudentPerSchool(Request $request, $epalId , $selectId, $clas
{ {
if (!$request->isMethod('POST')) { if (!$request->isMethod('POST')) {
return $this->respondWithStatus([ return $this->respondWithStatus([
"message" => t("Method Not Allowed") "message" => t("Method Not Allowed")
], Response::HTTP_METHOD_NOT_ALLOWED); ], Response::HTTP_METHOD_NOT_ALLOWED);
} }
$authToken = $request->headers->get('PHP_AUTH_USER'); $authToken = $request->headers->get('PHP_AUTH_USER');
$epalUsers = $this->entityTypeManager->getStorage('epal_users')->loadByProperties(array('authtoken' => $authToken)); $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken));
$epalUser = reset($epalUsers); $user = reset($users);
if ($epalUser) { if ($user) {
// $schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $user->mail->value, 'id' => intval($epalId)));
$schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $this->testSchoolId));
$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;
}
$postData = null; $postData = null;
if ($content = $request->getContent()) if ($content = $request->getContent())
...@@ -218,14 +271,14 @@ public function getStudentPerSchool(Request $request, $epalId , $selectId, $clas ...@@ -218,14 +271,14 @@ public function getStudentPerSchool(Request $request, $epalId , $selectId, $clas
$arr = $postData->students; $arr = $postData->students;
foreach ($arr as $value) { foreach ($arr as $value) {
$valnew = intval($value); $valnew = intval($value);
$studentForConfirm = $this->entityTypeManager->getStorage('epal_student_class')->loadByProperties(array('id' => $valnew )); $studentForConfirm = $this->entityTypeManager->getStorage('epal_student_class')->loadByProperties(array('id' => $valnew ));
$studentConfirm = reset($studentForConfirm); $studentConfirm = reset($studentForConfirm);
if ($studentConfirm) { if ($studentConfirm) {
$studentConfirm->set('directorconfirm', true); $studentConfirm->set('directorconfirm', true);
$studentConfirm->save(); $studentConfirm->save();
} }
} }
return $this->respondWithStatus([ return $this->respondWithStatus([
'message' => t("saved"), 'message' => t("saved"),
], Response::HTTP_OK); ], Response::HTTP_OK);
...@@ -253,15 +306,26 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid ...@@ -253,15 +306,26 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid
{ {
if (!$request->isMethod('POST')) { if (!$request->isMethod('POST')) {
return $this->respondWithStatus([ return $this->respondWithStatus([
"message" => t("Method Not Allowed") "message" => t("Method Not Allowed")
], Response::HTTP_METHOD_NOT_ALLOWED); ], Response::HTTP_METHOD_NOT_ALLOWED);
} }
$authToken = $request->headers->get('PHP_AUTH_USER'); $authToken = $request->headers->get('PHP_AUTH_USER');
$epalUsers = $this->entityTypeManager->getStorage('epal_users')->loadByProperties(array('authtoken' => $authToken)); $users = $this->entityTypeManager->getStorage('user')->loadByProperties(array('name' => $authToken));
$epalUser = reset($epalUsers); $user = reset($users);
if ($epalUser) { if ($user) {
// $schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $user->mail->value, 'id' => intval($epalId)));
$schools = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('registry_no' => $this->testSchoolId));
$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;
}
$postData = null; $postData = null;
if ($content = $request->getContent()) if ($content = $request->getContent())
...@@ -275,7 +339,7 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid ...@@ -275,7 +339,7 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid
if ($classcapacity) { if ($classcapacity) {
$classcapacity->set('capacity_class_a', $cap); $classcapacity->set('capacity_class_a', $cap);
$classcapacity->save(); $classcapacity->save();
} }
} }
...@@ -286,7 +350,7 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid ...@@ -286,7 +350,7 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid
if ($classcapacity) { if ($classcapacity) {
$classcapacity->set('capacity_class_sector', $cap); $classcapacity->set('capacity_class_sector', $cap);
$classcapacity->save(); $classcapacity->save();
} }
} }
...@@ -297,7 +361,7 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid ...@@ -297,7 +361,7 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid
if ($classcapacity) { if ($classcapacity) {
$classcapacity->set('capacity_class_specialty', $cap); $classcapacity->set('capacity_class_specialty', $cap);
$classcapacity->save(); $classcapacity->save();
} }
} }
...@@ -325,12 +389,6 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid ...@@ -325,12 +389,6 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid
private function respondWithStatus($arr, $s) { private function respondWithStatus($arr, $s) {
$res = new JsonResponse($arr); $res = new JsonResponse($arr);
$res->setStatusCode($s); $res->setStatusCode($s);
...@@ -342,8 +400,3 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid ...@@ -342,8 +400,3 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit,$schoolid
} }
...@@ -192,7 +192,27 @@ class EpalCriteria extends ContentEntityBase implements EpalCriteriaInterface { ...@@ -192,7 +192,27 @@ class EpalCriteria extends ContentEntityBase implements EpalCriteriaInterface {
)) ))
->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE); ->setDisplayConfigurable('view', TRUE);
$fields['category'] = BaseFieldDefinition::create('string')
->setLabel(t('Κατηγορα'))
->setDescription(t('Κατηγορία κριτηρίου.'))
->setSettings(array(
'max_length' => 100,
'text_processing' => 0,
))
->setRequired(true)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => -4,
))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
$fields['value_limit'] = BaseFieldDefinition::create('float') $fields['value_limit'] = BaseFieldDefinition::create('float')
->setLabel(t('Αριθμητικό όριο')) ->setLabel(t('Αριθμητικό όριο'))
->setDescription(t('Αριθμητικό όριο.')) ->setDescription(t('Αριθμητικό όριο.'))
...@@ -210,7 +230,7 @@ class EpalCriteria extends ContentEntityBase implements EpalCriteriaInterface { ...@@ -210,7 +230,7 @@ class EpalCriteria extends ContentEntityBase implements EpalCriteriaInterface {
)) ))
->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE); ->setDisplayConfigurable('view', TRUE);
$fields['moria'] = BaseFieldDefinition::create('float') $fields['moria'] = BaseFieldDefinition::create('float')
->setLabel(t('Μόρια')) ->setLabel(t('Μόρια'))
->setDescription(t('Μόρια.')) ->setDescription(t('Μόρια.'))
...@@ -228,7 +248,7 @@ class EpalCriteria extends ContentEntityBase implements EpalCriteriaInterface { ...@@ -228,7 +248,7 @@ class EpalCriteria extends ContentEntityBase implements EpalCriteriaInterface {
)) ))
->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE); ->setDisplayConfigurable('view', TRUE);
$fields['mutual_disabled_id'] = BaseFieldDefinition::create('integer') $fields['mutual_disabled_id'] = BaseFieldDefinition::create('integer')
->setLabel(t('Id αμοιβαία αποκλειόμενου κριτηρίου')) ->setLabel(t('Id αμοιβαία αποκλειόμενου κριτηρίου'))
->setDescription(t('Id αμοιβαία αποκλειόμενου κριτηρίου.')) ->setDescription(t('Id αμοιβαία αποκλειόμενου κριτηρίου.'))
......
...@@ -28,7 +28,7 @@ import { ...@@ -28,7 +28,7 @@ import {
<option value="2" >Β' Λυκείου</option> <option value="2" >Β' Λυκείου</option>
<option value="3" >Γ' Λυκείου</option> <option value="3" >Γ' Λυκείου</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<select #tmop class="form-control" *ngIf="(selectionBClass | async)" (change)="checkbclass(tmop,txoption)" formControlName="tomeas"> <select #tmop class="form-control" *ngIf="(selectionBClass | async)" (change)="checkbclass(tmop,txoption)" formControlName="tomeas">
...@@ -54,10 +54,10 @@ import { ...@@ -54,10 +54,10 @@ import {
Όνομα Μητέρας: {{StudentDetails$.motherfirstname}}<br> Όνομα Μητέρας: {{StudentDetails$.motherfirstname}}<br>
Επώνυμο Μητέρας:{{StudentDetails$.mothersurname}}<br> Επώνυμο Μητέρας:{{StudentDetails$.mothersurname}}<br>
Ημερομηνία Γέννησης: {{StudentDetails$.birthdate}}<br> Ημερομηνία Γέννησης: {{StudentDetails$.birthdate}}<br>
<strong>Επιβεβαίωση Εγγραφής: </strong> <strong>Επιβεβαίωση Εγγραφής: </strong>
<input #cb class="pull-right" type="checkbox" name="{{ StudentDetails$.id }}" (change)="updateCheckedOptions(StudentDetails$.id, $event)" > <input #cb class="pull-right" type="checkbox" name="{{ StudentDetails$.id }}" (change)="updateCheckedOptions(StudentDetails$.id, $event)" >
</div> </div>
</div> </div>
<button type="button" class="btn-primary btn-sm pull-right" (click)="confirmStudent()"> <button type="button" class="btn-primary btn-sm pull-right" (click)="confirmStudent()">
...@@ -84,7 +84,7 @@ import { ...@@ -84,7 +84,7 @@ import {
constructor( private fb: FormBuilder, constructor( private fb: FormBuilder,
private _hds: HelperDataService, private _hds: HelperDataService,
private activatedRoute: ActivatedRoute, private activatedRoute: ActivatedRoute,
private router: Router ) private router: Router )
{ {
...@@ -99,7 +99,7 @@ import { ...@@ -99,7 +99,7 @@ import {
taxi: ['', []], taxi: ['', []],
specialit: ['', []], specialit: ['', []],
}); });