Able to retrieve submission status
continuous-integration/drone/push Build is passing Details

This commit is contained in:
nemunaire 2022-07-08 14:02:45 +02:00
parent 4f87298f63
commit 777682a656
4 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,24 @@
<script>
import { user } from '../stores/user';
import DateFormat from '../components/DateFormat.svelte';
import { getUserRendu } from '../lib/works';
let className = '';
export { className as class };
export let work = null;
</script>
{#if work.submission_url}
{#await getUserRendu(work.submission_url, $user)}
<div class="spinner-border spinner-border-sm" role="status"></div>
{:then rendu}
<i class="bi text-success bi-check" title={"Rendu effectué : " + JSON.stringify(rendu)}></i>
{:catch error}
{#if error === null}
<i class="bi text-danger bi-exclamation-circle-fill" title="Rendu non réceptionné"></i>
{:else}
<i class="bi text-warning bi-exclamation-triangle-fill" title={error}></i>
{/if}
{/await}
{/if}

View File

@ -4,6 +4,7 @@
import { user } from '../stores/user';
import DateFormat from '../components/DateFormat.svelte';
import SurveyBadge from '../components/SurveyBadge.svelte';
import SubmissionStatus from '../components/SubmissionStatus.svelte';
import { getSurveys } from '../lib/surveys';
import { getScore } from '../lib/users';
@ -66,6 +67,9 @@
{#if !survey.shown}<i class="bi bi-eye-slash-fill" title="Ce questionnaire n'est pas affiché aux étudiants"></i>{/if}
{survey.title}
{#if survey.group}<span class="badge bg-secondary">{survey.group}</span>{/if}
{#if survey.kind === "w" && survey.startAvailability() < Date.now()}
<SubmissionStatus work={survey} />
{/if}
<SurveyBadge {survey} class="float-end" />
</td>
{#if survey.startAvailability() > Date.now()}

View File

@ -118,3 +118,14 @@ export async function getWork(wid) {
throw new Error((await res.json()).errmsg);
}
}
export async function getUserRendu(baseurl, user) {
const res = await fetch(baseurl.replace("%l", user.login).replace("%i", user.id))
if (res.status == 200) {
return await res.json();
} else if (res.status == 404) {
return await res.json();
} else {
throw new Error((await res.json()).errmsg);
}
}

View File

@ -4,6 +4,7 @@
import { user } from '../../stores/user';
import DateFormat from '../../components/DateFormat.svelte';
import SurveyBadge from '../../components/SurveyBadge.svelte';
import SubmissionStatus from '../../components/SubmissionStatus.svelte';
import { getWorks } from '../../lib/works';
import { getPromos } from '../../lib/users';
import { getScore } from '../../lib/users';
@ -61,6 +62,9 @@
{#if !work.shown}<i class="bi bi-eye-slash-fill" title="Ce travail n'est pas affiché aux étudiants"></i>{/if}
{work.title}
{#if work.group}<span class="badge bg-secondary">{work.group}</span>{/if}
{#if work.startAvailability() < Date.now()}
<SubmissionStatus {work} />
{/if}
<SurveyBadge survey={work} class="float-end" />
</td>
{#if work.startAvailability() > Date.now()}