Can have a work without submission

This commit is contained in:
nemunaire 2022-09-05 10:16:25 +02:00
parent 8b0043dc8d
commit 0079901311
2 changed files with 76 additions and 57 deletions

View File

@ -9,16 +9,26 @@
export let work = null; export let work = null;
</script> </script>
{#if work.submission_url} {#if work.submission_url == '-'}
<!-- Display nothing -->
{:else if work.submission_url}
{#await getUserRendu(work.submission_url, $user)} {#await getUserRendu(work.submission_url, $user)}
<div class="spinner-border spinner-border-sm" role="status"></div> <div class="spinner-border spinner-border-sm" role="status"></div>
{:then rendu} {:then rendu}
{#if rendu === null} {#if rendu === null}
<i class="bi text-danger bi-exclamation-circle-fill" title="Rendu non réceptionné"></i> <i class="bi text-danger bi-exclamation-circle-fill" title="Rendu non réceptionné"></i>
{:else} {:else}
<i class="bi text-success bi-check" title={"Rendu effectué : " + JSON.stringify(rendu)}></i> <i class="bi text-success bi-check-circle-fill" title={"Rendu effectué : " + JSON.stringify(rendu)}></i>
{/if} {/if}
{:catch error} {:catch error}
<i class="bi text-warning bi-exclamation-triangle-fill" title={error}></i> <i class="bi text-warning bi-exclamation-triangle-fill" title={error}></i>
{/await} {/await}
{:else}
{#await work.getSubmission()}
<div class="spinner-border spinner-border-sm" role="status"></div>
{:then submission}
<i class="bi text-success bi-check-circle-fill" title={"Rendu effectué : " + JSON.stringify(submission)}></i>
{:catch error}
<i class="bi text-warning bi-exclamation-triangle-fill" title={error}></i>
{/await}
{/if} {/if}

View File

@ -104,28 +104,30 @@
<dd><DateFormat date={new Date(w.start_availability)} dateStyle="medium" timeStyle="medium" /></dd> <dd><DateFormat date={new Date(w.start_availability)} dateStyle="medium" timeStyle="medium" /></dd>
<dt>Date de fin</dt> <dt>Date de fin</dt>
<dd><DateFormat date={new Date(w.end_availability)} dateStyle="medium" timeStyle="medium" /></dd> <dd><DateFormat date={new Date(w.end_availability)} dateStyle="medium" timeStyle="medium" /></dd>
<dt>Rendu&nbsp;?</dt> {#if w.submission_url != "-"}
<dd> <dt>Rendu&nbsp;?</dt>
{#if w.submission_url} <dd>
<SubmissionStatus work={w} /> {#if w.submission_url}
{:else} <SubmissionStatus work={w} />
{#await my_submission} {:else}
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div> {#await my_submission}
{:then submission} <div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
<i {:then submission}
class="bi bi-check-circle text-success" <i
title="Oui !" class="bi bi-check-circle text-success"
></i> title="Oui !"
<DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" /> ></i>
{:catch} <DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" />
<i {:catch}
class="bi bi-x-circle text-danger" <i
title="Pas de rendu trouvé" class="bi bi-x-circle text-danger"
></i> title="Pas de rendu trouvé"
Non ></i>
{/await} Non
{/if} {/await}
</dd> {/if}
</dd>
{/if}
</dl> </dl>
{#if w.description} {#if w.description}
<hr> <hr>
@ -136,7 +138,7 @@
<h3 class="mt-3">Rendu</h3> <h3 class="mt-3">Rendu</h3>
{#if !w.corrected} {#if !w.corrected && w.submission_url != "-"}
<p> <p>
Pour rendre votre travail, vous devez préalablement créer un dépôt Git sur la <a href="https://gitlab.cri.epita.fr/" target="_blank">forge de l'école</a>.<br>Ce dépôt DOIT&nbsp;: Pour rendre votre travail, vous devez préalablement créer un dépôt Git sur la <a href="https://gitlab.cri.epita.fr/" target="_blank">forge de l'école</a>.<br>Ce dépôt DOIT&nbsp;:
</p> </p>
@ -155,41 +157,44 @@
{/if} {/if}
{/if} {/if}
<WorkRepository class="mb-3" readonly={w.corrected || new Date(w.end_availability) <= new Date()} work={w} on:update_submission={() => refresh_submission(w)} /> {#if w.submission_url != "-"}
<div class="card mb-3"> <WorkRepository class="mb-3" readonly={w.corrected || new Date(w.end_availability) <= new Date()} work={w} on:update_submission={() => refresh_submission(w)} />
<div class="card-body d-flex justify-content-between"> <div class="card mb-3">
<div> <div class="card-body d-flex justify-content-between">
{#if w.submission_url} <div>
<strong>État du rendu&nbsp;:</strong> <SubmissionStatus work={w} /> {#if w.submission_url}
{:else} <strong>État du rendu&nbsp;:</strong> <SubmissionStatus work={w} />
Rendu&nbsp;: {:else}
{#await my_submission} Rendu&nbsp;:
<div class="spinner-grow spinner-grow-sm mx-1" role="status"></div> {#await my_submission}
{:then submission} <div class="spinner-grow spinner-grow-sm mx-1" role="status"></div>
<strong>{submission.commit} ({submission.tag})</strong> (taille&nbsp;: {submission.size}&nbsp;o, date&nbsp;: <DateFormat date={new Date(submission.date)} dateStyle="medium" timeStyle="medium" />) {:then submission}
<strong>{submission.commit} ({submission.tag})</strong> (taille&nbsp;: {submission.size}&nbsp;o, date&nbsp;: <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">
{#await my_submission then submission}
<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>
{:catch} {:catch}
<strong>-</strong> <i
class="bi bi-x-circle text-danger"
title="Pas de rendu trouvé"
></i>
{/await} {/await}
{/if} </div>
</div>
<div class="d-flex flex-column justify-content-center">
{#await my_submission then submission}
<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>
{:catch}
<i
class="bi bi-x-circle text-danger"
title="Pas de rendu trouvé"
></i>
{/await}
</div> </div>
</div> </div>
</div> {/if}
{#if w.corrected} {#if w.corrected}
{#await getScore(w)} {#await getScore(w)}
<div class="spinner-border spinner-border-sm" role="status"></div> <div class="spinner-border spinner-border-sm" role="status"></div>
@ -204,10 +209,14 @@
<strong>{error.message}</strong> <strong>{error.message}</strong>
</div> </div>
{/await} {/await}
{:else} {:else if w.submission_url != "-"}
<div class="alert alert-warning"> <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&nbsp;: <code>{w.tag}</code>. Par exemple <code>{w.tag}v1.0</code>, <code>{w.tag}v1.1</code>, &hellip;{/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. 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&nbsp;: <code>{w.tag}</code>. Par exemple <code>{w.tag}v1.0</code>, <code>{w.tag}v1.1</code>, &hellip;{/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> </div>
{:else}
<div class="alert alert-primary">
Ce travail n'a pas de modalité de rendu.
</div>
{/if} {/if}
{/if} {/if}
{/await} {/await}