atr/templates/check-selected-candidate-forms.html (78 lines of code) (raw):

<h2>Cast your vote</h2> <div class="card bg-warning-subtle mb-3"> <div class="card-body p-3"> <i class="bi bi-exclamation-triangle me-1"></i> <strong>TODO:</strong> We plan to make "Binding" dynamic based on membership. Currently this form always says "Binding" which is known to be wrong. </div> </div> {% include "check-selected-vote-email.html" %} <form method="post" action="{{ as_url(routes.vote.selected_post, project_name=project_name, version_name=version_name) }}" class="atr-canary py-4 px-5 mb-4 border rounded"> {{ form.hidden_tag() }} <div class="row mb-3 pb-3 border-bottom"> <label class="col-md-3 col-form-label text-md-end">{{ form.vote_value.label.text }}:</label> <div class="col-md-9"> <div class="btn-group" role="group" aria-label="Vote options"> {% for subfield in form.vote_value %} {% set btn_class = "btn-outline-secondary" %} {% if subfield.data == "+1" %} {% set btn_class = "btn-outline-success" %} {% endif %} {% if subfield.data == "-1" %} {% set btn_class = "btn-outline-danger" %} {% endif %} {{ subfield(class_="btn-check", autocomplete="off") }} <label class="btn {{ btn_class }}" for="{{ subfield.id }}">{{ subfield.label.text }}</label> {% endfor %} </div> {% if form.vote_value.errors %}<div class="text-danger small mt-1">{{ form.vote_value.errors[0] }}</div>{% endif %} </div> </div> <div class="row mb-3"> <label for="{{ form.vote_comment.id }}" class="col-md-3 col-form-label text-md-end">{{ form.vote_comment.label.text }}:</label> <div class="col-md-9"> {{ form.vote_comment(class_="form-control", rows="3") }} {% if form.vote_comment.errors %} <div class="text-danger small mt-1">{{ form.vote_comment.errors[0] }}</div> {% endif %} </div> </div> <div class="row"> <div class="col-md-9 offset-md-3">{{ form.submit(class_="btn btn-primary") }}</div> </div> </form> <h2 id="resolve-vote">Resolve vote</h2> <div class="border rounded bg-warning-subtle p-3 mb-3"> <i class="bi bi-info-circle me-1"></i> <strong>NOTE:</strong> We are allowing a vote to be resolved early in order to facilitate testing. This is not the final behaviour. </div> <form method="post" action="{{ as_url(routes.resolve.selected_post, project_name=release.project.name, version_name=release.version) }}" class="atr-canary py-4 px-5" novalidate> <input type="hidden" name="candidate_name" value="{{ release.name }}" /> {{ resolve_form.csrf_token }} <div class="mb-3 pb-3 row border-bottom"> <label class="col-sm-3 col-form-label text-sm-end fw-semibold">{{ resolve_form.vote_result.label.text }}:</label> <div class="col-sm-9 pt-2"> {% for subfield in resolve_form.vote_result %} <div class="form-check form-check-inline"> {{ subfield(class="form-check-input" + (" is-invalid" if resolve_form.vote_result.errors else "") , id=subfield.id ~ "_" ~ loop.index) }} <label class="form-check-label" for="{{ subfield.id }}_{{ loop.index }}">{{ subfield.label.text }}</label> </div> {% endfor %} {% if resolve_form.vote_result.errors %} <div class="invalid-feedback d-block">{{ resolve_form.vote_result.errors[0] }}</div> {% endif %} </div> </div> <div class="row"> <label class="col-sm-3 col-form-label text-sm-end fw-semibold">{{ resolve_form.resolution_body.label.text }}:</label> <div class="col-sm-9 pt-2">{{ resolve_form.resolution_body(class_="form-control", rows="3") }}</div> </div> <div class="row"> <div class="col-sm-9 offset-sm-3">{{ resolve_form.submit(class_="btn btn-primary mt-3") }}</div> </div> </form>