Skip to content

Commit fc4ee1c

Browse files
committed
changes
1 parent 1cf0f5c commit fc4ee1c

File tree

17 files changed

+419
-149
lines changed

17 files changed

+419
-149
lines changed

lib/backend/exeat.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class ExeatProvider extends ChangeNotifier {
1616
"e.expected_return, e.date_returned from exeat e join registration r"
1717
" on e.std_id=r.std_id";
1818
if (student != null) query = "$query where e.std_id=${student.id}";
19+
query = "$query order by e.id";
1920
var res = await connection.mappedResultsQuery(query);
2021
List<Map<String, dynamic>> singleStudentExeat = [];
2122
for (final row in res) {

lib/backend/student.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ class StudentProvider extends ChangeNotifier {
197197
_students.add(StudentModel.fromMap(student));
198198
}
199199
notifyListeners();
200+
if (query != null) return _students;
200201
}
201202

202203
Future updateStudent({

lib/model/exeat.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ class ExeatModel {
5353
Map<String, dynamic> toMap() {
5454
return {
5555
'id': id,
56-
'name': name,
5756
'departure': departure,
57+
'name': name,
5858
'reason': reason,
5959
'destination': destination,
6060
'expected_return': expectedReturn,

lib/pages/exeat/view.dart

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import 'package:fluent_ui/fluent_ui.dart';
2+
import 'package:flutter/material.dart' as m;
3+
import 'package:house_management/backend/exeat.dart';
4+
import 'package:house_management/utils/format_date.dart';
5+
import 'package:provider/provider.dart';
6+
7+
import '../registration/filter.dart';
8+
9+
class ExeatPage extends StatefulWidget {
10+
const ExeatPage({Key? key}) : super(key: key);
11+
12+
@override
13+
State<ExeatPage> createState() => _ExeatPageState();
14+
}
15+
16+
class _ExeatPageState extends State<ExeatPage> {
17+
final ScrollController _horizontalAxis = ScrollController();
18+
final ScrollController _verticalAxis = ScrollController();
19+
20+
@override
21+
void initState() {
22+
super.initState();
23+
fetchExeats();
24+
}
25+
26+
fetchExeats() async {
27+
await Provider.of<ExeatProvider>(context, listen: false).fetchExeats();
28+
}
29+
30+
@override
31+
Widget build(BuildContext context) {
32+
return ScaffoldPage(
33+
header: const PageHeader(
34+
title: Center(
35+
child: Text('Exeats'),
36+
),
37+
),
38+
content: Row(
39+
crossAxisAlignment: CrossAxisAlignment.start,
40+
children: [
41+
const FilterWidget(),
42+
const SizedBox(
43+
width: 10,
44+
),
45+
Expanded(
46+
child: Consumer<ExeatProvider>(
47+
builder: (context, ep, child) {
48+
return SingleChildScrollView(
49+
controller: _verticalAxis,
50+
child: SingleChildScrollView(
51+
controller: _horizontalAxis,
52+
scrollDirection: Axis.horizontal,
53+
child: m.DataTable(
54+
columns: [
55+
'Date',
56+
'Name',
57+
'Reason',
58+
'Destination',
59+
'Expected return',
60+
'Date returned'
61+
]
62+
.map((e) => m.DataColumn(
63+
label: Text(
64+
e,
65+
overflow: TextOverflow.ellipsis,
66+
)))
67+
.toList(),
68+
rows: ep.exeats
69+
.map(
70+
(exeats) => m.DataRow(
71+
cells: exeats
72+
.toMap()
73+
.values
74+
.skip(1)
75+
.map(
76+
(exeat) => m.DataCell(
77+
SingleChildScrollView(
78+
controller: ScrollController(),
79+
child: Text(
80+
exeat == null
81+
? ''
82+
: exeat.runtimeType == DateTime
83+
? formatDate(exeat)
84+
: exeat,
85+
),
86+
),
87+
),
88+
)
89+
.toList(),
90+
),
91+
)
92+
.toList(),
93+
),
94+
),
95+
);
96+
},
97+
),
98+
),
99+
],
100+
),
101+
);
102+
}
103+
}

lib/pages/homepage/view.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import 'package:fluent_ui/fluent_ui.dart';
2+
import 'package:house_management/pages/exeat/view.dart';
23
import 'package:house_management/pages/logistics/view.dart';
34
import 'package:house_management/pages/registration/view.dart';
45

6+
import '../roll_call/view.dart';
7+
58
class Home extends StatefulWidget {
69
const Home({Key? key}) : super(key: key);
710

@@ -15,8 +18,8 @@ class _HomeState extends State<Home> {
1518
SizedBox(),
1619
RegistrationPage(),
1720
LogisticsPage(),
18-
SizedBox(),
19-
SizedBox(),
21+
ExeatPage(),
22+
RollCallPage(),
2023
SizedBox(),
2124
];
2225

lib/pages/logistics/view.dart

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import 'package:house_management/utils/format_date.dart';
55
import 'package:house_management/utils/to_title_case.dart';
66
import 'package:provider/provider.dart';
77

8+
import '../registration/filter.dart';
9+
810
class LogisticsPage extends StatefulWidget {
911
const LogisticsPage({Key? key}) : super(key: key);
1012

@@ -32,39 +34,56 @@ class _LogisticsPageState extends State<LogisticsPage> {
3234
child: Text('Logistics'),
3335
),
3436
),
35-
content: Consumer<LogisticsProvider>(builder: (context, lp, child) {
36-
return SingleChildScrollView(
37-
child: m.DataTable(
38-
columns: ['Date', 'Name', 'House', 'Items']
39-
.map(
40-
(e) => m.DataColumn(
41-
label: Text(e),
42-
),
43-
)
44-
.toList(),
45-
rows: lp.logistics
46-
.map(
47-
(row) => m.DataRow(
48-
cells: [
49-
formatDate(row.date),
50-
toTitle(row.name),
51-
row.house,
52-
row.items!.join(", ")
53-
]
37+
content: Row(
38+
crossAxisAlignment: CrossAxisAlignment.start,
39+
children: [
40+
const FilterWidget(),
41+
const SizedBox(
42+
width: 10,
43+
),
44+
Expanded(
45+
child: Consumer<LogisticsProvider>(builder: (context, lp, child) {
46+
return SingleChildScrollView(
47+
controller: ScrollController(),
48+
child: SingleChildScrollView(
49+
controller: ScrollController(),
50+
scrollDirection: Axis.horizontal,
51+
child: m.DataTable(
52+
columns: ['Date', 'Name', 'House', 'Items']
53+
.map(
54+
(e) => m.DataColumn(
55+
label: Text(e),
56+
),
57+
)
58+
.toList(),
59+
rows: lp.logistics
5460
.map(
55-
(e) => m.DataCell(
56-
SingleChildScrollView(
57-
child: Text(e),
58-
),
61+
(row) => m.DataRow(
62+
cells: [
63+
formatDate(row.date),
64+
toTitle(row.name),
65+
row.house,
66+
row.items!.join(", ")
67+
]
68+
.map(
69+
(e) => m.DataCell(
70+
SingleChildScrollView(
71+
controller: ScrollController(),
72+
child: Text(e),
73+
),
74+
),
75+
)
76+
.toList(),
5977
),
6078
)
6179
.toList(),
6280
),
63-
)
64-
.toList(),
81+
),
82+
);
83+
}),
6584
),
66-
);
67-
}),
85+
],
86+
),
6887
);
6988
}
7089
}

lib/pages/registration/details/profile.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,9 @@ class _ProfileRecordState extends State<ProfileRecord> {
103103
residence: formatName(toTitle(_residence.text.trim())),
104104
contact: _parentContact.text.trim(),
105105
dob: dob,
106-
status: _status,
106+
status: _status.isNotEmpty
107+
? _status
108+
: sp.selectedStudent.status,
107109
id: widget.student.id,
108110
);
109111
}

lib/pages/registration/filter.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@ class _FilterWidgetState extends State<FilterWidget> {
5353
});
5454
}
5555

56-
// void toggleShowFilter() {
57-
// setState(() {
58-
// showFilter = !showFilter;
59-
// });
60-
// }
61-
6256
toggles(String header, Map<String, dynamic> initValues) {
6357
return Column(
6458
crossAxisAlignment: CrossAxisAlignment.start,
@@ -147,7 +141,6 @@ class _FilterWidgetState extends State<FilterWidget> {
147141
void initState() {
148142
super.initState();
149143
addFromDB();
150-
print(byProgramme);
151144
}
152145

153146
@override

0 commit comments

Comments
 (0)