Able to retrieve submission status
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
4f87298f63
commit
777682a656
24
ui/src/components/SubmissionStatus.svelte
Normal file
24
ui/src/components/SubmissionStatus.svelte
Normal 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}
|
@ -4,6 +4,7 @@
|
|||||||
import { user } from '../stores/user';
|
import { user } from '../stores/user';
|
||||||
import DateFormat from '../components/DateFormat.svelte';
|
import DateFormat from '../components/DateFormat.svelte';
|
||||||
import SurveyBadge from '../components/SurveyBadge.svelte';
|
import SurveyBadge from '../components/SurveyBadge.svelte';
|
||||||
|
import SubmissionStatus from '../components/SubmissionStatus.svelte';
|
||||||
import { getSurveys } from '../lib/surveys';
|
import { getSurveys } from '../lib/surveys';
|
||||||
import { getScore } from '../lib/users';
|
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}
|
{#if !survey.shown}<i class="bi bi-eye-slash-fill" title="Ce questionnaire n'est pas affiché aux étudiants"></i>{/if}
|
||||||
{survey.title}
|
{survey.title}
|
||||||
{#if survey.group}<span class="badge bg-secondary">{survey.group}</span>{/if}
|
{#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" />
|
<SurveyBadge {survey} class="float-end" />
|
||||||
</td>
|
</td>
|
||||||
{#if survey.startAvailability() > Date.now()}
|
{#if survey.startAvailability() > Date.now()}
|
||||||
|
@ -118,3 +118,14 @@ export async function getWork(wid) {
|
|||||||
throw new Error((await res.json()).errmsg);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
import { user } from '../../stores/user';
|
import { user } from '../../stores/user';
|
||||||
import DateFormat from '../../components/DateFormat.svelte';
|
import DateFormat from '../../components/DateFormat.svelte';
|
||||||
import SurveyBadge from '../../components/SurveyBadge.svelte';
|
import SurveyBadge from '../../components/SurveyBadge.svelte';
|
||||||
|
import SubmissionStatus from '../../components/SubmissionStatus.svelte';
|
||||||
import { getWorks } from '../../lib/works';
|
import { getWorks } from '../../lib/works';
|
||||||
import { getPromos } from '../../lib/users';
|
import { getPromos } from '../../lib/users';
|
||||||
import { getScore } 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}
|
{#if !work.shown}<i class="bi bi-eye-slash-fill" title="Ce travail n'est pas affiché aux étudiants"></i>{/if}
|
||||||
{work.title}
|
{work.title}
|
||||||
{#if work.group}<span class="badge bg-secondary">{work.group}</span>{/if}
|
{#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" />
|
<SurveyBadge survey={work} class="float-end" />
|
||||||
</td>
|
</td>
|
||||||
{#if work.startAvailability() > Date.now()}
|
{#if work.startAvailability() > Date.now()}
|
||||||
|
Reference in New Issue
Block a user