Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 85 additions & 32 deletions templates/setup.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,30 +65,79 @@ <h1 class="card-title">Interview Setup</h1>
<input type="checkbox" class="track-enable" data-track="{{ section.slug }}">
{{ section.label }}
</label>
</legend>
<div class="setup-track-body" hidden>
<div class="form-group">
<label class="form-label form-label-required" for="level-{{ section.slug }}">Difficulty level</label>
<select id="level-{{ section.slug }}" class="form-control track-level" data-track="{{ section.slug }}">
{% for lvl in section.levels %}
<option value="{{ lvl }}"{% if lvl == section.default_level %} selected{% endif %}>{{ lvl | capitalize }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<p class="form-label form-label-required">Topics</p>
<div class="setup-topic-list" data-track="{{ section.slug }}">
{% for cat in section.categories %}
<label class="setup-topic-item">
<input type="checkbox" class="topic-checkbox" value="{{ cat }}" data-track="{{ section.slug }}">
{{ cat | replace('-', ' ') | title }}
{% endfor %}
</div>
</div>
</div>

<div class="setup-wizard-step" data-wizard-step="theory" hidden>
<div class="form-group">
<p class="form-label form-label-required">Theory: question banks &amp; topics</p>
<p class="form-hint">Enable one or more tracks, pick a level per track, then select topics.</p>

{% if not track_sections %}
<p class="form-hint">No question banks found.</p>
{% endif %}

<div class="setup-track-sections" id="track-sections">
{% for section in track_sections %}
<fieldset class="setup-track-block theory-track-block" data-track="{{ section.slug }}">
<legend class="setup-track-legend">
<label class="setup-track-toggle">
<input type="checkbox" class="track-enable" data-track="{{ section.slug }}">
{{ section.label }}
</label>
{% endfor %}
</legend>
<div class="setup-track-body" hidden>
<div class="form-group">
<label class="form-label form-label-required" for="level-{{ section.slug }}">Difficulty level</label>
<select id="level-{{ section.slug }}" class="form-control track-level" data-track="{{ section.slug }}">
{% for lvl in section.levels %}
<option value="{{ lvl }}"{% if lvl == section.default_level %} selected{% endif %}>{{ lvl | capitalize }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<p class="form-label form-label-required">Topics</p>
<div class="setup-topic-list" data-track="{{ section.slug }}">
{% for cat in section.categories %}
<label class="setup-topic-item">
<input type="checkbox" class="topic-checkbox" value="{{ cat }}" data-track="{{ section.slug }}">
{{ cat | replace('-', ' ') | title }}
</label>
{% endfor %}
</div>
</div>
</div>
</div>
</fieldset>
{% endfor %}
</div>
</fieldset>
{% endfor %}
</div>

<div class="form-group">
<label for="question_count" class="form-label">Number of theory questions</label>
<input type="number" name="question_count" id="question_count"
class="form-control" value="5" min="{{ min_question_count | default(1) }}" max="20">
<p class="form-hint" id="question-count-hint">
How many questions in this session (1–20). Must be at least the number of selected topics.
</p>
</div>

<div class="form-group">
<label class="form-label">
<input type="checkbox" name="enable_question_timer" id="enable_question_timer"
value="on">
Enable per-question timer
</label>
<p class="form-hint">When time runs out, the current round scores 0 and the interview moves on.</p>
</div>

<div class="form-group" id="question-timer-minutes-group" hidden>
<label for="question_time_minutes" class="form-label">Minutes per question round</label>
<input type="number" name="question_time_minutes" id="question_time_minutes"
class="form-control" value="3" min="1" max="60">
<p class="form-hint">Applies to each main question and each AI follow-up (1–60).</p>
</div>
</div>
</div>

Expand All @@ -110,12 +159,13 @@ <h1 class="card-title">Interview Setup</h1>
<p class="form-hint">When time runs out, the current round scores 0 and the interview moves on.</p>
</div>

<div class="form-group" id="question-timer-minutes-group" hidden>
<label for="question_time_minutes" class="form-label">Minutes per question round</label>
<input type="number" name="question_time_minutes" id="question_time_minutes"
class="form-control" value="3" min="1" max="60">
<p class="form-hint">Applies to each main question and each AI follow-up (1–60).</p>
</div>
<div class="setup-wizard-step" data-wizard-step="review" hidden>
<div class="form-group">
<p class="form-label">Review your settings</p>
<p class="form-hint">Confirm everything looks right, then start the interview.</p>
<div id="setup-review-summary" class="setup-review-summary"></div>
</div>
</div>

<div class="form-group" id="coding-setup-panel" hidden>
<p class="form-label form-label-required">Coding: task banks &amp; topics</p>
Expand Down Expand Up @@ -193,11 +243,14 @@ <h1 class="card-title">Interview Setup</h1>

<div class="divider"></div>

<div class="button-group">
<button type="submit" class="btn btn-primary" id="setup-submit" disabled>Start Interview</button>
<a href="/" class="btn btn-outline">Cancel</a>
</div>
</form>
<div class="button-group setup-wizard-nav">
<button type="button" class="btn btn-outline" id="setup-wizard-back" hidden>Back</button>
<button type="button" class="btn btn-primary" id="setup-wizard-next">Next</button>
<button type="submit" class="btn btn-primary" id="setup-submit" hidden>Start Interview</button>
<a href="/" class="btn btn-outline">Cancel</a>
</div>
</form>
</div>
</div>
{% endblock %}

Expand Down
Loading