Fehlerkorrekturen und Erweiterungen
This commit is contained in:
1 parent
080c5b22ef
commit
3fd8b0f9d4
58 files changed
+95
-57
No files matched your search
@@ -7,10 +7,12 @@ import 'package:stadtbote/content_views/utils/content_view_widget.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:badges/badges.dart' as badges;
|
||||
import 'package:stadtbote/messages/pop_content_view_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
|
||||
import 'package:stadtbote/network_messages/accept_job_message.dart';
|
||||
import 'package:stadtbote/network_messages/fin_task_message.dart';
|
||||
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
||||
import 'package:stadtbote/tools/messages/publish_payload_message.dart';
|
||||
import 'package:stadtbote/tools/messages/refresh_badges_message.dart';
|
||||
import 'package:stadtbote/tools/messages/remove_job_message.dart';
|
||||
import 'package:stadtbote/tools/messages/remove_state_0_job_from_map.dart';
|
||||
|
||||
import '../main.dart';
|
||||
@@ -32,15 +34,15 @@ class AssignedJobsPage extends ContentViewWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin {
|
||||
class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin, ConsumerMixin {
|
||||
late bool _initCompleted = false;
|
||||
|
||||
List<Widget> _entries = [];
|
||||
List<Job> _jobs = [];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
Future.delayed(const Duration(seconds: 0), () async {
|
||||
_entries = await _createListEntries();
|
||||
_jobs = await _fetchState0Jobs();
|
||||
|
||||
_initMessages();
|
||||
|
||||
@@ -58,6 +60,8 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin
|
||||
return Util.getWaitWidget(context);
|
||||
}
|
||||
|
||||
var widgets = _createWidgets();
|
||||
|
||||
return Container(
|
||||
height: 100,
|
||||
decoration: BoxDecoration(
|
||||
@@ -68,16 +72,22 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
child: SingleChildScrollView(child: Column(children: _entries)),
|
||||
child: SingleChildScrollView(child: Column(children: widgets)),
|
||||
);
|
||||
}
|
||||
|
||||
Future<List<Widget>> _createListEntries() async {
|
||||
List<Widget> entries = [];
|
||||
Future<List<Job>> _fetchState0Jobs() async {
|
||||
return await MyApp.isarInstance.jobs.filter().stateEqualTo(Constants.stateAssigned).findAll();
|
||||
}
|
||||
|
||||
var jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(Constants.stateAssigned).findAll();
|
||||
for (var job in jobs) {
|
||||
entries.add(ExpandableNotifier(
|
||||
List<Widget> _createWidgets() {
|
||||
List<Widget> widgets = [];
|
||||
|
||||
for (var job in _jobs) {
|
||||
var expandableController = ExpandableController();
|
||||
expandableController.expanded = true;
|
||||
|
||||
widgets.add(ExpandableNotifier(
|
||||
child: ListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||
title: Container(
|
||||
@@ -123,6 +133,7 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin
|
||||
scrollOnExpand: true,
|
||||
scrollOnCollapse: false,
|
||||
child: ExpandablePanel(
|
||||
controller: expandableController,
|
||||
theme: const ExpandableThemeData(
|
||||
headerAlignment: ExpandablePanelHeaderAlignment.center,
|
||||
tapBodyToCollapse: true,
|
||||
@@ -156,11 +167,35 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin
|
||||
const SizedBox(height: 20),
|
||||
Row(children: [
|
||||
Expanded(
|
||||
child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren', () => {_sendAnswer(job, !job.global ? 2 : 3)}),
|
||||
child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren', () {
|
||||
job.sendMessage(
|
||||
routingKey: Constants.messageTopicRemoveJob,
|
||||
payload: RemoveJobMessage(id: job.id),
|
||||
);
|
||||
|
||||
_sendAnswer(job, !job.global ? 2 : 3);
|
||||
|
||||
_jobs.removeWhere((databaseJob) => databaseJob.id == job.id);
|
||||
|
||||
setState(() {});
|
||||
}),
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1)}),
|
||||
child: getDefaultButton('Annehmen', () {
|
||||
job.sendMessage(
|
||||
routingKey: Constants.messageTopicRemoveJob,
|
||||
payload: RemoveJobMessage(id: job.id),
|
||||
);
|
||||
|
||||
_sendAnswer(job, 1);
|
||||
|
||||
_jobs.removeWhere((databaseJob) => databaseJob.id == job.id);
|
||||
|
||||
print("test:" + _jobs.length.toString());
|
||||
|
||||
setState(() {});
|
||||
}),
|
||||
)
|
||||
])
|
||||
],
|
||||
@@ -172,7 +207,7 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin
|
||||
));
|
||||
}
|
||||
|
||||
return entries;
|
||||
return widgets;
|
||||
}
|
||||
|
||||
_sendAnswer(Job job, int item) async {
|
||||
@@ -203,13 +238,23 @@ class _AssignedJobsPageState extends State<AssignedJobsPage> with ProducerMixin
|
||||
routingKey: Constants.messageTopicUpdateBadges,
|
||||
payload: RefreshBadgesMessage(),
|
||||
);
|
||||
|
||||
_entries = await _createListEntries();
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
void _initMessages() {}
|
||||
void _initMessages() {
|
||||
subscribe(
|
||||
queueId: Constants.messageTopicJobReceived,
|
||||
callback: (message) {
|
||||
var job = (message.payload as JobReceivedMessage).job;
|
||||
|
||||
if (job.state == Constants.stateAssigned) {
|
||||
_jobs.add(job);
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _HeaderWidget extends StatefulWidget {
|
||||
@@ -247,13 +292,10 @@ class _HeaderWidgetState extends State<_HeaderWidget> with ProducerMixin {
|
||||
child: FittedBox(
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPopContentView,
|
||||
payload: PopContentViewMessage(count: 1),
|
||||
);
|
||||
|
||||
//await MessageService().publish<PopContentViewMessage>(Constants.messageTopicPopContentView, arguments: PopContentViewMessage(count: 1));
|
||||
},
|
||||
child: const CircleAvatar(
|
||||
radius: 10,
|
||||
@@ -276,13 +318,10 @@ class _HeaderWidgetState extends State<_HeaderWidget> with ProducerMixin {
|
||||
child: FittedBox(
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
// TODO MESSAGING
|
||||
sendMessage(
|
||||
routingKey: Constants.messageTopicPopContentView,
|
||||
payload: PopContentViewMessage(count: 1),
|
||||
);
|
||||
|
||||
//await MessageService().publish<PopContentViewMessage>(Constants.messageTopicPopContentView, arguments: PopContentViewMessage(count: 1));
|
||||
},
|
||||
child: const CircleAvatar(
|
||||
backgroundColor: Constants.colorPrimary,
|
||||
|
||||
Reference in new issue
Block a user