Remove PreDB from MovieStatusType

Fixes #5002
pull/6854/head
Qstick 3 years ago
parent b2195148a2
commit 4d2a311e40

@ -6,8 +6,7 @@ import SelectInput from './SelectInput';
const availabilityOptions = [
{ key: 'announced', value: translate('Announced') },
{ key: 'inCinemas', value: translate('InCinemas') },
{ key: 'released', value: translate('Released') },
{ key: 'preDB', value: translate('PreDB') }
{ key: 'released', value: translate('Released') }
];
function AvailabilitySelectInput(props) {

@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Linq;
using FluentAssertions;
using Newtonsoft.Json.Linq;
using NUnit.Framework;
using NzbDrone.Common.Serializer;
using NzbDrone.Core.Datastore.Migration;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.Datastore.Migration
{
[TestFixture]
public class remove_predbFixture : MigrationTest<remove_predb>
{
[Test]
public void should_change_min_avail_from_predb_on_list()
{
var db = WithMigrationTestDb(c =>
{
c.Insert.IntoTable("ImportLists").Row(new
{
Enabled = 1,
EnableAuto = 1,
RootFolderPath = "D:\\Movies",
ProfileId = 1,
MinimumAvailability = 4,
ShouldMonitor = 1,
Name = "IMDB List",
Implementation = "RadarrLists",
Settings = new RadarrListSettings169
{
APIURL = "https://api.radarr.video/v2",
Path = "/imdb/list?listId=ls000199717",
}.ToJson(),
ConfigContract = "RadarrSettings"
});
});
var items = db.Query<ListDefinition201>("SELECT Id, MinimumAvailability FROM ImportLists");
items.Should().HaveCount(1);
items.First().MinimumAvailability.Should().Be(3);
}
[Test]
public void should_change_min_avail_from_predb_on_movie()
{
var db = WithMigrationTestDb(c =>
{
c.Insert.IntoTable("Movies").Row(new
{
Monitored = true,
Title = "Title",
CleanTitle = "CleanTitle",
Status = 3,
MinimumAvailability = 4,
Images = new[] { new { CoverType = "Poster" } }.ToJson(),
Recommendations = new[] { 1 }.ToJson(),
HasPreDBEntry = false,
Runtime = 90,
OriginalLanguage = 1,
ProfileId = 1,
MovieFileId = 0,
Path = string.Format("/Movies/{0}", "Title"),
TitleSlug = 123456,
TmdbId = 132456,
Added = DateTime.UtcNow,
LastInfoSync = DateTime.UtcNow,
});
});
var items = db.Query<Movie201>("SELECT Id, MinimumAvailability FROM Movies");
items.Should().HaveCount(1);
items.First().MinimumAvailability.Should().Be(3);
}
}
public class ListDefinition201
{
public int Id { get; set; }
public int MinimumAvailability { get; set; }
}
public class Movie201
{
public int Id { get; set; }
public int MinimumAvailability { get; set; }
}
}

@ -1,4 +1,4 @@
using FluentMigrator;
using FluentMigrator;
//using FluentMigrator.Expressions;
using NzbDrone.Core.Datastore.Migration.Framework;
@ -13,12 +13,12 @@ namespace NzbDrone.Core.Datastore.Migration
{
if (!Schema.Schema("dbo").Table("NetImport").Column("MinimumAvailability").Exists())
{
Alter.Table("NetImport").AddColumn("MinimumAvailability").AsInt32().WithDefaultValue(MovieStatusType.PreDB);
Alter.Table("NetImport").AddColumn("MinimumAvailability").AsInt32().WithDefaultValue(MovieStatusType.Released);
}
if (!Schema.Schema("dbo").Table("Movies").Column("MinimumAvailability").Exists())
{
Alter.Table("Movies").AddColumn("MinimumAvailability").AsInt32().WithDefaultValue(MovieStatusType.PreDB);
Alter.Table("Movies").AddColumn("MinimumAvailability").AsInt32().WithDefaultValue(MovieStatusType.Released);
}
}
}

@ -0,0 +1,23 @@
using FluentMigrator;
using NzbDrone.Core.Datastore.Migration.Framework;
namespace NzbDrone.Core.Datastore.Migration
{
[Migration(202)]
public class remove_predb : NzbDroneMigrationBase
{
protected override void MainDbUpgrade()
{
//Set PreDb entries to Released
Update.Table("Movies").Set(new { MinimumAvailability = 3 }).Where(new { MinimumAvailability = 4 });
Update.Table("ImportLists").Set(new { MinimumAvailability = 3 }).Where(new { MinimumAvailability = 4 });
//Should never be set, but just in case
Update.Table("Movies").Set(new { Status = 3 }).Where(new { Status = 4 });
Update.Table("ImportListMovies").Set(new { Status = 3 }).Where(new { Status = 4 });
//Remove unused column
Delete.Column("HasPreDBEntry").FromTable("Movies");
}
}
}

@ -56,7 +56,6 @@ namespace NzbDrone.Core.Movies
public HashSet<int> Tags { get; set; }
public AddMovieOptions AddOptions { get; set; }
public MovieFile MovieFile { get; set; }
public bool HasPreDBEntry { get; set; }
public int MovieFileId { get; set; }
//Get Loaded via a Join Query
@ -137,11 +136,6 @@ namespace NzbDrone.Core.Movies
}
}
if (HasPreDBEntry && MinimumAvailability == MovieStatusType.PreDB)
{
return true;
}
if (minimumAvailabilityDate == DateTime.MinValue || minimumAvailabilityDate == DateTime.MaxValue)
{
return DateTime.Now >= minimumAvailabilityDate;

@ -7,6 +7,5 @@ namespace NzbDrone.Core.Movies
Announced = 1, //Movie is announced but Cinema date is in the future or unknown
InCinemas = 2, //Been in Cinemas for less than 3 months (since TMDB lacks complete information)
Released = 3, //Physical or Web Release or been in cinemas for > 3 months (since TMDB lacks complete information)
PreDB = 4 //this is only used for MinimumAvailability. Movie items should never be in this state.
}
}

@ -117,7 +117,6 @@ namespace NzbDrone.Core.Movies
movie.Studio = movieInfo.Studio;
movie.OriginalTitle = movieInfo.OriginalTitle;
movie.OriginalLanguage = movieInfo.OriginalLanguage;
movie.HasPreDBEntry = movieInfo.HasPreDBEntry;
movie.Recommendations = movieInfo.Recommendations;
try

Loading…
Cancel
Save