Simplify rating form:
- Create a snippet to regroup similar code. - Reduce and document tricky logic of CSS. - Add i18n strings.
This commit is contained in:
54
bookwyrm/templates/snippets/form_rate_stars.html
Normal file
54
bookwyrm/templates/snippets/form_rate_stars.html
Normal file
@ -0,0 +1,54 @@
|
||||
{% spaceless %}
|
||||
{% load i18n %}
|
||||
{% load bookwyrm_tags %}
|
||||
|
||||
<div class="
|
||||
field is-grouped
|
||||
stars form-rate-stars
|
||||
{% if classes %}{{classes}}{% endif%}
|
||||
">
|
||||
<input
|
||||
id="{{ type|slugify }}-{{ book.id }}-no-rating"
|
||||
class="is-sr-only"
|
||||
type="radio"
|
||||
name="rating"
|
||||
value="0"
|
||||
{% if book|user_rating:user == 0 %}checked{% endif %}
|
||||
>
|
||||
|
||||
<label class="is-sr-only" for="{{ type|slugify }}-{{ book.id }}-no-rating">
|
||||
{% trans "No rating" %}
|
||||
</label>
|
||||
|
||||
{% for i in '12345'|make_list %}
|
||||
<input
|
||||
id="{{ type|slugify }}-book{{ book.id }}-star-{{ forloop.counter }}"
|
||||
class="is-sr-only"
|
||||
type="radio"
|
||||
name="rating"
|
||||
value="{{ forloop.counter }}"
|
||||
{% if book|user_rating:user == forloop.counter %}checked{% endif %}
|
||||
/>
|
||||
|
||||
<label
|
||||
class="
|
||||
icon
|
||||
{% if forloop.counter <= book|user_rating:user %}
|
||||
icon-star-full
|
||||
{% else %}
|
||||
icon-star-empty
|
||||
{% endif %}
|
||||
"
|
||||
for="{{ type|slugify }}-book{{ book.id }}-star-{{ forloop.counter }}"
|
||||
>
|
||||
<span class="is-sr-only">
|
||||
{% blocktranslate trimmed count rating=forloop.counter %}
|
||||
{{ rating }} star
|
||||
{% plural %}
|
||||
{{ rating }} stars
|
||||
{% endblocktranslate %}
|
||||
</span>
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endspaceless %}
|
Reference in New Issue
Block a user