From 07821b707145728ae9b22c4dd728816ad3891074 Mon Sep 17 00:00:00 2001 From: YujithIsura Date: Sun, 21 Jan 2024 17:46:19 +0530 Subject: [PATCH] Small attendance dashboard change added --- .../dashboard/components/recent_files.dart | 6 +- .../components/weekly_attendance_graph.dart | 69 +++++++++++-------- .../screens/dashboard/dashboard_screen.dart | 65 ++++++++--------- 3 files changed, 78 insertions(+), 62 deletions(-) diff --git a/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/recent_files.dart b/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/recent_files.dart index 9a48a47f..a587ef8a 100644 --- a/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/recent_files.dart +++ b/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/recent_files.dart @@ -54,7 +54,7 @@ class _AttendanceMissedBySecurityState columns: [ DataColumn( label: Text( - "Digital ID", + "Student Name", style: TextStyle( fontSize: 13, fontWeight: FontWeight.w500, @@ -102,11 +102,11 @@ DataRow recentFileDataRow(ActivityAttendance fileInfo) { DataCell( Row( children: [ - Icon(Icons.usb_rounded, color: Colors.white, size: 20.0), + // Icon(Icons.verified_user, color: Colors.white, size: 20.0), Padding( padding: const EdgeInsets.symmetric(horizontal: defaultPadding), child: Text( - fileInfo.digital_id!, + fileInfo.preferred_name!, style: TextStyle( fontSize: 13, fontWeight: FontWeight.w500, diff --git a/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/weekly_attendance_graph.dart b/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/weekly_attendance_graph.dart index 78b27241..73468c5b 100644 --- a/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/weekly_attendance_graph.dart +++ b/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/components/weekly_attendance_graph.dart @@ -9,36 +9,51 @@ class LineChartWidget extends StatelessWidget { @override Widget build(BuildContext context) { - return AspectRatio( - aspectRatio: 2, - child: LineChart( - LineChartData( - lineBarsData: points.isNotEmpty - ? [ - LineChartBarData( - spots: points - .where((point) => point.x != null && point.y != null) - .map((point) => FlSpot(point.x!, point.y!)) - .toList(), - isCurved: false, - dotData: FlDotData( - show: true, - ), - ), - ] - : [], - borderData: FlBorderData( - border: const Border(bottom: BorderSide(), left: BorderSide()), + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Student Count", + style: TextStyle( + fontSize: 14, ), - gridData: FlGridData(show: false), - titlesData: FlTitlesData( - bottomTitles: AxisTitles(sideTitles: _bottomTitles), - leftTitles: AxisTitles(sideTitles: _leftTitles), - topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), - rightTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + ), + SizedBox(height: 10), + AspectRatio( + aspectRatio: 2, + child: LineChart( + LineChartData( + lineBarsData: points.isNotEmpty + ? [ + LineChartBarData( + spots: points + .where( + (point) => point.x != null && point.y != null) + .map((point) => FlSpot(point.x!, point.y!)) + .toList(), + isCurved: false, + dotData: FlDotData( + show: true, + ), + ), + ] + : [], + borderData: FlBorderData( + border: const Border(bottom: BorderSide(), left: BorderSide()), + ), + gridData: FlGridData(show: false), + titlesData: FlTitlesData( + bottomTitles: AxisTitles(sideTitles: _bottomTitles), + leftTitles: AxisTitles(sideTitles: _leftTitles), + topTitles: + AxisTitles(sideTitles: SideTitles(showTitles: false)), + rightTitles: + AxisTitles(sideTitles: SideTitles(showTitles: false)), + ), + ), ), ), - ), + ], ); } diff --git a/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/dashboard_screen.dart b/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/dashboard_screen.dart index 35644e98..a87a15d2 100644 --- a/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/dashboard_screen.dart +++ b/campus/frontend/lib/avinya/attendance/lib/screens/dashboard/dashboard_screen.dart @@ -286,8 +286,6 @@ class _AttendanceDashboardScreenState extends State { Widget build(BuildContext context) { final Size _size = MediaQuery.of(context).size; bool isMobile = MediaQuery.of(context).size.width < 600; - final dialogWidth = 510.0; - final offsetX = (_size.width - dialogWidth) / 2; return SafeArea( child: SingleChildScrollView( primary: false, @@ -312,6 +310,23 @@ class _AttendanceDashboardScreenState extends State { Row( mainAxisAlignment: MainAxisAlignment.end, children: [ + ElevatedButton( + onPressed: () => showDateRangePickerDialog( + context: context, + builder: datePickerBuilder, + offset: Offset(20, 155)), + style: ButtonStyle( + padding: MaterialStateProperty.all(EdgeInsets.all(16.0)), + textStyle: MaterialStateProperty.all( + const TextStyle(fontSize: 16), + ), + elevation: MaterialStateProperty.all(20), + backgroundColor: + MaterialStateProperty.all(Colors.greenAccent), + foregroundColor: MaterialStateProperty.all(Colors.black), + ), + child: Text(formattedStartDate + " - " + formattedEndDate), + ), Expanded( child: Container( margin: EdgeInsets.only(left: 8.0), @@ -397,23 +412,6 @@ class _AttendanceDashboardScreenState extends State { ]), ]), )), - ElevatedButton( - onPressed: () => showDateRangePickerDialog( - context: context, - builder: datePickerBuilder, - offset: Offset(offsetX, 170)), - style: ButtonStyle( - padding: MaterialStateProperty.all(EdgeInsets.all(16.0)), - textStyle: MaterialStateProperty.all( - const TextStyle(fontSize: 16), - ), - elevation: MaterialStateProperty.all(20), - backgroundColor: - MaterialStateProperty.all(Colors.greenAccent), - foregroundColor: MaterialStateProperty.all(Colors.black), - ), - child: Text(formattedStartDate + " - " + formattedEndDate), - ), ], ), if (isMobile) @@ -571,7 +569,7 @@ class _AttendanceDashboardScreenState extends State { onPressed: () => showDateRangePickerDialog( context: context, builder: datePickerBuilderMobile, - offset: Offset(10, 220)), + offset: Offset(5, 220)), style: ButtonStyle( padding: MaterialStateProperty.all(EdgeInsets.all(16.0)), @@ -596,7 +594,7 @@ class _AttendanceDashboardScreenState extends State { // Existing Column Column( children: [ - SizedBox(height: defaultPadding), + SizedBox(height: 10), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -632,10 +630,12 @@ class _AttendanceDashboardScreenState extends State { if (Responsive.isMobile(context)) SizedBox(height: defaultPadding), if (Responsive.isMobile(context)) - StorageDetails( - fetchedPieChartData: this._fetchedPieChartData, - totalStudentCount: this.totalStudentCount, - totalAttendance: this.totalAttendance), + if (this.totalStudentCount > 0) + StorageDetails( + fetchedPieChartData: + this._fetchedPieChartData, + totalStudentCount: this.totalStudentCount, + totalAttendance: this.totalAttendance), ], ), ), @@ -668,13 +668,14 @@ class _AttendanceDashboardScreenState extends State { if (!Responsive.isMobile(context)) SizedBox(width: defaultPadding), if (!Responsive.isMobile(context)) - Expanded( - flex: 2, - child: StorageDetails( - fetchedPieChartData: this._fetchedPieChartData, - totalStudentCount: this.totalStudentCount, - totalAttendance: this.totalAttendance), - ), + if (this.totalStudentCount > 0) + Expanded( + flex: 2, + child: StorageDetails( + fetchedPieChartData: this._fetchedPieChartData, + totalStudentCount: this.totalStudentCount, + totalAttendance: this.totalAttendance), + ), ], ) ],