Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wer chunnt #27

Merged
merged 6 commits into from
Dec 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 40 additions & 34 deletions lib/Pages/Teleblitz/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
bool chunnt = false;
var messagingGroups;

void submit(String anabmelden, String groupnr, String eventID, String uid) {
void submit(String anabmelden, String groupnr, String eventID, String uid, {String name}) {
String anmeldung;

anmeldeDaten = {
Expand All @@ -77,12 +77,15 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
content: new Text(anmeldung),
));
});
if(name == null){
name = moreafire.getDisplayName;
}
if (_formType != FormType.eltern) {
moreafire.childAnmelden(
eventID, widget.auth.getUserID, widget.auth.getUserID, anabmelden);
moreafire.childAnmelden(eventID, widget.auth.getUserID,
widget.auth.getUserID, anabmelden, name);
} else {
moreafire.parentAnmeldet(
eventID, widget.auth.getUserID, widget.auth.getUserID, anabmelden);
moreafire.parentAnmeldet(eventID, widget.auth.getUserID,
widget.auth.getUserID, anabmelden, name);
}
}

Expand Down Expand Up @@ -203,6 +206,7 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
@override
void dispose() {
moreaLoading.dispose();
teleblitz.dispose();
super.dispose();
}

Expand Down Expand Up @@ -284,14 +288,6 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
color: MoreaColors.orange,
),
),
//TODO eventID übertragen
new ListTile(
title: new Text('Wer chunt?'),
trailing: new Icon(Icons.people),
onTap: () => Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) => new WerChunt(
firestore: widget.firestore,
)))),
new ListTile(
title: new Text('Personen'),
trailing: new Icon(Icons.people),
Expand All @@ -300,11 +296,10 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
new PersonenVerzeichnisState()))),
new Divider(),
new ListTile(
title: new Text("Über dieses App"),
trailing: new Icon(Icons.info),
onTap:() => Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) =>
new AboutThisApp()))),
title: new Text("Über dieses App"),
trailing: new Icon(Icons.info),
onTap: () => Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) => new AboutThisApp()))),
new Divider(),
new ListTile(
title: new Text('Logout'),
Expand All @@ -318,8 +313,7 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
new UserAccountsDrawerHeader(
accountName: new Text(moreafire.getDisplayName),
accountEmail: new Text(widget.auth.getUserEmail),
decoration: new BoxDecoration(
color: MoreaColors.orange),
decoration: new BoxDecoration(color: MoreaColors.orange),
),
ListTile(
title: new Text('Eltern hinzufügen'),
Expand All @@ -343,8 +337,7 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
new UserAccountsDrawerHeader(
accountName: Text(moreafire.getDisplayName),
accountEmail: Text(widget.auth.getUserEmail),
decoration: new BoxDecoration(
color: MoreaColors.orange),
decoration: new BoxDecoration(color: MoreaColors.orange),
),
new ListTile(
title: new Text('Kinder hinzufügen'),
Expand All @@ -356,11 +349,10 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
)))),
new Divider(),
new ListTile(
title: new Text("Über dieses App"),
trailing: new Icon(Icons.info),
onTap:() => Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) =>
new AboutThisApp()))),
title: new Text("Über dieses App"),
trailing: new Icon(Icons.info),
onTap: () => Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) => new AboutThisApp()))),
new Divider(),
new ListTile(
title: new Text('Logout'),
Expand All @@ -376,7 +368,8 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
List<Widget> anmeldebuttons = new List();
moreafire.getChildMap[groupID].forEach((String vorname, uid) {
anmeldebuttons.add(anmeldebutton(
groupID, eventID, uid, "$vorname anmelden", "$vorname abmelden"));
groupID, eventID, uid, "$vorname anmelden", "$vorname abmelden",
name: vorname));
});
return Column(children: anmeldebuttons);
}
Expand All @@ -387,7 +380,8 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
}

Widget anmeldebutton(
String groupID, String eventID, String uid, String anmelden, abmelden) {
String groupID, String eventID, String uid, String anmelden, abmelden,
{String name}) {
return Container(
padding: EdgeInsets.only(left: 20, right: 20, bottom: 20),
child: Row(
Expand All @@ -397,18 +391,30 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
child: Container(
child: new RaisedButton(
child: new Text(abmelden, style: new TextStyle(fontSize: 20)),
onPressed: () =>
submit(eventMapAnmeldeStatusNegativ, groupID, eventID, uid),
onPressed: () {
if (name == null) {
submit(eventMapAnmeldeStatusNegativ, moreafire.getGroupID, eventID, uid);
} else {
submit(eventMapAnmeldeStatusNegativ, moreafire.getGroupID, eventID, uid,
name: name);
}
},
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(30.0)),
),
)),
Expanded(
child: Container(
child: new RaisedButton(
child: new Text(abmelden, style: new TextStyle(fontSize: 20)),
onPressed: () => submit(eventMapAnmeldeStatusPositiv,
moreafire.getGroupID, eventID, uid),
child: new Text(anmelden, style: new TextStyle(fontSize: 20)),
onPressed: () {
if (name == null) {
submit(eventMapAnmeldeStatusPositiv, moreafire.getGroupID, eventID, uid);
} else {
submit(eventMapAnmeldeStatusPositiv, moreafire.getGroupID, eventID, uid,
name: name);
}
},
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(30.0)),
color: Color(0xff7a62ff),
Expand Down
119 changes: 30 additions & 89 deletions lib/Pages/Teleblitz/werchunt.dart
Original file line number Diff line number Diff line change
@@ -1,100 +1,41 @@
import 'dart:async';

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:morea/Widgets/standart/info.dart';
import 'package:morea/services/Teleblitz/teleblitzAnmeldungen.dart';

class WerChunt extends StatefulWidget {
WerChunt({ this.onSigedOut, this.firestore, this.eventID});
final String eventID;
final VoidCallback onSigedOut;
final Firestore firestore;
import 'package:morea/morea_strings.dart';
import 'package:morea/services/morea_firestore.dart';

class WerChunnt {
final StreamController _controller = StreamController<List<List<String>>>();

@override
State<StatefulWidget> createState() => _WerChuntState();
}
final MoreaFirebase moreaFire;
final String eventID;

class _WerChuntState extends State<WerChunt> {
TeleblitzAnmeldungen teleblitzAnmeldungen;


@override
void initState() {
teleblitzAnmeldungen = new TeleblitzAnmeldungen(widget.firestore, widget.eventID);
super.initState();
WerChunnt(this.moreaFire, this.eventID){
initChunnt();
}

@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
title: Text('Wer chunt?'),
backgroundColor: Color(0xff7a62ff),
bottom: TabBar(
tabs: <Widget>[
Tab(
text: 'Chunt',
),
Tab(
text: 'Chunt nöd',
)
],
),
),
body: TabBarView(
children: <Widget>[
Container(
child: chunt(),
height: 50,
),

Container(
child: chuntnoed(),
height: 50,
),
],
),
),
);
void dispose() {
print("Ending WerchunntStream");
this._controller.close();
}

Widget chunt(){
return StreamBuilder(
stream: teleblitzAnmeldungen.getAnmeldungen,
builder: (context, AsyncSnapshot<dynamic> aSAngemolden){
if(!aSAngemolden.hasData) return simpleMoreaLoadingIndicator();
if(aSAngemolden.data.length==0) return Center(child:Text('Niemand hat sich angemolden', style: TextStyle(fontSize: 20),));
return ListView.builder(
itemCount: aSAngemolden.data.length,
itemBuilder: (context, int index){
return ListTile(
title: new Text(aSAngemolden.data[index].toString()),
);
}
);
}
);
}
Widget chuntnoed(){
return StreamBuilder(
stream: teleblitzAnmeldungen.getAbmeldungen,
builder: (context, AsyncSnapshot<dynamic> asAbgemolden){
if(!asAbgemolden.hasData) return simpleMoreaLoadingIndicator();
if(asAbgemolden.data.length==0) return Center(child:Text('Niemand hat sich abgemolden', style: TextStyle(fontSize: 20),));
return ListView.builder(
itemCount: asAbgemolden.data.length,
itemBuilder: (context, int index){
return ListTile(
title: new Text(asAbgemolden.data[index].toString()),
);
}
);

Stream<List<List<String>>> get stream => _controller.stream.asBroadcastStream();

void initChunnt() {
moreaFire.streamCollectionWerChunnt(eventID).listen((data) {
List<String> chunnt = [];
List<String> chunntNoed = [];
List<DocumentSnapshot> documents = data.documents;
for (DocumentSnapshot document in documents) {
if (document.data['AnmeldeStatus'] == eventMapAnmeldeStatusPositiv) {
print(document.data);
chunnt.add(document.data['Name']);
} else {
print(document.data);
chunntNoed.add(document.data['Name']);
}
}
);
_controller.sink.add([chunnt, chunntNoed]);
});
}


}
2 changes: 0 additions & 2 deletions lib/Widgets/home/leiter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ Widget leiterView(
Map navigationMap,
@required
Widget moreaLoading}) {
print('Subscribed Groups = ' + subscribedGroups.length.toString());
return DefaultTabController(
length: subscribedGroups.length + (groupID.isNotEmpty? 1 : 0),
child: Scaffold(
Expand Down Expand Up @@ -194,7 +193,6 @@ Widget getLayoutBuilderWidget(
.forEach((String eventID, tlbz) {
anzeige.add(tlbz);
});
print(anzeige.length);
return MoreaBackgroundContainer(
child: SingleChildScrollView(
child: Column(
Expand Down
Loading