Changed grad date to next iep date

This commit is contained in:
ivan-pelly
2026-03-11 19:48:16 -07:00
parent ec36d8842d
commit 7f91e2e557
25 changed files with 44 additions and 44 deletions
@@ -42,12 +42,12 @@
</div> -->
<div class="field">
<label for="expectedGrad">Expected Graduation</label>
<label for="nextIepDate">Next IEP Date</label>
<input
id="expectedGrad"
id="nextIepDate"
type="date"
[(ngModel)]="form.expectedGrad"
name="expectedGrad"
[(ngModel)]="form.nextIepDate"
name="nextIepDate"
/>
</div>
@@ -28,7 +28,7 @@ export class AddStudentModal {
identifier: '',
programYear: null,
enrollmentDate: null,
expectedGrad: null,
nextIepDate: null,
};
// ************************** Properties ***************************
@@ -17,8 +17,8 @@
<input id="identifier" class="field-input" type="text" [(ngModel)]="identifier" />
</div>
<div class="field">
<label class="field-label" for="expectedGrad">Expected Graduation</label>
<input id="expectedGrad" class="field-input" type="date" [(ngModel)]="expectedGradDate" />
<label class="field-label" for="nextIepDate">Next IEP Date</label>
<input id="nextIepDate" class="field-input" type="date" [(ngModel)]="nextIepDate" />
</div>
<div class="actions">
@@ -40,11 +40,11 @@ export class StudentCardFull implements OnDestroy {
// Form fields — always editable
protected identifier = '';
protected expectedGradDate = '';
protected nextIepDate = '';
// Snapshot of last-saved values for cancel
private savedIdentifier = '';
private savedExpectedGradDate = '';
private savedNextIepDate = '';
// ************************** Properties ***************************
@@ -53,7 +53,7 @@ export class StudentCardFull implements OnDestroy {
// *****************************************************************
hasChanges(): boolean {
return this.identifier !== this.savedIdentifier
|| this.expectedGradDate !== this.savedExpectedGradDate;
|| this.nextIepDate !== this.savedNextIepDate;
}
// ************************ Public Methods *************************
@@ -70,14 +70,14 @@ export class StudentCardFull implements OnDestroy {
const result = await this.studentService.updateStudent(this.studentId, {
identifier: this.identifier,
expectedGrad: this.expectedGradDate || null,
nextIepDate: this.nextIepDate || null,
});
this.saving.set(false);
if (result.success) {
this.savedIdentifier = this.identifier;
this.savedExpectedGradDate = this.expectedGradDate;
this.savedNextIepDate = this.nextIepDate;
this.showSuccessTemporarily('Changes saved.');
this.studentService.notifyDataChanged();
} else {
@@ -90,7 +90,7 @@ export class StudentCardFull implements OnDestroy {
// *****************************************************************
onCancel() {
this.identifier = this.savedIdentifier;
this.expectedGradDate = this.savedExpectedGradDate;
this.nextIepDate = this.savedNextIepDate;
this.errorMessage.set(null);
this.successMessage.set(null);
}
@@ -138,10 +138,10 @@ export class StudentCardFull implements OnDestroy {
if (result.success && result.payload) {
const s = result.payload;
this.identifier = s.identifier;
this.expectedGradDate = this.toDateInput(s.expectedGradDate);
this.nextIepDate = this.toDateInput(s.nextIepDate);
this.savedIdentifier = this.identifier;
this.savedExpectedGradDate = this.expectedGradDate;
this.savedNextIepDate = this.nextIepDate;
this.loaded.set(true);
} else {
this.errorMessage.set(result.message);
@@ -2,7 +2,7 @@
<h2 class="identifier">🎓 {{ student().identifier }}</h2>
<div class="meta">
<span class="last-entry">Grad Date: {{ student().expectedGradDate | date:'M/d/yy'}}</span>
<span class="last-entry">IEP Date: {{ student().nextIepDate | date:'M/d/yy'}}</span>
<span class="last-entry">
@if (student().lastEntryDate) {
Last entry: {{ student().lastEntryDate | date:'M/d/yy' }}
@@ -1,6 +1,6 @@
<div class="card" (click)="onCardClick()">
<h2 class="identifier">{{ student().identifier }}</h2>
<span class="age-badge">Grad Date: {{ student().expectedGradDate | date:'M/d/yy' }}</span>
<span class="age-badge">IEP Date: {{ student().nextIepDate | date:'M/d/yy' }}</span>
<div class="stats">
<span class="stat">{{ student().goalCount }} goals</span>
<span class="stat">{{ student().progressEventCount }} events</span>
@@ -2,5 +2,5 @@ export interface CreateStudentDto {
identifier: string;
programYear: number | null;
enrollmentDate: Date | null;
expectedGrad: Date | null;
nextIepDate: Date | null;
}
@@ -1,7 +1,7 @@
export interface StudentCardDto {
studentId: string;
identifier: string;
expectedGradDate: Date;
nextIepDate: Date;
lastEntryDate: Date | null;
goalCount: number;
progressEventCount: number;
@@ -71,7 +71,7 @@ export class DummyStudentService {
{
studentId: '1',
identifier: 'J.B',
expectedGradDate: new Date('2027-02-27'),
nextIepDate: new Date('2027-02-27'),
lastEntryDate: new Date('2026-02-21'),
goalCount: 3,
progressEventCount: 5,
@@ -79,7 +79,7 @@ export class DummyStudentService {
{
studentId: '2',
identifier: 'M.K',
expectedGradDate: new Date('2027-02-27'),
nextIepDate: new Date('2027-02-27'),
lastEntryDate: new Date('2026-02-25'),
goalCount: 4,
progressEventCount: 8,
@@ -87,7 +87,7 @@ export class DummyStudentService {
{
studentId: '3',
identifier: 'A.R',
expectedGradDate: new Date('2027-02-27'),
nextIepDate: new Date('2027-02-27'),
lastEntryDate: null,
goalCount: 2,
progressEventCount: 0,
@@ -154,7 +154,7 @@ export class StudentService {
// *****************************************************************
// Updates a student and returns the refreshed student data.
// *****************************************************************
async updateStudent(studentId: string, data: { identifier?: string; programYear?: number | null; enrollmentDate?: string | null; expectedGrad?: string | null }): Promise<ApiResult<StudentCardDto>> {
async updateStudent(studentId: string, data: { identifier?: string; programYear?: number | null; enrollmentDate?: string | null; nextIepDate?: string | null }): Promise<ApiResult<StudentCardDto>> {
try {
const result = await firstValueFrom(
this.http.put<ResponseResult<StudentCardDto>>(`${this.base}/api/Student/${studentId}`, data)