Skip to content

Commit 9eff8ab

Browse files
committed
Merge branch 'dev'
2 parents 9b18458 + 04f437f commit 9eff8ab

File tree

4 files changed

+30
-32
lines changed

4 files changed

+30
-32
lines changed

composables/inputs/courses.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { FormInput } from "@open-xamu-co/ui-common-helpers";
22
import { eFormType } from "@open-xamu-co/ui-common-enums";
33

44
import type { Course } from "~/resources/types/entities";
5-
import { eSIALevel, type uSIAFaculty, type uSIAProgram } from "~/functions/src/types/SIA";
5+
import { eSIALevel, type uSIAFaculty } from "~/functions/src/types/SIA";
66

77
export function useCourseInputs(course: Course = {}): FormInput[] {
88
const SESSION = useSessionStore();
@@ -33,6 +33,10 @@ export function useCourseInputs(course: Course = {}): FormInput[] {
3333
const unwatch = watch(
3434
programs,
3535
(newPrograms) => {
36+
if (fixCourse) {
37+
newPrograms.unshift({ value: "", alias: "CUALQUIERA" });
38+
}
39+
3640
// set first program as value
3741
programInput.options = newPrograms;
3842
programInput.values = [newPrograms[0].value as any];
@@ -45,19 +49,19 @@ export function useCourseInputs(course: Course = {}): FormInput[] {
4549
selectedFaculty.value = newFaculty;
4650
}
4751
);
52+
53+
if (fixCourse) {
54+
programs.value.unshift({ value: "", alias: "CUALQUIERA" });
55+
}
56+
4857
const programInput = new FormInput({
49-
values: [
50-
course?.program || fixCourse
51-
? <uSIAProgram>programs.value[0].value
52-
: SESSION.lastProgramSearch,
53-
],
58+
values: [fixCourse ? "" : course?.program || SESSION.lastProgramSearch],
5459
name: "program",
5560
title: "Programa del curso (Sede Bogotá)",
5661
placeholder: "Ej: Ciencias de la computación",
5762
options: programs.value,
5863
type: eFormType.SELECT,
5964
icon: "chess-rook",
60-
required: fixCourse,
6165
});
6266

6367
const inputs: FormInput[] = [

composables/store/session.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ export const useSessionStore = defineStore("session", {
8383
},
8484
canDevelop({ user }) {
8585
const role = user?.role ?? 3;
86+
const { production } = useRuntimeConfig().public;
8687

87-
return role < 0;
88+
return role < 0 || !production;
8889
},
8990
},
9091
actions: {

pages/administrar/registros.vue

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
<script setup lang="ts">
4141
import type { iGetPage, iPage } from "@open-xamu-co/ui-common-types";
4242
43-
import type { Log } from "~/resources/types/entities";
43+
import type { CourseLog } from "~/resources/types/entities";
4444
4545
/**
4646
* Developer logs page
@@ -52,14 +52,11 @@
5252
middleware: ["can-develop"],
5353
});
5454
55-
function mapLog({ createdBy, updatedBy, ...log }: Log) {
56-
return {
57-
...log,
58-
createdBy,
59-
};
55+
function mapLog({ createdBy, updatedBy, course, ...log }: CourseLog) {
56+
return { ...log, course, createdBy };
6057
}
6158
62-
const logsPage: iGetPage<Log> = (pagination) => {
63-
return useFetchQuery<iPage<Log> | undefined>("/api/all/logs", pagination);
59+
const logsPage: iGetPage<CourseLog> = (pagination) => {
60+
return useFetchQuery<iPage<CourseLog> | undefined>("/api/all/logs", pagination);
6461
};
6562
</script>

pages/cursos/[courseId].vue

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
<XamuIconFa name="bell" :size="20" />
6969
</XamuActionButtonToggle>
7070
<XamuModal
71-
v-if="withScrapingErrors"
71+
v-if="withScrapingErrors || SESSION.canDevelop"
7272
key="fix-course"
7373
class="--txtColor"
7474
title="Corregir curso mal indexado"
@@ -288,6 +288,7 @@
288288
const Swal = useSwal();
289289
const { $clientFirestore } = useNuxtApp();
290290
const { getResponse } = useFormInput();
291+
const { debugScrapper } = useRuntimeConfig().public;
291292
292293
const estudiantesTheme = "estudiantes" as any;
293294
const scraping = ref(false);
@@ -531,26 +532,21 @@
531532
if (!course.value) return { data: null };
532533
533534
try {
534-
// Update course, do not await
535-
useDocumentUpdate<Course>(course.value, {
535+
const updatedCourse = {
536536
typologies: typology ? [typology] : deleteField(),
537537
faculty,
538538
faculties: [faculty],
539-
programs: [program],
540-
});
539+
programs: program ? [program] : deleteField(),
540+
};
541541
542-
const minutes = APP.instance?.config?.coursesScrapeRate || 5;
543-
const nowMilis = new Date().getTime();
544-
const scrapedAtMilis = new Date(course.value.scrapedAt || "").getTime();
545-
const scrapedDiffMilis = nowMilis - scrapedAtMilis;
542+
if (debugScrapper) console.debug("Updated course", updatedCourse);
546543
547-
// Do once & update if updated more than threshold
548-
if (scrapedDiffMilis < useMinMilis(minutes)) {
549-
if (course.value.description) return { data: false };
550-
}
551-
552-
// Atemp course scraping
553-
await scrapeCourse(course.value);
544+
// Update course, do not await
545+
useDocumentUpdate<Course>(course.value, updatedCourse);
546+
setTimeout(() => {
547+
// Atemp course scraping, do not await
548+
scrapeCourse(course.value!);
549+
}, 30 * 1000);
554550
555551
return { data: true };
556552
} catch (errors: FirebaseError | unknown) {

0 commit comments

Comments
 (0)