Skip to content

Commit

Permalink
Timetable Admin: added an Edit Timetable by Class button to Course En…
Browse files Browse the repository at this point in the history
…rolment by Class
  • Loading branch information
SKuipers committed Feb 18, 2025
1 parent 119ef67 commit 2cb38a3
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ v29.0.00
Planner: added an attendance indicator to the Today's Lessons list for teachers
System Admin: adjusted action access for Column Rows import
System Admin: added new imports for Columns and Tie Days to Dates in timetable
Timetable Admin: added an Edit Timetable by Class button to Course Enrolment by Class
User Admin: improved the image uploader in Manage Users, detect invalid images


Expand Down
13 changes: 13 additions & 0 deletions modules/Timetable Admin/courseEnrolment_manage_class_edit.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
use Gibbon\Forms\Prefab\BulkActionForm;
use Gibbon\Domain\Timetable\CourseEnrolmentGateway;
use Gibbon\Domain\Timetable\CourseGateway;
use Gibbon\Domain\Timetable\TimetableGateway;

if (isActionAccessible($guid, $connection2, '/modules/Timetable Admin/courseEnrolment_manage_class_edit.php') == false) {
// Access denied
Expand Down Expand Up @@ -72,6 +73,18 @@
$page->navigator->addSearchResultsAction(Url::fromModuleRoute('Timetable Admin', 'courseEnrolment_manage.php')->withQueryParams($params));
}

$timetables = $container->get(TimetableGateway::class)->selectTimetablesByClass($gibbonCourseClassID)->fetchAll();
if (isActionAccessible($guid, $connection2, '/modules/Timetable Admin/tt_edit_byClass.php') && count($timetables) == 1) {
$gibbonTTID = $timetables[0]['gibbonTTID'];
$page->navigator->addHeaderAction('edit', __('Edit Timetable by Class'))
->setURL('/modules/Timetable Admin/tt_edit_byClass.php')
->addParam('gibbonSchoolYearID', $gibbonSchoolYearID)
->addParam('gibbonTTID', $gibbonTTID)
->addParam('gibbonCourseID', $gibbonCourseID)
->addParam('gibbonCourseClassID', $gibbonCourseClassID)
->displayLabel();
}

echo '<h2>';
echo __('Add Participants');
echo '</h2>';
Expand Down
12 changes: 12 additions & 0 deletions src/Domain/Timetable/TimetableGateway.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,18 @@ public function selectClassesByTimetable($gibbonTTID)
return $this->db()->select($sql, $data);
}

public function selectTimetablesByClass($gibbonCourseClassID,)
{
$data = ['gibbonCourseClassID' => $gibbonCourseClassID];
$sql = "SELECT DISTINCT gibbonTTDay.gibbonTTID
FROM gibbonTTDayRowClass
JOIN gibbonTTDay ON (gibbonTTDay.gibbonTTDayID=gibbonTTDayRowClass.gibbonTTDayID)
WHERE gibbonTTDayRowClass.gibbonCourseClassID=:gibbonCourseClassID
GROUP BY gibbonTTDay.gibbonTTID";

return $this->db()->select($sql, $data);
}

public function getNonTimetabledYearGroups($gibbonSchoolYearID, $gibbonTTID = null)
{
$data = array('gibbonSchoolYearID' => $gibbonSchoolYearID, 'gibbonTTID' => $gibbonTTID);
Expand Down

0 comments on commit 2cb38a3

Please sign in to comment.