mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Fix missing date filter (#2434)
This commit is contained in:
@@ -300,7 +300,7 @@ func galleryIsMissingCriterionHandler(qb *galleryQueryBuilder, isMissing *string
|
|||||||
qb.performersRepository().join(f, "performers_join", "galleries.id")
|
qb.performersRepository().join(f, "performers_join", "galleries.id")
|
||||||
f.addWhere("performers_join.gallery_id IS NULL")
|
f.addWhere("performers_join.gallery_id IS NULL")
|
||||||
case "date":
|
case "date":
|
||||||
f.addWhere("galleries.date IS \"\" OR galleries.date IS \"0001-01-01\"")
|
f.addWhere("galleries.date IS NULL OR galleries.date IS \"\" OR galleries.date IS \"0001-01-01\"")
|
||||||
case "tags":
|
case "tags":
|
||||||
qb.tagsRepository().join(f, "tags_join", "galleries.id")
|
qb.tagsRepository().join(f, "tags_join", "galleries.id")
|
||||||
f.addWhere("tags_join.gallery_id IS NULL")
|
f.addWhere("tags_join.gallery_id IS NULL")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
package sqlite_test
|
package sqlite_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math"
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
@@ -562,6 +563,28 @@ func TestGalleryQueryIsMissingTags(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGalleryQueryIsMissingDate(t *testing.T) {
|
||||||
|
withTxn(func(r models.Repository) error {
|
||||||
|
sqb := r.Gallery()
|
||||||
|
isMissing := "date"
|
||||||
|
galleryFilter := models.GalleryFilterType{
|
||||||
|
IsMissing: &isMissing,
|
||||||
|
}
|
||||||
|
|
||||||
|
galleries := queryGallery(t, sqb, &galleryFilter, nil)
|
||||||
|
|
||||||
|
// three in four scenes have no date
|
||||||
|
assert.Len(t, galleries, int(math.Ceil(float64(totalGalleries)/4*3)))
|
||||||
|
|
||||||
|
// ensure date is null, empty or "0001-01-01"
|
||||||
|
for _, g := range galleries {
|
||||||
|
assert.True(t, !g.Date.Valid || g.Date.String == "" || g.Date.String == "0001-01-01")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestGalleryQueryPerformers(t *testing.T) {
|
func TestGalleryQueryPerformers(t *testing.T) {
|
||||||
withTxn(func(r models.Repository) error {
|
withTxn(func(r models.Repository) error {
|
||||||
sqb := r.Gallery()
|
sqb := r.Gallery()
|
||||||
|
|||||||
@@ -582,7 +582,7 @@ func sceneIsMissingCriterionHandler(qb *sceneQueryBuilder, isMissing *string) cr
|
|||||||
qb.performersRepository().join(f, "performers_join", "scenes.id")
|
qb.performersRepository().join(f, "performers_join", "scenes.id")
|
||||||
f.addWhere("performers_join.scene_id IS NULL")
|
f.addWhere("performers_join.scene_id IS NULL")
|
||||||
case "date":
|
case "date":
|
||||||
f.addWhere("scenes.date IS \"\" OR scenes.date IS \"0001-01-01\"")
|
f.addWhere(`scenes.date IS NULL OR scenes.date IS "" OR scenes.date IS "0001-01-01"`)
|
||||||
case "tags":
|
case "tags":
|
||||||
qb.tagsRepository().join(f, "tags_join", "scenes.id")
|
qb.tagsRepository().join(f, "tags_join", "scenes.id")
|
||||||
f.addWhere("tags_join.scene_id IS NULL")
|
f.addWhere("tags_join.scene_id IS NULL")
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ package sqlite_test
|
|||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -931,7 +932,8 @@ func TestSceneQueryIsMissingDate(t *testing.T) {
|
|||||||
|
|
||||||
scenes := queryScene(t, sqb, &sceneFilter, nil)
|
scenes := queryScene(t, sqb, &sceneFilter, nil)
|
||||||
|
|
||||||
assert.True(t, len(scenes) > 0)
|
// three in four scenes have no date
|
||||||
|
assert.Len(t, scenes, int(math.Ceil(float64(totalScenes)/4*3)))
|
||||||
|
|
||||||
// ensure date is null, empty or "0001-01-01"
|
// ensure date is null, empty or "0001-01-01"
|
||||||
for _, scene := range scenes {
|
for _, scene := range scenes {
|
||||||
|
|||||||
@@ -625,7 +625,7 @@ func getWidth(index int) sql.NullInt64 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSceneDate(index int) models.SQLiteDate {
|
func getObjectDate(index int) models.SQLiteDate {
|
||||||
dates := []string{"null", "", "0001-01-01", "2001-02-03"}
|
dates := []string{"null", "", "0001-01-01", "2001-02-03"}
|
||||||
date := dates[index%len(dates)]
|
date := dates[index%len(dates)]
|
||||||
return models.SQLiteDate{
|
return models.SQLiteDate{
|
||||||
@@ -647,7 +647,7 @@ func createScenes(sqb models.SceneReaderWriter, n int) error {
|
|||||||
Duration: getSceneDuration(i),
|
Duration: getSceneDuration(i),
|
||||||
Height: getHeight(i),
|
Height: getHeight(i),
|
||||||
Width: getWidth(i),
|
Width: getWidth(i),
|
||||||
Date: getSceneDate(i),
|
Date: getObjectDate(i),
|
||||||
}
|
}
|
||||||
|
|
||||||
created, err := sqb.Create(scene)
|
created, err := sqb.Create(scene)
|
||||||
@@ -715,6 +715,7 @@ func createGalleries(gqb models.GalleryReaderWriter, n int) error {
|
|||||||
URL: getGalleryNullStringValue(i, urlField),
|
URL: getGalleryNullStringValue(i, urlField),
|
||||||
Checksum: getGalleryStringValue(i, checksumField),
|
Checksum: getGalleryStringValue(i, checksumField),
|
||||||
Rating: getRating(i),
|
Rating: getRating(i),
|
||||||
|
Date: getObjectDate(i),
|
||||||
}
|
}
|
||||||
|
|
||||||
created, err := gqb.Create(gallery)
|
created, err := gqb.Create(gallery)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
* Improved autotag performance. ([#2368](https://github.com/stashapp/stash/pull/2368))
|
* Improved autotag performance. ([#2368](https://github.com/stashapp/stash/pull/2368))
|
||||||
|
|
||||||
### 🐛 Bug fixes
|
### 🐛 Bug fixes
|
||||||
|
* Fix Is Missing Date filter not including null date values. ([#2434](https://github.com/stashapp/stash/pull/2434))
|
||||||
* Fix Open Stash systray menu item not opening stash when Skip Opening Browser was enabled. ([#2418](https://github.com/stashapp/stash/pull/2418))
|
* Fix Open Stash systray menu item not opening stash when Skip Opening Browser was enabled. ([#2418](https://github.com/stashapp/stash/pull/2418))
|
||||||
* Fix error saving a scene from the tagger when the scene has stash ids. ([#2408](https://github.com/stashapp/stash/pull/2408))
|
* Fix error saving a scene from the tagger when the scene has stash ids. ([#2408](https://github.com/stashapp/stash/pull/2408))
|
||||||
* Perform tag pattern exclusion on stash-box sources. ([#2391](https://github.com/stashapp/stash/pull/2391))
|
* Perform tag pattern exclusion on stash-box sources. ([#2391](https://github.com/stashapp/stash/pull/2391))
|
||||||
|
|||||||
Reference in New Issue
Block a user