[Feature] Add fields director and (studio) code to scenes (#3051)

* added schema migration and updated data models
* added code and director to UI
* new fields are exported and imported
* added filters
* Add changelog entry
This commit is contained in:
HappyAxolotl
2022-11-07 08:16:52 +01:00
committed by GitHub
parent 7540d3b477
commit eff86bf2f8
35 changed files with 411 additions and 248 deletions

View File

@@ -54,7 +54,9 @@ ORDER BY files.size DESC
type sceneRow struct {
ID int `db:"id" goqu:"skipinsert"`
Title zero.String `db:"title"`
Code zero.String `db:"code"`
Details zero.String `db:"details"`
Director zero.String `db:"director"`
URL zero.String `db:"url"`
Date models.SQLiteDate `db:"date"`
Rating null.Int `db:"rating"`
@@ -68,7 +70,9 @@ type sceneRow struct {
func (r *sceneRow) fromScene(o models.Scene) {
r.ID = o.ID
r.Title = zero.StringFrom(o.Title)
r.Code = zero.StringFrom(o.Code)
r.Details = zero.StringFrom(o.Details)
r.Director = zero.StringFrom(o.Director)
r.URL = zero.StringFrom(o.URL)
if o.Date != nil {
_ = r.Date.Scan(o.Date.Time)
@@ -94,7 +98,9 @@ func (r *sceneQueryRow) resolve() *models.Scene {
ret := &models.Scene{
ID: r.ID,
Title: r.Title.String,
Code: r.Code.String,
Details: r.Details.String,
Director: r.Director.String,
URL: r.URL.String,
Date: r.Date.DatePtr(),
Rating: nullIntPtr(r.Rating),
@@ -123,7 +129,9 @@ type sceneRowRecord struct {
func (r *sceneRowRecord) fromPartial(o models.ScenePartial) {
r.setNullString("title", o.Title)
r.setNullString("code", o.Code)
r.setNullString("details", o.Details)
r.setNullString("director", o.Director)
r.setNullString("url", o.URL)
r.setSQLiteDate("date", o.Date)
r.setNullInt("rating", o.Rating)
@@ -801,7 +809,9 @@ func (qb *SceneStore) makeFilter(ctx context.Context, sceneFilter *models.SceneF
query.handleCriterion(ctx, pathCriterionHandler(sceneFilter.Path, "folders.path", "files.basename", qb.addFoldersTable))
query.handleCriterion(ctx, sceneFileCountCriterionHandler(qb, sceneFilter.FileCount))
query.handleCriterion(ctx, stringCriterionHandler(sceneFilter.Title, "scenes.title"))
query.handleCriterion(ctx, stringCriterionHandler(sceneFilter.Code, "scenes.code"))
query.handleCriterion(ctx, stringCriterionHandler(sceneFilter.Details, "scenes.details"))
query.handleCriterion(ctx, stringCriterionHandler(sceneFilter.Director, "scenes.director"))
query.handleCriterion(ctx, criterionHandlerFunc(func(ctx context.Context, f *filterBuilder) {
if sceneFilter.Oshash != nil {
qb.addSceneFilesTable(f)