Skip to content

Commit

Permalink
Event query (#51)
Browse files Browse the repository at this point in the history
* Firebase Query for Team Screen

* Model Code Fix

* Event Screen Firebase Query

* Code Updated

* Removed Commented Code

* Minor Changes
  • Loading branch information
vidita-bit committed Oct 22, 2021
1 parent 2f8247a commit d3e6586
Show file tree
Hide file tree
Showing 9 changed files with 167 additions and 131 deletions.
51 changes: 0 additions & 51 deletions lib/models/event_details.dart

This file was deleted.

70 changes: 41 additions & 29 deletions lib/models/events.dart
Original file line number Diff line number Diff line change
@@ -1,36 +1,48 @@
class EventsImagesModel {
String image;
String title;
String subTitle;
String about;
class EventsModel {
String? image;
String? title;
String? subTitle;
String? about;
String? startDate;
String? endDate;
List? winners;
List? organizers;
List? sponsors;

EventsImagesModel({
EventsModel({
required this.image,
required this.title,
required this.subTitle,
required this.about,
required this.winners,
required this.organizers,
required this.sponsors,
required this.startDate,
required this.endDate,
});
}
Map toMap(EventsModel event) {
Map<String, dynamic> teamMap = Map<String, dynamic>();
teamMap['title'] = event.title;
teamMap['subtitle'] = event.subTitle;
teamMap['about'] = event.about;
teamMap['image'] = event.image;
teamMap['winners'] = event.winners;
teamMap['organizers'] = event.organizers;
teamMap['sponsors'] = event.sponsors;
teamMap['startDate'] = event.startDate;
teamMap['endDate'] = event.endDate;
return teamMap;
}

const String staticAbout =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ";
List<EventsImagesModel> eventsImages = [
EventsImagesModel(
image: "hackathon.png",
title: "AMU Battlegrounds",
subTitle: "Global Hackathon",
about: staticAbout,
),
EventsImagesModel(
image: "hacktober.png",
title: "Hacktoberfest 2021",
subTitle: "One contribution at a time",
about: staticAbout,
),
EventsImagesModel(
image: "opensource.png",
title: "Introduction to Open Source",
subTitle: "How to make your first contribution?",
about: staticAbout,
),
];
EventsModel.fromMap(doc) {
title = doc['title'];
subTitle = doc['subtitle'];
about = doc['about'];
image = doc['image'];
winners = doc['winners'];
organizers = doc['organizers'];
sponsors = doc['sponsors'];
startDate = doc['startDate'];
endDate = doc['endDate'];
}
}
43 changes: 28 additions & 15 deletions lib/screens/event_details_screen.dart
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
import 'package:flutter/material.dart';
import 'package:mlsa_amu/models/event_details.dart';
import 'package:mlsa_amu/models/events.dart';
import 'package:mlsa_amu/utils/size_config.dart';
import 'package:mlsa_amu/widgets/expansion_tile.dart';

class EventDetailsPage extends StatefulWidget {
int index;
EventDetailsPage({required this.index});
final EventsModel event;
EventDetailsPage({required this.event});

@override
_EventDetailsPageState createState() => _EventDetailsPageState();
}

class _EventDetailsPageState extends State<EventDetailsPage> {
bool isExpanded1 = false, isExpanded2 = false, isExpanded3 = false;

final GlobalKey expansionTileKey = GlobalKey();

@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF424368),
body: ListView(
shrinkWrap: true,
// crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: SizeConfig.screenHeight * 0.523,
Expand All @@ -39,8 +39,8 @@ class _EventDetailsPageState extends State<EventDetailsPage> {
child: Container(
height: SizeConfig.screenHeight * 0.56,
width: SizeConfig.screenWidth,
child: Image.asset(
"assets/images/${eventsImages[widget.index].image}",
child: Image.network(
widget.event.image!,
fit: BoxFit.fill,
width: SizeConfig.screenWidth,
),
Expand All @@ -53,14 +53,14 @@ class _EventDetailsPageState extends State<EventDetailsPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
eventsImages[widget.index].title,
widget.event.title!,
style: TextStyle(
color: Colors.white,
fontSize: SizeConfig.baseFontSize * 5.2,
),
),
Text(
eventsImages[widget.index].subTitle,
widget.event.subTitle!,
style: TextStyle(
color: Colors.white,
fontSize: SizeConfig.baseFontSize * 3,
Expand All @@ -76,7 +76,7 @@ class _EventDetailsPageState extends State<EventDetailsPage> {
padding: EdgeInsets.fromLTRB(SizeConfig.safeBlockHorizontal * 4.2,
0, 0, SizeConfig.safeBlockHorizontal * 6.6),
child: Text(
"23rd July 2021 - 25th July 2021",
widget.event.startDate! + " - " + widget.event.endDate!,
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.white,
Expand All @@ -86,11 +86,24 @@ class _EventDetailsPageState extends State<EventDetailsPage> {
),
SingleChildScrollView(
child: Column(
children: personTypeList
.map((e) => Expansion_Tile(
isExpanded: isExpanded1,
expansionTileDetails: e,
))
children: [
widget.event.organizers!,
widget.event.sponsors!,
widget.event.winners!
]
.map(
(e) => e.isNotEmpty
? Expansion(
isExpanded: isExpanded1,
expansionTileDetails: e,
index: [
widget.event.organizers!,
widget.event.sponsors!,
widget.event.winners!
].indexOf(e),
)
: SizedBox(),
)
.toList(),
),
),
Expand All @@ -116,7 +129,7 @@ class _EventDetailsPageState extends State<EventDetailsPage> {
SizeConfig.safeBlockHorizontal * 4.2,
SizeConfig.safeBlockVertical * 1.6),
child: Text(
eventsImages[widget.index].about,
widget.event.about!,
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.white,
Expand Down
24 changes: 21 additions & 3 deletions lib/screens/events_screen.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,26 @@
import 'package:flutter/material.dart';
import 'package:mlsa_amu/models/events.dart';
import 'package:mlsa_amu/services/event_service.dart';
import 'package:mlsa_amu/widgets/event_card.dart';

class EventsScreen extends StatelessWidget {
class EventsScreen extends StatefulWidget {
@override
_EventsScreenState createState() => _EventsScreenState();
}

class _EventsScreenState extends State<EventsScreen> {
List<EventsModel> eventsList = [];

@override
void initState() {
super.initState();
EventService().fetchEventDetails().then((value) async {
setState(() {
eventsList = value;
});
});
}

@override
Widget build(BuildContext context) {
return Container(
Expand Down Expand Up @@ -30,9 +48,9 @@ class EventsScreen extends StatelessWidget {
elevation: 0,
),
body: ListView.builder(
itemCount: eventsImages.length,
itemCount: eventsList.length,
itemBuilder: (BuildContext context, int index) {
return EventCard(index);
return EventCard(eventsList[index]);
},
),
),
Expand Down
4 changes: 2 additions & 2 deletions lib/screens/navigation_drawer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ class _NavigationDrawerState extends State<NavigationDrawer> {
width: SizeConfig.screenWidth,
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(
'https://res.cloudinary.com/vidita/image/upload/v1625389955/logo_kayvjr.png',
image: AssetImage(
'assets/images/mlsa-logo.png',
),
//fit: BoxFit.cover,
),
Expand Down
16 changes: 16 additions & 0 deletions lib/services/event_service.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:mlsa_amu/models/events.dart';

class EventService {
Future fetchEventDetails() async {
QuerySnapshot query;
List<EventsModel> eventsList = [];
query = await FirebaseFirestore.instance.collection('event').orderBy('createdAt').get();
query.docs.forEach((element) {
EventsModel event = EventsModel.fromMap(element.data());
eventsList.add(event);
});

return eventsList;
}
}
24 changes: 13 additions & 11 deletions lib/widgets/event_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,20 @@ import 'package:mlsa_amu/screens/event_details_screen.dart';
import 'package:mlsa_amu/utils/size_config.dart';

class EventCard extends StatelessWidget {
final int index;
EventCard(this.index);
final EventsModel event;
EventCard(this.event);

@override
Widget build(BuildContext context) {
return InkWell(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => EventDetailsPage(
index: index,
))),
context,
MaterialPageRoute(
builder: (context) => EventDetailsPage(
event: event,
),
),
),
child: Container(
margin: EdgeInsets.symmetric(
horizontal: SizeConfig.safeBlockHorizontal * 4,
Expand All @@ -32,8 +34,8 @@ class EventCard extends StatelessWidget {
borderRadius: BorderRadius.circular(10),
child: Opacity(
opacity: 0.6,
child: Image.asset(
"assets/images/${eventsImages[index].image}",
child: Image.network(
event.image!,
),
),
),
Expand Down Expand Up @@ -75,14 +77,14 @@ class EventCard extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
eventsImages[index].title,
event.title!,
style: TextStyle(
color: Colors.white,
fontSize: SizeConfig.baseFontSize * 5.2,
),
),
Text(
eventsImages[index].subTitle,
event.subTitle!,
style: TextStyle(
color: Colors.white,
fontSize: SizeConfig.baseFontSize * 3,
Expand Down

0 comments on commit d3e6586

Please sign in to comment.