forked from retoor/devplacepy
Add `_alt_from_url` helper in Python rendering and `altFromUrl` in JS ContentRenderer to generate descriptive alt attributes from image filenames, replacing empty alt strings. Update image embed templates and Avatar component to use derived alt text. Migrate inline `style.width` assignments to CSS custom properties (`--poll-pct`, `--hud-xp`, `--quest-pct`, `--bar-pct`, `--quota-pct`) across PollManager, GameFarm, and profile/quest CSS for better maintainability. Introduce new admin, docs, projects, services, and base CSS utility classes. Add "Code Farm" docs page entry.
19 lines
1.1 KiB
HTML
19 lines
1.1 KiB
HTML
{% if _poll %}
|
|
<div class="poll" data-poll-uid="{{ _poll.uid }}">
|
|
<div class="poll-question">{{ render_title(_poll.question) }}</div>
|
|
<div class="poll-options" role="group" aria-label="Poll options">
|
|
{% for opt in _poll.options %}
|
|
<button type="button" class="poll-option{% if _poll.my_choice == opt.uid %} chosen{% endif %}" data-option-uid="{{ opt.uid }}" aria-pressed="{% if _poll.my_choice == opt.uid %}true{% else %}false{% endif %}"{{ guest_disabled(user) }}>
|
|
<span class="poll-option-bar" style="--poll-pct: {{ opt.pct }}%;"></span>
|
|
<span class="poll-option-label">{{ render_title(opt.label) }}</span>
|
|
<span class="poll-option-meta">
|
|
<span class="poll-option-check" aria-hidden="true"{% if _poll.my_choice != opt.uid %} hidden{% endif %}>✓</span>
|
|
<span class="poll-option-pct">{{ opt.pct }}%</span>
|
|
</span>
|
|
</button>
|
|
{% endfor %}
|
|
</div>
|
|
<div class="poll-total">{{ _poll.total }} vote{% if _poll.total != 1 %}s{% endif %}{% if not user %} · Log in to vote{% endif %}</div>
|
|
</div>
|
|
{% endif %}
|