|
| 1 | +{% extends "admin/base_site.html" %} |
| 2 | +{% load i18n l10n admin_urls unfold %} |
| 3 | + |
| 4 | +{% block content %} |
| 5 | + {% trans "Choose a date from the list below to revert to a previous version of this object." as message %} |
| 6 | + {% include "unfold/helpers/messages/info.html" with message=message %} |
| 7 | + |
| 8 | + {% if action_list %} |
| 9 | + {% url opts|admin_urlname:'compare' object.pk as compare_base %} |
| 10 | + |
| 11 | + <form method="get" action="{{ compare_base }}" class="flex flex-col gap-4"> |
| 12 | + <div class="flex justify-end"> |
| 13 | + {% if comparable %} |
| 14 | + {% component "unfold/components/button.html" with submit=1 variant="default" %} |
| 15 | + {% trans "Compare" %} |
| 16 | + {% endcomponent %} |
| 17 | + {% else %} |
| 18 | + <button type="submit" |
| 19 | + disabled |
| 20 | + class="font-medium inline-flex group items-center gap-1 relative rounded-default justify-center whitespace-nowrap px-3 py-2 border border-base-200 bg-white shadow-xs text-important cursor-not-allowed opacity-50 dark:border-base-700 dark:bg-transparent"> |
| 21 | + {% trans "Compare" %} |
| 22 | + </button> |
| 23 | + {% endif %} |
| 24 | + </div> |
| 25 | + |
| 26 | + <table id="change-history" class="border-base-200 border-spacing-none border-separate mb-2 w-full lg:border lg:rounded-default lg:shadow-xs lg:dark:border-base-800"> |
| 27 | + <thead class="hidden lg:table-header-group text-base-900 dark:text-base-100"> |
| 28 | + <tr> |
| 29 | + <th class="align-middle font-medium px-3 py-2 text-left lg:text-center"> |
| 30 | + {% translate "Older" %} |
| 31 | + </th> |
| 32 | + <th class="align-middle font-medium px-3 py-2 text-left lg:text-center"> |
| 33 | + {% translate "Newer" %} |
| 34 | + </th> |
| 35 | + <th class="align-middle font-medium px-3 py-2 text-left"> |
| 36 | + {% translate "Date/time" %} |
| 37 | + </th> |
| 38 | + <th class="align-middle font-medium px-3 py-2 text-left"> |
| 39 | + {% translate "User" %} |
| 40 | + </th> |
| 41 | + <th class="align-middle font-medium px-3 py-2 text-left"> |
| 42 | + {% translate "Comment" %} |
| 43 | + </th> |
| 44 | + </tr> |
| 45 | + </thead> |
| 46 | + <tbody> |
| 47 | + {% for action in action_list %} |
| 48 | + <tr class="block border mb-3 rounded-default shadow-xs lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-base-800"> |
| 49 | + <td class="align-middle flex border-t border-base-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell lg:text-center dark:border-base-800" data-label="{% translate 'Older' %}"> |
| 50 | + {% if comparable %} |
| 51 | + <input type="radio" |
| 52 | + name="version_id1" |
| 53 | + value="{{ action.version.pk|unlocalize }}" |
| 54 | + class="appearance-none bg-white block border border-base-300 h-4 min-w-4 relative rounded-full w-4 dark:bg-base-900 dark:border-base-700 after:absolute after:bg-transparent after:content-[''] after:flex after:h-2 after:items-center after:justify-center after:leading-none after:left-1/2 after:rounded-full after:text-white after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2 after:w-2 dark:after:text-base-700 dark:after:bg-transparent checked:bg-primary-600 checked:border-primary-600 checked:after:bg-white dark:checked:after:bg-base-900 mx-auto lg:inline-block{% if action.first %} invisible{% endif %}" |
| 55 | + {% if version1.pk|unlocalize == action.version.pk|unlocalize or action.second %}checked="checked"{% endif %}> |
| 56 | + {% else %} |
| 57 | + — |
| 58 | + {% endif %} |
| 59 | + </td> |
| 60 | + <td class="align-middle flex border-t border-base-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell lg:text-center dark:border-base-800" data-label="{% translate 'Newer' %}"> |
| 61 | + {% if comparable %} |
| 62 | + <input type="radio" |
| 63 | + name="version_id2" |
| 64 | + value="{{ action.version.pk|unlocalize }}" |
| 65 | + class="appearance-none bg-white block border border-base-300 h-4 min-w-4 relative rounded-full w-4 dark:bg-base-900 dark:border-base-700 after:absolute after:bg-transparent after:content-[''] after:flex after:h-2 after:items-center after:justify-center after:leading-none after:left-1/2 after:rounded-full after:text-white after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2 after:w-2 dark:after:text-base-700 dark:after:bg-transparent checked:bg-primary-600 checked:border-primary-600 checked:after:bg-white dark:checked:after:bg-base-900 mx-auto lg:inline-block" |
| 66 | + {% if version2.pk|unlocalize == action.version.pk|unlocalize or action.first == 1 %}checked="checked"{% endif %}> |
| 67 | + {% else %} |
| 68 | + — |
| 69 | + {% endif %} |
| 70 | + </td> |
| 71 | + <th class="align-middle flex border-t border-base-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-base-800" data-label="{% translate 'Date/time' %}"> |
| 72 | + {% if action.url %} |
| 73 | + <a href="{{ action.url }}" class="text-primary-600 hover:underline dark:text-primary-500"> |
| 74 | + {{ action.revision.date_created|date:"DATETIME_FORMAT" }} |
| 75 | + </a> |
| 76 | + {% else %} |
| 77 | + {{ action.revision.date_created|date:"DATETIME_FORMAT" }} |
| 78 | + {% endif %} |
| 79 | + </th> |
| 80 | + <td class="align-middle flex border-t border-base-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-base-800" data-label="{% translate 'User' %}"> |
| 81 | + {% if action.revision.user %} |
| 82 | + {{ action.revision.user.get_username }} |
| 83 | + {% if action.revision.user.get_full_name %} |
| 84 | + ({{ action.revision.user.get_full_name }}) |
| 85 | + {% endif %} |
| 86 | + {% else %} |
| 87 | + — |
| 88 | + {% endif %} |
| 89 | + </td> |
| 90 | + <td class="align-middle flex border-t border-base-200 font-normal px-3 py-2 text-left before:flex before:capitalize before:content-[attr(data-label)] before:items-center before:mr-auto first:border-t-0 lg:before:hidden lg:first:border-t lg:py-3 lg:table-cell dark:border-base-800" data-label="{% translate 'Comment' %}"> |
| 91 | + {{ action.revision.comment|default:"" }} |
| 92 | + </td> |
| 93 | + </tr> |
| 94 | + {% endfor %} |
| 95 | + </tbody> |
| 96 | + </table> |
| 97 | + </form> |
| 98 | + {% else %} |
| 99 | + {% trans "This object doesn’t have a change history. It probably wasn’t added via this admin site." as message %} |
| 100 | + {% include "unfold/helpers/messages/warning.html" with message=message %} |
| 101 | + {% endif %} |
| 102 | +{% endblock %} |
0 commit comments