Skip to content

Commit

Permalink
added timestamp,report expired link and fixed all the responsive UI bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
ats527 committed Mar 2, 2024
1 parent 1c8aa99 commit b2492c2
Show file tree
Hide file tree
Showing 11 changed files with 454 additions and 273 deletions.
35 changes: 23 additions & 12 deletions lib/controllers/database_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class DatabaseController {
"link": placement.applyLink,
"logo": imageurl,
"timestamp": DateTime.now().toIso8601String(),
"report_count": 0,
};

await database.collection("notifications").add(notification);
Expand Down Expand Up @@ -57,7 +58,6 @@ class DatabaseController {

Future<void> deleteNotification(String id, String? fileurl) async {
try {

if (fileurl != null) {
await storage.deleteLogo(fileurl);
}
Expand All @@ -67,6 +67,19 @@ class DatabaseController {
}
}

Future reportNotification(String id) async {
try {
final docRef = database.collection("notifications").doc(id);

await docRef.update({
"report_count": FieldValue.increment(1),
});

} catch (err) {
rethrow;
}
}

Future<void> updateNotification({
required String id,
String? companyName,
Expand Down Expand Up @@ -101,19 +114,17 @@ class DatabaseController {
}
}

Future getPaginatedNotifications(int limit) async {
Query<Placement> getNotifications() {
try {
List<Placement> placements = [];
await database
final notifications = database
.collection("notifications")
.limit(limit)
.get()
.then((QuerySnapshot<Map<String, dynamic>> querySnapshot) {
for (var doc in querySnapshot.docs) {
placements.add(Placement.fromFirestore(doc, null, doc.id));
}
});
return placements.reversed.toList();
.orderBy("timestamp", descending: true)
.withConverter(
fromFirestore: (snapshot, _) =>
Placement.fromFirestore(snapshot.data()!, snapshot.id),
toFirestore: (placement, _) => placement.toFirestore(),
);
return notifications;
} catch (err) {
rethrow;
}
Expand Down
25 changes: 16 additions & 9 deletions lib/models/placement.dart
Original file line number Diff line number Diff line change
@@ -1,32 +1,38 @@
import 'package:cloud_firestore/cloud_firestore.dart';

class Placement {
final String id;
final String companyName;
final String jobRole;
final String jobDescription;
final String applyLink;
final DateTime timestamp;
final int reportCount;
String? imageUrl;

Placement({
required this.timestamp,
required this.id,
required this.companyName,
required this.jobRole,
required this.jobDescription,
required this.applyLink,
required this.imageUrl,
required this.reportCount,
});

factory Placement.fromFirestore(
DocumentSnapshot<Map<String, dynamic>> snapshot, options, documentId) {
final data = snapshot.data();
factory Placement.fromFirestore(Map<String, dynamic> data, documentId) {
return Placement(
id: documentId,
companyName: data?['company_name'] ?? '',
jobRole: data?['job_role'] ?? '',
jobDescription: data?['job_description'] ?? '',
applyLink: data?['link'] ?? '',
imageUrl: data?['logo'] ?? '',
companyName: data['company_name'] ?? '',
reportCount: data['report_count'] ?? 0,
jobRole: data['job_role'] ?? '',
jobDescription: data['job_description'] ?? '',
applyLink: data['link'] ?? '',
imageUrl: data['logo'] ?? '',
timestamp: DateTime.parse(data['timestamp'],

),

);
}

Expand All @@ -36,6 +42,7 @@ class Placement {
'job_role': jobRole,
'job_description': jobDescription,
'link': applyLink,
'timestamp': timestamp,
'logo': imageUrl,
};
}
Expand Down
2 changes: 2 additions & 0 deletions lib/screens/admin_screens/admin_add_placement_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ class _AdminAddPlacementScreenState extends State<AdminAddPlacementScreen> {
jobDescription:
_jobDescriptionController.text,
applyLink: _applyLinkController.text,
reportCount: 0,
timestamp: DateTime.now(),
imageUrl: ""),
pickedImage!,
)
Expand Down
Loading

0 comments on commit b2492c2

Please sign in to comment.