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/book.dart';
import 'package:library_app/src/models/user.dart';
class Loan { class Loan {
Book book; Book book;
User? user;
String loanDate; String loanDate;
String dueDate; String dueDate;
String remainingDays; String remainingDays;
...@@ -9,6 +11,7 @@ class Loan { ...@@ -9,6 +11,7 @@ class Loan {
Loan( Loan(
this.book, this.book,
this.user,
this.loanDate, this.loanDate,
this.dueDate, this.dueDate,
this.remainingDays, this.remainingDays,
...@@ -19,6 +22,7 @@ class Loan { ...@@ -19,6 +22,7 @@ class Loan {
final book = Book.fromJson(data["book_detail"]); final book = Book.fromJson(data["book_detail"]);
return Loan( return Loan(
book, book,
null,
data["loan_date"], data["loan_date"],
data["due_date"], data["due_date"],
data["remaining_loan_time"], data["remaining_loan_time"],
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:library_app/src/models/book.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:library_app/src/providers/auth_provider.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -45,8 +46,21 @@ class _AdminLoanList extends State<AdminLoanList> { ...@@ -45,8 +46,21 @@ class _AdminLoanList extends State<AdminLoanList> {
var loans = getLoans.map( var loans = getLoans.map(
(loan) { (loan) {
var book = Book.fromJson(loan["book_detail"]); 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( return Loan(
book, book,
user,
loan["loan_date"], loan["loan_date"],
loan["due_date"], loan["due_date"],
loan["remaining_loan_time"], loan["remaining_loan_time"],
...@@ -61,7 +75,10 @@ class _AdminLoanList extends State<AdminLoanList> { ...@@ -61,7 +75,10 @@ class _AdminLoanList extends State<AdminLoanList> {
}, },
body: ListView( body: ListView(
children: List.generate(loans.length, (index) { 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'; ...@@ -2,11 +2,13 @@ import 'package:intl/intl.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:library_app/src/models/loan.dart'; import 'package:library_app/src/models/loan.dart';
import 'package:library_app/src/models/user.dart';
class LoanItem extends StatelessWidget { class LoanItem extends StatelessWidget {
final Loan _loan; final Loan _loan;
final User? user;
const LoanItem(this._loan, {super.key}); const LoanItem(this._loan, {super.key, this.user});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -39,6 +41,17 @@ class LoanItem extends StatelessWidget { ...@@ -39,6 +41,17 @@ class LoanItem extends StatelessWidget {
style: const TextStyle(fontSize: 12.0, color: Colors.white), 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(
padding: const EdgeInsets.symmetric(vertical: 8.0), padding: const EdgeInsets.symmetric(vertical: 8.0),
child: Row( child: Row(
......
...@@ -35,6 +35,7 @@ class _LoanList extends State<LoanList> { ...@@ -35,6 +35,7 @@ class _LoanList extends State<LoanList> {
var book = Book.fromJson(loan["book_detail"]); var book = Book.fromJson(loan["book_detail"]);
return Loan( return Loan(
book, book,
null,
loan["loan_date"], loan["loan_date"],
loan["due_date"], loan["due_date"],
loan["remaining_loan_time"], 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