Refactor submission retrieval
This commit is contained in:
parent
24d39dd14e
commit
eacaedeb03
7 changed files with 175 additions and 113 deletions
|
@ -70,14 +70,6 @@
|
|||
{:else}
|
||||
{state.status}
|
||||
{/if}
|
||||
{/await}<br>
|
||||
Rendu :
|
||||
{#await repo.getSubmission()}
|
||||
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
|
||||
{:then submission}
|
||||
<strong>{submission.commit} ({submission.tag})</strong> (taille : {submission.size} o, date : <DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" />)
|
||||
{:catch}
|
||||
<strong>-</strong>
|
||||
{/await}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -88,7 +80,7 @@
|
|||
disable={submitInProgress || readonly}
|
||||
on:click={() => repo.retrieveWork().then(() => { refresh_repo_work() }, (error) => ToastsStore.addErrorToast({msg: "Une erreur s'est produite : " + error}))}
|
||||
>
|
||||
Mettre à jour
|
||||
Récupérer mon travail
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
|
|
@ -36,17 +36,6 @@ export class WorkRepository {
|
|||
}
|
||||
}
|
||||
|
||||
async getSubmission() {
|
||||
const res = await fetch(`api/repositories/${this.id}/submission`, {
|
||||
headers: {'Accept': 'application/json'}
|
||||
});
|
||||
if (res.status == 200) {
|
||||
return await res.json();
|
||||
} else {
|
||||
throw new Error((await res.json()).errmsg);
|
||||
}
|
||||
}
|
||||
|
||||
async retrieveWork() {
|
||||
const res = await fetch(`api/repositories/${this.id}/trigger`, {
|
||||
method: 'POST',
|
||||
|
|
|
@ -91,6 +91,17 @@ export class Work {
|
|||
}
|
||||
}
|
||||
|
||||
async getSubmission() {
|
||||
const res = await fetch(`api/works/${this.id}/submission`, {
|
||||
headers: {'Accept': 'application/json'}
|
||||
});
|
||||
if (res.status == 200) {
|
||||
return await res.json();
|
||||
} else {
|
||||
throw new Error((await res.json()).errmsg);
|
||||
}
|
||||
}
|
||||
|
||||
async getGrades() {
|
||||
const res = await fetch(`api/works/${this.id}/grades`, {
|
||||
method: 'GET',
|
||||
|
|
|
@ -125,11 +125,33 @@
|
|||
{/if}
|
||||
|
||||
<WorkRepository class="mb-3" readonly={w.corrected || new Date(w.end_availability) <= new Date()} work={w} />
|
||||
{#if w.submission_url}
|
||||
<p>
|
||||
<strong>État du rendu :</strong> <SubmissionStatus work={w} />
|
||||
</p>
|
||||
{/if}
|
||||
<div class="card mb-3">
|
||||
<div class="card-body d-flex justify-content-between">
|
||||
<div>
|
||||
{#if w.submission_url}
|
||||
<strong>État du rendu :</strong> <SubmissionStatus work={w} />
|
||||
{:else}
|
||||
Rendu :
|
||||
{#await w.getSubmission()}
|
||||
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
|
||||
{:then submission}
|
||||
<strong>{submission.commit} ({submission.tag})</strong> (taille : {submission.size} o, date : <DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" />)
|
||||
{:catch}
|
||||
<strong>-</strong>
|
||||
{/await}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="d-flex flex-column justify-content-center">
|
||||
<a
|
||||
href="/api/works/{w.id}/download"
|
||||
class="btn btn-sm btn-dark"
|
||||
title="Voir la tarball de mon rendu"
|
||||
>
|
||||
<i class="bi bi-download"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{#if w.corrected}
|
||||
{#await getScore(w)}
|
||||
<div class="spinner-border spinner-border-sm" role="status"></div>
|
||||
|
@ -145,9 +167,9 @@
|
|||
</div>
|
||||
{/await}
|
||||
{:else}
|
||||
<p>
|
||||
Pour être reconnu, vous devez pousser un tag <strong><a href="keys">signé</a></strong> sur votre dépôt. {#if w.tag}Le tag attendu doit commencer par : <code>{w.tag}</code>. Par exemple <code>{w.tag}v1.0</code>, <code>{w.tag}v1.1</code>, ...{/if} Seul le dernier tag <strong>alphabétique</strong> que vous envoyez avant la date du rendu sera pris en compte. Vous pouvez donc faire autant de tag que vous le souhaitez d'ici la date du rendu.
|
||||
</p>
|
||||
<div class="alert alert-warning">
|
||||
Pour être reconnu, vous devez pousser un tag <strong><a href="keys">signé</a></strong> sur votre dépôt. {#if w.tag}Le tag attendu doit commencer par : <code>{w.tag}</code>. Par exemple <code>{w.tag}v1.0</code>, <code>{w.tag}v1.1</code>, …{/if} Seul le dernier tag <strong>alphabétique</strong> que vous envoyez avant la date du rendu sera pris en compte. Vous pouvez donc faire autant de tag que vous le souhaitez d'ici la date du rendu.
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
{/await}
|
||||
|
|
Reference in a new issue