Fix #15 - filter-courses-by-status (#16)

Reviewed-on: #16
Co-authored-by: Luciano Giacchetta <giacchetta-@outlook.com>
Co-committed-by: Luciano Giacchetta <giacchetta-@outlook.com>
This commit is contained in:
Luciano Giacchetta 2025-08-21 17:50:16 -03:00 committed by Luciano Giacchetta
parent 99cc3c4359
commit 71343ce56f
7 changed files with 33 additions and 19 deletions

View File

@ -16,10 +16,10 @@ const tier_one = getPrices('price_tier_one',import.meta.env.ASTRO_CURRENCY.toLow
<figure class="figure"> <figure class="figure">
<Image <Image
class="card-img" class="card-img"
src={`${import.meta.env.ASTRO_DIRECTUS_API}/assets/${course.image}`} src={`${import.meta.env.ASTRO_ASSETS}/${course.image}`}
alt="Image Description" alt={`${course.name} Image Description`}
width=-1 width={325}
height=-1 height={455}
/> />
</figure> </figure>
</a> </a>

View File

@ -19,12 +19,12 @@ const { course }: Props = Astro.props;
<div class="d-flex align-items-center flex-wrap"> <div class="d-flex align-items-center flex-wrap">
<div class="d-flex align-items-center me-4"> <div class="d-flex align-items-center me-4">
<div class="flex-shrink-0 avatar-group avatar-group-xs"> <div class="flex-shrink-0 avatar-group avatar-group-xs">
{course?.image && ( {course.user_created.avatar && (
<figure class="avatar avatar-xs avatar-circle"> <figure class="avatar avatar-xs avatar-circle">
<Image <Image
class="avatar-img" class="avatar-img"
src={`${import.meta.env.ASTRO_DIRECTUS_API}/assets/${course.user_created.avatar}`} src={`${import.meta.env.ASTRO_ASSETS}/${course.user_created.avatar}`}
alt="Course Image" alt={`${course.user_created.first_name} Avatar`}
width={40} width={40}
height={40} height={40}
/> />

View File

@ -71,10 +71,10 @@ const getOverallRating = (reviews: any) => {
<div class="flex-shrink-0"> <div class="flex-shrink-0">
<Image <Image
class="avatar avatar-sm avatar-circle" class="avatar avatar-sm avatar-circle"
src={`${import.meta.env.ASTRO_DIRECTUS_API}/assets/${review.user_created.avatar}`} src={`${import.meta.env.ASTRO_ASSETS}/${review.user_created.avatar}`}
alt="Image Description" alt={`${review.user_created.avatar} Avatar`}
width="50" width={50}
height="50" height={50}
/> />
</div> </div>

View File

@ -11,8 +11,8 @@ const { post }: Props = Astro.props;
<figure class="shape-container"> <figure class="shape-container">
<Image <Image
class="card-img img-fluid" class="card-img img-fluid"
src={`${import.meta.env.ASTRO_DIRECTUS_API}/assets/${post.cover_image}`} src={`${import.meta.env.ASTRO_ASSETS}/${post.cover_image}`}
alt="Image placeholder" alt={`${post.title} Image`}
inferSize={true} inferSize={true}
/> />
<div class="shape shape-bottom zi-1" style="margin-bottom: -0.25rem"> <div class="shape shape-bottom zi-1" style="margin-bottom: -0.25rem">

View File

@ -12,8 +12,8 @@ const { post }: Props = Astro.props;
<figure class="shape-container overflow-hidden" style="height: 100%"> <figure class="shape-container overflow-hidden" style="height: 100%">
<Image <Image
class="card-img" class="card-img"
src={`${import.meta.env.ASTRO_DIRECTUS_API}/assets/${post.cover_image}`} src={`${import.meta.env.ASTRO_ASSETS}/${post.cover_image}`}
alt="Image placeholder" alt={`${post.title} Image`}
style="height: 100%" style="height: 100%"
inferSize={true} inferSize={true}
/> />

View File

@ -2,10 +2,20 @@ import directus from "./directus";
import { readItems, type Query } from "@directus/sdk"; import { readItems, type Query } from "@directus/sdk";
import type { CodyopsCourses, Courses } from "../types/codyops-courses"; import type { CodyopsCourses, Courses } from "../types/codyops-courses";
const isDev = import.meta.env.DEV; // Astro's way to check for development mode
export const courses = await directus.request( export const courses = await directus.request(
readItems<CodyopsCourses, 'codyops_courses', Query<CodyopsCourses, Courses>>("codyops_courses", { readItems<CodyopsCourses, 'codyops_courses', Query<CodyopsCourses, Courses>>("codyops_courses", {
fields: [ fields: [
'*', 'id',
'name',
'level',
'category',
'cloud',
'image',
'description',
'features',
'status',
{ {
codyops_careers: [ codyops_careers: [
{ {
@ -32,7 +42,11 @@ export const courses = await directus.request(
'video' 'video'
] ]
} }
]} ],
filter: {
status: isDev ? { '_neq': 'archived' } : { '_eq': 'published' }
},
}
) )
); );

View File

@ -26,8 +26,8 @@ const { post } = Astro.props;
<h1 class="h2 text-white text-center">{post.title}</h1><br> <h1 class="h2 text-white text-center">{post.title}</h1><br>
<Image <Image
class="card-img" class="card-img"
src={`${import.meta.env.ASTRO_DIRECTUS_API}/assets/${post.cover_image}`} src={`${import.meta.env.ASTRO_ASSETS}/${post.cover_image}`}
alt="Image placeholder" alt={`${post.title} Image`}
inferSize={true} inferSize={true}
/> />
<div class="container content-space-1"> <div class="container content-space-1">