diff --git a/assets/components/settings/filters.vue b/assets/components/settings/filters.vue index bd407b1ca..272e10ced 100644 --- a/assets/components/settings/filters.vue +++ b/assets/components/settings/filters.vue @@ -42,7 +42,7 @@ export default { }, data() { return { - tags: ['anal', 'gay', 'transsexual', 'bisexual', 'pissing', 'anal prolapse'], + tags: ['gay', 'transsexual', 'bisexual', 'anal', 'anal prolapse', 'pissing'], }; }, computed: { diff --git a/assets/js/fragments.js b/assets/js/fragments.js index 8ffe9dba3..3b3ee866a 100755 --- a/assets/js/fragments.js +++ b/assets/js/fragments.js @@ -425,10 +425,9 @@ const releasesFragment = ` releasesTagsConnection: { none: { tag: { - or: [ - { slug: { in: $exclude } } - { name: { in: $exclude } } - ] + slug: { + in: $exclude + } } } } @@ -444,6 +443,40 @@ const releasesFragment = ` } `; +// unused due performance +const releasesShowcasedFragment = ` + connection: releasesShowcasedsConnection( + filter: { + release: { + date: { + lessThan: $before, + greaterThan: $after + } + releasesTagsConnection: { + none: { + tag: { + or: [ + { slug: { in: $exclude } } + { name: { in: $exclude } } + ] + } + } + } + } + }, + first: $limit, + offset: $offset, + orderBy: $orderBy + ) { + releases: nodes { + release { + ${releaseFields} + } + } + totalCount + } +`; + const mediaFields = ` id index @@ -680,6 +713,7 @@ export { releasePhotosFragment, releaseTrailerFragment, releasesFragment, + releasesShowcasedFragment, releaseFragment, siteFragment, sitesFragment, diff --git a/migrations/20230104014437_release_showcased.js b/migrations/20230104014437_release_showcased.js index 0477ab915..d23000a25 100644 --- a/migrations/20230104014437_release_showcased.js +++ b/migrations/20230104014437_release_showcased.js @@ -3,10 +3,12 @@ const config = require('config'); exports.up = async (knex) => knex.raw(` CREATE VIEW releases_not_showcased AS ( SELECT releases.id AS release_id FROM releases - LEFT JOIN entities ON entities.id = releases.entity_id + LEFT JOIN entities AS channels ON channels.id = releases.entity_id LEFT JOIN entities AS studios ON studios.id = releases.studio_id - WHERE entities.showcased = false - OR studios.showcased = false + LEFT JOIN entities AS networks ON networks .id = entities.parent_id + WHERE (studios.showcased = false) + OR (channel.showcased = false AND studios.showcased IS NOT true) + OR (network.showcased = false AND channel.showcased IS NOT true AND studios.showcased IS NOT true) ); COMMENT ON VIEW releases_not_showcased IS E'@foreignKey (release_id) references releases (id)'; diff --git a/seeds/01_networks.js b/seeds/01_networks.js index 474dbfc1e..0e983dccd 100755 --- a/seeds/01_networks.js +++ b/seeds/01_networks.js @@ -687,7 +687,7 @@ exports.seed = (knex) => Promise.resolve() url: network.url, description: network.description, has_logo: network.hasLogo, - showcased: network.showcased, + showcased: typeof network.showcased === 'boolean' ? network.showcased : true, parameters: network.parameters, parent_id: grandParentNetworksBySlug[network.parent] || null, })); @@ -703,7 +703,7 @@ exports.seed = (knex) => Promise.resolve() url: network.url, description: network.description, has_logo: network.hasLogo, - showcased: network.showcased, + showcased: typeof network.showcased === 'boolean' ? network.showcased : true, parameters: network.parameters, parent_id: parentNetworksBySlug[network.parent] || grandParentNetworksBySlug[network.parent] || null, }));