feat(reports): enhance compliance table tooltips, yearly comparison filtering, and horizontal scrolling
This commit is contained in:
1 parent
ae2cfe1495
commit
3da79ec92f
4 files changed
+598
-328
No files matched your search
@@ -314,12 +314,10 @@ exports.getYearlyComparison = (req, res) => {
|
|||||||
)
|
)
|
||||||
) sly ON s.id = sly.student_id
|
) sly ON s.id = sly.student_id
|
||||||
GROUP BY ay.id, ay.year_range
|
GROUP BY ay.id, ay.year_range
|
||||||
ORDER BY ay.id DESC
|
ORDER BY ay.year_range ASC
|
||||||
LIMIT 5
|
|
||||||
`;
|
`;
|
||||||
const data = db.prepare(query).all();
|
const data = db.prepare(query).all();
|
||||||
// Return oldest first for charting (left to right)
|
res.json(data);
|
||||||
res.json(data.reverse());
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).json({ message: 'Failed to fetch yearly comparison', error: error.message });
|
res.status(500).json({ message: 'Failed to fetch yearly comparison', error: error.message });
|
||||||
}
|
}
|
||||||
|
|||||||
+27
-16
@@ -387,18 +387,22 @@ Files backup/restore - mirror mode or zip -->
|
|||||||
<!-- # DOCUMENTS SCREEN
|
<!-- # DOCUMENTS SCREEN
|
||||||
- archive files hide in list -> move archive files into in more icon where the switch grid includes, show the "archives" when the student folder opened or if the student have archived files -> hide the archives files in the documents list, only show completed files -->
|
- archive files hide in list -> move archive files into in more icon where the switch grid includes, show the "archives" when the student folder opened or if the student have archived files -> hide the archives files in the documents list, only show completed files -->
|
||||||
|
|
||||||
|
<!-- # REPORTS SCREEN
|
||||||
|
- compliance tab -> "students per year" section -> year filter list all acad year -> deafult selected is 4 consecutive years (ex. 2022-2023, 2023-2024, 2024-2025, 2025-2026)
|
||||||
|
- horizontal scroll bar hint for android app
|
||||||
|
- filter by year default as active year
|
||||||
|
- compliance hover on missing count shows all missing documents separated jhs shs
|
||||||
|
- compliance tab -> "Student list" section -> remove missing requirements -> make the missing column hover just like on "STUDENT SCREEN", can see missing documents separate jhs and shs same from "STUDENT SCREEN" -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# DONT DO
|
# DONT DO
|
||||||
|
|
||||||
- recycle bin -> search history not delete history
|
- recycle bin -> search history not delete history
|
||||||
|
|
||||||
- reports screen -> compliance -> students per year -> year filter
|
|
||||||
- reports screen -> horizontal scroll bar hint
|
|
||||||
- report screen -> dynamic year filter default as active year
|
|
||||||
- reports screen -> compliance hover on missing count shows all missing documents separated jhs shs
|
|
||||||
|
|
||||||
|
|
||||||
|
- document screen -> upload document limit document type limit -> duplicate files
|
||||||
- user management -> expired the jwt of deactivated user
|
- user management -> expired the jwt of deactivated user
|
||||||
|
|
||||||
- dashboard school -> add missing students by document type kpi
|
- dashboard school -> add missing students by document type kpi
|
||||||
@@ -406,23 +410,30 @@ Files backup/restore - mirror mode or zip -->
|
|||||||
- dashboard screen -> user friendly logs/histories
|
- dashboard screen -> user friendly logs/histories
|
||||||
- dashboard screen -> assign section modal
|
- dashboard screen -> assign section modal
|
||||||
|
|
||||||
|
- student screen -> add new student screen -> remove N/A on suffix dropdown
|
||||||
|
|
||||||
- notification separate admin and teacher
|
- notification separate admin and teacher
|
||||||
|
|
||||||
- bug in bulk add student enrollment
|
- bug in bulk add student enrollment
|
||||||
|
|
||||||
# CHINE
|
Aug 28 2026:
|
||||||
- forget password sa admin side (email)
|
- missing kpi in dashboard
|
||||||
- search history dapat naalis
|
- grade level by teacher
|
||||||
- lrn should not be fixed
|
- report all export
|
||||||
- n/a add student in suffix part -> remove
|
|
||||||
- inactive academic year
|
|
||||||
- multiple selection of files in select document type
|
|
||||||
- how about when the pages needed to upload have two pages or more?
|
|
||||||
- archive still popping up even after archiving & overall number of docs are inaccurate in docs status
|
|
||||||
- overall number of docs are inaccurate in docs status
|
|
||||||
- table header on students directory
|
|
||||||
- accurate reports
|
|
||||||
|
|
||||||
|
Dashboard
|
||||||
|
Document breakdown- missing docs
|
||||||
|
those who didnt submit
|
||||||
|
What specific year level have complied or partially complied
|
||||||
|
Documents (no. of completed) over ilan ang docu
|
||||||
|
Orient ang client as extension proj of our sch
|
||||||
|
Graph depending sa no. of 4ps
|
||||||
|
|
||||||
|
features
|
||||||
|
- submit missing requirement
|
||||||
|
- specific yr level dashboard
|
||||||
|
- number of completed
|
||||||
|
- how many document
|
||||||
---
|
---
|
||||||
|
|
||||||
# TIS_RMS Server Manager (dont do)
|
# TIS_RMS Server Manager (dont do)
|
||||||
|
|||||||
@@ -12,9 +12,30 @@ final selectedAcademicYearIdProvider =
|
|||||||
NotifierProvider<SelectedYearNotifier, int?>(() => SelectedYearNotifier());
|
NotifierProvider<SelectedYearNotifier, int?>(() => SelectedYearNotifier());
|
||||||
|
|
||||||
class SelectedYearNotifier extends Notifier<int?> {
|
class SelectedYearNotifier extends Notifier<int?> {
|
||||||
|
bool _hasExplicitSelection = false;
|
||||||
|
bool get hasExplicitSelection => _hasExplicitSelection;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int? build() => null;
|
int? build() {
|
||||||
void select(int? id) => state = id;
|
_hasExplicitSelection = false;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
void select(int? id) {
|
||||||
|
_hasExplicitSelection = true;
|
||||||
|
state = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setDefaultIfUnset(int activeYearId) {
|
||||||
|
if (!_hasExplicitSelection && state == null) {
|
||||||
|
state = activeYearId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset() {
|
||||||
|
_hasExplicitSelection = false;
|
||||||
|
state = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Academic years list
|
// Academic years list
|
||||||
@@ -87,7 +108,7 @@ final missingDocsFilterExpandedProvider = NotifierProvider<_BoolNotifier, bool>(
|
|||||||
|
|
||||||
// ── Yearly Comparison Filters ─────────────────────────────────────────────────
|
// ── Yearly Comparison Filters ─────────────────────────────────────────────────
|
||||||
|
|
||||||
/// Selected years for yearly comparison (empty = all years)
|
/// Selected years for yearly comparison (empty = default 4 consecutive years)
|
||||||
final yearlyComparisonSelectedYearsProvider =
|
final yearlyComparisonSelectedYearsProvider =
|
||||||
NotifierProvider<SelectedYearsNotifier, Set<String>>(
|
NotifierProvider<SelectedYearsNotifier, Set<String>>(
|
||||||
() => SelectedYearsNotifier(),
|
() => SelectedYearsNotifier(),
|
||||||
@@ -107,6 +128,8 @@ class SelectedYearsNotifier extends Notifier<Set<String>> {
|
|||||||
state = current;
|
state = current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setYears(Set<String> years) => state = years;
|
||||||
|
|
||||||
void clear() => state = {};
|
void clear() => state = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user