Commit 925c2451 authored by Ilham Maulana's avatar Ilham Maulana 💻

fix: adding user info in loan item (admin access)

parent 084dca0a
import 'package:library_app/src/models/book.dart';
import 'package:library_app/src/models/user.dart';
class Loan {
Book book;
User? user;
String loanDate;
String dueDate;
String remainingDays;
......@@ -9,6 +11,7 @@ class Loan {
Loan(
this.book,
this.user,
this.loanDate,
this.dueDate,
this.remainingDays,
......@@ -19,6 +22,7 @@ class Loan {
final book = Book.fromJson(data["book_detail"]);
return Loan(
book,
null,
data["loan_date"],
data["due_date"],
data["remaining_loan_time"],
......
import 'package:flutter/material.dart';
import 'package:library_app/src/models/book.dart';
import 'package:library_app/src/models/user.dart';
import 'package:library_app/src/providers/auth_provider.dart';
import 'package:provider/provider.dart';
......@@ -45,8 +46,21 @@ class _AdminLoanList extends State<AdminLoanList> {
var loans = getLoans.map(
(loan) {
var book = Book.fromJson(loan["book_detail"]);
var memberData = loan["member_detail"];
var userData = memberData["user"];
var user = User(
userData["id"],
memberData["id"],
userData["username"],
userData["email"],
userData["first_name"],
userData["last_name"],
userData["is_staff"],
);
return Loan(
book,
user,
loan["loan_date"],
loan["due_date"],
loan["remaining_loan_time"],
......@@ -61,7 +75,10 @@ class _AdminLoanList extends State<AdminLoanList> {
},
body: ListView(
children: List.generate(loans.length, (index) {
return LoanItem(loans.elementAt(index));
return LoanItem(
loans.elementAt(index),
user: loans.elementAt(index).user,
);
}),
),
);
......
......@@ -2,11 +2,13 @@ import 'package:intl/intl.dart';
import 'package:flutter/material.dart';
import 'package:library_app/src/models/loan.dart';
import 'package:library_app/src/models/user.dart';
class LoanItem extends StatelessWidget {
final Loan _loan;
final User? user;
const LoanItem(this._loan, {super.key});
const LoanItem(this._loan, {super.key, this.user});
@override
Widget build(BuildContext context) {
......@@ -39,6 +41,17 @@ class LoanItem extends StatelessWidget {
style: const TextStyle(fontSize: 12.0, color: Colors.white),
),
),
Offstage(
offstage: user == null,
child: Card(
color: Theme.of(context).primaryColor,
child: ListTile(
textColor: Colors.white,
title: Text(user != null ? user!.username : ""),
subtitle: Text(user != null ? user!.email : ""),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: Row(
......
......@@ -35,6 +35,7 @@ class _LoanList extends State<LoanList> {
var book = Book.fromJson(loan["book_detail"]);
return Loan(
book,
null,
loan["loan_date"],
loan["due_date"],
loan["remaining_loan_time"],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment