Skip to content

Commit

Permalink
fix: some qualification exam feature issues
Browse files Browse the repository at this point in the history
Signed-off-by: Alexander Trost <[email protected]>
  • Loading branch information
galexrt committed May 29, 2024
1 parent 8d94bad commit 30e7474
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 20 deletions.
2 changes: 1 addition & 1 deletion gen/go/proto/services/qualifications/exam.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ func (s *Server) TakeExam(ctx context.Context, req *TakeExamRequest) (*TakeExamR
}

var exam *qualifications.ExamQuestions
if examUser.EndsAt != nil && time.Since(examUser.EndsAt.AsTime()) > quali.ExamSettings.Time.AsDuration() {
if examUser.EndsAt != nil && time.Since(examUser.EndsAt.AsTime()) < quali.ExamSettings.Time.AsDuration() {
exam, err = s.getExamQuestions(ctx, req.QualificationId, false)
if err != nil {
return nil, errswrap.NewError(err, errorsqualifications.ErrFailedQuery)
Expand Down
49 changes: 33 additions & 16 deletions src/components/qualifications/exam/ExamView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -77,36 +77,53 @@ watch(data, async () => {
/>

<ExamViewQuestions
v-else-if="exam && data?.qualification && data?.user && examUser?.endsAt"
v-else-if="exam && exam.questions.length && data?.qualification && data?.user && examUser?.endsAt"
:qualification-id="qualificationId"
:exam="exam"
:exam-user="data.user"
:qualification="data.qualification"
/>
<UCard v-else>
<template #header>
<div class="flex gap-2">
<UBadge v-if="data?.qualification?.examSettings?.time" class="inline-flex gap-1">
<UIcon name="i-mdi-clock" class="size-4" />
{{ $t('common.duration') }}: {{ fromDuration(data.qualification.examSettings.time) }}
</UBadge>
<UBadge class="inline-flex gap-1">
<UIcon name="i-mdi-question-mark" class="size-4" />
{{ $t('common.count') }}: {{ data?.questionCount }} {{ $t('common.question', data?.questionCount ?? 1) }}
</UBadge>
</div>
</template>
<template v-else>
<UDashboardToolbar>
<template #default>
<div class="flex justify-between gap-2">
<div class="flex gap-2">
<UBadge v-if="data?.qualification?.examSettings?.time" class="inline-flex gap-1">
<UIcon name="i-mdi-clock" class="size-4" />
{{ $t('common.duration') }}: {{ fromDuration(data.qualification.examSettings.time) }}
</UBadge>
<UBadge class="inline-flex gap-1">
<UIcon name="i-mdi-question-mark" class="size-4" />
{{ $t('common.count') }}: {{ data?.questionCount }}
{{ $t('common.question', data?.questionCount ?? 1) }}
</UBadge>
</div>
<div class="flex gap-2">
<UBadge v-if="data.user?.startedAt">
{{ $t('common.begins_at') }}
{{ $d(toDate(data.user?.startedAt), 'long') }}
</UBadge>
<UBadge v-if="data?.user?.endsAt">
{{ $t('common.ends_at') }}
{{ $d(toDate(data?.user?.endsAt), 'long') }}
</UBadge>
</div>
</div>
</template>
</UDashboardToolbar>
<UButton
v-if="!data?.user || !data.user.endedAt"
v-if="!data?.user"
size="xl"
color="gray"
icon="i-mdi-play"
:disabled="!data?.user?.endedAt"
block
class="w-full"
@click="takeExam(false)"
>
{{ $t('components.qualifications.take_test') }}
</UButton>
</UCard>
</template>
</template>
7 changes: 4 additions & 3 deletions src/components/qualifications/exam/ExamViewQuestions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ const schema = z.object({
type Schema = z.output<typeof schema>;
const disabled = ref(false);
const endsAtTime = toDate(props.examUser.endsAt).getTime();
const now = new Date().getTime();
const state = useState<Schema>('qualifications-exam-responses', () => ({
responses: [],
}));
Expand Down Expand Up @@ -143,9 +147,6 @@ onBeforeMount(() =>
const form = ref<InstanceType<typeof UForm> | null>(null);
const endsAtTime = toDate(props.examUser.endsAt).getTime();
const now = new Date().getTime();
if (!props.responses) {
useIntervalFn(async () => {
if (endsAtTime - now < 0) {
Expand Down

0 comments on commit 30e7474

Please sign in to comment.