Books list: make the buttons work like in the form

This commit is contained in:
2026-03-26 17:07:22 +01:00
parent 4d687e3dcb
commit d8fc7396ff
6 changed files with 111 additions and 27 deletions

View File

@@ -42,13 +42,14 @@ func TestSearchBook_OneBookRead(t *testing.T) {
assert.Equal(t, int64(1), result.Count)
assert.Equal(t,
[]dto.BookSearchGetBook{{
Title: "Les dieux ont soif",
Author: "Anatole France",
ID: 4,
Rating: 7,
Read: true,
WantRead: false,
CoverPath: "/static/bookcover/lesdieuxontsoif.jpg",
Title: "Les dieux ont soif",
Author: "Anatole France",
ID: 4,
Rating: 7,
Read: true,
StartReadDate: "2026-01-30",
WantRead: false,
CoverPath: "/static/bookcover/lesdieuxontsoif.jpg",
}},
result.Books)
}
@@ -58,14 +59,14 @@ func TestSearchBook_OneBookStartRead(t *testing.T) {
assert.Equal(t, int64(1), result.Count)
assert.Equal(t,
[]dto.BookSearchGetBook{{
Title: "Recherches philosophiques",
Author: "Ludwig Wittgenstein",
ID: 30,
Rating: 0,
Read: false,
StartRead: true,
WantRead: false,
CoverPath: "/static/bookcover/Recherches-philosophiques.jpg",
Title: "Recherches philosophiques",
Author: "Ludwig Wittgenstein",
ID: 30,
Rating: 0,
Read: false,
StartReadDate: "2025-11-22",
WantRead: false,
CoverPath: "/static/bookcover/Recherches-philosophiques.jpg",
}},
result.Books)
}

View File

@@ -53,7 +53,7 @@ type BookSearchGetBook struct {
IsInventaireEdition bool `json:"isinventaireedition"`
Rating int `json:"rating"`
Read bool `json:"read"`
StartRead bool `json:"startread"`
StartReadDate string `json:"startreaddate"`
WantRead bool `json:"wantread"`
CoverPath string `json:"coverPath"`
}

View File

@@ -171,7 +171,7 @@ func fetchBookSearchQuery(db *gorm.DB, userId uint, searchterm string) *gorm.DB
func fetchBookQueryBuilder(db *gorm.DB, userId uint) *gorm.DB {
query := db.Model(&model.Book{})
query = query.Select("books.id, books.title, authors.name as author, books.small_description as description, books.inventaire_id, user_books.rating, user_books.read, (user_books.start_read_date IS NOT NULL AND (user_books.read IS NULL OR user_books.read IS FALSE)) as start_read, user_books.want_read, " + selectStaticFilesPath())
query = query.Select("books.id, books.title, authors.name as author, books.small_description as description, books.inventaire_id, user_books.rating, user_books.read, DATE(user_books.start_read_date) as start_read_date, user_books.want_read, " + selectStaticFilesPath())
query = joinAuthors(query)
query = query.Joins("left join user_books on (user_books.book_id = books.id and user_books.user_id = ?)", userId)
query = joinStaticFiles(query)