integreat_cms/cms/templates/events/event_list_row.html
{% load i18n %}
{% load rules %}
{% load content_filters %}
{% load poi_filters %}
<tr class="border-t border-solid border-gray-200 hover:bg-gray-100 text-gray-800">
<td class="py-3 pl-4">
<input type="checkbox"
name="selected_ids[]"
value="{{ event.id }}"
form="bulk-action-form"
class="bulk-select-item" />
</td>
<td>
<a title="{% if event_translation %} {{ event_translation.title }}{% endif %}"
href="{% url 'edit_event' event_id=event.id region_slug=request.region.slug language_slug=language.slug %}"
class="block py-3 pl-2 pr-2 text-gray-800">
{% if event_translation %}
{{ event_translation.title|truncatechars:35 }}
{% else %}
<i>{% translate "Translation not available" %}</i>
{% endif %}
</a>
</td>
{% get_current_language as LANGUAGE_CODE %}
{% get_language LANGUAGE_CODE as backend_language %}
{% if backend_language and backend_language != language %}
<td>
<a title="{% if event.backend_translation %} {{ event.backend_translation.title }}{% endif %}"
href="{% url 'edit_event' event_id=event.id region_slug=request.region.slug language_slug=LANGUAGE_CODE %}"
class="block py-3 pr-2 text-gray-800">
{% if event.backend_translation %}
{{ event.backend_translation.title|truncatechars:35 }}
{% else %}
<i>{% translate "Translation not available" %}</i>
{% endif %}
</a>
</td>
{% endif %}
<td class="py-3 pr-2 text-gray-800 lang-grid">
{% spaceless %}
{% for other_language, other_status in event.translation_states.values %}
{% if other_language != request.region.default_language %}
<a href="{% url 'edit_event' event_id=event.id region_slug=request.region.slug language_slug=other_language.slug %}"
class="{{ other_language.slug }}">
<div id="translation-icon">
{% if other_status == translation_status.MACHINE_TRANSLATED %}
<span title="{% translate "Machine translated" %}">
<i icon-name="bot"
class="{% if other_language.slug == language.slug %}text-violet-500{% else %}text-gray-800{% endif %}"></i>
</span>
{% elif other_status == translation_status.IN_TRANSLATION %}
<span title="{% translate "Currently in translation" %}">
<i icon-name="clock"
class="{% if other_language.slug == language.slug %}text-blue-500{% else %}text-gray-800{% endif %}"></i>
</span>
{% elif other_status == translation_status.OUTDATED %}
<span title="{% translate "Translation outdated" %}">
<i icon-name="alert-triangle"
class="{% if other_language.slug == language.slug %}text-yellow-500{% else %}text-gray-800{% endif %}"></i>
</span>
{% elif other_status == translation_status.UP_TO_DATE %}
<span title="{% translate "Translation up-to-date" %}">
<i icon-name="check"
class="{% if other_language.slug == language.slug %}text-green-500{% else %}text-gray-800{% endif %}"></i>
</span>
{% elif other_status == translation_status.FALLBACK %}
<span title="{% translate "Default language is duplicated" %}">
<i icon-name="copy"
class="{% if other_language.slug == language.slug %}text-blue-500{% else %}text-gray-800{% endif %}"></i>
</span>
{% elif other_status == translation_status.MISSING %}
<span title="{% translate "Translation missing" %}" class="no-trans">
<i icon-name="x"
class="{% if other_language.slug == language.slug %}text-red-500{% else %}text-gray-800{% endif %}"></i>
</span>
{% endif %}
</div>
<div id="ajax-icon" class="hidden">
<span title="{% translate "Currently in translation" %}">
<i icon-name="clock"
class="{% if other_language.slug == language.slug %}text-blue-500{% else %}text-gray-800{% endif %}"></i>
</span>
</div>
</a>
{% endif %}
{% endfor %}
{% endspaceless %}
</td>
<td class="py-3 pr-2">
{{ event_translation.get_status_display }}
</td>
<td class="py-3 pr-2">
{% if event.location %}
{% get_language LANGUAGE_CODE as current_language %}
<i icon-name="map-pin"></i> {{ event.location|poi_translation_title:current_language }}
{% else %}
{% translate "Not specified" %}
{% endif %}
</td>
<td class="py-3 pr-2">
<span class="whitespace-nowrap"><i icon-name="calendar"></i> {{ event.start_local|date:'d.m.Y' }}</span>
{% if not event.is_all_day %}
<span class="whitespace-nowrap"><i icon-name="clock"></i> {{ event.start_local|date:'H:i' }}</span>
{% endif %}
</td>
<td class="py-3 pr-2">
<span class="whitespace-nowrap"><i icon-name="calendar"></i> {{ event.end_local|date:'d.m.Y' }}</span>
{% if not event.is_all_day %}
<span class="whitespace-nowrap"><i icon-name="clock"></i> {{ event.end_local|date:'H:i' }}</span>
{% endif %}
</td>
<td class="py-3 pr-2 whitespace-nowrap">
{% if event.recurrence_rule %}
<i icon-name="repeat"></i> {{ event.recurrence_rule.get_frequency_display }}
{% else %}
<i icon-name="calendar"></i> {% translate "One-time" %}
{% endif %}
</td>
<td class="py-3 pr-2">
{% if event.external_calendar %}
{{ event.external_calendar.name }}
{% else %}
<i icon-name="minus"></i>
{% endif %}
</td>
<td class="pr-4 py-3 flex flex-nowrap justify-end gap-2">
{% if event_translation.status == PUBLIC %}
<a href="{{ WEBAPP_URL }}{{ event_translation.get_absolute_url }}"
rel="noopener noreferrer"
target="_blank"
title="{% translate "Open event in web app" %}"
class="btn-icon">
<i icon-name="external-link"></i>
</a>
{% else %}
<button title="{% translate "This event cannot be opened in the web app, because it is not public." %}"
class="btn-icon"
disabled>
<i icon-name="external-link"></i>
</button>
{% endif %}
{% has_perm 'cms.change_event' request.user as can_edit_event %}
{% if can_edit_event %}
<form action="{% url 'copy_event' event_id=event.id region_slug=request.region.slug language_slug=language.slug %}"
method="post">
{% csrf_token %}
<button class="btn-icon" title="{% translate "Copy event" %}">
<i icon-name="copy"></i>
</button>
</form>
<button title="{% translate "Archive event" %}"
class="confirmation-button btn-icon"
data-confirmation-title="{{ archive_dialog_title }}"
data-confirmation-text="{{ archive_dialog_text }}"
data-confirmation-subject="{{ event_translation.title }}"
data-action="{% url 'archive_event' event_id=event.id region_slug=request.region.slug language_slug=language.slug %}">
<i icon-name="archive"></i>
</button>
{% endif %}
{% if perms.cms.delete_event %}
<button title="{% translate "Delete event" %}"
class="confirmation-button btn-icon"
data-confirmation-title="{{ delete_dialog_title }}"
data-confirmation-text="{{ delete_dialog_text }}"
data-confirmation-subject="{{ event_translation.title }}"
data-action="{% url 'delete_event' event_id=event.id region_slug=request.region.slug language_slug=language.slug %}">
<i icon-name="trash-2"></i>
</button>
{% endif %}
</td>
</tr>