mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
fix(requests): allow declined season requests to be re-requested
fixes #690
This commit is contained in:
@@ -160,7 +160,11 @@ requestRoutes.post(
|
|||||||
// (Unless there are no seasons, in which case we abort)
|
// (Unless there are no seasons, in which case we abort)
|
||||||
if (media.requests) {
|
if (media.requests) {
|
||||||
existingSeasons = media.requests
|
existingSeasons = media.requests
|
||||||
.filter((request) => request.is4k === req.body.is4k)
|
.filter(
|
||||||
|
(request) =>
|
||||||
|
request.is4k === req.body.is4k &&
|
||||||
|
request.status !== MediaRequestStatus.DECLINED
|
||||||
|
)
|
||||||
.reduce((seasons, request) => {
|
.reduce((seasons, request) => {
|
||||||
const combinedSeasons = request.seasons.map(
|
const combinedSeasons = request.seasons.map(
|
||||||
(season) => season.seasonNumber
|
(season) => season.seasonNumber
|
||||||
@@ -303,7 +307,12 @@ requestRoutes.put<{ requestId: string }>(
|
|||||||
|
|
||||||
// Get all requested seasons that are not part of this request we are editing
|
// Get all requested seasons that are not part of this request we are editing
|
||||||
const existingSeasons = media.requests
|
const existingSeasons = media.requests
|
||||||
.filter((r) => r.is4k === request.is4k && r.id !== request.id)
|
.filter(
|
||||||
|
(r) =>
|
||||||
|
r.is4k === request.is4k &&
|
||||||
|
r.id !== request.id &&
|
||||||
|
r.status !== MediaRequestStatus.DECLINED
|
||||||
|
)
|
||||||
.reduce((seasons, r) => {
|
.reduce((seasons, r) => {
|
||||||
const combinedSeasons = r.seasons.map(
|
const combinedSeasons = r.seasons.map(
|
||||||
(season) => season.seasonNumber
|
(season) => season.seasonNumber
|
||||||
|
@@ -110,7 +110,10 @@ export class MediaSubscriber implements EntitySubscriberInterface {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const request of requests) {
|
for (const request of requests) {
|
||||||
if (request.is4k === is4k) {
|
if (
|
||||||
|
request.is4k === is4k &&
|
||||||
|
request.status === MediaRequestStatus.PENDING
|
||||||
|
) {
|
||||||
request.status = MediaRequestStatus.APPROVED;
|
request.status = MediaRequestStatus.APPROVED;
|
||||||
await requestRepository.save(request);
|
await requestRepository.save(request);
|
||||||
}
|
}
|
||||||
|
@@ -169,7 +169,11 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
|
|||||||
|
|
||||||
const getAllRequestedSeasons = (): number[] => {
|
const getAllRequestedSeasons = (): number[] => {
|
||||||
const requestedSeasons = (data?.mediaInfo?.requests ?? [])
|
const requestedSeasons = (data?.mediaInfo?.requests ?? [])
|
||||||
.filter((request) => request.is4k === is4k)
|
.filter(
|
||||||
|
(request) =>
|
||||||
|
request.is4k === is4k &&
|
||||||
|
request.status !== MediaRequestStatus.DECLINED
|
||||||
|
)
|
||||||
.reduce((requestedSeasons, request) => {
|
.reduce((requestedSeasons, request) => {
|
||||||
return [
|
return [
|
||||||
...requestedSeasons,
|
...requestedSeasons,
|
||||||
@@ -255,8 +259,11 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
data?.mediaInfo &&
|
data?.mediaInfo &&
|
||||||
(data.mediaInfo.requests || []).filter((request) => request.is4k === is4k)
|
(data.mediaInfo.requests || []).filter(
|
||||||
.length > 0
|
(request) =>
|
||||||
|
request.is4k === is4k &&
|
||||||
|
request.status !== MediaRequestStatus.DECLINED
|
||||||
|
).length > 0
|
||||||
) {
|
) {
|
||||||
data.mediaInfo.requests
|
data.mediaInfo.requests
|
||||||
.filter((request) => request.is4k === is4k)
|
.filter((request) => request.is4k === is4k)
|
||||||
|
Reference in New Issue
Block a user