From 5e8f06cd24f7cd4500fb80c8d4bd271586401ceb Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 11 Feb 2022 15:12:57 +0000 Subject: [PATCH] feat: fixed up all the movie requests page --- src/Ombi.Core/Engine/MovieRequestEngine.cs | 30 +++++++++++----- .../Rule/Rules/Request/AutoApproveRule.cs | 10 +++--- .../Rule/Rules/Request/CanRequestRule.cs | 2 +- .../Rules/Request/ExistingMovieRequestRule.cs | 4 +-- .../Entities/Requests/MovieRequests.cs | 7 ++++ .../movie/movie-details.component.html | 34 ++++++++----------- src/Ombi/wwwroot/translations/en.json | 1 + 7 files changed, 52 insertions(+), 36 deletions(-) diff --git a/src/Ombi.Core/Engine/MovieRequestEngine.cs b/src/Ombi.Core/Engine/MovieRequestEngine.cs index 02787eacd..39afaec16 100644 --- a/src/Ombi.Core/Engine/MovieRequestEngine.cs +++ b/src/Ombi.Core/Engine/MovieRequestEngine.cs @@ -102,7 +102,7 @@ namespace Ombi.Core.Engine { if (model.Is4kRequest) { - existingRequest.Has4KRequest = model.Is4kRequest; + existingRequest.Is4kRequest = true; existingRequest.RequestedDate4k = DateTime.Now; } else @@ -134,7 +134,8 @@ namespace Ombi.Core.Engine RequestedByAlias = model.RequestedByAlias, RootPathOverride = model.RootFolderOverride.GetValueOrDefault(), QualityOverride = model.QualityPathOverride.GetValueOrDefault(), - Has4KRequest = model.Is4kRequest + RequestedDate4k = model.Is4kRequest ? DateTime.Now : DateTime.MinValue, + Is4kRequest = model.Is4kRequest }; } @@ -155,7 +156,7 @@ namespace Ombi.Core.Engine if (requestModel.Approved) // The rules have auto approved this { - var requestEngineResult = await AddMovieRequest(requestModel, fullMovieName, model.RequestOnBehalf, isExisting); + var requestEngineResult = await AddMovieRequest(requestModel, fullMovieName, model.RequestOnBehalf, isExisting, model.Is4kRequest); if (requestEngineResult.Result) { var result = await ApproveMovie(requestModel, model.Is4kRequest); @@ -176,7 +177,7 @@ namespace Ombi.Core.Engine // If there are no providers then it's successful but movie has not been sent } - return await AddMovieRequest(requestModel, fullMovieName, model.RequestOnBehalf, isExisting); + return await AddMovieRequest(requestModel, fullMovieName, model.RequestOnBehalf, isExisting, model.Is4kRequest); } @@ -581,9 +582,18 @@ namespace Ombi.Core.Engine }; } - request.MarkedAsApproved = DateTime.Now; - request.Approved = true; - request.Denied = false; + if (is4K) + { + request.MarkedAsApproved4K = DateTime.Now; + request.Approved4K = true; + request.Denied4K = false; + } + else + { + request.MarkedAsApproved = DateTime.Now; + request.Approved = true; + request.Denied = false; + } await MovieRepository.Update(request); var canNotify = await RunSpecificRule(request, SpecificRules.CanSendNotification, string.Empty); @@ -789,8 +799,12 @@ namespace Ombi.Core.Engine }; } - private async Task AddMovieRequest(MovieRequests model, string movieName, string requestOnBehalf, bool isExisting) + private async Task AddMovieRequest(MovieRequests model, string movieName, string requestOnBehalf, bool isExisting, bool is4k) { + if (is4k) + { + model.Has4KRequest = true; + } if (!isExisting) { await MovieRepository.Add(model); diff --git a/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs b/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs index 67395e6bb..30cda9591 100644 --- a/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs +++ b/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs @@ -31,11 +31,11 @@ namespace Ombi.Core.Rule.Rules.Request if (obj.RequestType == RequestType.Movie) { var movie = (MovieRequests)obj; - if (movie.Has4KRequest) + if (movie.Is4kRequest) { movie.Approved4K = true; } - if (movie.RequestedDate != DateTime.MinValue) + else { obj.Approved = true; } @@ -50,11 +50,11 @@ namespace Ombi.Core.Rule.Rules.Request if (obj.RequestType == RequestType.Movie && await _manager.IsInRoleAsync(user, OmbiRoles.AutoApproveMovie)) { var movie = (MovieRequests)obj; - if (movie.Has4KRequest) + if (movie.Is4kRequest) { movie.Approved4K = true; - } - if (movie.RequestedDate != DateTime.MinValue) + } + else { obj.Approved = true; } diff --git a/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs b/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs index e6fd2d9bb..2546e1f29 100644 --- a/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs +++ b/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs @@ -37,7 +37,7 @@ namespace Ombi.Core.Rule.Rules.Request var hasAutoApprove = await _manager.IsInRoleAsync(user, OmbiRoles.AutoApproveMovie); if (await _manager.IsInRoleAsync(user, OmbiRoles.RequestMovie) || hasAutoApprove) { - if (movie.Has4KRequest && !hasAutoApprove) + if (movie.Is4kRequest && !hasAutoApprove) { var has4kPermission = await _manager.IsInRoleAsync(user, OmbiRoles.Request4KMovie); if (has4kPermission) diff --git a/src/Ombi.Core/Rule/Rules/Request/ExistingMovieRequestRule.cs b/src/Ombi.Core/Rule/Rules/Request/ExistingMovieRequestRule.cs index 7a4b7d445..ed5465c78 100644 --- a/src/Ombi.Core/Rule/Rules/Request/ExistingMovieRequestRule.cs +++ b/src/Ombi.Core/Rule/Rules/Request/ExistingMovieRequestRule.cs @@ -58,11 +58,11 @@ namespace Ombi.Core.Rule.Rules.Request private static bool Check4KRequests(MovieRequests movie,MovieRequests existing) { - if (movie.Has4KRequest && existing.Has4KRequest) + if (movie.Is4kRequest && existing.Has4KRequest) { return true; } - if (!movie.Has4KRequest && !existing.Has4KRequest) + if (!movie.Is4kRequest && !existing.Has4KRequest) { return true; } diff --git a/src/Ombi.Store/Entities/Requests/MovieRequests.cs b/src/Ombi.Store/Entities/Requests/MovieRequests.cs index f4d1c1246..49189a387 100644 --- a/src/Ombi.Store/Entities/Requests/MovieRequests.cs +++ b/src/Ombi.Store/Entities/Requests/MovieRequests.cs @@ -23,6 +23,13 @@ namespace Ombi.Store.Entities.Requests [NotMapped] public bool ShowSubscribe { get; set; } + /// + /// This is only used during the request process to identify if + /// it's a regular request or a 4k + /// + [NotMapped] + public bool Is4kRequest { get; set; } + public int RootPathOverride { get; set; } public int QualityOverride { get; set; } diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html index 4b407c53e..708709ff1 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html @@ -79,7 +79,7 @@ + 'Common.Available4K' | translate }} @@ -105,43 +105,37 @@ - - - - + - - + - - -