push ordenar por timestamp

This commit is contained in:
Felipe
2023-10-30 14:43:14 -05:00
parent 6d8f83bc66
commit f3879a912c
7 changed files with 79 additions and 67 deletions
+1 -1
View File
@@ -106,7 +106,7 @@ class MyApp extends StatelessWidget {
'/profilePro': (context) => const ProfileProScreen(), '/profilePro': (context) => const ProfileProScreen(),
'/calendar': (context) => const CalendarScreen(), '/calendar': (context) => const CalendarScreen(),
'/solicitud': (context) => SolicitudScreen(), '/solicitud': (context) => SolicitudScreen(),
'/misserviciospro': (context) => const MyServicesProScreen(), '/misserviciospro': (context) => MyServicesProScreen(),
'/misservicios': (context) => MyServicesScreen(), '/misservicios': (context) => MyServicesScreen(),
}, },
onGenerateRoute: (settings) { onGenerateRoute: (settings) {
+25 -8
View File
@@ -27,7 +27,6 @@ class DrawerMenu extends StatefulWidget {
class _DrawerMenuState extends State<DrawerMenu> { class _DrawerMenuState extends State<DrawerMenu> {
final uid = AuthenticationRepository.instance.getCurrentUserUid(); final uid = AuthenticationRepository.instance.getCurrentUserUid();
UserModel? user;
ScoresModel? scoresModel; ScoresModel? scoresModel;
@override @override
@@ -54,7 +53,7 @@ class _DrawerMenuState extends State<DrawerMenu> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final userProvider = Provider.of<UserProvider>(context); final userProvider = Provider.of<UserProvider>(context);
// final UserModel? user = userProvider.user; UserModel? user;
return Drawer( return Drawer(
child: Column( child: Column(
@@ -68,7 +67,7 @@ class _DrawerMenuState extends State<DrawerMenu> {
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<UserModel> snapshot) { AsyncSnapshot<UserModel> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) { if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator()); return const Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) { } else if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}')); return Center(child: Text('Error: ${snapshot.error}'));
} else { } else {
@@ -343,7 +342,18 @@ class _DrawerMenuState extends State<DrawerMenu> {
), ),
Column( Column(
children: [ children: [
ElevatedButton( StreamBuilder<UserModel>(
stream: userProvider.itemsStream,
builder:
(BuildContext context, AsyncSnapshot<UserModel> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) {
return Center(child: Text('Error: ${snapshot.error}'));
} else {
UserModel? user = snapshot.data;
return ElevatedButton(
onPressed: () { onPressed: () {
if (user?.name == '' || if (user?.name == '' ||
user?.city == '' || user?.city == '' ||
@@ -362,19 +372,23 @@ class _DrawerMenuState extends State<DrawerMenu> {
snackPosition: SnackPosition.BOTTOM, snackPosition: SnackPosition.BOTTOM,
); );
} else { } else {
if (user?.state == 'pendiente' || user?.state == null) { if (user?.state == 'pendiente' ||
user?.state == null) {
if (kIsWeb) { if (kIsWeb) {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
const ProfessionalProfileWebScreen()), const ProfessionalProfileWebScreen(),
),
); );
} else { } else {
Navigator.pushNamed(context, '/profesionalProfile'); Navigator.pushNamed(
context, '/profesionalProfile');
} }
} else if (user?.state == 'revision') { } else if (user?.state == 'revision') {
Navigator.pushNamed(context, '/profesionalRevision'); Navigator.pushNamed(
context, '/profesionalRevision');
} else if (user?.state == 'activo') { } else if (user?.state == 'activo') {
Navigator.pushNamed(context, '/solicitud'); Navigator.pushNamed(context, '/solicitud');
} }
@@ -396,6 +410,9 @@ class _DrawerMenuState extends State<DrawerMenu> {
fontSize: 15, fontSize: 15,
), ),
), ),
);
}
},
), ),
const SizedBox(height: 10), const SizedBox(height: 10),
ElevatedButton( ElevatedButton(
+1 -1
View File
@@ -133,7 +133,7 @@ class _DrawerProfessionalState extends State<DrawerProfessional> {
Navigator.of(context).push( Navigator.of(context).push(
CupertinoPageRoute( CupertinoPageRoute(
builder: (BuildContext context) { builder: (BuildContext context) {
return const MyServicesProScreen(); return MyServicesProScreen();
}, },
), ),
); );
+4
View File
@@ -65,6 +65,7 @@ Future<List<Event>> getByProId(String day) async {
.where('professional_id', isEqualTo: uid) .where('professional_id', isEqualTo: uid)
.where('day', isEqualTo: day.toString()) .where('day', isEqualTo: day.toString())
.where('status', isEqualTo: 'aprobado') .where('status', isEqualTo: 'aprobado')
.orderBy('Timestamp', descending: true)
.get(); .get();
List<Event> eventos = []; List<Event> eventos = [];
@@ -141,6 +142,7 @@ class Event {
int? tarifa; int? tarifa;
bool professionalScored; bool professionalScored;
bool userScored; bool userScored;
Timestamp? timeStamp;
Event({ Event({
this.id, this.id,
@@ -156,6 +158,7 @@ class Event {
this.longitud, this.longitud,
this.latitud, this.latitud,
this.status = 'pendiente', this.status = 'pendiente',
this.timeStamp,
this.tarifa, this.tarifa,
this.professionalScored = false, this.professionalScored = false,
this.userScored = false, this.userScored = false,
@@ -176,6 +179,7 @@ class Event {
longitud: json['longitude'] ?? 0, longitud: json['longitude'] ?? 0,
latitud: json['latitude'] ?? 0, latitud: json['latitude'] ?? 0,
status: json['status'], status: json['status'],
timeStamp: json['Timestamp'] ?? 0,
tarifa: json['tarifa'] ?? 0, tarifa: json['tarifa'] ?? 0,
professionalScored: json['professional_scored'], professionalScored: json['professional_scored'],
userScored: json['user_scored'], userScored: json['user_scored'],
+1 -1
View File
@@ -87,7 +87,7 @@ class _MyServicesScreenState extends State<MyServicesScreen> {
try { try {
eventos.addAll(snapshot.data!); eventos.addAll(snapshot.data!);
eventos.sort((a, b) => a.range1Hour1.compareTo(b.range1Hour1)); eventos.sort((a, b) => a.timeStamp!.compareTo(b.timeStamp!));
} catch (e) { } catch (e) {
print("Error" + e.toString()); print("Error" + e.toString());
} }
+4 -13
View File
@@ -10,21 +10,12 @@ import 'package:prosappco/src/models/event_model.dart';
import 'package:prosappco/src/models/scores_model.dart'; import 'package:prosappco/src/models/scores_model.dart';
import 'package:prosappco/src/screens/cita.dart'; import 'package:prosappco/src/screens/cita.dart';
class MyServicesProScreen extends StatefulWidget { class MyServicesProScreen extends StatelessWidget {
const MyServicesProScreen({super.key}); MyServicesProScreen({super.key});
@override
State<MyServicesProScreen> createState() => _MyServicesProScreenState();
}
class _MyServicesProScreenState extends State<MyServicesProScreen> {
DateTime today = DateTime.now(); DateTime today = DateTime.now();
final uid = AuthenticationRepository.instance.getCurrentUserUid();
@override final uid = AuthenticationRepository.instance.getCurrentUserUid();
void initState() {
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -83,7 +74,7 @@ class _MyServicesProScreenState extends State<MyServicesProScreen> {
try { try {
eventos.addAll(snapshot.data!); eventos.addAll(snapshot.data!);
eventos.sort((a, b) => a.range1Hour1.compareTo(b.range1Hour1)); eventos.sort((a, b) => a.timeStamp!.compareTo(b.timeStamp!));
} catch (e) { } catch (e) {
print("Error" + e.toString()); print("Error" + e.toString());
} }
+1 -1
View File
@@ -75,7 +75,7 @@ class SolicitudScreen extends StatelessWidget {
try { try {
eventos.addAll(snapshot.data!); eventos.addAll(snapshot.data!);
eventos.sort((a, b) => a.range1Hour1.compareTo(b.range1Hour1)); eventos.sort((a, b) => a.timeStamp!.compareTo(b.timeStamp!));
} catch (e) { } catch (e) {
print("Error" + e.toString()); print("Error" + e.toString());
} }