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 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()}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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()}
|
||||
|
Reference in New Issue
Block a user