misc: apply djhtml (#69404)

This commit is contained in:
Valentin Deniaud 2022-09-21 17:28:29 +02:00
parent 651931f7d2
commit 7c0eb04c45
79 changed files with 2173 additions and 2173 deletions

View File

@ -2,15 +2,15 @@
{% load i18n %} {% load i18n %}
{% block content %} {% block content %}
<p>{% trans "Hi," %}</p> <p>{% trans "Hi," %}</p>
<p> <p>
{% blocktrans %} {% blocktrans %}
You have been notified because the status of event "{{ event }}" has changed. You have been notified because the status of event "{{ event }}" has changed.
{% endblocktrans %} {% endblocktrans %}
</p> </p>
{% with _("View event") as button_label %} {% with _("View event") as button_label %}
{% include "emails/button-link.html" with url=event_url label=button_label %} {% include "emails/button-link.html" with url=event_url label=button_label %}
{% endwith %} {% endwith %}
{% endblock %} {% endblock %}

View File

@ -2,35 +2,35 @@
{% load i18n %} {% load i18n %}
{% block content %} {% block content %}
<p>{% trans "Hi," %}</p> <p>{% trans "Hi," %}</p>
<p> <p>
{% blocktrans trimmed with event=booking.event date=date|date:"l j F" time=date|time %} {% blocktrans trimmed with event=booking.event date=date|date:"l j F" time=date|time %}
You have a booking for event "{{ event }}", on {{ date }} at {{ time }}. You have a booking for event "{{ event }}", on {{ date }} at {{ time }}.
{% endblocktrans %} {% endblocktrans %}
</p> </p>
{% if email_extra_info %} {% if email_extra_info %}
<p>{{ email_extra_info|force_escape|linebreaks }}</p> <p>{{ email_extra_info|force_escape|linebreaks }}</p>
{% endif %} {% endif %}
{% if booking.event.description %} {% if booking.event.description %}
<p>{% trans "Additional information:" %}</p> <p>{% trans "Additional information:" %}</p>
{{ booking.event.description|linebreaks }} {{ booking.event.description|linebreaks }}
{% endif %} {% endif %}
{% if booking.event.pricing %} {% if booking.event.pricing %}
<p>{% trans "Pricing:" %} {{ booking.event.pricing }}</p> <p>{% trans "Pricing:" %} {{ booking.event.pricing }}</p>
{% endif %} {% endif %}
{% if booking.event.url %} {% if booking.event.url %}
{% firstof event_url_button_label _("More information") as button_label %} {% firstof event_url_button_label _("More information") as button_label %}
{% include "emails/button-link.html" with url=booking.event.url label=button_label %} {% include "emails/button-link.html" with url=booking.event.url label=button_label %}
{% endif %} {% endif %}
{% if booking.form_url %} {% if booking.form_url %}
{% with _("Edit or cancel booking") as button_label %} {% with _("Edit or cancel booking") as button_label %}
{% include "emails/button-link.html" with url=booking.get_form_url label=button_label %} {% include "emails/button-link.html" with url=booking.get_form_url label=button_label %}
{% endwith %} {% endwith %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -2,27 +2,27 @@
{% load i18n %} {% load i18n %}
{% block content %} {% block content %}
<p>{% trans "Hi," %}</p> <p>{% trans "Hi," %}</p>
<p> <p>
{% with date=date|date:"l j F" time=date|time %} {% with date=date|date:"l j F" time=date|time %}
{% if booking.user_display_label %} {% if booking.user_display_label %}
{% blocktrans trimmed with meeting=booking.user_display_label %} {% blocktrans trimmed with meeting=booking.user_display_label %}
Your meeting "{{ meeting }}" is scheduled on {{ date }} at {{ time }}. Your meeting "{{ meeting }}" is scheduled on {{ date }} at {{ time }}.
{% endblocktrans %} {% endblocktrans %}
{% else %} {% else %}
{% blocktrans %}You have a meeting scheduled on {{ date }} at {{ time }}.{% endblocktrans %} {% blocktrans %}You have a meeting scheduled on {{ date }} at {{ time }}.{% endblocktrans %}
{% endif %} {% endif %}
{% endwith %} {% endwith %}
</p> </p>
{% if email_extra_info %} {% if email_extra_info %}
<p>{{ email_extra_info|force_escape|linebreaks }}</p> <p>{{ email_extra_info|force_escape|linebreaks }}</p>
{% endif %} {% endif %}
{% if booking.form_url %} {% if booking.form_url %}
{% with _("Edit or cancel meeting") as button_label %} {% with _("Edit or cancel meeting") as button_label %}
{% include "emails/button-link.html" with url=booking.get_form_url label=button_label %} {% include "emails/button-link.html" with url=booking.get_form_url label=button_label %}
{% endwith %} {% endwith %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -1,15 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
</head> </head>
<body> <body>
<div style="max-width: 60ex;"> <div style="max-width: 60ex;">
<div class="content"> <div class="content">
{% block content %} {% block content %}
{{ content }} {{ content }}
{% endblock %} {% endblock %}
</div>
</div> </div>
</div> </body>
</body>
</html> </html>

View File

@ -2,21 +2,21 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agendas-import' %}">{% trans 'Export' %}</a> <a href="{% url 'chrono-manager-agendas-import' %}">{% trans 'Export' %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Export" %}</h2> <h2>{% trans "Export" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Export" %}</button> <button class="submit-button">{% trans "Export" %}</button>
<a class="cancel" href="{% url 'chrono-manager-homepage' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-homepage' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,21 +2,21 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agendas-import' %}">{% trans 'Import' %}</a> <a href="{% url 'chrono-manager-agendas-import' %}">{% trans 'Import' %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Import" %}</h2> <h2>{% trans "Import" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Import" %}</button> <button class="submit-button">{% trans "Import" %}</button>
<a class="cancel" href="{% url 'chrono-manager-homepage' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-homepage' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -1,8 +1,8 @@
{% load i18n %} {% load i18n %}
<div class="booking-colors"> <div class="booking-colors">
<strong>{% trans "Booking colors:" %}</strong> <strong>{% trans "Booking colors:" %}</strong>
{% for color in colors %} {% for color in colors %}
<span class="booking-color-label booking-bg-color-{{ color.index }}">{{ color }}</span> <span class="booking-color-label booking-bg-color-{{ color.index }}">{{ color }}</span>
{% endfor %} {% endfor %}
</div> </div>

View File

@ -2,17 +2,17 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{% trans "New Agenda" %}</h2> <h2>{% trans "New Agenda" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-homepage' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-homepage' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -4,30 +4,30 @@
{% block bodyargs %}class="dayview"{% endblock %} {% block bodyargs %}class="dayview"{% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a>{{ day|date:"SHORT_DATE_FORMAT" }}</a> <a>{{ day|date:"SHORT_DATE_FORMAT" }}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2> <h2>
<a href="{{ view.get_previous_day_url }}"></a> <a href="{{ view.get_previous_day_url }}"></a>
<span class="date-title">{{ view.date|date:"l j F Y" }}</span> <span class="date-title">{{ view.date|date:"l j F Y" }}</span>
{% with selected_day=view.date|date:"j" selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %} {% with selected_day=view.date|date:"j" selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %}
<div class="date-picker" style="display: none"> <div class="date-picker" style="display: none">
<select name="day">{% for day in view.get_days %}<option value="{{ day }}" {% if selected_day == day %}selected{% endif %}>{{day}}</option>{% endfor %}</select> <select name="day">{% for day in view.get_days %}<option value="{{ day }}" {% if selected_day == day %}selected{% endif %}>{{day}}</option>{% endfor %}</select>
<select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select> <select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select>
<select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select> <select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select>
<button>{% trans 'Set Date' %}</button> <button>{% trans 'Set Date' %}</button>
</div> </div>
{% endwith %} {% endwith %}
<a href="{{ view.get_next_day_url }}"></a> <a href="{{ view.get_next_day_url }}"></a>
</h2> </h2>
<span class="actions"> <span class="actions">
{% block actions %} {% block actions %}
{% if user_can_manage %} {% if user_can_manage %}
<a href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Settings' %}</a> <a href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Settings' %}</a>
{% endif %} {% endif %}
<a href="" onclick="window.print()">{% trans 'Print' %}</a> <a href="" onclick="window.print()">{% trans 'Print' %}</a>
{% endblock %} {% endblock %}
</span> </span>
{% endblock %} {% endblock %}

View File

@ -2,21 +2,21 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="">{% trans "Duplicate Agenda" %}</a> <a href="">{% trans "Duplicate Agenda" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Duplicate Agenda" %}</h2> <h2>{% trans "Duplicate Agenda" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Duplicate" %}</button> <button class="submit-button">{% trans "Duplicate" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -1,25 +1,25 @@
{% load i18n %} {% load i18n %}
<li class="{% if event.booked_places > event.places %}overbooking{% endif %} <li class="{% if event.booked_places > event.places %}overbooking{% endif %}
{% if event.main_list_full %}full{% endif %} {% if event.main_list_full %}full{% endif %}
{% if event.cancellation_status %}cancelled{% endif %} {% if event.cancellation_status %}cancelled{% endif %}
{% if not event.in_bookable_period %}not-{% endif %}bookable" {% if not event.in_bookable_period %}not-{% endif %}bookable"
{% if event.places %} {% if event.places %}
data-total="{{ event.places }}" data-booked="{{ event.booked_places }}" data-total="{{ event.places }}" data-booked="{{ event.booked_places }}"
{% elif event.waiting_list_places %} {% elif event.waiting_list_places %}
data-total="{{ event.waiting_list_places }}" data-booked="{{ event.booked_waiting_list_places }}" data-total="{{ event.waiting_list_places }}" data-booked="{{ event.booked_waiting_list_places }}"
{% endif %} {% endif %}
><a href="{% if view_mode == 'settings_view' %}{% url 'chrono-manager-event-edit' pk=agenda.pk event_pk=event.pk %}?next=settings{% elif event.pk %}{% url 'chrono-manager-event-view' pk=agenda.pk event_pk=event.pk %}{% else %}{% url 'chrono-manager-event-create-recurrence' pk=agenda.pk event_identifier=event.slug %}{% endif %}"> ><a href="{% if view_mode == 'settings_view' %}{% url 'chrono-manager-event-edit' pk=agenda.pk event_pk=event.pk %}?next=settings{% elif event.pk %}{% url 'chrono-manager-event-view' pk=agenda.pk event_pk=event.pk %}{% else %}{% url 'chrono-manager-event-create-recurrence' pk=agenda.pk event_identifier=event.slug %}{% endif %}">
{% if event.cancellation_status %} {% if event.cancellation_status %}
<span class="tag">{{ event.cancellation_status }}</span> <span class="tag">{{ event.cancellation_status }}</span>
{% else %} {% else %}
{% if event.main_list_full %} {% if event.main_list_full %}
<span class="full tag">{% trans "Full" %}</span> <span class="full tag">{% trans "Full" %}</span>
{% endif %}
{% if event.checked %}
<span class="checked tag">{% trans "Checked" %}</span>
{% endif %}
{% endif %} {% endif %}
<span class="event-info"> {% if event.checked %}
<span class="checked tag">{% trans "Checked" %}</span>
{% endif %}
{% endif %}
<span class="event-info">
{% if view_mode == 'settings_view' %} {% if view_mode == 'settings_view' %}
{% if event.label %}{{ event.label }} {% endif %}[{% trans "identifier:" %} {{ event.slug }}] {% if event.label %}{{ event.label }} {% endif %}[{% trans "identifier:" %} {{ event.slug }}]
{% else %} {% else %}
@ -31,31 +31,31 @@
{{ event.get_recurrence_display }} {{ event.get_recurrence_display }}
{% endif %} {% endif %}
{% if view_mode != 'settings_view' %} {% if view_mode != 'settings_view' %}
{% if event.places or event.waiting_list_places %}-{% endif %} {% if event.places or event.waiting_list_places %}-{% endif %}
{% if event.places %} {% if event.places %}
{% blocktrans count remaining_places=event.remaining_places %}{{ remaining_places }} remaining place{% plural %}{{ remaining_places }} remaining places{% endblocktrans %} {% blocktrans count remaining_places=event.remaining_places %}{{ remaining_places }} remaining place{% plural %}{{ remaining_places }} remaining places{% endblocktrans %}
({% blocktrans with places=event.places count booked_places=event.booked_places %}{{ booked_places }}/{{ places }} booking{% plural %}{{ booked_places }}/{{ places }} bookings{% endblocktrans %}) ({% blocktrans with places=event.places count booked_places=event.booked_places %}{{ booked_places }}/{{ places }} booking{% plural %}{{ booked_places }}/{{ places }} bookings{% endblocktrans %})
{% endif %} {% endif %}
{% if event.waiting_list_places %} {% if event.waiting_list_places %}
({% trans "Waiting list:" %} ({% trans "Waiting list:" %}
{% blocktrans count remaining_places=event.remaining_waiting_list_places %}{{ remaining_places }} remaining place{% plural %}{{ remaining_places }} remaining places{% endblocktrans %} {% blocktrans count remaining_places=event.remaining_waiting_list_places %}{{ remaining_places }} remaining place{% plural %}{{ remaining_places }} remaining places{% endblocktrans %}
- -
{% blocktrans with places=event.waiting_list_places count booked_places=event.booked_waiting_list_places %}{{ booked_places }}/{{ places }} booking{% plural %}{{ booked_places }}/{{ places }} bookings{% endblocktrans %}) {% blocktrans with places=event.waiting_list_places count booked_places=event.booked_waiting_list_places %}{{ booked_places }}/{{ places }} booking{% plural %}{{ booked_places }}/{{ places }} bookings{% endblocktrans %})
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if view_mode == 'settings_view' and event.publication_datetime %} {% if view_mode == 'settings_view' and event.publication_datetime %}
({% trans "publication date:" %} {{ event.publication_datetime }}) ({% trans "publication date:" %} {{ event.publication_datetime }})
{% endif %} {% endif %}
{% if not event.in_bookable_period %} {% if not event.in_bookable_period %}
({% trans "out of bookable period" %}) ({% trans "out of bookable period" %})
{% endif %} {% endif %}
</span> </span>
</a> </a>
{% if view_mode == 'settings_view' %} {% if view_mode == 'settings_view' %}
<a rel="popup" class="link-action-icon duplicate" href="{% url 'chrono-manager-event-duplicate' pk=agenda.pk event_pk=event.pk %}">{% trans 'Duplicate' %}</a> <a rel="popup" class="link-action-icon duplicate" href="{% url 'chrono-manager-event-duplicate' pk=agenda.pk event_pk=event.pk %}">{% trans 'Duplicate' %}</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-event-delete' pk=agenda.pk event_pk=event.pk %}?next=settings">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-event-delete' pk=agenda.pk event_pk=event.pk %}?next=settings">{% trans "remove" %}</a>
{% elif agenda.booking_form_url %} {% elif agenda.booking_form_url %}
<a class="link-action-text" href="{{ event.get_booking_form_url }}&ReturnURL={{ request.build_absolute_uri }}">{% trans "Booking form" %}</a> <a class="link-action-text" href="{{ event.get_booking_form_url }}&ReturnURL={{ request.build_absolute_uri }}">{% trans "Booking form" %}</a>
{% endif %} {% endif %}
<span class="occupation-bar"></span> <span class="occupation-bar"></span>
</li> </li>

View File

@ -2,22 +2,22 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{{ agenda.get_settings_url }}">{% trans 'Settings' %}</a> <a href="{{ agenda.get_settings_url }}">{% trans 'Settings' %}</a>
<a href="">{% firstof title view.title %}</a> <a href="">{% firstof title view.title %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% firstof title view.title %}</h2> <h2>{% firstof title view.title %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{{ agenda.get_settings_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ agenda.get_settings_url }}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -4,29 +4,29 @@
{% block bodyargs %}class="monthview"{% endblock %} {% block bodyargs %}class="monthview"{% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a>{{ view.date|date:"F Y" }}</a> <a>{{ view.date|date:"F Y" }}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2> <h2>
<a href="{{ view.get_previous_month_url }}"></a> <a href="{{ view.get_previous_month_url }}"></a>
<span class="date-title">{{ view.date|date:"F Y" }}</span> <span class="date-title">{{ view.date|date:"F Y" }}</span>
{% with selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %} {% with selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %}
<div class="date-picker" style="display: none"> <div class="date-picker" style="display: none">
<select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select> <select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select>
<select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select> <select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select>
<button>{% trans 'Set Date' %}</button> <button>{% trans 'Set Date' %}</button>
</div> </div>
{% endwith %} {% endwith %}
<a href="{{ view.get_next_month_url }}"></a> <a href="{{ view.get_next_month_url }}"></a>
</h2> </h2>
<span class="actions"> <span class="actions">
{% block actions %} {% block actions %}
{% if user_can_manage %} {% if user_can_manage %}
<a href="{{ agenda.get_settings_url }}">{% trans 'Settings' %}</a> <a href="{{ agenda.get_settings_url }}">{% trans 'Settings' %}</a>
{% endif %} {% endif %}
<a href="" onclick="window.print()">{% trans 'Print' %}</a> <a href="" onclick="window.print()">{% trans 'Print' %}</a>
{% endblock %} {% endblock %}
</span> </span>
{% endblock %} {% endblock %}

View File

@ -2,34 +2,34 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-settings' agenda.pk %}">{% trans 'Settings' %}</a> <a href="{% url 'chrono-manager-agenda-settings' agenda.pk %}">{% trans 'Settings' %}</a>
<a href="">{% trans "Notification settings" %}</a> <a href="">{% trans "Notification settings" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Notification settings" %}</h2> <h2>{% trans "Notification settings" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
<script> <script>
$('select').change(function(){ $('select').change(function(){
role_field_id = $(this).attr('id') role_field_id = $(this).attr('id')
email_field_id = '#' + role_field_id + '_emails' email_field_id = '#' + role_field_id + '_emails'
if ($(this).val() == 'use-email-field') if ($(this).val() == 'use-email-field')
$(email_field_id).parent('p').show(); $(email_field_id).parent('p').show();
else else
$(email_field_id).parent('p').hide(); $(email_field_id).parent('p').hide();
}); });
$('select').trigger('change'); $('select').trigger('change');
</script> </script>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -4,42 +4,42 @@
{% block bodyargs %}class="openevents"{% endblock %} {% block bodyargs %}class="openevents"{% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-open-events-view' pk=agenda.pk %}">{% trans "Open events" %}</a> <a href="{% url 'chrono-manager-agenda-open-events-view' pk=agenda.pk %}">{% trans "Open events" %}</a>
{% endblock %} {% endblock %}
{% block actions %} {% block actions %}
{% if agenda.subscriptions.exists %} {% if agenda.subscriptions.exists %}
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
<li><a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans 'Timesheet' %}</a></li> <li><a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans 'Timesheet' %}</a></li>
</ul> </ul>
{% endif %} {% endif %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-month-redirect-view' pk=agenda.pk %}">{% trans 'Month view' %}</a> <a href="{% url 'chrono-manager-agenda-month-redirect-view' pk=agenda.pk %}">{% trans 'Month view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3>{% trans "Open events" %}</h3> <h3>{% trans "Open events" %}</h3>
<div> <div>
{% if open_events %} {% if open_events %}
{% for event in open_events %} {% for event in open_events %}
{% ifchanged event.start_datetime|date:'n' event.start_datetime|date:'y' %} {% ifchanged event.start_datetime|date:'n' event.start_datetime|date:'y' %}
{% if not forloop.first %}</ul>{% endif %} {% if not forloop.first %}</ul>{% endif %}
<h4>{{ event.start_datetime|date:'YEAR_MONTH_FORMAT'|capfirst }}</h4> <h4>{{ event.start_datetime|date:'YEAR_MONTH_FORMAT'|capfirst }}</h4>
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% endifchanged %} {% endifchanged %}
{% include 'chrono/manager_agenda_event_fragment.html' %} {% include 'chrono/manager_agenda_event_fragment.html' %}
{% if forloop.last %}</ul>{% endif %} {% if forloop.last %}</ul>{% endif %}
{% endfor %} {% endfor %}
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This agenda doesn't have any open event configured. This agenda doesn't have any open event configured.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,26 +2,26 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="">{% trans "Reminder message preview" %}</a> <a href="">{% trans "Reminder message preview" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Reminder message preview" %}</h2> <h2>{% trans "Reminder message preview" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div id="message-preview"> <div id="message-preview">
{% if subject %} {% if subject %}
<p>{% trans "Users will receive the following email:" %}</p> <p>{% trans "Users will receive the following email:" %}</p>
<p class="email-subject"><strong>{% trans "Subject:" %}</strong> {{ subject }}</p> <p class="email-subject"><strong>{% trans "Subject:" %}</strong> {{ subject }}</p>
{% else %} {% else %}
<p>{% trans "Users will receive the following SMS:" %}</p> <p>{% trans "Users will receive the following SMS:" %}</p>
{% endif %} {% endif %}
<p>{{ message }}</p> <p>{{ message }}</p>
<div class="buttons"> <div class="buttons">
<a class="button" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Return to settings' %}</a> <a class="button" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Return to settings' %}</a>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,22 +2,22 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="">{% trans "Add resource" %}</a> <a href="">{% trans "Add resource" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Add resource" %}</h2> <h2>{% trans "Add resource" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.pk %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.pk %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,110 +2,110 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if desk %} {% if desk %}
<a href="{% url 'chrono-manager-agenda-settings' desk.agenda_id %}">{% trans "Settings" %}</a> <a href="{% url 'chrono-manager-agenda-settings' desk.agenda_id %}">{% trans "Settings" %}</a>
{% else %} {% else %}
<a href="{% url 'chrono-manager-agenda-settings' agenda.id|default:object.id %}">{% trans "Settings" %}</a> <a href="{% url 'chrono-manager-agenda-settings' agenda.id|default:object.id %}">{% trans "Settings" %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Settings" %} <h2>{% trans "Settings" %}
<span class="identifier">[{% trans "identifier:" %} {{object.slug}}]</span> <span class="identifier">[{% trans "identifier:" %} {{object.slug}}]</span>
</h2> </h2>
<span class="actions"> <span class="actions">
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
{% block agenda-extra-management-actions %} {% block agenda-extra-management-actions %}
{% endblock %} {% endblock %}
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
<li><a rel="popup" href="{% url 'chrono-manager-agenda-edit' pk=object.id %}">{% trans 'Options' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-agenda-edit' pk=object.id %}">{% trans 'Options' %}</a></li>
{% block agenda-extra-menu-actions %}{% endblock %} {% block agenda-extra-menu-actions %}{% endblock %}
<li><a rel="popup" class="action-duplicate" href="{% url 'chrono-manager-agenda-duplicate' pk=object.pk %}">{% trans 'Duplicate' %}</a></li> <li><a rel="popup" class="action-duplicate" href="{% url 'chrono-manager-agenda-duplicate' pk=object.pk %}">{% trans 'Duplicate' %}</a></li>
<li><a download href="{% url 'chrono-manager-agenda-export' pk=object.id %}">{% trans 'Export Configuration (JSON)' %}</a></li> <li><a download href="{% url 'chrono-manager-agenda-export' pk=object.id %}">{% trans 'Export Configuration (JSON)' %}</a></li>
{% if object.kind == 'events' %} {% if object.kind == 'events' %}
<li><a download href="{% url 'chrono-manager-agenda-export-events' pk=object.pk %}">{% trans 'Export Events (CSV)' %}</a></li> <li><a download href="{% url 'chrono-manager-agenda-export-events' pk=object.pk %}">{% trans 'Export Events (CSV)' %}</a></li>
{% endif %} {% endif %}
{% if user.is_staff %} {% if user.is_staff %}
<li><a rel="popup" href="{% url 'chrono-manager-agenda-delete' pk=object.id %}">{% trans 'Delete' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-agenda-delete' pk=object.id %}">{% trans 'Delete' %}</a></li>
{% endif %} {% endif %}
</ul> </ul>
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section agenda-settings"> <div class="section agenda-settings">
<div class="pk-tabs"> <div class="pk-tabs">
<div class="pk-tabs--tab-list" role="tablist"> <div class="pk-tabs--tab-list" role="tablist">
{% block agenda-settings-extra-tab-buttons %}{% endblock %} {% block agenda-settings-extra-tab-buttons %}{% endblock %}
{% if object.kind != 'virtual' %} {% if object.kind != 'virtual' %}
<button aria-controls="panel-reminders" aria-selected="false" id="tab-reminders" role="tab" tabindex="-1">{% trans "Booking reminders" %}</button> <button aria-controls="panel-reminders" aria-selected="false" id="tab-reminders" role="tab" tabindex="-1">{% trans "Booking reminders" %}</button>
{% endif %}
<button aria-controls="panel-delays" aria-selected="false" id="tab-delays" role="tab" tabindex="-1">{% trans "Booking Delays" %}</button>
<button aria-controls="panel-permissions" aria-selected="false" id="tab-permissions" role="tab" tabindex="-1">{% trans "Permissions" %}</button>
</div>
<div class="pk-tabs--container">
{% block agenda-settings-extra-tab-list %}{% endblock %}
{% if object.kind != 'virtual' %}
<div aria-labelledby="tab-reminders" id="panel-reminders" role="tabpanel" tabindex="0" hidden="">
{% for info in agenda.reminder_settings.display_info %}
<p>{{ info }}</p>
{% empty %}
<p>{% trans "Reminders are disabled for this agenda." %}</p>
{% endfor %}
<p>
{% if agenda.reminder_settings.days_before_email %}
<a rel="popup" data-selector="#message-preview" href="{% url 'chrono-manager-agenda-reminder-preview' pk=object.id type='email' %}">{% trans "Preview email" %}</a>
{% endif %} {% endif %}
{% if agenda.reminder_settings.days_before_sms %} <button aria-controls="panel-delays" aria-selected="false" id="tab-delays" role="tab" tabindex="-1">{% trans "Booking Delays" %}</button>
<a rel="popup" data-selector="#message-preview" href="{% url 'chrono-manager-agenda-reminder-preview' pk=object.id type='sms' %}">{% trans "Preview SMS" %}</a> <button aria-controls="panel-permissions" aria-selected="false" id="tab-permissions" role="tab" tabindex="-1">{% trans "Permissions" %}</button>
{% endif %}
</p>
{% if agenda.reminder_settings.days_before_email or agenda.reminder_settings.days_before_sms %}
<p>
<a rel="popup" href="{% url 'chrono-manager-agenda-reminder-test' pk=object.pk %}">{% trans "Test reminder sending" %}</a>
</p>
{% endif %}
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-reminder-settings' pk=object.id %}">{% trans "Configure" %}</a>
</div> </div>
</div> <div class="pk-tabs--container">
{% endif %}
<div aria-labelledby="tab-delays" hidden="" id="panel-delays" role="tabpanel" tabindex="0"> {% block agenda-settings-extra-tab-list %}{% endblock %}
<ul>
<li>{% trans "Minimal booking delay:" %} {% if object.kind != 'virtual' %}
{% if agenda.minimal_booking_delay is not None %} <div aria-labelledby="tab-reminders" id="panel-reminders" role="tabpanel" tabindex="0" hidden="">
{% if agenda.minimal_booking_delay_in_working_days %} {% for info in agenda.reminder_settings.display_info %}
{% blocktrans count count=agenda.minimal_booking_delay %}{{ count }} working day{% plural %}{{ count }} working days{% endblocktrans %} <p>{{ info }}</p>
{% else %} {% empty %}
{% blocktrans count count=agenda.minimal_booking_delay %}{{ count }} day{% plural %}{{ count }} days{% endblocktrans %} <p>{% trans "Reminders are disabled for this agenda." %}</p>
{% endfor %}
<p>
{% if agenda.reminder_settings.days_before_email %}
<a rel="popup" data-selector="#message-preview" href="{% url 'chrono-manager-agenda-reminder-preview' pk=object.id type='email' %}">{% trans "Preview email" %}</a>
{% endif %} {% endif %}
{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li> {% if agenda.reminder_settings.days_before_sms %}
<li>{% trans "Maximal booking delay:" %} <a rel="popup" data-selector="#message-preview" href="{% url 'chrono-manager-agenda-reminder-preview' pk=object.id type='sms' %}">{% trans "Preview SMS" %}</a>
{% if agenda.maximal_booking_delay is not None %} {% endif %}
{% blocktrans count count=agenda.maximal_booking_delay %}{{ count }} day{% plural %}{{ count }} days{% endblocktrans %} </p>
{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li> {% if agenda.reminder_settings.days_before_email or agenda.reminder_settings.days_before_sms %}
</ul> <p>
<div class="panel--buttons"> <a rel="popup" href="{% url 'chrono-manager-agenda-reminder-test' pk=object.pk %}">{% trans "Test reminder sending" %}</a>
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-booking-delays' pk=object.id %}">{% trans 'Configure' %}</a> </p>
{% endif %}
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-reminder-settings' pk=object.id %}">{% trans "Configure" %}</a>
</div>
</div>
{% endif %}
<div aria-labelledby="tab-delays" hidden="" id="panel-delays" role="tabpanel" tabindex="0">
<ul>
<li>{% trans "Minimal booking delay:" %}
{% if agenda.minimal_booking_delay is not None %}
{% if agenda.minimal_booking_delay_in_working_days %}
{% blocktrans count count=agenda.minimal_booking_delay %}{{ count }} working day{% plural %}{{ count }} working days{% endblocktrans %}
{% else %}
{% blocktrans count count=agenda.minimal_booking_delay %}{{ count }} day{% plural %}{{ count }} days{% endblocktrans %}
{% endif %}
{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li>
<li>{% trans "Maximal booking delay:" %}
{% if agenda.maximal_booking_delay is not None %}
{% blocktrans count count=agenda.maximal_booking_delay %}{{ count }} day{% plural %}{{ count }} days{% endblocktrans %}
{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li>
</ul>
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-booking-delays' pk=object.id %}">{% trans 'Configure' %}</a>
</div>
</div>
<div aria-labelledby="tab-permissions" hidden="" id="panel-permissions" role="tabpanel" tabindex="0">
<ul>
<li>{% trans "Edit Role:" %} {% if agenda.edit_role %}{{ agenda.edit_role }}{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li>
<li>{% trans "View Role:" %} {% if agenda.view_role %}{{ agenda.view_role }}{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li>
</ul>
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-roles' pk=object.id %}">{% trans 'Configure' %}</a>
</div>
</div>
</div> </div>
</div> </div>
<div aria-labelledby="tab-permissions" hidden="" id="panel-permissions" role="tabpanel" tabindex="0">
<ul>
<li>{% trans "Edit Role:" %} {% if agenda.edit_role %}{{ agenda.edit_role }}{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li>
<li>{% trans "View Role:" %} {% if agenda.view_role %}{{ agenda.view_role }}{% else %}<i>{% trans "undefined" %}</i>{% endif %}</li>
</ul>
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-roles' pk=object.id %}">{% trans 'Configure' %}</a>
</div>
</div>
</div> </div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -2,22 +2,22 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="">{% trans "Add unavailability calendar" %}</a> <a href="">{% trans "Add unavailability calendar" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Add unavailability calendar" %}</h2> <h2>{% trans "Add unavailability calendar" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.pk %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.pk %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,27 +2,27 @@
{% load i18n %} {% load i18n %}
{% block page-title-extra-label %} {% block page-title-extra-label %}
- {% firstof agenda.label object.label %} - {% firstof agenda.label object.label %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{{ object.label }}</h2> <h2>{{ object.label }}</h2>
<span class="actions"> <span class="actions">
{% block actions %} {% block actions %}
{% if user_can_manage %} {% if user_can_manage %}
<a href="{{ object.get_settings_url }}">{% trans 'Settings' %}</a> <a href="{{ object.get_settings_url }}">{% trans 'Settings' %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
</span> </span>
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if agenda %} {% if agenda %}
<a href="{{ agenda.get_absolute_url }}">{{agenda.label}}</a> <a href="{{ agenda.get_absolute_url }}">{{agenda.label}}</a>
{% elif object %} {% elif object %}
<a href="{{ object.get_absolute_url }}">{{object.label}}</a> <a href="{{ object.get_absolute_url }}">{{object.label}}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}

View File

@ -2,8 +2,8 @@
{% load static i18n %} {% load static i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
<script src="{% static 'js/chrono.manager.js' %}"></script> <script src="{% static 'js/chrono.manager.js' %}"></script>
{% endblock %} {% endblock %}
{% block page-title %} {% block page-title %}
@ -22,8 +22,8 @@
{% block homepage-title %}{{portal_agent_title}}{% endblock %} {% block homepage-title %}{{portal_agent_title}}{% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{% if portal_agent_url %}{{ block.super }}{% endif %} {% if portal_agent_url %}{{ block.super }}{% endif %}
<a href="{% url 'chrono-manager-homepage' %}">{% trans 'Agendas' %}</a> <a href="{% url 'chrono-manager-homepage' %}">{% trans 'Agendas' %}</a>
{% endblock %} {% endblock %}
{% block logout-url %}{% url 'auth_logout' %}{% endblock %} {% block logout-url %}{% url 'auth_logout' %}{% endblock %}

View File

@ -2,21 +2,21 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Category" %}</h2> <h2>{% trans "Edit Category" %}</h2>
{% else %} {% else %}
<h2>{% trans "New Category" %}</h2> <h2>{% trans "New Category" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-category-list' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-category-list' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,36 +2,36 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-category-list' %}">{% trans "Categories" %}</a> <a href="{% url 'chrono-manager-category-list' %}">{% trans "Categories" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans 'Categories' %}</h2> <h2>{% trans 'Categories' %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-category-add' %}">{% trans 'New' %}</a> <a rel="popup" href="{% url 'chrono-manager-category-add' %}">{% trans 'New' %}</a>
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if object_list %} {% if object_list %}
<div> <div>
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in object_list %} {% for object in object_list %}
<li> <li>
<a href="{% url 'chrono-manager-category-edit' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a> <a href="{% url 'chrono-manager-category-edit' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-category-delete' pk=object.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-category-delete' pk=object.id %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This site doesn't have any category yet. Click on the "New" button in the top This site doesn't have any category yet. Click on the "New" button in the top
right of the page to add a first one. right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -2,38 +2,38 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Cancel booking" %}</h2> <h2>{% trans "Cancel booking" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% if object.get_backoffice_url and not object.cancel_callback_url %} {% if object.get_backoffice_url and not object.cancel_callback_url %}
{% if not user.is_staff %} {% if not user.is_staff %}
<p>{% trans "This booking has no callback url configured, cancellation must be handled from corresponding form." %}</p> <p>{% trans "This booking has no callback url configured, cancellation must be handled from corresponding form." %}</p>
<p><a href="{{ object.get_backoffice_url }}">{% trans "Open form" %}</a></p> <p><a href="{{ object.get_backoffice_url }}">{% trans "Open form" %}</a></p>
{% else %} {% else %}
<div class="warningnotice"> <div class="warningnotice">
<p>{% trans "This booking has no callback url configured, cancellation should be handled from corresponding form in order to garantee a coherent situation." %}</p> <p>{% trans "This booking has no callback url configured, cancellation should be handled from corresponding form in order to garantee a coherent situation." %}</p>
</div> </div>
<p><a href="{{ object.get_backoffice_url }}">{% trans "Open form" %}</a></p> <p><a href="{{ object.get_backoffice_url }}">{% trans "Open form" %}</a></p>
<p>{% trans "However, since you are an administrator, you can choose to cancel it anyway." %}</p> <p>{% trans "However, since you are an administrator, you can choose to cancel it anyway." %}</p>
{% endif %} {% endif %}
{% else %} {% else %}
<p> <p>
{% blocktrans trimmed with booking=booking.events_display %} {% blocktrans trimmed with booking=booking.events_display %}
Are you sure you want to cancel booking "{{ booking }}"? Are you sure you want to cancel booking "{{ booking }}"?
{% endblocktrans %} {% endblocktrans %}
</p> </p>
{% endif %} {% endif %}
{% if not object.get_backoffice_url or object.cancel_callback_url or user.is_staff %} {% if not object.get_backoffice_url or object.cancel_callback_url or user.is_staff %}
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}"> <input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}">
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="delete-button">{% trans "Proceed with cancellation" %}</button> <button class="delete-button">{% trans "Proceed with cancellation" %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Abort' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Abort' %}</a>
</div> </div>
{% endif %} {% endif %}
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,22 +2,22 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{{ view.model.get_verbose_name }}</h2> <h2>{{ view.model.get_verbose_name }}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<p> <p>
{% if cannot_delete %} {% if cannot_delete %}
{{ cannot_delete_msg }} {{ cannot_delete_msg }}
{% else %} {% else %}
{% blocktrans %}Are you sure you want to delete this?{% endblocktrans %} {% blocktrans %}Are you sure you want to delete this?{% endblocktrans %}
{% endif %} {% endif %}
</p> </p>
<div class="buttons"> <div class="buttons">
<button class="delete-button" {% if cannot_delete %}disabled="disabled"{% endif %}>{% trans 'Delete' %}</button> <button class="delete-button" {% if cannot_delete %}disabled="disabled"{% endif %}>{% trans 'Delete' %}</button>
<a class="cancel" href="{{ object.get_absolute_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ object.get_absolute_url }}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,42 +2,42 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{{ view.model.get_verbose_name }}</h2> <h2>{{ view.model.get_verbose_name }}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% if cancellation_forbidden %} {% if cancellation_forbidden %}
<div class="warningnotice"> <div class="warningnotice">
{% blocktrans trimmed %} {% blocktrans trimmed %}
This event has bookings with no callback url configured. Their cancellation must be This event has bookings with no callback url configured. Their cancellation must be
handled individually from the forms attached to them. Only then, cancelling this event handled individually from the forms attached to them. Only then, cancelling this event
will be allowed. will be allowed.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% else %} {% else %}
{% csrf_token %} {% csrf_token %}
<p> <p>
{% trans "Are you sure you want to cancel this event?" %} {% trans "Are you sure you want to cancel this event?" %}
{% if bookings_count %} {% if bookings_count %}
{% if cancel_bookings %} {% if cancel_bookings %}
{% blocktrans trimmed count count=bookings_count %} {% blocktrans trimmed count count=bookings_count %}
{{ count }} related booking will also be cancelled. {{ count }} related booking will also be cancelled.
{% plural %} {% plural %}
{{ count }} related bookings will also be cancelled. {{ count }} related bookings will also be cancelled.
{% endblocktrans %} {% endblocktrans %}
{% else %} {% else %}
{% trans "Related bookings will have to be manually cancelled if needed." %} {% trans "Related bookings will have to be manually cancelled if needed." %}
{% endif %} {% endif %}
{% endif %} {% endif %}
</p> </p>
<input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}"> <input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}">
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="delete-button">{% trans "Proceed with cancellation" %}</button> <button class="delete-button">{% trans "Proceed with cancellation" %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Abort' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Abort' %}</a>
</div> </div>
{% endif %} {% endif %}
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,23 +2,23 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{{ view.model.get_verbose_name }}</h2> <h2>{{ view.model.get_verbose_name }}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}"> <input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}">
<p> <p>
{% if cannot_delete %} {% if cannot_delete %}
{% blocktrans %}This cannot be removed as there are bookings.{% endblocktrans %} {% blocktrans %}This cannot be removed as there are bookings.{% endblocktrans %}
{% else %} {% else %}
{% blocktrans %}Are you sure you want to delete this event?{% endblocktrans %} {% blocktrans %}Are you sure you want to delete this event?{% endblocktrans %}
{% endif %} {% endif %}
</p> </p>
<div class="buttons"> <div class="buttons">
<button class="delete-button" {% if cannot_delete %}disabled="disabled"{% endif %}>{% trans 'Delete' %}</button> <button class="delete-button" {% if cannot_delete %}disabled="disabled"{% endif %}>{% trans 'Delete' %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,18 +2,18 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{{ object }}</h2> <h2>{{ object }}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<p> <p>
{% blocktrans %}Are you sure you want to delete this exception?{% endblocktrans %} {% blocktrans %}Are you sure you want to delete this exception?{% endblocktrans %}
</p> </p>
<div class="buttons"> <div class="buttons">
<button class="delete-button" {% if cannot_delete %}disabled="disabled"{% endif %}>{% trans 'Delete' %}</button> <button class="delete-button" {% if cannot_delete %}disabled="disabled"{% endif %}>{% trans 'Delete' %}</button>
<a class="cancel" href="{{ object.get_absolute_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ object.get_absolute_url }}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,18 +2,18 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{{ object }}</h2> <h2>{{ object }}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<p> <p>
{% blocktrans %}Are you sure you want to delete this exception source?{% endblocktrans %} {% blocktrans %}Are you sure you want to delete this exception source?{% endblocktrans %}
</p> </p>
<div class="buttons"> <div class="buttons">
<button class="delete-button">{% trans 'Delete' %}</button> <button class="delete-button">{% trans 'Delete' %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,18 +2,18 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Exclude Agenda" %}</h2> <h2>{% trans "Exclude Agenda" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<p> <p>
{% blocktrans %}Are you sure you want to exclude this agenda from the virtual agenda ?{% endblocktrans %} {% blocktrans %}Are you sure you want to exclude this agenda from the virtual agenda ?{% endblocktrans %}
</p> </p>
<div class="buttons"> <div class="buttons">
<button class="delete-button">{% trans 'Exclude' %}</button> <button class="delete-button">{% trans 'Exclude' %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' agenda.pk %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' agenda.pk %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,38 +2,38 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.id %} {% if object.id %}
<a href="">{{object.label}}</a> <a href="">{{object.label}}</a>
{% else %} {% else %}
<a href="">{% trans "New Desk" %}</a> <a href="">{% trans "New Desk" %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Desk" %}</h2> <h2>{% trans "Edit Desk" %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-desk-delete' pk=object.id %}">{% trans 'Delete' %}</a> <a rel="popup" href="{% url 'chrono-manager-desk-delete' pk=object.id %}">{% trans 'Delete' %}</a>
</span> </span>
{% else %} {% else %}
<h2>{% trans "New Desk" %}</h2> <h2>{% trans "New Desk" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,26 +2,26 @@
{% load i18n %} {% load i18n %}
{% block page-title-extra-label %} {% block page-title-extra-label %}
{{ block.super }} - {% trans "Cancellation error report" %} {{ block.super }} - {% trans "Cancellation error report" %}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-event-cancellation-report-list' pk=agenda.id %}">{% trans "Cancellation error reports" %}</a> <a href="{% url 'chrono-manager-event-cancellation-report-list' pk=agenda.id %}">{% trans "Cancellation error reports" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Cancellation error report:" %} {{ report }}</h2> <h2>{% trans "Cancellation error report:" %} {{ report }}</h2>
{% block actions %} {% block actions %}
<a rel="popup" href="{% url 'chrono-manager-event-cancel' pk=agenda.pk event_pk=report.event.pk %}?force_cancellation=True">{% trans "Force cancellation" %}</a> <a rel="popup" href="{% url 'chrono-manager-event-cancel' pk=agenda.pk event_pk=report.event.pk %}?force_cancellation=True">{% trans "Force cancellation" %}</a>
{% endblock %} {% endblock %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<p>{% trans "Cancellation failed for the following bookings:" %}</p> <p>{% trans "Cancellation failed for the following bookings:" %}</p>
<ul> <ul>
{% for booking, error in errors.items %} {% for booking, error in errors.items %}
<li><a href="{{ booking.get_backoffice_url }}">{{ booking.events_display }}</a>: {{ error }}</li> <li><a href="{{ booking.get_backoffice_url }}">{{ booking.events_display }}</a>: {{ error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endblock %} {% endblock %}

View File

@ -1,10 +1,10 @@
{% load i18n %} {% load i18n %}
{% for report in cancellation_reports %} {% for report in cancellation_reports %}
<div class="warningnotice"> <div class="warningnotice">
<p> <p>
{% blocktrans with event=report.event %}Errors occured during cancellation of event "{{ event }}".{% endblocktrans %} {% blocktrans with event=report.event %}Errors occured during cancellation of event "{{ event }}".{% endblocktrans %}
<a href="{% url 'chrono-manager-event-cancellation-report' pk=agenda.pk report_pk=report.pk %}">{% trans "Details" %}</a> <a href="{% url 'chrono-manager-event-cancellation-report' pk=agenda.pk report_pk=report.pk %}">{% trans "Details" %}</a>
</p> </p>
</div> </div>
{% endfor %} {% endfor %}

View File

@ -2,27 +2,27 @@
{% load i18n %} {% load i18n %}
{% block page-title-extra-label %} {% block page-title-extra-label %}
{{ block.super }} - {% trans "Cancellation error reports" %} {{ block.super }} - {% trans "Cancellation error reports" %}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-event-cancellation-report-list' pk=agenda.pk %}">{% trans "Cancellation error reports" %}</a> <a href="{% url 'chrono-manager-event-cancellation-report-list' pk=agenda.pk %}">{% trans "Cancellation error reports" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Cancellation error reports" %}</h2> <h2>{% trans "Cancellation error reports" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<ul> <ul>
{% for report in cancellation_reports %} {% for report in cancellation_reports %}
<li {% if not report.seen %}class="new-report"{% endif %}> <li {% if not report.seen %}class="new-report"{% endif %}>
<a href="{% url 'chrono-manager-event-cancellation-report' pk=agenda.pk report_pk=report.pk %}">{{ report }}</a> <a href="{% url 'chrono-manager-event-cancellation-report' pk=agenda.pk report_pk=report.pk %}">{{ report }}</a>
({% blocktrans count count=report.bookings.count %}{{ count }} failure{% plural %}{{ count }} failures{% endblocktrans %}) ({% blocktrans count count=report.bookings.count %}{{ count }} failure{% plural %}{{ count }} failures{% endblocktrans %})
</li> </li>
{% empty %} {% empty %}
<li>{% trans "No error report to show." %}</li> <li>{% trans "No error report to show." %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endblock %} {% endblock %}

View File

@ -2,119 +2,119 @@
{% load static i18n %} {% load static i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-event-check' pk=agenda.pk event_pk=object.pk %}">{% trans "Check" %}</a> <a href="{% url 'chrono-manager-event-check' pk=agenda.pk event_pk=object.pk %}">{% trans "Check" %}</a>
{% endblock %} {% endblock %}
{% block appbar_actions %}{% endblock %} {% block appbar_actions %}{% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3> <h3>
{% blocktrans with booked_places=object.booked_places places=object.places %}Bookings ({{ booked_places }}/{{ places }}){% endblocktrans %} {% blocktrans with booked_places=object.booked_places places=object.places %}Bookings ({{ booked_places }}/{{ places }}){% endblocktrans %}
</h3> </h3>
<div> <div>
<form class="check-bookings-filters"> <form class="check-bookings-filters">
{{ filterset.form.as_p }} {{ filterset.form.as_p }}
<script> <script>
$(function() { $(function() {
$('form.check-bookings-filters input').on('change', $('form.check-bookings-filters input').on('change',
function() { function() {
$(this).parents('form').submit(); $(this).parents('form').submit();
});
}); });
}); </script>
</script> </form>
</form> <table class="main check-bookings">
<table class="main check-bookings"> <tbody>
<tbody> {% if results and not event.checked %}
{% if results and not event.checked %} <tr class="booking">
<tr class="booking"> <td class="booking-actions">
<td class="booking-actions"> <form method="post" action="{% url 'chrono-manager-event-checked' pk=agenda.pk event_pk=object.pk %}">
<form method="post" action="{% url 'chrono-manager-event-checked' pk=agenda.pk event_pk=object.pk %}"> {% csrf_token %}
{% csrf_token %} <button class="submit-button">{% trans "Mark the event as checked" %}</button>
<button class="submit-button">{% trans "Mark the event as checked" %}</button> </form>
</form> </td>
</td> </tr>
</tr> {% endif %}
{% endif %} {% if booked_without_status %}
{% if booked_without_status %} {% if not event.checked or not agenda.disable_check_update %}
{% if not event.checked or not agenda.disable_check_update %} <tr class="booking all-bookings">
<tr class="booking all-bookings"> <td colspan="2"><b>{% trans "Mark all bookings without status:" %}</b></td>
<td colspan="2"><b>{% trans "Mark all bookings without status:" %}</b></td> <td class="booking-actions">
<td class="booking-actions"> <form method="post" action="{% url 'chrono-manager-event-presence' pk=agenda.pk event_pk=object.pk %}" id="all-bookings-presence">
<form method="post" action="{% url 'chrono-manager-event-presence' pk=agenda.pk event_pk=object.pk %}" id="all-bookings-presence"> {% csrf_token %}
{% csrf_token %} <button class="submit-button">{% trans "Presence" %}</button>
<button class="submit-button">{% trans "Presence" %}</button> {% if presence_form.check_type.field.choices.1 %}{{ presence_form.check_type }}{% endif %}
{% if presence_form.check_type.field.choices.1 %}{{ presence_form.check_type }}{% endif %} <script>
<script> $(function() {
$(function() { $('#all-bookings-presence select').on('change',
$('#all-bookings-presence select').on('change', function() {
function() { $('#all-bookings-presence').submit();
$('#all-bookings-presence').submit(); });
}); });
}); </script>
</script> </form>
</form> <form method="post" action="{% url 'chrono-manager-event-absence' pk=agenda.pk event_pk=object.pk %}" id="all-bookings-absence">
<form method="post" action="{% url 'chrono-manager-event-absence' pk=agenda.pk event_pk=object.pk %}" id="all-bookings-absence"> {% csrf_token %}
{% csrf_token %} <button class="submit-button">{% trans "Absence" %}</button>
<button class="submit-button">{% trans "Absence" %}</button> {% if absence_form.check_type.field.choices.1 %}{{ absence_form.check_type }}{% endif %}
{% if absence_form.check_type.field.choices.1 %}{{ absence_form.check_type }}{% endif %} <script>
<script> $(function() {
$(function() { $('#all-bookings-absence select').on('change',
$('#all-bookings-absence select').on('change', function() {
function() { $('#all-bookings-absence').submit();
$('#all-bookings-absence').submit(); });
}); });
}); </script>
</script> </form>
</form> </td>
</td> </tr>
</tr> {% endif %}
{% endif %} {% endif %}
{% endif %} {% for result in results %}
{% for result in results %} <tr class="booking">
<tr class="booking"> {% if result.kind == 'booking' %}
{% if result.kind == 'booking' %} {% if result.cancellation_datetime is None %}
{% if result.cancellation_datetime is None %} {% include "chrono/manager_event_check_booking_fragment.html" with booking=result %}
{% include "chrono/manager_event_check_booking_fragment.html" with booking=result %} {% else %}
{% else %} <td class="booking-username main-list">{{ result.get_user_block }}</td>
<td class="booking-username main-list">{{ result.get_user_block }}</td> <td class="booking-status">({% trans "Cancelled" %})</td>
<td class="booking-status">({% trans "Cancelled" %})</td> {% if not event.checked or not agenda.disable_check_update %}
{% if not event.checked or not agenda.disable_check_update %} <td class="booking-actions"></td>
<td class="booking-actions"></td> {% endif %}
{% endif %}
{% elif result.kind == 'subscription' %}
<td class="booking-username main-list">{{ result.get_user_block }}</td>
<td class="booking-status">({% trans "Not booked" %})</td>
{% if not event.checked or not agenda.disable_check_update %}
<td class="booking-actions"></td>
{% endif %}
{% endif %} {% endif %}
{% endif %} </tr>
{% elif result.kind == 'subscription' %} {% endfor %}
<td class="booking-username main-list">{{ result.get_user_block }}</td> </tbody>
<td class="booking-status">({% trans "Not booked" %})</td> </table>
{% if not event.checked or not agenda.disable_check_update %} </div>
<td class="booking-actions"></td>
{% endif %}
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div> </div>
</div>
{% if object.waiting_list_places %} {% if object.waiting_list_places %}
<div class="section"> <div class="section">
<h3> <h3>
{% blocktrans with booked_places=object.booked_waiting_list_places places=object.waiting_list_places %}Waiting List ({{ booked_places }}/{{ places }}){% endblocktrans %} {% blocktrans with booked_places=object.booked_waiting_list_places places=object.waiting_list_places %}Waiting List ({{ booked_places }}/{{ places }}){% endblocktrans %}
</h3> </h3>
<div> <div>
<table class="main check-bookings"> <table class="main check-bookings">
<tbody> <tbody>
{% for booking in waiting %} {% for booking in waiting %}
<tr> <tr>
<td class="booking-username waiting">{{ booking.get_user_block }}{% if booking.places_count > 1 %} ({{ booking.places_count }} {% trans "places" %}){% endif %}</td> <td class="booking-username waiting">{{ booking.get_user_block }}{% if booking.places_count > 1 %} ({{ booking.places_count }} {% trans "places" %}){% endif %}</td>
<td>{% if booking.cancellation_datetime %}({% trans "Cancelled" %}){% endif %}</td> <td>{% if booking.cancellation_datetime %}({% trans "Cancelled" %}){% endif %}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -8,36 +8,36 @@
{% endif %} {% endif %}
</td> </td>
{% if not event.checked or not agenda.disable_check_update %} {% if not event.checked or not agenda.disable_check_update %}
<td class="booking-actions" data-booking-id="{{ booking.id }}"> <td class="booking-actions" data-booking-id="{{ booking.id }}">
<form method="post" action="{% url 'chrono-manager-booking-presence' pk=agenda.pk booking_pk=booking.pk %}" class="with-ajax presence"> <form method="post" action="{% url 'chrono-manager-booking-presence' pk=agenda.pk booking_pk=booking.pk %}" class="with-ajax presence">
{% csrf_token %} {% csrf_token %}
<button class="submit-button" <button class="submit-button"
{% if booking.user_was_present is True %}disabled{% endif %} {% if booking.user_was_present is True %}disabled{% endif %}
>{% trans "Presence" %}</button> >{% trans "Presence" %}</button>
{% if booking.presence_form.check_type.field.choices.1 %}{{ booking.presence_form.check_type }}{% endif %} {% if booking.presence_form.check_type.field.choices.1 %}{{ booking.presence_form.check_type }}{% endif %}
<script> <script>
$(function() { $(function() {
$('td[data-booking-id="{{ booking.id }}"] form.presence select').on('change', $('td[data-booking-id="{{ booking.id }}"] form.presence select').on('change',
function() { function() {
$(this).parents('form.presence').submit(); $(this).parents('form.presence').submit();
});
}); });
}); </script>
</script> </form>
</form> <form method="post" action="{% url 'chrono-manager-booking-absence' pk=agenda.pk booking_pk=booking.pk %}" class="with-ajax absence">
<form method="post" action="{% url 'chrono-manager-booking-absence' pk=agenda.pk booking_pk=booking.pk %}" class="with-ajax absence"> {% csrf_token %}
{% csrf_token %} <button class="submit-button"
<button class="submit-button" {% if booking.user_was_present is False %}disabled{% endif %}
{% if booking.user_was_present is False %}disabled{% endif %} >{% trans "Absence" %}</button>
>{% trans "Absence" %}</button> {% if booking.absence_form.check_type.field.choices.1 %}{{ booking.absence_form.check_type }}{% endif %}
{% if booking.absence_form.check_type.field.choices.1 %}{{ booking.absence_form.check_type }}{% endif %} <script>
<script> $(function() {
$(function() { $('td[data-booking-id="{{ booking.id }}"] form.absence select').on('change',
$('td[data-booking-id="{{ booking.id }}"] form.absence select').on('change',
function() { function() {
$(this).parents('form.absence').submit(); $(this).parents('form.absence').submit();
});
}); });
}); </script>
</script> </form>
</form> </td>
</td>
{% endif %} {% endif %}

View File

@ -2,63 +2,63 @@
{% load static i18n %} {% load static i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
<script src="{% static 'js/chrono_events.manager.js' %}"></script> <script src="{% static 'js/chrono_events.manager.js' %}"></script>
{% endblock %} {% endblock %}
{% block page-title-extra-label %} {% block page-title-extra-label %}
- {% firstof agenda.label event.label %} - {% firstof agenda.label event.label %}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-view' pk=agenda.id %}">{{agenda.label}}</a> <a href="{% url 'chrono-manager-agenda-view' pk=agenda.id %}">{{agenda.label}}</a>
<a href="{% url 'chrono-manager-event-view' pk=agenda.id event_pk=event.id %}">{{event}}</a> <a href="{% url 'chrono-manager-event-view' pk=agenda.id event_pk=event.id %}">{{event}}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2> <h2>
{% if event.label %} {% if event.label %}
{{ event.label }} — {{event.start_datetime|date:"DATETIME_FORMAT"}} {{ event.label }} — {{event.start_datetime|date:"DATETIME_FORMAT"}}
{% else %} {% else %}
{{ event.start_datetime|date:"DATETIME_FORMAT"}} {{ event.start_datetime|date:"DATETIME_FORMAT"}}
{% endif %}
{% if event.cancellation_status %}<span class="tag">{{ event.cancellation_status }}</span>{% endif %}
{% if event.main_list_full %}<span class="tag">{% trans "Full" %}</span>{% endif %}
{% if event.checked %}<span class="tag">{% trans "Checked" %}</span>{% endif %}
</h2>
{% block appbar_actions %}
<span class="actions">
{% if user_can_manage or event.agenda.booking_form_url %}
<a class="extra-actions-menu-opener"></a>
<ul class="extra-actions-menu">
{% if user_can_manage %}
{% if not event.primary_event %}
<li><a rel="popup" href="{% url 'chrono-manager-event-delete' pk=event.agenda.id event_pk=event.id %}">{% trans 'Delete' %}</a></li>
{% endif %} {% endif %}
{% if not event.cancellation_status %} {% if event.cancellation_status %}<span class="tag">{{ event.cancellation_status }}</span>{% endif %}
<li><a rel="popup" href="{% url 'chrono-manager-event-cancel' pk=agenda.pk event_pk=event.pk %}?next={{ request.path }}">{% trans "Cancel" %}</a></li> {% if event.main_list_full %}<span class="tag">{% trans "Full" %}</span>{% endif %}
{% endif %} {% if event.checked %}<span class="tag">{% trans "Checked" %}</span>{% endif %}
<li><a href="{% url 'chrono-manager-event-edit' pk=agenda.id event_pk=event.id %}">{% trans "Options" %}</a></li> </h2>
{% endif %} {% block appbar_actions %}
{% if event.agenda.booking_form_url %} <span class="actions">
<li><a href="{{ event.get_booking_form_url }}&ReturnURL={{ request.build_absolute_uri }}">{% trans "Booking form" %}</a></li> {% if user_can_manage or event.agenda.booking_form_url %}
{% endif %} <a class="extra-actions-menu-opener"></a>
{% if not event.cancelled and agenda.subscriptions.exists %} <ul class="extra-actions-menu">
<li><a href="{% url 'chrono-manager-event-timesheet' pk=agenda.pk event_pk=event.pk %}">{% trans "Timesheet" %}</a></li> {% if user_can_manage %}
{% endif %} {% if not event.primary_event %}
</ul> <li><a rel="popup" href="{% url 'chrono-manager-event-delete' pk=event.agenda.id event_pk=event.id %}">{% trans 'Delete' %}</a></li>
{% endif %} {% endif %}
{% if event.is_day_past and not event.cancelled %} {% if not event.cancellation_status %}
<a href="{% url 'chrono-manager-event-check' pk=agenda.pk event_pk=event.pk %}">{% trans "Check" %}</a> <li><a rel="popup" href="{% url 'chrono-manager-event-cancel' pk=agenda.pk event_pk=event.pk %}?next={{ request.path }}">{% trans "Cancel" %}</a></li>
{% endif %} {% endif %}
</span> <li><a href="{% url 'chrono-manager-event-edit' pk=agenda.id event_pk=event.id %}">{% trans "Options" %}</a></li>
{% endblock %} {% endif %}
{% if event.agenda.booking_form_url %}
<li><a href="{{ event.get_booking_form_url }}&ReturnURL={{ request.build_absolute_uri }}">{% trans "Booking form" %}</a></li>
{% endif %}
{% if not event.cancelled and agenda.subscriptions.exists %}
<li><a href="{% url 'chrono-manager-event-timesheet' pk=agenda.pk event_pk=event.pk %}">{% trans "Timesheet" %}</a></li>
{% endif %}
</ul>
{% endif %}
{% if event.is_day_past and not event.cancelled %}
<a href="{% url 'chrono-manager-event-check' pk=agenda.pk event_pk=event.pk %}">{% trans "Check" %}</a>
{% endif %}
</span>
{% endblock %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div id="event_details"> <div id="event_details">
{% include "chrono/manager_event_detail_fragment.html" %} {% include "chrono/manager_event_detail_fragment.html" %}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -1,13 +1,13 @@
{% load i18n %} {% load i18n %}
{% if object.description or object.pricing or object.url %} {% if object.description or object.pricing or object.url %}
<div class="section"> <div class="section">
<div> <div>
{% if object.description %}{{ object.description|linebreaks }}{% endif %} {% if object.description %}{{ object.description|linebreaks }}{% endif %}
{% if object.pricing %}<p>{% trans "Pricing:" %} {{ object.pricing }}</p>{% endif %} {% if object.pricing %}<p>{% trans "Pricing:" %} {{ object.pricing }}</p>{% endif %}
{% if object.url %}<p><a href="{{ object.url }}">{{ object.url|truncatechars:100 }}</a></p>{% endif %} {% if object.url %}<p><a href="{{ object.url }}">{{ object.url|truncatechars:100 }}</a></p>{% endif %}
{% if object.publication_datetime %}<p>{% trans "Publication date:" %} {{ object.publication_datetime }}</p>{% endif %} {% if object.publication_datetime %}<p>{% trans "Publication date:" %} {{ object.publication_datetime }}</p>{% endif %}
</div> </div>
</div> </div>
{% endif %} {% endif %}
<div class="section"> <div class="section">
@ -18,44 +18,44 @@
Bookings ({{ booked_places }}/{{ places }}): {{ remaining_places }} remaining places Bookings ({{ booked_places }}/{{ places }}): {{ remaining_places }} remaining places
{% endblocktrans %} {% endblocktrans %}
</h3> </h3>
<div> <div>
{% if object.booked_places > event.places %} {% if object.booked_places > event.places %}
<div class="errornotice"><p>{% trans "This event is overbooked." %}</p></div> <div class="errornotice"><p>{% trans "This event is overbooked." %}</p></div>
{% elif object.booked_places == event.places %} {% elif object.booked_places == event.places %}
<div class="infonotice"><p>{% trans "This event is full." %}</p></div> <div class="infonotice"><p>{% trans "This event is full." %}</p></div>
{% endif %}
<ul class="objects-list single-links">
{% for booking in booked %}
<li>
<a {% if booking.get_backoffice_url %}href="{{ booking.get_backoffice_url }}"{% endif %}>{{ booking.get_user_block }}, {{ booking.creation_datetime|date:"DATETIME_FORMAT" }}</a>
{% if not booking.primary_booking %}
<a rel="popup" class="delete" href="{% url 'chrono-manager-booking-cancel' pk=agenda.id booking_pk=booking.id %}?next={{ request.path }}">{% trans "Cancel" %}</a>
{% else %}
<a class="delete disabled" title="{% trans "Can not cancel a secondary booking" %}" href="#">{% trans "Cancel" %}</a>
{% endif %} {% endif %}
</li>
{% endfor %} <ul class="objects-list single-links">
</ul> {% for booking in booked %}
</div> <li>
<a {% if booking.get_backoffice_url %}href="{{ booking.get_backoffice_url }}"{% endif %}>{{ booking.get_user_block }}, {{ booking.creation_datetime|date:"DATETIME_FORMAT" }}</a>
{% if not booking.primary_booking %}
<a rel="popup" class="delete" href="{% url 'chrono-manager-booking-cancel' pk=agenda.id booking_pk=booking.id %}?next={{ request.path }}">{% trans "Cancel" %}</a>
{% else %}
<a class="delete disabled" title="{% trans "Can not cancel a secondary booking" %}" href="#">{% trans "Cancel" %}</a>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</div> </div>
{% if object.waiting_list_places %} {% if object.waiting_list_places %}
<div class="section"> <div class="section">
<h3> <h3>
{% blocktrans with places=object.waiting_list_places booked_places=object.booked_waiting_list_places count remaining_places=object.remaining_waiting_list_places %} {% blocktrans with places=object.waiting_list_places booked_places=object.booked_waiting_list_places count remaining_places=object.remaining_waiting_list_places %}
Waiting List ({{ booked_places }}/{{ places }}): {{ remaining_places }} remaining place Waiting List ({{ booked_places }}/{{ places }}): {{ remaining_places }} remaining place
{% plural %} {% plural %}
Waiting List ({{ booked_places }}/{{ places }}): {{ remaining_places }} remaining places Waiting List ({{ booked_places }}/{{ places }}): {{ remaining_places }} remaining places
{% endblocktrans %} {% endblocktrans %}
</h3> </h3>
<div> <div>
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for booking in waiting %} {% for booking in waiting %}
<li><a {% if booking.get_backoffice_url %}href="{{ booking.get_backoffice_url }}"{% endif %}>{{ booking.get_user_block }}, {{ booking.creation_datetime|date:"DATETIME_FORMAT" }}</a></li> <li><a {% if booking.get_backoffice_url %}href="{{ booking.get_backoffice_url }}"{% endif %}>{{ booking.get_user_block }}, {{ booking.creation_datetime|date:"DATETIME_FORMAT" }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View File

@ -2,22 +2,22 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{{ agenda.get_settings_url }}">{% trans 'Settings' %}</a> <a href="{{ agenda.get_settings_url }}">{% trans 'Settings' %}</a>
<a href="">{% trans "Duplicate Event" %}</a> <a href="">{% trans "Duplicate Event" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Duplicate Event" %}</h2> <h2>{% trans "Duplicate Event" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Duplicate" %}</button> <button class="submit-button">{% trans "Duplicate" %}</button>
<a class="cancel" href="{% url 'chrono-manager-event-edit' pk=agenda.id event_pk=object.pk %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-event-edit' pk=agenda.id event_pk=object.pk %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,54 +2,54 @@
{% load i18n gadjo %} {% load i18n gadjo %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.id %} {% if object.id %}
<a href="{% url 'chrono-manager-agenda-view' pk=object.agenda.id %}">{{object.agenda.label}}</a> <a href="{% url 'chrono-manager-agenda-view' pk=object.agenda.id %}">{{object.agenda.label}}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Event" %}</h2> <h2>{% trans "Edit Event" %}</h2>
<span class="actions"> <span class="actions">
{% if not object.primary_event %} {% if not object.primary_event %}
<a rel="popup" href="{% url 'chrono-manager-event-delete' pk=object.agenda.id event_pk=object.id %}?next={{view.request.GET.next}}">{% trans 'Delete' %}</a> <a rel="popup" href="{% url 'chrono-manager-event-delete' pk=object.agenda.id event_pk=object.id %}?next={{view.request.GET.next}}">{% trans 'Delete' %}</a>
{% endif %} {% endif %}
</span> </span>
{% else %} {% else %}
<h2>{% trans "New Event" %}</h2> <h2>{% trans "New Event" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}"> <input type="hidden" name="next" value="{% firstof request.POST.next request.GET.next %}">
{{ form|with_template }} {{ form|with_template }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a>
</div> </div>
<script> <script>
$(function () { $(function () {
recurrence_fields = $('.widget[id^=id_recurrence]'); recurrence_fields = $('.widget[id^=id_recurrence]');
$('input[type=radio][name=frequency]').change(function() { $('input[type=radio][name=frequency]').change(function() {
if(!this.checked) if(!this.checked)
return; return;
if(this.value == 'unique') { if(this.value == 'unique') {
recurrence_fields.hide(); recurrence_fields.hide();
} else { } else {
recurrence_fields.show(); recurrence_fields.show();
} }
}).change(); }).change();
}); });
</script> </script>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,8 +2,8 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-event-timesheet' pk=agenda.pk event_pk=event.pk %}">{% trans "Timesheet" %}</a> <a href="{% url 'chrono-manager-event-timesheet' pk=agenda.pk event_pk=event.pk %}">{% trans "Timesheet" %}</a>
{% endblock %} {% endblock %}
{% block appbar_actions %}{% endblock %} {% block appbar_actions %}{% endblock %}

View File

@ -2,35 +2,35 @@
{% load i18n %} {% load i18n %}
{% block actions %} {% block actions %}
{% if agenda.subscriptions.exists %} {% if agenda.subscriptions.exists %}
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
<li><a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans 'Timesheet' %}</a></li> <li><a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans 'Timesheet' %}</a></li>
</ul> </ul>
{% endif %} {% endif %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-open-events-view' pk=agenda.pk %}">{% trans 'Open events' %}</a> <a href="{% url 'chrono-manager-agenda-open-events-view' pk=agenda.pk %}">{% trans 'Open events' %}</a>
<a href="{% url 'chrono-manager-agenda-month-view' pk=agenda.pk year=view.date|date:"Y" month=view.date|date:"n" %}">{% trans 'Month view' %}</a> <a href="{% url 'chrono-manager-agenda-month-view' pk=agenda.pk year=view.date|date:"Y" month=view.date|date:"n" %}">{% trans 'Month view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3>{% trans "Events" %}</h3> <h3>{% trans "Events" %}</h3>
<div> <div>
{% if object_list %} {% if object_list %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for event in object_list %} {% for event in object_list %}
{% include 'chrono/manager_agenda_event_fragment.html' with view_mode='day_view' %} {% include 'chrono/manager_agenda_event_fragment.html' with view_mode='day_view' %}
{% endfor %} {% endfor %}
</ul> </ul>
{% include "gadjo/pagination.html" %} {% include "gadjo/pagination.html" %}
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This day doesn't have any event configured. This day doesn't have any event configured.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,42 +2,42 @@
{% load i18n %} {% load i18n %}
{% block actions %} {% block actions %}
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
<li><a href="{% url 'chrono-manager-event-cancellation-report-list' pk=agenda.pk %}">{% trans 'Cancellation error reports' %}</a></li> <li><a href="{% url 'chrono-manager-event-cancellation-report-list' pk=agenda.pk %}">{% trans 'Cancellation error reports' %}</a></li>
{% if agenda.subscriptions.exists %} {% if agenda.subscriptions.exists %}
<li><a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans 'Timesheet' %}</a></li> <li><a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans 'Timesheet' %}</a></li>
{% endif %} {% endif %}
</ul> </ul>
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-open-events-view' pk=agenda.pk %}">{% trans 'Open events' %}</a> <a href="{% url 'chrono-manager-agenda-open-events-view' pk=agenda.pk %}">{% trans 'Open events' %}</a>
<a href="{% url 'chrono-manager-agenda-day-view' pk=agenda.pk year=view.date|date:"Y" month=view.date|date:"m" day=view.date|date:"d" %}">{% trans 'Day view' %}</a> <a href="{% url 'chrono-manager-agenda-day-view' pk=agenda.pk year=view.date|date:"Y" month=view.date|date:"m" day=view.date|date:"d" %}">{% trans 'Day view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3>{% trans "Events" %}</h3> <h3>{% trans "Events" %}</h3>
{% include 'chrono/manager_event_cancellation_report_notice.html' %} {% include 'chrono/manager_event_cancellation_report_notice.html' %}
<div> <div>
{% if object_list %} {% if object_list %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in object_list %} {% for object in object_list %}
{% if object.is_exception %} {% if object.is_exception %}
<li><a class="disabled">{% trans "Exception:"%} {{ object }}</a></li> <li><a class="disabled">{% trans "Exception:"%} {{ object }}</a></li>
{% else %} {% else %}
{% include 'chrono/manager_agenda_event_fragment.html' with event=object %} {% include 'chrono/manager_agenda_event_fragment.html' with event=object %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
{% include "gadjo/pagination.html" %} {% include "gadjo/pagination.html" %}
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This month doesn't have any event configured. This month doesn't have any event configured.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -13,60 +13,60 @@
{% endblock %} {% endblock %}
{% block agenda-settings-extra-tab-buttons %} {% block agenda-settings-extra-tab-buttons %}
<button aria-controls="panel-events" aria-selected="true" id="tab-events" role="tab" tabindex="0">{% trans "Events" %}</button> <button aria-controls="panel-events" aria-selected="true" id="tab-events" role="tab" tabindex="0">{% trans "Events" %}</button>
{% if has_recurring_events %} {% if has_recurring_events %}
<button aria-controls="panel-time-periods" aria-selected="false" id="tab-time-periods" role="tab" tabindex="-1">{% trans "Recurrence exceptions" %}</button> <button aria-controls="panel-time-periods" aria-selected="false" id="tab-time-periods" role="tab" tabindex="-1">{% trans "Recurrence exceptions" %}</button>
{% endif %} {% endif %}
<button aria-controls="panel-display-options" aria-selected="false" id="tab-display-options" role="tab" tabindex="-1">{% trans "Display options" %}</button> <button aria-controls="panel-display-options" aria-selected="false" id="tab-display-options" role="tab" tabindex="-1">{% trans "Display options" %}</button>
<button aria-controls="panel-booking-check-options" aria-selected="false" id="tab-booking-check-options" role="tab" tabindex="-1">{% trans "Booking check options" %}</button> <button aria-controls="panel-booking-check-options" aria-selected="false" id="tab-booking-check-options" role="tab" tabindex="-1">{% trans "Booking check options" %}</button>
<button aria-controls="panel-notifications" aria-selected="false" id="tab-notifications" role="tab" tabindex="-1">{% trans "Notifications" %}</button> <button aria-controls="panel-notifications" aria-selected="false" id="tab-notifications" role="tab" tabindex="-1">{% trans "Notifications" %}</button>
{% endblock %} {% endblock %}
{% block agenda-settings-extra-tab-list %} {% block agenda-settings-extra-tab-list %}
<div aria-labelledby="tab-events" id="panel-events" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-events" id="panel-events" role="tabpanel" tabindex="0">
{% with view.get_events as events %} {% with view.get_events as events %}
{% if events %} {% if events %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for event in events %} {% for event in events %}
{% include 'chrono/manager_agenda_event_fragment.html' with view_mode='settings_view' %} {% include 'chrono/manager_agenda_event_fragment.html' with view_mode='settings_view' %}
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans %}
This agenda doesn't have any event yet. Click on the "New Event" button in
the top right of the page to add a first one.
{% endblocktrans %}
</div>
{% endif %}
{% endwith %}
</div>
{% if has_recurring_events %}
<div aria-labelledby="tab-time-periods" hidden="" id="panel-time-periods" role="tabpanel" tabindex="0">
{% if object.recurrence_exceptions_report.events.exists %}
<div class="warningnotice">
<p>{% trans "The following events exist despite exceptions because they have active bookings:" %}</p>
<ul>
{% for event in object.recurrence_exceptions_report.events.all %}
<li><a href="{{ event.get_absolute_view_url }}">{{ event }}{% if event.label %} - {{ event.start_datetime|date:"DATETIME_FORMAT" }}{% endif %}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
<p>{% trans "You can cancel them manually for this warning to go away, or wait until they are passed." %}</p> {% else %}
</div> <div class="big-msg-info">
{% blocktrans %}
This agenda doesn't have any event yet. Click on the "New Event" button in
the top right of the page to add a first one.
{% endblocktrans %}
</div>
{% endif %}
{% endwith %}
</div>
{% if has_recurring_events %}
<div aria-labelledby="tab-time-periods" hidden="" id="panel-time-periods" role="tabpanel" tabindex="0">
{% if object.recurrence_exceptions_report.events.exists %}
<div class="warningnotice">
<p>{% trans "The following events exist despite exceptions because they have active bookings:" %}</p>
<ul>
{% for event in object.recurrence_exceptions_report.events.all %}
<li><a href="{{ event.get_absolute_view_url }}">{{ event }}{% if event.label %} - {{ event.start_datetime|date:"DATETIME_FORMAT" }}{% endif %}</a></li>
{% endfor %}
</ul>
<p>{% trans "You can cancel them manually for this warning to go away, or wait until they are passed." %}</p>
</div>
{% endif %} {% endif %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for exception in exceptions|slice:":5" %} {% for exception in exceptions|slice:":5" %}
<li> <li>
<a rel="popup" {% if not exception.read_only %}href="{% url 'chrono-manager-time-period-exception-edit' pk=exception.pk %}"{% endif %}>{{ exception }}</a> <a rel="popup" {% if not exception.read_only %}href="{% url 'chrono-manager-time-period-exception-edit' pk=exception.pk %}"{% endif %}>{{ exception }}</a>
{% if not exception.read_only %} {% if not exception.read_only %}
<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=exception.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=exception.id %}">{% trans "remove" %}</a>
{% endif %} {% endif %}
</li> </li>
{% endfor %} {% endfor %}
{% if exceptions|length > 5 %} {% if exceptions|length > 5 %}
<li><a class="timeperiod-exception-all desk-{{ desk.pk }}" rel="popup" data-selector="div.timeperiod" href="{% url 'chrono-manager-time-period-exception-extract-list' pk=desk.id %}">({% trans 'see all exceptions' %})</a></li> <li><a class="timeperiod-exception-all desk-{{ desk.pk }}" rel="popup" data-selector="div.timeperiod" href="{% url 'chrono-manager-time-period-exception-extract-list' pk=desk.id %}">({% trans 'see all exceptions' %})</a></li>
{% endif %} {% endif %}
<li><a class="add" rel="popup" href="{% url 'chrono-manager-agenda-add-time-period-exception' agenda_pk=object.pk pk=desk.pk %}">{% trans 'Add a time period exception' %}</a></li> <li><a class="add" rel="popup" href="{% url 'chrono-manager-agenda-add-time-period-exception' agenda_pk=object.pk pk=desk.pk %}">{% trans 'Add a time period exception' %}</a></li>
</ul> </ul>
@ -74,66 +74,66 @@
<a rel="popup" class="button" href="{% url 'chrono-manager-desk-add-import-time-period-exceptions' pk=desk.pk %}">{% trans 'Configure' %}</a> <a rel="popup" class="button" href="{% url 'chrono-manager-desk-add-import-time-period-exceptions' pk=desk.pk %}">{% trans 'Configure' %}</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
<div aria-labelledby="tab-display-options" hidden="" id="panel-display-options" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-display-options" hidden="" id="panel-display-options" role="tabpanel" tabindex="0">
<ul> <ul>
<li> <li>
{% if agenda.event_display_template %} {% if agenda.event_display_template %}
{% trans "Event display template:" %} {% trans "Event display template:" %}
<pre>{{ agenda.event_display_template }}</pre> <pre>{{ agenda.event_display_template }}</pre>
{% else %} {% else %}
{% trans "No event display template configured for this agenda." %} {% trans "No event display template configured for this agenda." %}
{% endif %} {% endif %}
</li> </li>
<li> <li>
{% trans "Booking display template:" %} {% trans "Booking display template:" %}
<pre>{{ agenda.get_booking_user_block_template }}</pre> <pre>{{ agenda.get_booking_user_block_template }}</pre>
</li> </li>
</ul> </ul>
<div class="panel--buttons"> <div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-display-settings' pk=object.pk %}">{% trans 'Configure' %}</a> <a rel="popup" class="button" href="{% url 'chrono-manager-agenda-display-settings' pk=object.pk %}">{% trans 'Configure' %}</a>
</div>
</div> </div>
</div>
<div aria-labelledby="tab-booking-check-options" hidden="" id="panel-booking-check-options" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-booking-check-options" hidden="" id="panel-booking-check-options" role="tabpanel" tabindex="0">
<ul> <ul>
{% with agenda.get_booking_check_filters as check_filters %} {% with agenda.get_booking_check_filters as check_filters %}
{% if check_filters %} {% if check_filters %}
<li>{% trans "Filters:" %} <li>{% trans "Filters:" %}
<ul> <ul>
{% for key in check_filters %} {% for key in check_filters %}
<li>{{ key }}</li> <li>{{ key }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</li> </li>
{% else %} {% else %}
<li>{% trans "No filters configured for this agenda." %}</li> <li>{% trans "No filters configured for this agenda." %}</li>
{% endif %} {% endif %}
{% endwith %} {% endwith %}
<li>{% trans "Automatically mark event as checked when all bookings have been checked:" %} {{ agenda.mark_event_checked_auto|yesno }}</li> <li>{% trans "Automatically mark event as checked when all bookings have been checked:" %} {{ agenda.mark_event_checked_auto|yesno }}</li>
<li>{% trans "Prevent the check of bookings when event was marked as checked:" %} {{ agenda.disable_check_update|yesno }}</li> <li>{% trans "Prevent the check of bookings when event was marked as checked:" %} {{ agenda.disable_check_update|yesno }}</li>
</ul> </ul>
<div class="panel--buttons"> <div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-booking-check-settings' pk=object.pk %}">{% trans 'Configure' %}</a> <a rel="popup" class="button" href="{% url 'chrono-manager-agenda-booking-check-settings' pk=object.pk %}">{% trans 'Configure' %}</a>
</div>
</div> </div>
</div>
<div aria-labelledby="tab-notifications" hidden="" id="panel-notifications" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-notifications" hidden="" id="panel-notifications" role="tabpanel" tabindex="0">
{% for notification_type in object.notifications_settings.get_notification_types %} {% for notification_type in object.notifications_settings.get_notification_types %}
{% if forloop.first %}<ul>{% endif %} {% if forloop.first %}<ul>{% endif %}
<li> <li>
{% blocktrans trimmed with display_value=notification_type.display_value label=notification_type.label %} {% blocktrans trimmed with display_value=notification_type.display_value label=notification_type.label %}
{{ label }}: {{ display_value }} will be notified. {{ label }}: {{ display_value }} will be notified.
{% endblocktrans %} {% endblocktrans %}
</li> </li>
{% if forloop.last %}</ul>{% endif %} {% if forloop.last %}</ul>{% endif %}
{% empty %} {% empty %}
<p>{% trans "Notifications are disabled for this agenda." %}</p> <p>{% trans "Notifications are disabled for this agenda." %}</p>
{% endfor %} {% endfor %}
<div class="panel--buttons"> <div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-notifications-settings' pk=object.id %}">{% trans 'Configure' %}</a> <a rel="popup" class="button" href="{% url 'chrono-manager-agenda-notifications-settings' pk=object.id %}">{% trans 'Configure' %}</a>
</div>
</div> </div>
</div>
{% endblock %} {% endblock %}

View File

@ -2,8 +2,8 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans "Timesheet" %}</a> <a href="{% url 'chrono-manager-events-timesheet' pk=agenda.pk %}">{% trans "Timesheet" %}</a>
{% endblock %} {% endblock %}
{% block appbar_actions %}{% endblock %} {% block appbar_actions %}{% endblock %}

View File

@ -6,34 +6,34 @@
<form id="timesheet"> <form id="timesheet">
{{ form.as_p }} {{ form.as_p }}
<script> <script>
$(function() { $(function() {
$('#id_date_display').on('change', function() { $('#id_date_display').on('change', function() {
if ($(this).val() == 'custom') { if ($(this).val() == 'custom') {
$('#id_custom_nb_dates_per_page').parent().show(); $('#id_custom_nb_dates_per_page').parent().show();
} else { } else {
$('#id_custom_nb_dates_per_page').parent().hide(); $('#id_custom_nb_dates_per_page').parent().hide();
} }
});
$('#id_date_display').trigger('change');
$('#id_group_by').on('change', function() {
if ($(this).val()) {
$('#id_with_page_break').parent().show();
} else {
$('#id_with_page_break').parent().hide();
}
});
$('#id_group_by').trigger('change');
}); });
$('#id_date_display').trigger('change');
$('#id_group_by').on('change', function() {
if ($(this).val()) {
$('#id_with_page_break').parent().show();
} else {
$('#id_with_page_break').parent().hide();
}
});
$('#id_group_by').trigger('change');
});
</script> </script>
<button class="submit-button">{% trans "See timesheet" %}</button> <button class="submit-button">{% trans "See timesheet" %}</button>
{% if request.GET and form.is_valid %} {% if request.GET and form.is_valid %}
<button class="submit-button" name="pdf">{% trans "Get PDF file" %}</button> <button class="submit-button" name="pdf">{% trans "Get PDF file" %}</button>
<button class="submit-button" name="csv">{% trans "Get CSV file" %}</button> <button class="submit-button" name="csv">{% trans "Get CSV file" %}</button>
{% endif %} {% endif %}
</form> </form>
{% if request.GET and form.is_valid %} {% if request.GET and form.is_valid %}
{% include 'chrono/manager_events_timesheet_fragment.html' %} {% include 'chrono/manager_events_timesheet_fragment.html' %}
{% endif %} {% endif %}
</div> </div>
</div> </div>

View File

@ -1,69 +1,69 @@
{% load i18n %} {% load i18n %}
{% if event %} {% if event %}
<h4>{% blocktrans with event_date=event.start_datetime %}Timesheet - {{ event }} - {{ event_date }}{% endblocktrans %}</h4> <h4>{% blocktrans with event_date=event.start_datetime %}Timesheet - {{ event }} - {{ event_date }}{% endblocktrans %}</h4>
{% else %} {% else %}
<h4>{% blocktrans with start=form.cleaned_data.date_start end=form.cleaned_data.date_end %}Timesheet from {{ start }} to {{ end }}{% endblocktrans %}</h4> <h4>{% blocktrans with start=form.cleaned_data.date_start end=form.cleaned_data.date_end %}Timesheet from {{ start }} to {{ end }}{% endblocktrans %}</h4>
{% endif %} {% endif %}
{% with slots=form.get_slots %} {% with slots=form.get_slots %}
{% with events_num=slots.events|length %} {% with events_num=slots.events|length %}
{% for dates in slots.dates %} {% for dates in slots.dates %}
{% for grouper in slots.users %} {% for grouper in slots.users %}
{% if form.cleaned_data.group_by %}<h5>{{ form.cleaned_data.group_by }}: {{ grouper.grouper }}</h5>{% endif %} {% if form.cleaned_data.group_by %}<h5>{{ form.cleaned_data.group_by }}: {{ grouper.grouper }}</h5>{% endif %}
<table class="main timesheet"> <table class="main timesheet">
<thead> <thead>
<tr> <tr>
<th>{% trans "First name" %}</th> <th>{% trans "First name" %}</th>
<th>{% trans "Last name" %}</th> <th>{% trans "Last name" %}</th>
{% for k in slots.extra_data %}<th>{{ k }}</th>{% endfor %} {% for k in slots.extra_data %}<th>{{ k }}</th>{% endfor %}
{% if events_num > 1 and form.cleaned_data.activity_display != 'col' %}<th class="activity">{% trans "Activity" %}</th>{% endif %} {% if events_num > 1 and form.cleaned_data.activity_display != 'col' %}<th class="activity">{% trans "Activity" %}</th>{% endif %}
{% for date, events in dates %} {% for date, events in dates %}
{% if form.cleaned_data.activity_display == 'col' %} {% if form.cleaned_data.activity_display == 'col' %}
{% for event in events %} {% for event in events %}
<th class="date-event" data-id="{{ date|date:"d-m" }}:{{ event.slug }}">{% blocktrans with date=date|date:"d/m" %}{{ event }} of {{ date }}{% endblocktrans %}</th> <th class="date-event" data-id="{{ date|date:"d-m" }}:{{ event.slug }}">{% blocktrans with date=date|date:"d/m" %}{{ event }} of {{ date }}{% endblocktrans %}</th>
{% endfor %} {% endfor %}
{% else %} {% else %}
<th class="date" data-id="{{ date|date:"d-m" }}">{{ date|date:"D d/m" }}</th> <th class="date" data-id="{{ date|date:"d-m" }}">{{ date|date:"D d/m" }}</th>
{% endif %} {% endif %}
{% endfor %}
</tr>
</thead>
<tbody>
{% if form.cleaned_data.activity_display == 'col' %}
{% for user in grouper.users %}
<tr>
<td>{{ user.user_first_name }}</td>
<td>{{ user.user_last_name }}</td>
{% for k in slots.extra_data %}<td>{{ user.extra_data|get:k }}</td>{% endfor %}
{% for date, events in dates %}
{% for event in events %}
{% for item in user.events %}{% if item.event == event %}{% with booked=item.dates|get:date %}<td class="date" data-id="{{ date|date:"d-m" }}:{{ item.event.slug }}:{{ user.user_id }}">{% if booked is True %}☐{% elif booked is None %}-{% endif %}</td>{% endwith %}{% endif %}{% endfor %}
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
{% else %}
{% for user in grouper.users %}{% for item in user.events %}
<tr>
{% if forloop.first %}
<td {% if events_num > 1 %}rowspan="{{ events_num }}"{% endif %}>{{ user.user_first_name }}</td>
<td {% if events_num > 1 %}rowspan="{{ events_num }}"{% endif %}>{{ user.user_last_name }}</td>
{% for k in slots.extra_data %}<td {% if events_num > 1 %}rowspan="{{ events_num }}"{% endif %}>{{ user.extra_data|get:k }}</td>{% endfor %}
{% endif %}
{% if events_num > 1 %}<td class="activity">{{ item.event }}</td>{% endif %}
{% for date, events in dates %}
{% with booked=item.dates|get:date %}<td class="date" data-id="{{ date|date:"d-m" }}:{{ item.event.slug }}:{{ user.user_id }}">{% if booked is True %}☐{% elif booked is None %}-{% endif %}</td>{% endwith %}
{% endfor %}
</tr>
{% endfor %}{% endfor %}
{% endif %}
</tbody>
</table>
{% if form.cleaned_data.with_page_break %}{% if not forloop.last or not forloop.parentloop.last %}<div class="page_break"></div>{% endif %}{% endif %}
{% endfor %} {% endfor %}
</tr> {% if not form.cleaned_data.with_page_break and not forloop.last %}<div class="page_break"></div>{% endif %}
</thead> {% endfor %}
<tbody> {% endwith %}
{% if form.cleaned_data.activity_display == 'col' %}
{% for user in grouper.users %}
<tr>
<td>{{ user.user_first_name }}</td>
<td>{{ user.user_last_name }}</td>
{% for k in slots.extra_data %}<td>{{ user.extra_data|get:k }}</td>{% endfor %}
{% for date, events in dates %}
{% for event in events %}
{% for item in user.events %}{% if item.event == event %}{% with booked=item.dates|get:date %}<td class="date" data-id="{{ date|date:"d-m" }}:{{ item.event.slug }}:{{ user.user_id }}">{% if booked is True %}☐{% elif booked is None %}-{% endif %}</td>{% endwith %}{% endif %}{% endfor %}
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
{% else %}
{% for user in grouper.users %}{% for item in user.events %}
<tr>
{% if forloop.first %}
<td {% if events_num > 1 %}rowspan="{{ events_num }}"{% endif %}>{{ user.user_first_name }}</td>
<td {% if events_num > 1 %}rowspan="{{ events_num }}"{% endif %}>{{ user.user_last_name }}</td>
{% for k in slots.extra_data %}<td {% if events_num > 1 %}rowspan="{{ events_num }}"{% endif %}>{{ user.extra_data|get:k }}</td>{% endfor %}
{% endif %}
{% if events_num > 1 %}<td class="activity">{{ item.event }}</td>{% endif %}
{% for date, events in dates %}
{% with booked=item.dates|get:date %}<td class="date" data-id="{{ date|date:"d-m" }}:{{ item.event.slug }}:{{ user.user_id }}">{% if booked is True %}☐{% elif booked is None %}-{% endif %}</td>{% endwith %}
{% endfor %}
</tr>
{% endfor %}{% endfor %}
{% endif %}
</tbody>
</table>
{% if form.cleaned_data.with_page_break %}{% if not forloop.last or not forloop.parentloop.last %}<div class="page_break"></div>{% endif %}{% endif %}
{% endfor %}
{% if not form.cleaned_data.with_page_break and not forloop.last %}<div class="page_break"></div>{% endif %}
{% endfor %}
{% endwith %}
{% endwith %} {% endwith %}

View File

@ -1,22 +1,22 @@
{% load static i18n %} {% load static i18n %}
<html> <html>
<head> <head>
<base href="{{ base_uri }}" /> <base href="{{ base_uri }}" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{% blocktrans with start=form.cleaned_data.date_start end=form.cleaned_data.date_end %}Timesheet from {{ start }} to {{ end }}{% endblocktrans %}</title> <title>{% blocktrans with start=form.cleaned_data.date_start end=form.cleaned_data.date_end %}Timesheet from {{ start }} to {{ end }}{% endblocktrans %}</title>
<meta name="author" content="Entr'ouvert" /> <meta name="author" content="Entr'ouvert" />
<link href="{% static 'css/timesheet.css' %}" media="print" rel="stylesheet" /> <link href="{% static 'css/timesheet.css' %}" media="print" rel="stylesheet" />
<style media="print"> <style media="print">
@page { @page {
size: {{ form.cleaned_data.orientation|default:"portrait" }}; size: {{ form.cleaned_data.orientation|default:"portrait" }};
} }
</style> </style>
</head> </head>
<body> <body>
<div id="main"> <div id="main">
{% if request.GET and form.is_valid %} {% if request.GET and form.is_valid %}
{% include 'chrono/manager_events_timesheet_fragment.html' %} {% include 'chrono/manager_events_timesheet_fragment.html' %}
{% endif %} {% endif %}
</div> </div>
</body> </body>
</html> </html>

View File

@ -2,56 +2,56 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.pk %} {% if object.pk %}
<a href="{% url 'chrono-manager-events-type-edit' pk=object.pk %}">{{ object.label }}</a> <a href="{% url 'chrono-manager-events-type-edit' pk=object.pk %}">{{ object.label }}</a>
{% else %} {% else %}
<a href="{% url 'chrono-manager-events-type-add' %}">{% trans "New events type" %}</a> <a href="{% url 'chrono-manager-events-type-add' %}">{% trans "New events type" %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.pk %} {% if object.pk %}
<h2>{% trans "Edit events type" %}</h2> <h2>{% trans "Edit events type" %}</h2>
{% else %} {% else %}
<h2>{% trans "New events type" %}</h2> <h2>{% trans "New events type" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
{% if object.pk %} {% if object.pk %}
<h3>{% trans "Custom fields" %}</h3> <h3>{% trans "Custom fields" %}</h3>
{{ formset.management_form }} {{ formset.management_form }}
<table id="custom-field-forms"> <table id="custom-field-forms">
<thead> <thead>
<tr> <tr>
{% for field in formset.0 %} {% for field in formset.0 %}
<th class="column-{{ field.name }}{% if field.required %} required{% endif %}">{{ field.label }}</th> <th class="column-{{ field.name }}{% if field.required %} required{% endif %}">{{ field.label }}</th>
{% endfor %} {% endfor %}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for sub_form in formset %} {% for sub_form in formset %}
<tr class='custom-field-form'> <tr class='custom-field-form'>
{% for field in sub_form %} {% for field in sub_form %}
<td class="field-{{ field.name }}"> <td class="field-{{ field.name }}">
{{ field.errors.as_ul }} {{ field.errors.as_ul }}
{{ field }} {{ field }}
</td> </td>
{% endfor %} {% endfor %}
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
<button id="add-custom-field-form" type="button">{% trans "Add another custom field" %}</button> <button id="add-custom-field-form" type="button">{% trans "Add another custom field" %}</button>
{% endif %} {% endif %}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-events-type-list' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-events-type-list' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,38 +2,38 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-events-type-list' %}">{% trans "Events types" %}</a> <a href="{% url 'chrono-manager-events-type-list' %}">{% trans "Events types" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans 'Events types' %}</h2> <h2>{% trans 'Events types' %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-events-type-add' %}">{% trans 'New' %}</a> <a rel="popup" href="{% url 'chrono-manager-events-type-add' %}">{% trans 'New' %}</a>
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="pk-information"> <div class="pk-information">
<p>{% trans "Define here events types to set on events agendas." %}</p> <p>{% trans "Define here events types to set on events agendas." %}</p>
</div> </div>
{% if object_list %} {% if object_list %}
<div> <div>
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in object_list %} {% for object in object_list %}
<li> <li>
<a href="{% url 'chrono-manager-events-type-edit' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a> <a href="{% url 'chrono-manager-events-type-edit' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-events-type-delete' pk=object.pk %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-events-type-delete' pk=object.pk %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This site doesn't have any events type yet. Click on the "New" button in the top This site doesn't have any events type yet. Click on the "New" button in the top
right of the page to add a first one. right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -2,55 +2,55 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{% trans 'Agendas' %}</h2> <h2>{% trans 'Agendas' %}</h2>
<span class="actions"> <span class="actions">
{% if user.is_staff or has_access_to_unavailability_calendars %} {% if user.is_staff or has_access_to_unavailability_calendars %}
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
{% if user.is_staff %} {% if user.is_staff %}
<li><a rel="popup" href="{% url 'chrono-manager-agendas-import' %}">{% trans 'Import' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-agendas-import' %}">{% trans 'Import' %}</a></li>
<li><a rel="popup" href="{% url 'chrono-manager-agendas-export' %}" data-autoclose-dialog="true">{% trans 'Export' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-agendas-export' %}" data-autoclose-dialog="true">{% trans 'Export' %}</a></li>
<li><a href="{% url 'chrono-manager-events-type-list' %}">{% trans 'Events types' %}</a></li> <li><a href="{% url 'chrono-manager-events-type-list' %}">{% trans 'Events types' %}</a></li>
{% if shared_custody_enabled %} {% if shared_custody_enabled %}
<li><a rel="popup" href="{% url 'chrono-manager-shared-custody-settings' %}">{% trans 'Shared custody' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-shared-custody-settings' %}">{% trans 'Shared custody' %}</a></li>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if has_access_to_unavailability_calendars %} {% if has_access_to_unavailability_calendars %}
<li><a href="{% url 'chrono-manager-unavailability-calendar-list' %}">{% trans 'Unavailability calendars' %}</a></li> <li><a href="{% url 'chrono-manager-unavailability-calendar-list' %}">{% trans 'Unavailability calendars' %}</a></li>
{% endif %}
{% if user.is_staff %}
<li><a href="{% url 'chrono-manager-resource-list' %}">{% trans 'Resources' %}</a></li>
{% endif %}
</ul>
{% endif %} {% endif %}
{% if user.is_staff %} {% if user.is_staff %}
<li><a href="{% url 'chrono-manager-resource-list' %}">{% trans 'Resources' %}</a></li> <a href="{% url 'chrono-manager-category-list' %}">{% trans 'Categories' %}</a>
<a rel="popup" href="{% url 'chrono-manager-agenda-add' %}">{% trans 'New' %}</a>
{% endif %} {% endif %}
</ul> </span>
{% endif %}
{% if user.is_staff %}
<a href="{% url 'chrono-manager-category-list' %}">{% trans 'Categories' %}</a>
<a rel="popup" href="{% url 'chrono-manager-agenda-add' %}">{% trans 'New' %}</a>
{% endif %}
</span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if object_list %} {% if object_list %}
{% regroup object_list by category as agenda_groups %} {% regroup object_list by category as agenda_groups %}
{% for group in agenda_groups %} {% for group in agenda_groups %}
<div class="section"> <div class="section">
{% if group.grouper %}<h3>{{ group.grouper }}</h3>{% elif not forloop.first %}<h3>{% trans "Misc" %}</h3>{% endif %} {% if group.grouper %}<h3>{{ group.grouper }}</h3>{% elif not forloop.first %}<h3>{% trans "Misc" %}</h3>{% endif %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in group.list %} {% for object in group.list %}
<li><a href="{% url 'chrono-manager-agenda-view' pk=object.id %}"><span class="badge">{{ object.get_kind_display }}</span> {{ object.label }}{% if user.is_staff %} <span class="identifier">[{% trans "identifier:" %} {{ object.slug }}]{% endif %}</span></a></li> <li><a href="{% url 'chrono-manager-agenda-view' pk=object.id %}"><span class="badge">{{ object.get_kind_display }}</span> {{ object.label }}{% if user.is_staff %} <span class="identifier">[{% trans "identifier:" %} {{ object.slug }}]{% endif %}</span></a></li>
{% endfor %}
</ul>
</div>
{% endfor %} {% endfor %}
</ul> {% else %}
</div> <div class="big-msg-info">
{% endfor %} {% blocktrans %}
{% else %} This site doesn't have any agenda yet. Click on the "New" button in the top
<div class="big-msg-info"> right of the page to add a first one.
{% blocktrans %} {% endblocktrans %}
This site doesn't have any agenda yet. Click on the "New" button in the top </div>
right of the page to add a first one. {% endif %}
{% endblocktrans %}
</div>
{% endif %}
{% endblock %} {% endblock %}

View File

@ -2,30 +2,30 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-view' pk=agenda.id %}">{{agenda.label}}</a> <a href="{% url 'chrono-manager-agenda-view' pk=agenda.id %}">{{agenda.label}}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Import Events" %}</h2> <h2>{% trans "Import Events" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<p> <p>
<a href="{% url 'chrono-manager-sample-events-csv' %}">{% trans 'Download sample file' %}</a> <a href="{% url 'chrono-manager-sample-events-csv' %}">{% trans 'Download sample file' %}</a>
</p> </p>
<div class="buttons"> <div class="buttons">
<button>{% trans "Import" %}</button> <button>{% trans "Import" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,56 +2,56 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="">{% trans "Manage exception sources" %}</a> <a href="">{% trans "Manage exception sources" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Manage exception sources" %}</h2> <h2>{% trans "Manage exception sources" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% if exception_sources or unavailability_calendars %} {% if exception_sources or unavailability_calendars %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in exception_sources %} {% for object in exception_sources %}
<li> <li>
<a {% if not object.enabled %}class="disabled"{% endif %} title="{{ object }}" {% if object.ics_url %}href="{{ object.render_ics_url }}"{% endif %}>{{ object|truncatechars:50 }}</a> <a {% if not object.enabled %}class="disabled"{% endif %} title="{{ object }}" {% if object.ics_url %}href="{{ object.render_ics_url }}"{% endif %}>{{ object|truncatechars:50 }}</a>
{% if object.ics_filename %} {% if object.ics_filename %}
<a rel="popup" class="link-action-icon refresh" href="{% url 'chrono-manager-time-period-exception-source-replace' object.pk %}">{% trans "replace" %}</a> <a rel="popup" class="link-action-icon refresh" href="{% url 'chrono-manager-time-period-exception-source-replace' object.pk %}">{% trans "replace" %}</a>
{% elif object.ics_url %} {% elif object.ics_url %}
<a class="link-action-icon refresh" href="{% url 'chrono-manager-time-period-exception-source-refresh' object.pk %}">{% trans "refresh" %}</a> <a class="link-action-icon refresh" href="{% url 'chrono-manager-time-period-exception-source-refresh' object.pk %}">{% trans "refresh" %}</a>
{% endif %} {% endif %}
{% if not object.settings_slug %} {% if not object.settings_slug %}
<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-source-delete' object.pk %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-source-delete' object.pk %}">{% trans "remove" %}</a>
{% else %} {% else %}
<a class="link-action-text" href="{% url 'chrono-manager-time-period-exception-source-toggle' object.pk %}">({{ object.enabled|yesno:_("disable,enable") }})</a> <a class="link-action-text" href="{% url 'chrono-manager-time-period-exception-source-toggle' object.pk %}">({{ object.enabled|yesno:_("disable,enable") }})</a>
{% endif %} {% endif %}
</li> </li>
{% endfor %} {% endfor %}
{% for unavailability_calendar in unavailability_calendars %} {% for unavailability_calendar in unavailability_calendars %}
<li> <li>
<a {% if not unavailability_calendar.enabled %}class="disabled"{% endif %} title="{{ unavailability_calendar }}" href="{{ unavailability_calendar.get_absolute_url }}">{{ unavailability_calendar|truncatechars:50 }}</a> <a {% if not unavailability_calendar.enabled %}class="disabled"{% endif %} title="{{ unavailability_calendar }}" href="{{ unavailability_calendar.get_absolute_url }}">{{ unavailability_calendar|truncatechars:50 }}</a>
<a class="link-action-text" href="{% url 'chrono-manager-unavailability-calendar-toggle-view' desk.pk unavailability_calendar.pk %}">({{ unavailability_calendar.enabled|yesno:_("disable,enable") }})</a> <a class="link-action-text" href="{% url 'chrono-manager-unavailability-calendar-toggle-view' desk.pk unavailability_calendar.pk %}">({{ unavailability_calendar.enabled|yesno:_("disable,enable") }})</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
<p class="notice">{% trans "To add new exceptions, you can upload a file or specify an address to a remote calendar." %}</p> <p class="notice">{% trans "To add new exceptions, you can upload a file or specify an address to a remote calendar." %}</p>
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<p> <p>
</p> </p>
<div class="buttons"> <div class="buttons">
<button>{% trans "Import" %}</button> <button>{% trans "Import" %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,36 +2,36 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.id %} {% if object.id %}
<a href="{% url 'chrono-manager-agenda-view' pk=object.agenda.id %}">{{object.agenda.label}}</a> <a href="{% url 'chrono-manager-agenda-view' pk=object.agenda.id %}">{{object.agenda.label}}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Meeting Type" %}</h2> <h2>{% trans "Edit Meeting Type" %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-meeting-type-delete' pk=object.id %}">{% trans 'Delete' %}</a> <a rel="popup" href="{% url 'chrono-manager-meeting-type-delete' pk=object.id %}">{% trans 'Delete' %}</a>
</span> </span>
{% else %} {% else %}
<h2>{% trans "New Meeting Type" %}</h2> <h2>{% trans "New Meeting Type" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,72 +2,72 @@
{% load i18n %} {% load i18n %}
{% block actions %} {% block actions %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-month-view' pk=agenda.id year=view.date|date:"Y" month=view.date|date:"n" %}">{% trans 'Month view' %}</a> <a href="{% url 'chrono-manager-agenda-month-view' pk=agenda.id year=view.date|date:"Y" month=view.date|date:"n" %}">{% trans 'Month view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% for period, desk_infos in view.get_timetable_infos %} {% for period, desk_infos in view.get_timetable_infos %}
{% if forloop.first %} {% if forloop.first %}
<table class="agenda-table day-view hourspan-{{ hour_span }} desks-{{ desk_infos|length }} "> <table class="agenda-table day-view hourspan-{{ hour_span }} desks-{{ desk_infos|length }} ">
<thead> <thead>
<tr> <tr>
<td></td> <td></td>
{% for desk_info in desk_infos %} {% for desk_info in desk_infos %}
<th>{{ desk_info.desk.label }}{% if agenda.kind == 'virtual' %} ({{ desk_info.desk.agenda.label }}){% endif %}</th> <th>{{ desk_info.desk.label }}{% if agenda.kind == 'virtual' %} ({{ desk_info.desk.agenda.label }}){% endif %}</th>
{% endfor %} {% endfor %}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% endif %} {% endif %}
<tr class="{% cycle 'odd' 'even' %}"> <tr class="{% cycle 'odd' 'even' %}">
<th class="hour">{{ period|date:"TIME_FORMAT" }}</th> <th class="hour">{{ period|date:"TIME_FORMAT" }}</th>
{% for desk_info in desk_infos %} {% for desk_info in desk_infos %}
<td> <td>
{% if forloop.parentloop.first %} {% if forloop.parentloop.first %}
{# opening hours on the first row #} {# opening hours on the first row #}
{% for slot in desk_info.opening_hours %} {% for slot in desk_info.opening_hours %}
<div class="opening-hours" <div class="opening-hours"
style="height: {{ slot.css_height }}%; top: {{ slot.css_top }}%;" style="height: {{ slot.css_height }}%; top: {{ slot.css_top }}%;"
>{{slot.begin}} {{slot.end}}</div> >{{slot.begin}} {{slot.end}}</div>
{% endfor %} {% endfor %}
{% for slot in desk_info.exceptions %} {% for slot in desk_info.exceptions %}
<div class="exception-hours" <div class="exception-hours"
style="height: {{ slot.css_height }}%; top: {{ slot.css_top }}%;" style="height: {{ slot.css_height }}%; top: {{ slot.css_top }}%;"
>{% if slot.label %}<span class="exception-label">{{slot.label}}</span>{% endif %}</div> >{% if slot.label %}<span class="exception-label">{{slot.label}}</span>{% endif %}</div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% for booking in desk_info.bookings %} {% for booking in desk_info.bookings %}
<div class="booking{% if booking.color %} booking-color-{{ booking.color.index }}{% endif %}" <div class="booking{% if booking.color %} booking-color-{{ booking.color.index }}{% endif %}"
style="height: {{ booking.css_height }}%; min-height: {{ booking.css_height }}%; top: {{ booking.css_top }}%;" style="height: {{ booking.css_height }}%; min-height: {{ booking.css_height }}%; top: {{ booking.css_top }}%;"
><span class="start-time">{{booking.event.start_datetime|date:"TIME_FORMAT"}}</span> ><span class="start-time">{{booking.event.start_datetime|date:"TIME_FORMAT"}}</span>
<a {% if booking.get_backoffice_url %}href="{{booking.get_backoffice_url}}"{% endif %}>{{ booking.get_user_block }}</a> <a {% if booking.get_backoffice_url %}href="{{booking.get_backoffice_url}}"{% endif %}>{{ booking.get_user_block }}</a>
<a rel="popup" class="cancel" href="{% url 'chrono-manager-booking-cancel' pk=booking.event.agenda_id booking_pk=booking.pk %}?next={{ request.path }}">{% trans "Cancel" %}</a> <a rel="popup" class="cancel" href="{% url 'chrono-manager-booking-cancel' pk=booking.event.agenda_id booking_pk=booking.pk %}?next={{ request.path }}">{% trans "Cancel" %}</a>
{% if booking.color %}<span class="booking-color-label booking-bg-color-{{ booking.color.index }}">{{ booking.color }}</span>{% endif %} {% if booking.color %}<span class="booking-color-label booking-bg-color-{{ booking.color.index }}">{{ booking.color }}</span>{% endif %}
</div> </div>
{% endfor %} {% endfor %}
</td> </td>
{% endfor %} {% endfor %}
</tr> </tr>
{% if forloop.last %} {% if forloop.last %}
</tbody> </tbody>
</table> </table>
{% endif %} {% endif %}
{% empty %} {% empty %}
<div class="closed-for-the-day"> <div class="closed-for-the-day">
<p>{% trans "No opening hours this day." %}</p> <p>{% trans "No opening hours this day." %}</p>
</div> </div>
{% endfor %} {% endfor %}
{% if booking_colors %} {% if booking_colors %}
{% include "chrono/booking_color_legend.html" with colors=booking_colors %} {% include "chrono/booking_color_legend.html" with colors=booking_colors %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -2,65 +2,65 @@
{% load i18n %} {% load i18n %}
{% block actions %} {% block actions %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-day-view' pk=agenda.id year=view.date|date:"Y" month=view.date|date:"m" day=view.date|date:"d" %}">{% trans 'Day view' %}</a> <a href="{% url 'chrono-manager-agenda-day-view' pk=agenda.id year=view.date|date:"Y" month=view.date|date:"m" day=view.date|date:"d" %}">{% trans 'Day view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% for week_days in view.get_timetable_infos %} {% for week_days in view.get_timetable_infos %}
{% if forloop.first %} {% if forloop.first %}
<table class="agenda-table month-view {% if single_desk %}single-desk{% endif %}"> <table class="agenda-table month-view {% if single_desk %}single-desk{% endif %}">
<tbody> <tbody>
{% endif %} {% endif %}
<tr> <tr>
<th></th> <th></th>
{% for day in week_days.days %} {% for day in week_days.days %}
<th class="weekday {% if day.today %}today{% endif %}">{% if not day.other_month %}<a href="{% url 'chrono-manager-agenda-day-view' pk=agenda.id year=day.date|date:"Y" month=day.date|date:"m" day=day.date|date:"d" %}">{{ day.date|date:"l j" }}</a>{% endif %}</th> <th class="weekday {% if day.today %}today{% endif %}">{% if not day.other_month %}<a href="{% url 'chrono-manager-agenda-day-view' pk=agenda.id year=day.date|date:"Y" month=day.date|date:"m" day=day.date|date:"d" %}">{{ day.date|date:"l j" }}</a>{% endif %}</th>
{% endfor %}
</tr>
{% for hour in week_days.periods %}
<tr class="{% cycle 'odd' 'even' %}">
<th class="hour">{{ hour|date:"TIME_FORMAT" }}</th>
{% for day in week_days.days %}
<td class="{% if day.other_month %}other-month{% endif %} {% if day.today %}today{% endif %}">
{% if forloop.parentloop.first %}
{% for slot in day.infos.opening_hours %}
<div class="opening-hours" style="height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%;width:{{ slot.css_width|stringformat:".1f" }}%;left:{{ slot.css_left|stringformat:".1f" }}%;"></div>
{% endfor %} {% endfor %}
</tr>
{% for hour in week_days.periods %}
<tr class="{% cycle 'odd' 'even' %}">
<th class="hour">{{ hour|date:"TIME_FORMAT" }}</th>
{% for day in week_days.days %}
<td class="{% if day.other_month %}other-month{% endif %} {% if day.today %}today{% endif %}">
{% if forloop.parentloop.first %}
{% for slot in day.infos.opening_hours %}
<div class="opening-hours" style="height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%;width:{{ slot.css_width|stringformat:".1f" }}%;left:{{ slot.css_left|stringformat:".1f" }}%;"></div>
{% endfor %}
{% for slot in day.infos.exceptions %} {% for slot in day.infos.exceptions %}
<div class="exception-hours" style="height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%;width:{{ slot.css_width|stringformat:".1f" }}%;left:{{ slot.css_left|stringformat:".1f" }}%;" {% if slot.label %}title="{{ slot.label }}"{% endif %}></div> <div class="exception-hours" style="height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%;width:{{ slot.css_width|stringformat:".1f" }}%;left:{{ slot.css_left|stringformat:".1f" }}%;" {% if slot.label %}title="{{ slot.label }}"{% endif %}></div>
{% endfor %} {% endfor %}
{% for slot in day.infos.booked_slots %} {% for slot in day.infos.booked_slots %}
<div class="booking{% if slot.booking.color %} booking-color-{{ slot.booking.color.index }}{% endif %}" style="left:{{ slot.css_left|stringformat:".1f" }}%;height:{{ slot.css_height|stringformat:".1f" }}%;min-height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%;width:{{ slot.css_width|stringformat:".1f" }}%;"> <div class="booking{% if slot.booking.color %} booking-color-{{ slot.booking.color.index }}{% endif %}" style="left:{{ slot.css_left|stringformat:".1f" }}%;height:{{ slot.css_height|stringformat:".1f" }}%;min-height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%;width:{{ slot.css_width|stringformat:".1f" }}%;">
<span class="start-time">{{slot.booking.event.start_datetime|date:"TIME_FORMAT"}}</span> <span class="start-time">{{slot.booking.event.start_datetime|date:"TIME_FORMAT"}}</span>
<a {% if slot.booking.get_backoffice_url %}href="{{slot.booking.get_backoffice_url}}"{% endif %}>{{ slot.booking.get_user_block }}</a> <a {% if slot.booking.get_backoffice_url %}href="{{slot.booking.get_backoffice_url}}"{% endif %}>{{ slot.booking.get_user_block }}</a>
<a rel="popup" class="cancel" href="{% url 'chrono-manager-booking-cancel' pk=slot.booking.event.agenda_id booking_pk=slot.booking.id %}?next={{ request.path }}">{% trans "Cancel" %}</a> <a rel="popup" class="cancel" href="{% url 'chrono-manager-booking-cancel' pk=slot.booking.event.agenda_id booking_pk=slot.booking.id %}?next={{ request.path }}">{% trans "Cancel" %}</a>
{% if not single_desk %}<span class="desk">{{ slot.desk }}</span>{% endif %} {% if not single_desk %}<span class="desk">{{ slot.desk }}</span>{% endif %}
{% if slot.booking.color %}<span class="booking-color-label booking-bg-color-{{ slot.booking.color.index }}">{{ slot.booking.color }}</span>{% endif %} {% if slot.booking.color %}<span class="booking-color-label booking-bg-color-{{ slot.booking.color.index }}">{{ slot.booking.color }}</span>{% endif %}
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</td> </td>
{% endfor %}
</tr>
{% endfor %} {% endfor %}
</tr> {% resetcycle %}
{% if forloop.last %}
</tbody>
</table>
{% endif %}
{% empty %}
<div class="closed-for-the-day">
<p>{% trans "No opening hours this month." %}</p>
</div>
{% endfor %} {% endfor %}
{% resetcycle %}
{% if forloop.last %}
</tbody>
</table>
{% endif %}
{% empty %} {% if booking_colors %}
<div class="closed-for-the-day"> {% include "chrono/booking_color_legend.html" with colors=booking_colors %}
<p>{% trans "No opening hours this month." %}</p> {% endif %}
</div>
{% endfor %}
{% if booking_colors %}
{% include "chrono/booking_color_legend.html" with colors=booking_colors %}
{% endif %}
{% endblock %} {% endblock %}

View File

@ -4,11 +4,11 @@
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{% if 'display_exceptions' in request.GET %} {% if 'display_exceptions' in request.GET %}
<script> <script>
$(function () { $(function () {
$('a.timeperiod-exception-all.desk-{{ request.GET.display_exceptions }}').click(); $('a.timeperiod-exception-all.desk-{{ request.GET.display_exceptions }}').click();
}); });
</script> </script>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
@ -20,60 +20,60 @@
{% block agenda-extra-menu-actions %} {% block agenda-extra-menu-actions %}
{% if object.desk_simple_management %} {% if object.desk_simple_management %}
<li><a href="{% url 'chrono-manager-agenda-desk-management-toggle-view' pk=object.pk %}">{% trans 'Switch to invididual desk management' %}</a></li> <li><a href="{% url 'chrono-manager-agenda-desk-management-toggle-view' pk=object.pk %}">{% trans 'Switch to invididual desk management' %}</a></li>
{% elif agenda_is_available_for_simple_management %} {% elif agenda_is_available_for_simple_management %}
<li><a href="{% url 'chrono-manager-agenda-desk-management-toggle-view' pk=object.pk %}">{% trans 'Switch to global desk management' %}</a></li> <li><a href="{% url 'chrono-manager-agenda-desk-management-toggle-view' pk=object.pk %}">{% trans 'Switch to global desk management' %}</a></li>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block agenda-settings-extra-tab-buttons %} {% block agenda-settings-extra-tab-buttons %}
<button aria-controls="panel-meeting-types" <button aria-controls="panel-meeting-types"
aria-selected="{{meeting_types|yesno:"false,true"}}" aria-selected="{{meeting_types|yesno:"false,true"}}"
id="tab-meeting-types" role="tab" id="tab-meeting-types" role="tab"
tabindex="{{meeting_types|yesno:"-1,0"}}" tabindex="{{meeting_types|yesno:"-1,0"}}"
>{% trans "Meeting Types" %}</button> >{% trans "Meeting Types" %}</button>
{% if object.desk_simple_management %} {% if object.desk_simple_management %}
<button aria-controls="panel-desks" aria-selected="false" id="tab-desks" role="tab" tabindex="-1">{% trans "Desks" %}</button> <button aria-controls="panel-desks" aria-selected="false" id="tab-desks" role="tab" tabindex="-1">{% trans "Desks" %}</button>
{% endif %} {% endif %}
<button aria-controls="panel-time-periods" <button aria-controls="panel-time-periods"
aria-selected="{{meeting_types|yesno:"true,false"}}" aria-selected="{{meeting_types|yesno:"true,false"}}"
id="tab-time-periods" role="tab" id="tab-time-periods" role="tab"
tabindex="{{meeting_types|yesno:"0"}}" tabindex="{{meeting_types|yesno:"0"}}"
>{% trans "Time Periods" %}</button> >{% trans "Time Periods" %}</button>
{% if has_resources %} {% if has_resources %}
<button aria-controls="panel-resources" aria-selected="false" id="tab-resources" role="tab" tabindex="-1">{% trans "Resources" %}</button> <button aria-controls="panel-resources" aria-selected="false" id="tab-resources" role="tab" tabindex="-1">{% trans "Resources" %}</button>
{% endif %} {% endif %}
<button aria-controls="panel-display-options" aria-selected="false" id="tab-display-options" role="tab" tabindex="-1">{% trans "Display options" %}</button> <button aria-controls="panel-display-options" aria-selected="false" id="tab-display-options" role="tab" tabindex="-1">{% trans "Display options" %}</button>
{% endblock %} {% endblock %}
{% block agenda-settings-extra-tab-list %} {% block agenda-settings-extra-tab-list %}
<div aria-labelledby="tab-meeting-types" id="panel-meeting-types" role="tabpanel" tabindex="0" <div aria-labelledby="tab-meeting-types" id="panel-meeting-types" role="tabpanel" tabindex="0"
{% if meeting_types %}hidden{% endif %}> {% if meeting_types %}hidden{% endif %}>
{% if meeting_types %} {% if meeting_types %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for meeting_type in meeting_types %} {% for meeting_type in meeting_types %}
<li> <li>
<a rel="popup" href="{% url 'chrono-manager-meeting-type-edit' pk=meeting_type.id %}"> <a rel="popup" href="{% url 'chrono-manager-meeting-type-edit' pk=meeting_type.id %}">
{{meeting_type.label}} {{meeting_type.label}}
<span class="duration">({{meeting_type.duration}} {% trans "minutes" %})</span> <span class="duration">({{meeting_type.duration}} {% trans "minutes" %})</span>
<span class="identifier">[{% trans "identifier:" %} {{meeting_type.slug}}]</span> <span class="identifier">[{% trans "identifier:" %} {{meeting_type.slug}}]</span>
</a> </a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-meeting-type-delete' pk=meeting_type.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-meeting-type-delete' pk=meeting_type.id %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This agenda doesn't have any meeting type yet. Click on the "New Meeting Type" button in This agenda doesn't have any meeting type yet. Click on the "New Meeting Type" button in
the top right of the page to add a first one. the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
{% if object.desk_simple_management %} {% if object.desk_simple_management %}
<div aria-labelledby="tab-desks" hidden="" id="panel-desks" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-desks" hidden="" id="panel-desks" role="tabpanel" tabindex="0">
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for desk in object.prefetched_desks %} {% for desk in object.prefetched_desks %}
@ -84,100 +84,100 @@
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div aria-labelledby="tab-time-periods" {% if not meeting_types %}hidden{% endif %} id="panel-time-periods" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-time-periods" {% if not meeting_types %}hidden{% endif %} id="panel-time-periods" role="tabpanel" tabindex="0">
{% if object.prefetched_desks %} {% if object.prefetched_desks %}
<div class="timeperiods"> <div class="timeperiods">
{% for desk in object.prefetched_desks %} {% for desk in object.prefetched_desks %}
{% if not object.desk_simple_management or object.desk_simple_management and forloop.counter == 1 %} {% if not object.desk_simple_management or object.desk_simple_management and forloop.counter == 1 %}
<div class="timeperiod"> <div class="timeperiod">
{% url 'chrono-manager-agenda-add-time-period' agenda_pk=object.pk pk=desk.pk as add_time_period_url %} {% url 'chrono-manager-agenda-add-time-period' agenda_pk=object.pk pk=desk.pk as add_time_period_url %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% if not object.desk_simple_management and object.prefetched_desks|length > 1 %} {% if not object.desk_simple_management and object.prefetched_desks|length > 1 %}
<li> <li>
<a rel="popup" href="{% url 'chrono-manager-desk-edit' pk=desk.id %}"> <a rel="popup" href="{% url 'chrono-manager-desk-edit' pk=desk.id %}">
<strong>{{ desk.label }}</strong> <strong>{{ desk.label }}</strong>
</a> </a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-desk-delete' pk=desk.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-desk-delete' pk=desk.id %}">{% trans "remove" %}</a>
</li> </li>
{% endif %} {% endif %}
{% for time_period in desk.timeperiod_set.all %} {% for time_period in desk.timeperiod_set.all %}
<li> <li>
<a rel="popup" href="{% url 'chrono-manager-time-period-edit' pk=time_period.id %}">{{ time_period }}</a> <a rel="popup" href="{% url 'chrono-manager-time-period-edit' pk=time_period.id %}">{{ time_period }}</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-delete' pk=time_period.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-delete' pk=time_period.id %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
<li><a class="add" rel="popup" href="{{add_time_period_url}}">{% trans 'Add a time period' %}</a></li> <li><a class="add" rel="popup" href="{{add_time_period_url}}">{% trans 'Add a time period' %}</a></li>
{% url 'chrono-manager-agenda-add-time-period-exception' agenda_pk=object.pk pk=desk.pk as add_time_period_exception_url %} {% url 'chrono-manager-agenda-add-time-period-exception' agenda_pk=object.pk pk=desk.pk as add_time_period_exception_url %}
<li> <li>
<a><strong>{% trans 'Exceptions' %}</strong></a> <a><strong>{% trans 'Exceptions' %}</strong></a>
<a class="link-action-icon settings" rel="popup" href="{% url 'chrono-manager-desk-add-import-time-period-exceptions' pk=desk.pk %}" title="{% trans 'Manage exception sources' %}">{% trans 'manage exceptions' %}</a> <a class="link-action-icon settings" rel="popup" href="{% url 'chrono-manager-desk-add-import-time-period-exceptions' pk=desk.pk %}" title="{% trans 'Manage exception sources' %}">{% trans 'manage exceptions' %}</a>
</li> </li>
{% for exception in desk.get_exceptions_within_two_weeks %} {% for exception in desk.get_exceptions_within_two_weeks %}
<li> <li>
<a rel="popup" {% if not exception.read_only %}href="{% url 'chrono-manager-time-period-exception-edit' pk=exception.pk %}"{% endif %}>{{ exception }}</a> <a rel="popup" {% if not exception.read_only %}href="{% url 'chrono-manager-time-period-exception-edit' pk=exception.pk %}"{% endif %}>{{ exception }}</a>
{% if not exception.read_only %} {% if not exception.read_only %}
<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=exception.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=exception.id %}">{% trans "remove" %}</a>
{% endif %} {% endif %}
</li> </li>
{% endfor %} {% endfor %}
{% if not desk.are_all_exceptions_displayed %} {% if not desk.are_all_exceptions_displayed %}
<li><a class="timeperiod-exception-all desk-{{ desk.pk }}" rel="popup" data-selector="div.timeperiod" href="{% url 'chrono-manager-time-period-exception-extract-list' pk=desk.id %}">({% trans 'see all exceptions' %})</a></li> <li><a class="timeperiod-exception-all desk-{{ desk.pk }}" rel="popup" data-selector="div.timeperiod" href="{% url 'chrono-manager-time-period-exception-extract-list' pk=desk.id %}">({% trans 'see all exceptions' %})</a></li>
{% endif %} {% endif %}
<li><a class="add" rel="popup" href="{{add_time_period_exception_url}}">{% trans 'Add a time period exception' %}</a></li> <li><a class="add" rel="popup" href="{{add_time_period_exception_url}}">{% trans 'Add a time period exception' %}</a></li>
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This agenda doesn't have any desk yet. Click on the "New Desk" button in This agenda doesn't have any desk yet. Click on the "New Desk" button in
the top right of the page to add a first one. the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
{% if has_resources %} {% if has_resources %}
<div aria-labelledby="tab-resources" hidden="" id="panel-resources" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-resources" hidden="" id="panel-resources" role="tabpanel" tabindex="0">
{% with object.resources.all as agenda_resources %} {% with object.resources.all as agenda_resources %}
{% if agenda_resources %} {% if agenda_resources %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for resource in agenda_resources %} {% for resource in agenda_resources %}
<li> <li>
<a href="{% url 'chrono-manager-resource-view' pk=resource.pk %}"> <a href="{% url 'chrono-manager-resource-view' pk=resource.pk %}">
{{ resource.label }} {{ resource.label }}
<span class="identifier">[{% trans "identifier:" %} {{ resource.slug }}]</span> <span class="identifier">[{% trans "identifier:" %} {{ resource.slug }}]</span>
</a> </a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-agenda-delete-resource' pk=object.pk resource_pk=resource.pk %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-agenda-delete-resource' pk=object.pk resource_pk=resource.pk %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This agenda doesn't have any resource yet. Click on the "Add resource" button in This agenda doesn't have any resource yet. Click on the "Add resource" button in
the top right of the page to add a first one. the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endwith %} {% endwith %}
</div> </div>
{% endif %} {% endif %}
<div aria-labelledby="tab-display-options" hidden="" id="panel-display-options" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-display-options" hidden="" id="panel-display-options" role="tabpanel" tabindex="0">
<ul> <ul>
<li> <li>
{% trans "Booking display template:" %} {% trans "Booking display template:" %}
<pre>{{ agenda.get_booking_user_block_template }}</pre> <pre>{{ agenda.get_booking_user_block_template }}</pre>
</li> </li>
</ul> </ul>
<div class="panel--buttons"> <div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-display-settings' pk=object.pk %}">{% trans 'Configure' %}</a> <a rel="popup" class="button" href="{% url 'chrono-manager-agenda-display-settings' pk=object.pk %}">{% trans 'Configure' %}</a>
</div>
</div> </div>
</div>
{% endblock %} {% endblock %}

View File

@ -2,12 +2,12 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{% trans 'Agendas' %}</h2> <h2>{% trans 'Agendas' %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="big-msg-sorry"> <div class="big-msg-sorry">
<p>{% trans 'This screen displays agendas you can access.' %}</p> <p>{% trans 'This screen displays agendas you can access.' %}</p>
<p>{% trans 'Unfortunately, there is still no agenda configured this way.' %}</p> <p>{% trans 'Unfortunately, there is still no agenda configured this way.' %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,19 +2,19 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Replace exceptions" %}</h2> <h2>{% trans "Replace exceptions" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
<p class="notice">{% trans "To replace existing exceptions, please upload a new file." %}</p> <p class="notice">{% trans "To replace existing exceptions, please upload a new file." %}</p>
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<p> <p>
</p> </p>
<div class="buttons"> <div class="buttons">
<button>{% trans "Replace" %}</button> <button>{% trans "Replace" %}</button>
<a class="cancel" href="{{ view.get_success_url }">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ view.get_success_url }">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,57 +2,57 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a>{{ day|date:"SHORT_DATE_FORMAT" }}</a> <a>{{ day|date:"SHORT_DATE_FORMAT" }}</a>
{% endblock %} {% endblock %}
{% block appbar-title %} {% block appbar-title %}
<h2> <h2>
<a href="{{ view.get_previous_day_url }}"></a> <a href="{{ view.get_previous_day_url }}"></a>
<span class="date-title">{{ view.date|date:"l j F Y" }}</span> <span class="date-title">{{ view.date|date:"l j F Y" }}</span>
{% with selected_day=view.date|date:"j" selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %} {% with selected_day=view.date|date:"j" selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %}
<div class="date-picker" style="display: none"> <div class="date-picker" style="display: none">
<select name="day">{% for day in view.get_days %}<option value="{{ day }}" {% if selected_day == day %}selected{% endif %}>{{day}}</option>{% endfor %}</select> <select name="day">{% for day in view.get_days %}<option value="{{ day }}" {% if selected_day == day %}selected{% endif %}>{{day}}</option>{% endfor %}</select>
<select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select> <select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select>
<select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select> <select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select>
<button>{% trans 'Set Date' %}</button> <button>{% trans 'Set Date' %}</button>
</div> </div>
{% endwith %} {% endwith %}
<a href="{{ view.get_next_day_url }}"></a> <a href="{{ view.get_next_day_url }}"></a>
</h2> </h2>
{% endblock %} {% endblock %}
{% block appbar-extras %} {% block appbar-extras %}
<a href="{% url 'chrono-manager-resource-month-view' pk=resource.pk year=view.date|date:"Y" month=view.date|date:"n" %}">{% trans 'Month view' %}</a> <a href="{% url 'chrono-manager-resource-month-view' pk=resource.pk year=view.date|date:"Y" month=view.date|date:"n" %}">{% trans 'Month view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% for period, resource_info in view.get_timetable_infos %} {% for period, resource_info in view.get_timetable_infos %}
{% if forloop.first %} {% if forloop.first %}
<table class="agenda-table day-view hourspan-{{ hour_span }}"> <table class="agenda-table day-view hourspan-{{ hour_span }}">
<tbody> <tbody>
{% endif %} {% endif %}
<tr class="{% cycle 'odd' 'even' %}"> <tr class="{% cycle 'odd' 'even' %}">
<th class="hour">{{ period|date:"TIME_FORMAT" }}</th> <th class="hour">{{ period|date:"TIME_FORMAT" }}</th>
<td> <td>
{% for booking in resource_info.bookings %} {% for booking in resource_info.bookings %}
<div class="booking" <div class="booking"
style="height: {{ booking.css_height }}%; min-height: {{ booking.css_height }}%; top: {{ booking.css_top }}%;" style="height: {{ booking.css_height }}%; min-height: {{ booking.css_height }}%; top: {{ booking.css_top }}%;"
><span class="start-time">{{ booking.event.start_datetime|date:"TIME_FORMAT" }}</span> ><span class="start-time">{{ booking.event.start_datetime|date:"TIME_FORMAT" }}</span>
<a {% if booking.get_backoffice_url %}href="{{ booking.get_backoffice_url }}"{% endif %}>{{ booking.get_user_block }}</a> <a {% if booking.get_backoffice_url %}href="{{ booking.get_backoffice_url }}"{% endif %}>{{ booking.get_user_block }}</a>
</div> </div>
{% endfor %} {% endfor %}
</td> </td>
</tr> </tr>
{% if forloop.last %} {% if forloop.last %}
</tbody> </tbody>
</table> </table>
{% endif %} {% endif %}
{% empty %} {% empty %}
<div class="closed-for-the-day"> <div class="closed-for-the-day">
<p>{% trans "No bookings this day." %}</p> <p>{% trans "No bookings this day." %}</p>
</div> </div>
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}

View File

@ -2,58 +2,58 @@
{% load i18n %} {% load i18n %}
{% block page-title-extra-label %} {% block page-title-extra-label %}
- {{ resource.label }} - {{ resource.label }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-resource-view' pk=resource.pk %}">{{ resource.label }}</a> <a href="{% url 'chrono-manager-resource-view' pk=resource.pk %}">{{ resource.label }}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% block appbar-title %} {% block appbar-title %}
<h2>{{ resource }}</h2> <h2>{{ resource }}</h2>
{% endblock %} {% endblock %}
<span class="actions"> <span class="actions">
{% block appbar-extras %} {% block appbar-extras %}
{% if request.user.is_staff %} {% if request.user.is_staff %}
<a rel="popup" href="{% url 'chrono-manager-resource-edit' pk=resource.pk %}">{% trans 'Edit' %}</a> <a rel="popup" href="{% url 'chrono-manager-resource-edit' pk=resource.pk %}">{% trans 'Edit' %}</a>
<a rel="popup" href="{% url 'chrono-manager-resource-delete' pk=resource.pk %}">{% trans 'Delete' %}</a> <a rel="popup" href="{% url 'chrono-manager-resource-delete' pk=resource.pk %}">{% trans 'Delete' %}</a>
{% endif %} {% endif %}
{% now "Y" as today_year %} {% now "Y" as today_year %}
{% now "n" as today_month %} {% now "n" as today_month %}
{% now "j" as today_day %} {% now "j" as today_day %}
<a href="{% url 'chrono-manager-resource-month-view' pk=resource.pk year=today_year month=today_month %}">{% trans 'Month view' %}</a> <a href="{% url 'chrono-manager-resource-month-view' pk=resource.pk year=today_year month=today_month %}">{% trans 'Month view' %}</a>
<a href="{% url 'chrono-manager-resource-day-view' pk=resource.pk year=today_year month=today_month day=today_day %}">{% trans 'Day view' %}</a> <a href="{% url 'chrono-manager-resource-day-view' pk=resource.pk year=today_year month=today_month day=today_day %}">{% trans 'Day view' %}</a>
{% endblock %} {% endblock %}
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3>{% trans 'Used in meetings agendas' %}</h3> <h3>{% trans 'Used in meetings agendas' %}</h3>
<div> <div>
{% with resource.agenda_set.all as agendas %} {% with resource.agenda_set.all as agendas %}
{% if agendas %} {% if agendas %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for agenda in agendas %} {% for agenda in agendas %}
<li> <li>
<a href="{% url 'chrono-manager-agenda-settings' pk=agenda.pk %}"> <a href="{% url 'chrono-manager-agenda-settings' pk=agenda.pk %}">
{{ agenda.label }} {{ agenda.label }}
</a> </a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This resource is not used yet. This resource is not used yet.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endwith %} {% endwith %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,21 +2,21 @@
{% load i18n %} {% load i18n %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Resource" %}</h2> <h2>{% trans "Edit Resource" %}</h2>
{% else %} {% else %}
<h2>{% trans "New Resource" %}</h2> <h2>{% trans "New Resource" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-resource-list' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-resource-list' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,35 +2,35 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-resource-list' %}">{% trans "Resources" %}</a> <a href="{% url 'chrono-manager-resource-list' %}">{% trans "Resources" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans 'Resources' %}</h2> <h2>{% trans 'Resources' %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-resource-add' %}">{% trans 'New' %}</a> <a rel="popup" href="{% url 'chrono-manager-resource-add' %}">{% trans 'New' %}</a>
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if object_list %} {% if object_list %}
<div> <div>
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in object_list %} {% for object in object_list %}
<li> <li>
<a href="{% url 'chrono-manager-resource-view' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a> <a href="{% url 'chrono-manager-resource-view' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This site doesn't have any resource yet. Click on the "New" button in the top This site doesn't have any resource yet. Click on the "New" button in the top
right of the page to add a first one. right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -4,67 +4,67 @@
{% block bodyargs %}class="monthview"{% endblock %} {% block bodyargs %}class="monthview"{% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a>{{ view.date|date:"F Y" }}</a> <a>{{ view.date|date:"F Y" }}</a>
{% endblock %} {% endblock %}
{% block appbar-title %} {% block appbar-title %}
<h2> <h2>
<a href="{{ view.get_previous_month_url }}"></a> <a href="{{ view.get_previous_month_url }}"></a>
<span class="date-title">{{ view.date|date:"F Y" }}</span> <span class="date-title">{{ view.date|date:"F Y" }}</span>
{% with selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %} {% with selected_month=view.date|date:"n" selected_year=view.date|date:"Y" %}
<div class="date-picker" style="display: none"> <div class="date-picker" style="display: none">
<select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select> <select name="month">{% for month, month_label in view.get_months %}<option value="{{ month }}" {% if selected_month == month %}selected{% endif %}>{{ month_label }}</option>{% endfor %}</select>
<select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select> <select name="year">{% for year in view.get_years %}<option value="{{ year }}" {% if selected_year == year %}selected{% endif %}>{{year}}</option>{% endfor %}</select>
<button>{% trans 'Set Date' %}</button> <button>{% trans 'Set Date' %}</button>
</div> </div>
{% endwith %} {% endwith %}
<a href="{{ view.get_next_month_url }}"></a> <a href="{{ view.get_next_month_url }}"></a>
</h2> </h2>
{% endblock %} {% endblock %}
{% block appbar-extras %} {% block appbar-extras %}
<a href="{% url 'chrono-manager-resource-day-view' pk=resource.pk year=view.date|date:"Y" month=view.date|date:"n" day=1 %}">{% trans 'Day view' %}</a> <a href="{% url 'chrono-manager-resource-day-view' pk=resource.pk year=view.date|date:"Y" month=view.date|date:"n" day=1 %}">{% trans 'Day view' %}</a>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% for week_days in view.get_timetable_infos %} {% for week_days in view.get_timetable_infos %}
{% if forloop.first %} {% if forloop.first %}
<table class="agenda-table month-view single-desk"> <table class="agenda-table month-view single-desk">
<tbody> <tbody>
{% endif %} {% endif %}
<tr> <tr>
<th></th> <th></th>
{% for day in week_days.days %} {% for day in week_days.days %}
<th class="weekday {% if day.today %}today{% endif %}">{% if not day.other_month %}<a href="{% url 'chrono-manager-resource-day-view' pk=resource.pk year=day.date|date:"Y" month=day.date|date:"m" day=day.date|date:"j" %}">{{ day.date|date:"l j" }}</a>{% endif %}</th> <th class="weekday {% if day.today %}today{% endif %}">{% if not day.other_month %}<a href="{% url 'chrono-manager-resource-day-view' pk=resource.pk year=day.date|date:"Y" month=day.date|date:"m" day=day.date|date:"j" %}">{{ day.date|date:"l j" }}</a>{% endif %}</th>
{% endfor %} {% endfor %}
</tr> </tr>
{% for hour in week_days.periods %} {% for hour in week_days.periods %}
<tr class="{% cycle 'odd' 'even' %}"> <tr class="{% cycle 'odd' 'even' %}">
<th class="hour">{{ hour|date:"TIME_FORMAT" }}</th> <th class="hour">{{ hour|date:"TIME_FORMAT" }}</th>
{% for day in week_days.days %} {% for day in week_days.days %}
<td class="{% if day.other_month %}other-month{% endif %} {% if day.today %}today{% endif %}"> <td class="{% if day.other_month %}other-month{% endif %} {% if day.today %}today{% endif %}">
{% if forloop.parentloop.first %} {% if forloop.parentloop.first %}
{% for slot in day.infos.booked_slots %} {% for slot in day.infos.booked_slots %}
<div class="booking" style="height:{{ slot.css_height|stringformat:".1f" }}%;min-height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%"> <div class="booking" style="height:{{ slot.css_height|stringformat:".1f" }}%;min-height:{{ slot.css_height|stringformat:".1f" }}%;top:{{ slot.css_top|stringformat:".1f" }}%">
<span class="start-time">{{ slot.booking.event.start_datetime|date:"TIME_FORMAT" }}</span> <span class="start-time">{{ slot.booking.event.start_datetime|date:"TIME_FORMAT" }}</span>
<a {% if slot.booking.get_backoffice_url %}href="{{ slot.booking.get_backoffice_url }}"{% endif %}>{{ slot.booking.get_user_block }}</a> <a {% if slot.booking.get_backoffice_url %}href="{{ slot.booking.get_backoffice_url }}"{% endif %}>{{ slot.booking.get_user_block }}</a>
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</td> </td>
{% endfor %}
</tr>
{% endfor %} {% endfor %}
</tr>
{% endfor %}
{% if forloop.last %} {% if forloop.last %}
</tbody> </tbody>
</table> </table>
{% endif %} {% endif %}
{% empty %} {% empty %}
<div class="closed-for-the-day"> <div class="closed-for-the-day">
<p>{% trans "No bookings this month." %}</p> <p>{% trans "No bookings this month." %}</p>
</div> </div>
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}

View File

@ -2,22 +2,22 @@
{% load i18n gadjo %} {% load i18n gadjo %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-agenda-settings' agenda.pk %}">{% trans 'Settings' %}</a> <a href="{% url 'chrono-manager-agenda-settings' agenda.pk %}">{% trans 'Settings' %}</a>
<a href="{% url 'chrono-manager-agenda-edit' agenda.pk %}">{{ title }}</a> <a href="{% url 'chrono-manager-agenda-edit' agenda.pk %}">{{ title }}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Test reminder sending" %}</h2> <h2>{% trans "Test reminder sending" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form|with_template }} {{ form|with_template }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Send" %}</button> <button class="submit-button">{% trans "Send" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,34 +2,34 @@
{% load i18n %} {% load i18n %}
{% block content %} {% block content %}
{% if agenda.is_complete %} {% if agenda.is_complete %}
{% for week, slots in slots_by_week.items %} {% for week, slots in slots_by_week.items %}
{% if forloop.first %} {% if forloop.first %}
<table class="agenda-table month-view single-desk"> <table class="agenda-table month-view single-desk">
<tbody> <tbody>
{% endif %} {% endif %}
<tr> <tr>
<th></th> <th></th>
{% for slot in slots %} {% for slot in slots %}
<th class="weekday {% if slot.date == today %}today{% endif %}"><span>{{ slot.date|date:"l j" }}</span></th> <th class="weekday {% if slot.date == today %}today{% endif %}"><span>{{ slot.date|date:"l j" }}</span></th>
{% endfor %} {% endfor %}
</tr> </tr>
<tr> <tr>
<th>{% trans "Week" %} {{ week }}</th> <th>{% trans "Week" %} {{ week }}</th>
{% for slot in slots %} {% for slot in slots %}
<td class="guardian {% if slot.guardian == agenda.first_guardian %}first-guardian{% else %}second-guardian{% endif %}">{{ slot }}</td> <td class="guardian {% if slot.guardian == agenda.first_guardian %}first-guardian{% else %}second-guardian{% endif %}">{{ slot }}</td>
{% endfor %} {% endfor %}
</tr> </tr>
{% if forloop.last %} {% if forloop.last %}
</tbody> </tbody>
</table> </table>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% else %} {% else %}
<div class="warningnotice"> <div class="warningnotice">
<p>{% trans "Configuration is not completed yet." %}</p> <p>{% trans "Configuration is not completed yet." %}</p>
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -2,116 +2,116 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href=".">{% trans "Settings" %}</a> <a href=".">{% trans "Settings" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Settings" %}</h2> <h2>{% trans "Settings" %}</h2>
<span class="actions"> <span class="actions">
{% if user.is_staff %} {% if user.is_staff %}
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
{% endif %} {% endif %}
<a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-add-period' pk=object.id %}">{% trans 'Add custody period' %}</a> <a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-add-period' pk=object.id %}">{% trans 'Add custody period' %}</a>
{% if has_holidays %} {% if has_holidays %}
<a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-add-holiday-rule' pk=object.id %}">{% trans 'Add custody rule during holidays' %}</a> <a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-add-holiday-rule' pk=object.id %}">{% trans 'Add custody rule during holidays' %}</a>
{% endif %} {% endif %}
<a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-add-rule' pk=object.id %}">{% trans 'Add custody rule' %}</a> <a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-add-rule' pk=object.id %}">{% trans 'Add custody rule' %}</a>
{% if user.is_staff %} {% if user.is_staff %}
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
<li><a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-delete' pk=object.id %}">{% trans 'Delete' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-delete' pk=object.id %}">{% trans 'Delete' %}</a></li>
</ul> </ul>
{% endif %} {% endif %}
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if not agenda.is_complete %} {% if not agenda.is_complete %}
<div class="warningnotice"> <div class="warningnotice">
<p>{% trans "Custody rules are not complete." %}</p> <p>{% trans "Custody rules are not complete." %}</p>
</div> </div>
{% endif %} {% endif %}
<div class="section agenda-settings"> <div class="section agenda-settings">
<div class="pk-tabs"> <div class="pk-tabs">
<div class="pk-tabs--tab-list" role="tablist"> <div class="pk-tabs--tab-list" role="tablist">
<button aria-controls="panel-rules" aria-selected="true" id="tab-rules" role="tab" tabindex="0">{% trans "Custody rules" %}</button> <button aria-controls="panel-rules" aria-selected="true" id="tab-rules" role="tab" tabindex="0">{% trans "Custody rules" %}</button>
{% if has_holidays %} {% if has_holidays %}
<button aria-controls="panel-holidays" aria-selected="false" id="tab-holidays" role="tab" tabindex="-1">{% trans "Custody rules during holidays" %}</button> <button aria-controls="panel-holidays" aria-selected="false" id="tab-holidays" role="tab" tabindex="-1">{% trans "Custody rules during holidays" %}</button>
{% endif %} {% endif %}
<button aria-controls="panel-time-periods" aria-selected="false" id="tab-time-periods" role="tab" tabindex="-1">{% trans "Exceptional custody periods" %}</button> <button aria-controls="panel-time-periods" aria-selected="false" id="tab-time-periods" role="tab" tabindex="-1">{% trans "Exceptional custody periods" %}</button>
</div>
<div class="pk-tabs--container">
<div aria-labelledby="tab-rules" id="panel-rules" role="tabpanel" tabindex="0">
{% if agenda.rules.all %}
<ul class="objects-list single-links">
{% for rule in agenda.rules.all %}
<li><a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-edit-rule' pk=agenda.pk rule_pk=rule.pk %}">
<span class="rule-info">
{{ rule.guardian }}, {{ rule.label }}
</span>
</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-shared-custody-agenda-delete-rule' pk=agenda.pk rule_pk=rule.pk %}?next=settings">{% trans "remove" %}</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans trimmed %}
This agenda doesn't have any custody rules yet.
{% endblocktrans %}
</div>
{% endif %}
</div>
{% if has_holidays %}
<div aria-labelledby="tab-holidays" hidden="" id="panel-holidays" role="tabpanel" tabindex="0">
{% if agenda.holiday_rules.all %}
<ul class="objects-list single-links">
{% for rule in agenda.holiday_rules.all %}
<li><a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-edit-holiday-rule' pk=agenda.pk rule_pk=rule.pk %}">
<span class="rule-info">
{{ rule.guardian }}, {{ rule.label }}
</span>
</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-shared-custody-agenda-delete-holiday-rule' pk=agenda.pk rule_pk=rule.pk %}?next=settings">{% trans "remove" %}</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans trimmed %}
This agenda doesn't specify any custody rules during holidays. It means normal rules will be applied.
{% endblocktrans %}
</div>
{% endif %}
</div>
{% endif %}
<div aria-labelledby="tab-time-periods" hidden="" id="panel-time-periods" role="tabpanel" tabindex="0">
{% if exceptional_periods %}
<ul class="objects-list single-links">
{% for period in exceptional_periods %}
<li>
<a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-edit-period' pk=agenda.pk period_pk=period.pk %}">
{{ period }}
<a rel="popup" class="delete" href="{% url 'chrono-manager-shared-custody-agenda-delete-period' pk=agenda.pk period_pk=period.pk %}?next=settings">{% trans "remove" %}</a>
</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans trimmed %}
This agenda doesn't have any custody period. They can be used to specify explicit moments when one of the guardian should have custody, regardless of global rules.
{% endblocktrans %}
</div>
{% endif %}
</div>
</div>
</div>
</div> </div>
<div class="pk-tabs--container">
<div aria-labelledby="tab-rules" id="panel-rules" role="tabpanel" tabindex="0">
{% if agenda.rules.all %}
<ul class="objects-list single-links">
{% for rule in agenda.rules.all %}
<li><a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-edit-rule' pk=agenda.pk rule_pk=rule.pk %}">
<span class="rule-info">
{{ rule.guardian }}, {{ rule.label }}
</span>
</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-shared-custody-agenda-delete-rule' pk=agenda.pk rule_pk=rule.pk %}?next=settings">{% trans "remove" %}</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans trimmed %}
This agenda doesn't have any custody rules yet.
{% endblocktrans %}
</div>
{% endif %}
</div>
{% if has_holidays %}
<div aria-labelledby="tab-holidays" hidden="" id="panel-holidays" role="tabpanel" tabindex="0">
{% if agenda.holiday_rules.all %}
<ul class="objects-list single-links">
{% for rule in agenda.holiday_rules.all %}
<li><a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-edit-holiday-rule' pk=agenda.pk rule_pk=rule.pk %}">
<span class="rule-info">
{{ rule.guardian }}, {{ rule.label }}
</span>
</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-shared-custody-agenda-delete-holiday-rule' pk=agenda.pk rule_pk=rule.pk %}?next=settings">{% trans "remove" %}</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans trimmed %}
This agenda doesn't specify any custody rules during holidays. It means normal rules will be applied.
{% endblocktrans %}
</div>
{% endif %}
</div>
{% endif %}
<div aria-labelledby="tab-time-periods" hidden="" id="panel-time-periods" role="tabpanel" tabindex="0">
{% if exceptional_periods %}
<ul class="objects-list single-links">
{% for period in exceptional_periods %}
<li>
<a rel="popup" href="{% url 'chrono-manager-shared-custody-agenda-edit-period' pk=agenda.pk period_pk=period.pk %}">
{{ period }}
<a rel="popup" class="delete" href="{% url 'chrono-manager-shared-custody-agenda-delete-period' pk=agenda.pk period_pk=period.pk %}?next=settings">{% trans "remove" %}</a>
</a>
</li>
{% endfor %}
</ul>
{% else %}
<div class="big-msg-info">
{% blocktrans trimmed %}
This agenda doesn't have any custody period. They can be used to specify explicit moments when one of the guardian should have custody, regardless of global rules.
{% endblocktrans %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -2,69 +2,69 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.id %} {% if object.id %}
<a href="">{{object}}</a> <a href="">{{object}}</a>
{% else %} {% else %}
<a href="">{% trans "New time period exception" %}</a> <a href="">{% trans "New time period exception" %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit time period exception" %}</h2> <h2>{% trans "Edit time period exception" %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-time-period-exception-delete' pk=object.id %}">{% trans 'Delete' %}</a> <a rel="popup" href="{% url 'chrono-manager-time-period-exception-delete' pk=object.id %}">{% trans 'Delete' %}</a>
</span> </span>
{% else %} {% else %}
<h2>{% trans "New time period exception" %}</h2> <h2>{% trans "New time period exception" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.non_field_errors }} {{ form.non_field_errors }}
{% for field in form.visible_fields %} {% for field in form.visible_fields %}
{{ field.errors }} {{ field.errors }}
<p>{{ field.label_tag }} {{ field }}{% if field.name == 'start_datetime' %} <button type="button" id="allday">{% trans "All day" %}</button>{% endif%}</p> <p>{{ field.label_tag }} {{ field }}{% if field.name == 'start_datetime' %} <button type="button" id="allday">{% trans "All day" %}</button>{% endif%}</p>
{% endfor %} {% endfor %}
{% for hidden in form.hidden_fields %} {% for hidden in form.hidden_fields %}
{{ hidden }} {{ hidden }}
{% endfor %} {% endfor %}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a> <a class="cancel" href="{{ view.get_success_url }}">{% trans 'Cancel' %}</a>
</div> </div>
<script> <script>
{% if not object.id %} {% if not object.id %}
$('[name="start_datetime_0"]').on('change', function() { $('[name="start_datetime_0"]').on('change', function() {
var $end_datetime = $('[name="end_datetime_0"]'); var $end_datetime = $('[name="end_datetime_0"]');
if (! $end_datetime.val()) { if (! $end_datetime.val()) {
var value = $(this).val(); var value = $(this).val();
if (value && new Date(value).getFullYear() > 999) { if (value && new Date(value).getFullYear() > 999) {
$end_datetime.val($(this).val()); $end_datetime.val($(this).val());
} }
} }
}); });
{% endif %} {% endif %}
$('button#allday').on('click', function() { $('button#allday').on('click', function() {
var $start_datetime = $('[name="start_datetime_0"]'); var $start_datetime = $('[name="start_datetime_0"]');
if ($start_datetime.val()) { if ($start_datetime.val()) {
var new_date = new Date($start_datetime.val()); var new_date = new Date($start_datetime.val());
new_date.setDate(new_date.getDate() + 1); new_date.setDate(new_date.getDate() + 1);
$('[name="start_datetime_1"]').val('00:00'); $('[name="start_datetime_1"]').val('00:00');
$('[name="end_datetime_0"]').val(new_date.toISOString().substring(0, 10)); $('[name="end_datetime_0"]').val(new_date.toISOString().substring(0, 10));
$('[name="end_datetime_1"]').val('00:00'); $('[name="end_datetime_1"]').val('00:00');
} }
}); });
</script> </script>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,34 +2,34 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href=".">{% trans "All exceptions" %}</a> <a href=".">{% trans "All exceptions" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Exceptions" %}</h2> <h2>{% trans "Exceptions" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="timeperiod"> <div class="timeperiod">
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for exception in object_list %} {% for exception in object_list %}
<li> <li>
<a {% if user_can_manage and not exception.read_only %}href="{% url 'chrono-manager-time-period-exception-edit' pk=exception.id %}"{% endif %}>{{ exception }}</a> <a {% if user_can_manage and not exception.read_only %}href="{% url 'chrono-manager-time-period-exception-edit' pk=exception.id %}"{% endif %}>{{ exception }}</a>
{% if user_can_manage and not exception.from_settings and not exception.read_only %}<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=exception.id %}{% if not page_obj %}?from_popup{% endif %}">{% trans "remove" %}</a>{% endif %} {% if user_can_manage and not exception.from_settings and not exception.read_only %}<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=exception.id %}{% if not page_obj %}?from_popup{% endif %}">{% trans "remove" %}</a>{% endif %}
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% if not page_obj %} {% if not page_obj %}
<p><a href="{% url 'chrono-manager-time-period-exception-list' desk.pk %}">{% trans "Show more..." %}</a></p> <p><a href="{% url 'chrono-manager-time-period-exception-list' desk.pk %}">{% trans "Show more..." %}</a></p>
{% endif %} {% endif %}
{% include "gadjo/pagination.html" %} {% include "gadjo/pagination.html" %}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,50 +2,50 @@
{% load i18n gadjo %} {% load i18n gadjo %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.id %} {% if object.id %}
<a href="">{{object}}</a> <a href="">{{object}}</a>
{% else %} {% else %}
<a href="">{% trans "New Time Period" %}</a> <a href="">{% trans "New Time Period" %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Time Period" %}</h2> <h2>{% trans "Edit Time Period" %}</h2>
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-time-period-delete' pk=object.id %}">{% trans 'Delete' %}</a> <a rel="popup" href="{% url 'chrono-manager-time-period-delete' pk=object.id %}">{% trans 'Delete' %}</a>
</span> </span>
{% else %} {% else %}
<h2>{% trans "New Time Period" %}</h2> <h2>{% trans "New Time Period" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form|with_template }} {{ form|with_template }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
<script> <script>
$('input[type=radio][name=repeat]').change(function() { $('input[type=radio][name=repeat]').change(function() {
if(!this.checked) if(!this.checked)
return; return;
if(this.value == 'every-week') { if(this.value == 'every-week') {
$('div#weekday_indexes').parent().hide(); $('div#weekday_indexes').parent().hide();
} else { } else {
$('div#weekday_indexes').parent().show(); $('div#weekday_indexes').parent().show();
} }
}).change(); }).change();
</script> </script>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,50 +2,50 @@
{% load i18n %} {% load i18n %}
{% block page-title-extra-label %} {% block page-title-extra-label %}
- {{ unavailability_calendar.label }} - {{ unavailability_calendar.label }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-unavailability-calendar-view' pk=unavailability_calendar.pk %}">{{ unavailability_calendar.label }}</a> <a href="{% url 'chrono-manager-unavailability-calendar-view' pk=unavailability_calendar.pk %}">{{ unavailability_calendar.label }}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% block appbar-title %} {% block appbar-title %}
<h2>{{ unavailability_calendar }}</h2> <h2>{{ unavailability_calendar }}</h2>
{% endblock %} {% endblock %}
{% if user_can_manage %} {% if user_can_manage %}
<span class="actions"> <span class="actions">
{% block appbar-extras %} {% block appbar-extras %}
<a href="{% url 'chrono-manager-unavailability-calendar-settings' pk=unavailability_calendar.pk %}">{% trans 'Settings' %}</a> <a href="{% url 'chrono-manager-unavailability-calendar-settings' pk=unavailability_calendar.pk %}">{% trans 'Settings' %}</a>
{% endblock %} {% endblock %}
</span> </span>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3>{% trans 'Used in meetings agendas' %}</h3> <h3>{% trans 'Used in meetings agendas' %}</h3>
<div> <div>
{% if agendas %} {% if agendas %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for agenda in agendas %} {% for agenda in agendas %}
<li> <li>
<a href="{% url 'chrono-manager-agenda-view' pk=agenda.pk %}"> <a href="{% url 'chrono-manager-agenda-view' pk=agenda.pk %}">
{{ agenda.label }} {{ agenda.label }}
</a> </a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This unavailability calendar is not used yet. This unavailability calendar is not used yet.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,32 +2,32 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
{% if object.pk %} {% if object.pk %}
<a href="{% url 'chrono-manager-unavailability-calendar-view' object.pk %}">{{ object }}</a> <a href="{% url 'chrono-manager-unavailability-calendar-view' object.pk %}">{{ object }}</a>
<a href="{% url 'chrono-manager-unavailability-calendar-settings' object.pk %}">{% trans 'Settings' %}</a> <a href="{% url 'chrono-manager-unavailability-calendar-settings' object.pk %}">{% trans 'Settings' %}</a>
<a href="{% url 'chrono-manager-unavailability-calendar-edit' object.pk %}">{% trans 'Edit Unavailability Calendar' %}</a> <a href="{% url 'chrono-manager-unavailability-calendar-edit' object.pk %}">{% trans 'Edit Unavailability Calendar' %}</a>
{% else %} {% else %}
<a href="{% url 'chrono-manager-unavailability-calendar-add' %}">{% trans 'New Unavailability Calendar' %}</a> <a href="{% url 'chrono-manager-unavailability-calendar-add' %}">{% trans 'New Unavailability Calendar' %}</a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
{% if object.id %} {% if object.id %}
<h2>{% trans "Edit Unavailability Calendar" %}</h2> <h2>{% trans "Edit Unavailability Calendar" %}</h2>
{% else %} {% else %}
<h2>{% trans "New Unavailability Calendar" %}</h2> <h2>{% trans "New Unavailability Calendar" %}</h2>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-unavailability-calendar-list' %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-unavailability-calendar-list' %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -2,37 +2,37 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-unavailability-calendar-list' %}">{% trans "Unavailability Calendars" %}</a> <a href="{% url 'chrono-manager-unavailability-calendar-list' %}">{% trans "Unavailability Calendars" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans 'Unavailability Calendars' %}</h2> <h2>{% trans 'Unavailability Calendars' %}</h2>
{% if user.is_staff %} {% if user.is_staff %}
<span class="actions"> <span class="actions">
<a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-add' %}">{% trans 'New' %}</a> <a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-add' %}">{% trans 'New' %}</a>
</span> </span>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if object_list %} {% if object_list %}
<div> <div>
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for object in object_list %} {% for object in object_list %}
<li> <li>
<a href="{% url 'chrono-manager-unavailability-calendar-view' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a> <a href="{% url 'chrono-manager-unavailability-calendar-view' pk=object.pk %}">{{ object.label }} ({{ object.slug }})</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This site doesn't have any unavailability calendar yet. Click on the "New" button in the top This site doesn't have any unavailability calendar yet. Click on the "New" button in the top
right of the page to add a first one. right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -2,53 +2,53 @@
{% load i18n %} {% load i18n %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="{% url 'chrono-manager-unavailability-calendar-settings' unavailability_calendar.pk %}">{% trans "Settings" %}</a> <a href="{% url 'chrono-manager-unavailability-calendar-settings' unavailability_calendar.pk %}">{% trans "Settings" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Settings" %} <h2>{% trans "Settings" %}
</h2> </h2>
<span class="actions"> <span class="actions">
<a class="extra-actions-menu-opener"></a> <a class="extra-actions-menu-opener"></a>
{% block agenda-extra-management-actions %} {% block agenda-extra-management-actions %}
<a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-import-unavailabilities' pk=unavailability_calendar.id %}">{% trans 'Manage unavailabilities from ICS' %}</a> <a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-import-unavailabilities' pk=unavailability_calendar.id %}">{% trans 'Manage unavailabilities from ICS' %}</a>
<a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-add-unavailability' pk=unavailability_calendar.id %}">{% trans 'Add Unavailability' %}</a> <a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-add-unavailability' pk=unavailability_calendar.id %}">{% trans 'Add Unavailability' %}</a>
{% endblock %} {% endblock %}
<ul class="extra-actions-menu"> <ul class="extra-actions-menu">
<li><a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-edit' pk=unavailability_calendar.id %}">{% trans 'Options' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-edit' pk=unavailability_calendar.id %}">{% trans 'Options' %}</a></li>
<li><a download href="{% url 'chrono-manager-unavailability-calendar-export' pk=unavailability_calendar.id %}">{% trans 'Export Configuration (JSON)' %}</a></li> <li><a download href="{% url 'chrono-manager-unavailability-calendar-export' pk=unavailability_calendar.id %}">{% trans 'Export Configuration (JSON)' %}</a></li>
{% if user.is_staff %} {% if user.is_staff %}
<li><a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-delete' pk=unavailability_calendar.id %}">{% trans 'Delete' %}</a></li> <li><a rel="popup" href="{% url 'chrono-manager-unavailability-calendar-delete' pk=unavailability_calendar.id %}">{% trans 'Delete' %}</a></li>
{% endif %} {% endif %}
</ul> </ul>
</span> </span>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="section"> <div class="section">
<h3>{% trans 'Unavailabilities' %}</h3> <h3>{% trans 'Unavailabilities' %}</h3>
<div> <div>
{% block agenda-settings %} {% block agenda-settings %}
{% if unavailability_calendar.timeperiodexception_set.count %} {% if unavailability_calendar.timeperiodexception_set.count %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for time_period_exception in unavailability_calendar.timeperiodexception_set.all %} {% for time_period_exception in unavailability_calendar.timeperiodexception_set.all %}
<li><a rel="popup" href="{% url 'chrono-manager-time-period-exception-edit' pk=time_period_exception.id %}">{{ time_period_exception }}</a> <li><a rel="popup" href="{% url 'chrono-manager-time-period-exception-edit' pk=time_period_exception.id %}">{{ time_period_exception }}</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=time_period_exception.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-exception-delete' pk=time_period_exception.id %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
There is no unavailabilities yet. Click on the "Add Unavailabilty" button in There is no unavailabilities yet. Click on the "Add Unavailabilty" button in
the top right of the page to add a first one. the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% endblock %} {% endblock %}

View File

@ -7,80 +7,80 @@
{% endblock %} {% endblock %}
{% block agenda-settings-extra-tab-buttons %} {% block agenda-settings-extra-tab-buttons %}
<button aria-controls="panel-agendas" aria-selected="true" id="tab-agendas" role="tab" tabindex="0">{% trans "Included Agendas" %}</button> <button aria-controls="panel-agendas" aria-selected="true" id="tab-agendas" role="tab" tabindex="0">{% trans "Included Agendas" %}</button>
{% if virtual_members %} {% if virtual_members %}
<button aria-controls="panel-meeting-types" aria-selected="false" id="tab-meeting-types" role="tab" tabindex="-1">{% trans "Meeting Types" %}</button> <button aria-controls="panel-meeting-types" aria-selected="false" id="tab-meeting-types" role="tab" tabindex="-1">{% trans "Meeting Types" %}</button>
{% endif %} {% endif %}
<button aria-controls="panel-time-periods" aria-selected="false" id="tab-time-periods" role="tab" tabindex="-1">{% trans "Excluded Periods" %}</button> <button aria-controls="panel-time-periods" aria-selected="false" id="tab-time-periods" role="tab" tabindex="-1">{% trans "Excluded Periods" %}</button>
{% endblock %} {% endblock %}
{% block agenda-settings-extra-tab-list %} {% block agenda-settings-extra-tab-list %}
<div aria-labelledby="tab-agendas" id="panel-agendas" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-agendas" id="panel-agendas" role="tabpanel" tabindex="0">
{% if virtual_members %} {% if virtual_members %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for virtual_member, can_be_managed in virtual_members %} {% for virtual_member, can_be_managed in virtual_members %}
<li> <li>
<a {% if can_be_managed %}href="{% url 'chrono-manager-agenda-settings' pk=virtual_member.real_agenda.id %}"{% endif %}> <a {% if can_be_managed %}href="{% url 'chrono-manager-agenda-settings' pk=virtual_member.real_agenda.id %}"{% endif %}>
{{virtual_member.real_agenda.label}} {{virtual_member.real_agenda.label}}
</a> </a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-virtual-member-delete' pk=virtual_member.pk %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-virtual-member-delete' pk=virtual_member.pk %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This virtual agenda doesn't include any agenda yet. Click on the "Include Agenda" button in This virtual agenda doesn't include any agenda yet. Click on the "Include Agenda" button in
the top right of the page to include a first one. the top right of the page to include a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
{% if virtual_members %} {% if virtual_members %}
<div aria-labelledby="tab-meeting-types" hidden="" id="panel-meeting-types" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-meeting-types" hidden="" id="panel-meeting-types" role="tabpanel" tabindex="0">
{% if meeting_types %} {% if meeting_types %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for meeting_type in meeting_types %} {% for meeting_type in meeting_types %}
<li> <li>
<a rel="popup" href=""> <a rel="popup" href="">
{{meeting_type.label}} {{meeting_type.label}}
<span class="duration">({{meeting_type.duration}} {% trans "minutes" %})</span> <span class="duration">({{meeting_type.duration}} {% trans "minutes" %})</span>
<span class="identifier">[{% trans "identifier:" %} {{meeting_type.slug}}]</span> <span class="identifier">[{% trans "identifier:" %} {{meeting_type.slug}}]</span>
</a> </a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="errornotice"> <div class="errornotice">
{% blocktrans %} {% blocktrans %}
This virtual agenda doesn't have any meeting type. This virtual agenda doesn't have any meeting type.
It is probably because its included agendas have incompatible meeting types It is probably because its included agendas have incompatible meeting types
and it makes this virtual agenda unusable. and it makes this virtual agenda unusable.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
{% endif %} {% endif %}
<div aria-labelledby="tab-time-periods" hidden="" id="panel-time-periods" role="tabpanel" tabindex="0"> <div aria-labelledby="tab-time-periods" hidden="" id="panel-time-periods" role="tabpanel" tabindex="0">
{% if agenda.excluded_timeperiods.count %} {% if agenda.excluded_timeperiods.count %}
<ul class="objects-list single-links"> <ul class="objects-list single-links">
{% for time_period in agenda.excluded_timeperiods.all %} {% for time_period in agenda.excluded_timeperiods.all %}
<li><a rel="popup" href="{% url 'chrono-manager-time-period-edit' pk=time_period.id %}">{{ time_period }}</a> <li><a rel="popup" href="{% url 'chrono-manager-time-period-edit' pk=time_period.id %}">{{ time_period }}</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-delete' pk=time_period.id %}">{% trans "remove" %}</a> <a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-delete' pk=time_period.id %}">{% trans "remove" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans %} {% blocktrans %}
This virtual agenda doesn't have any excluded period yet. Click on the "Add Excluded Period" button in This virtual agenda doesn't have any excluded period yet. Click on the "Add Excluded Period" button in
the top right of the page to include a first one. the top right of the page to include a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -2,27 +2,27 @@
{% load i18n %} {% load i18n %}
{% block extrascripts %} {% block extrascripts %}
{{ block.super }} {{ block.super }}
{{ form.media }} {{ form.media }}
{% endblock %} {% endblock %}
{% block breadcrumb %} {% block breadcrumb %}
{{ block.super }} {{ block.super }}
<a href="">{% trans "Include Agenda" %}</a> <a href="">{% trans "Include Agenda" %}</a>
{% endblock %} {% endblock %}
{% block appbar %} {% block appbar %}
<h2>{% trans "Include Agenda" %}</h2> <h2>{% trans "Include Agenda" %}</h2>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<div class="buttons"> <div class="buttons">
<button class="submit-button">{% trans "Save" %}</button> <button class="submit-button">{% trans "Save" %}</button>
<a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a> <a class="cancel" href="{% url 'chrono-manager-agenda-settings' pk=agenda.id %}">{% trans 'Cancel' %}</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -1,9 +1,9 @@
<span class="datetime"> <span class="datetime">
{% with widget=widget.subwidgets.0 %} {% with widget=widget.subwidgets.0 %}
<input type="date" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} /> <input type="date" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
{% endwith %} {% endwith %}
{% with widget=widget.subwidgets.1 %} {% with widget=widget.subwidgets.1 %}
<!-- {{ widget.value|pprint }} --> <!-- {{ widget.value|pprint }} -->
<input type="time" name="{{ widget.name }}" pattern="[0-9]{2}:[0-9]{2}" step="300" {% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} /> <input type="time" name="{{ widget.name }}" pattern="[0-9]{2}:[0-9]{2}" step="300" {% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
{% endwith %} {% endwith %}
</span> </span>

View File

@ -1,10 +1,10 @@
{% spaceless %} {% spaceless %}
<span id="{{ widget.attrs.id }}" class="weekdays-buttons-group{% if widget.attrs.class %} {{ widget.attrs.class }}{% endif %}" role="group"> <span id="{{ widget.attrs.id }}" class="weekdays-buttons-group{% if widget.attrs.class %} {{ widget.attrs.class }}{% endif %}" role="group">
{% for group, options, index in widget.optgroups %} {% for group, options, index in widget.optgroups %}
{% for option in options %} {% for option in options %}
{% include "django/forms/widgets/input.html" with widget=option %} {% include "django/forms/widgets/input.html" with widget=option %}
<label{% if option.attrs.id %} for="{{ option.attrs.id }}"{% endif %}>{{ option.label }}</label> <label{% if option.attrs.id %} for="{{ option.attrs.id }}"{% endif %}>{{ option.label }}</label>
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</span> </span>
{% endspaceless %} {% endspaceless %}

View File

@ -2,9 +2,9 @@
{% load i18n %} {% load i18n %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<input type="submit" value="{% trans 'Log in' %}" /> <input type="submit" value="{% trans 'Log in' %}" />
</form> </form>
{% endblock %} {% endblock %}