Fix #17 - filter-modules-reviews (#18)
All checks were successful
CodyOps Core Builder / build-conteiner (push) Successful in 7m49s
All checks were successful
CodyOps Core Builder / build-conteiner (push) Successful in 7m49s
Reviewed-on: #18 Co-authored-by: Luciano Giacchetta <giacchetta-@outlook.com> Co-committed-by: Luciano Giacchetta <giacchetta-@outlook.com>
This commit is contained in:
parent
71343ce56f
commit
403cc46966
@ -7,7 +7,19 @@ type Props = {
|
||||
|
||||
const { course }: Props = Astro.props;
|
||||
|
||||
const courseDurations = course.modules.flatMap((time:any) => (time.duration));
|
||||
const isDev = import.meta.env.DEV;
|
||||
const statusFilter = isDev ? { '_neq': 'archived' } : { '_eq': 'published' };
|
||||
|
||||
const filteredModules = course.modules.filter((module: any) => {
|
||||
if (statusFilter._neq) {
|
||||
return module.status !== statusFilter._neq;
|
||||
} else if (statusFilter._eq) {
|
||||
return module.status === statusFilter._eq;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
const courseDurations = filteredModules.flatMap((time:any) => (time.duration));
|
||||
const totalCourseDuration = sumTimes(courseDurations);
|
||||
---
|
||||
|
||||
@ -28,7 +40,7 @@ const totalCourseDuration = sumTimes(courseDurations);
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion accordion-btn-icon-start">
|
||||
{course.modules.map((item: any, index:number) => (
|
||||
{filteredModules.map((item: any, index:number) => (
|
||||
<div class="accordion-item">
|
||||
<div class="accordion-header" id={`headingCourse${index}`}>
|
||||
<a
|
||||
|
@ -39,7 +39,8 @@ export const courses = await directus.request(
|
||||
'duration',
|
||||
'title',
|
||||
'description',
|
||||
'video'
|
||||
'video',
|
||||
'status'
|
||||
]
|
||||
}
|
||||
],
|
||||
|
@ -1,10 +1,28 @@
|
||||
import directus from "./directus";
|
||||
import { readItems } from "@directus/sdk";
|
||||
import { readItems, type Query } from "@directus/sdk";
|
||||
import type { DirectusSchema, Review } from "../types/codyops-reviews";
|
||||
|
||||
const isDev = import.meta.env.DEV; // Astro's way to check for development mode
|
||||
|
||||
export const reviews = await directus.request(
|
||||
readItems("codyops_reviews", {
|
||||
fields: ['*', 'user_created.*']
|
||||
}
|
||||
readItems<DirectusSchema, 'codyops_reviews', Query<DirectusSchema, Review>>("codyops_reviews", {
|
||||
fields: [
|
||||
'stars',
|
||||
'date_created',
|
||||
'course_id',
|
||||
'feedback',
|
||||
{
|
||||
user_created: [
|
||||
'first_name',
|
||||
'last_name',
|
||||
'avatar'
|
||||
]
|
||||
},
|
||||
],
|
||||
filter: {
|
||||
status: isDev ? { '_neq': 'archived' } : { '_eq': 'published' }
|
||||
},
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
|
17
src/types/codyops-reviews.ts
Normal file
17
src/types/codyops-reviews.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import type { Users } from "./codyops-users";
|
||||
|
||||
export interface Review {
|
||||
slug: string;
|
||||
status: string;
|
||||
user_created?: Partial<Users>;
|
||||
user_updated: string | null;
|
||||
date_created: string | null;
|
||||
date_updated: string | null;
|
||||
stars: number;
|
||||
course_id: number;
|
||||
feedback: string;
|
||||
}
|
||||
|
||||
export interface DirectusSchema {
|
||||
codyops_reviews: Review[];
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user