{% extends 'base.html' %} {% load static %} {% comment %} Action Required — Phase 12. Three priority bands: URGENT (auto-renew + in-notice-window), WARNING (<=7 days OR in-notice-window without auto-renew), INFO (anything else in the configured window). Each band renders as its own card with a priority badge. Why three sections rather than one big sortable table: Operators want the "must act today" set isolated from the "look at next month" set. A single sortable table puts them adjacent; sections force the visual separation. Context (from views/action_required.py): urgent — list of Contract objects, soonest end_date first warning — same shape info — same shape window_days — query-param window (default 60) total — len(urgent + warning + info) {% endcomment %} {% block title %}Action Required{% endblock %} {% block extra_styles %} {% endblock %} {% block content %}

Action Required

Contracts within {{ window_days }} day{{ window_days|pluralize }} of expiry, sorted by urgency. Total: {{ total }}.

{% if total == 0 %}

Nothing to act on.

No contracts are within the {{ window_days }}-day window.

{% else %} {% if urgent %}

Urgent Auto-renews unless cancelled

These contracts are inside their notice window AND will auto-renew if no action is taken.

{% include "nautobot_contract_models/inc/_action_required_table.html" with rows=urgent %}
{% endif %} {% if warning %}

Warning Imminent or in-notice-window

Either expiring within 7 days or inside the notice window without auto-renew. Lapse means termination.

{% include "nautobot_contract_models/inc/_action_required_table.html" with rows=warning %}
{% endif %} {% if info %}

Heads up Upcoming

Within the {{ window_days }}-day window but outside urgency bands. Plan ahead.

{% include "nautobot_contract_models/inc/_action_required_table.html" with rows=info %}
{% endif %} {% endif %}
{% endblock %}