SciTeX Cards
v{{ scitex_cards_version }} {% if board.project %} Project{{ board.project }}
{% else %}
No project selected
{% endif %}
Card created: {{ created_id }}
Card updated: {{ updated_id }}
{{ create_error }}
{% endif %} {% if board.state == "ready" or board.state == "empty" %} {% comment %} CREATE. Plain form controls, keyboard-first, no drag and nothing that needs JavaScript — "accessible non-drag alternatives" is the product requirement, and a server-rendered form satisfies it by construction rather than by adding an alternative beside a drag-only control. NO {% templatetag openblock %} csrf_token {% templatetag closeblock %} HERE ON PURPOSE, and it is a stated gap rather than an oversight: this app's settings install no CsrfViewMiddleware, so no cookie would ever be set and a token that cannot be validated would break the form outright. Writes on this board therefore inherit the same stance as the existing DM POST endpoints (csrf-exempt). Flagged to the package owner as a decision for the write surface rather than silently assumed safe; the page is loopback-only by default and behind the hub's auth + Cloudflare Access when exposed. {% endcomment %} {% endif %} {% if board.state == "no-project" %}Choose a project
A project board shows the cards of one project. Pick one above to open it. {% if not board.projects %} You have no cards in any project yet, so there is nothing to pick. {% endif %}
No access to this project
This project is not one you can open, so no cards from it are shown. {% if board.projects %}Pick one of your own projects above.{% endif %}
The card store could not be read
This is a temporary failure between this page and the store — not a problem with your projects. Try again; if it keeps failing, the deployment's store needs attention.
RetryNo cards in {{ board.project }}
This project has no cards yet. Create the first one below.
No cards match these filters
{{ board.project }} has {{ board.project_total }} card{{ board.project_total|pluralize }}, none of which match the filters above. The board is not empty — the filters are.
Clear filtersshowing {{ board.shown_from }}–{{ board.shown_to }} of {{ board.total }} card{{ board.total|pluralize }} in {{ board.project }}
{% if board.has_prev or board.has_next %} {% endif %} {% for group in groups %}{{ group.status|default:"other" }} {{ group.count }}
-
{% for row in group.rows %}
- {% comment %} ACT ON A CARD — status, assignee, archive. Plain form controls, no drag, no JavaScript, keyboard-first: the product requires "accessible non-drag alternatives", and a server-rendered form satisfies it by construction rather than by bolting an alternative beside a drag-only control. The form carries the card id, and the SERVER refuses any id that is not already in the rows this page rendered — so the tenancy check does not depend on the client sending an honest id. {% endcomment %} {% endfor %}