{% extends 'generic/_base.html' %} {% load i18n %} {% comment %} Confirmation page for the "New version" action (PLAN-design-versions.md §1/§3). Available from a design in ANY status -- see views.DesignNewVersionView. GET renders this page; POST clones the design. Context: - object: the source Design being versioned - form: DesignNewVersionForm (a required "title" CharField, prefilled with the source design's own title) - return_url: where Cancel goes - placement_count: object.placements.count() - planned_feed_count: object.planned_feeds.count() - rack_power_count: object.rack_power.count() - rack_count: object.racks.count() {% endcomment %} {% block title %}{% trans "New version of" %} {{ object }}{% endblock %} {% block content %}
{% trans "New version" %}

{% blocktrans trimmed with title=object %} Create a new draft version of {{ title }}? A version is the SAME plan, revised: it copies this design's whole content into a new draft row, unlike Derive, which creates a new plan standing on top of this one and copies nothing but rack scope. {% endblocktrans %}

{% trans "What will be copied:" %}

{% with children=object.children %} {% if children %}

{% blocktrans trimmed with title=object %} {{ title }} has designs based on it. Changing it safely takes a specific order: {% endblocktrans %}

  1. {% trans "Create this new version (draft) — this button." %}
  2. {% trans "Edit the new version freely — nothing depends on it yet." %}
  3. {% trans "Re-base each dependent design onto the new version (its own Re-base button)." %}
  4. {% blocktrans trimmed with title=object %} Set {{ title }} back to draft — allowed once it has no dependents left. {% endblocktrans %}
  5. {% trans "Approve the new version — only one version per plan may be approved, so this must follow the previous step." %}

{% trans "Between steps 3 and 5, the dependent design(s) cannot be projected and will show \"ancestor not approved\" in their conflicts panel. That is correct behaviour — a dependent genuinely cannot be trusted while its baseline is being rewritten — not damage this flow caused." %}

{% endif %} {% endwith %}
{% csrf_token %} {{ form.as_p }} {% trans "Cancel" %}
{% endblock %}