{% extends "base.html" %} {% block title %}{{ _('Notifications') }} — {{ service_name }}{% endblock %} {% block content %}

{{ _('Notifications') }}

{% if notifications | length == 0 %}

{{ _('You do not have any notifications.') }}

{% else %} {% for notification in notifications %} {% endfor %}
{{ _('Date') }} {{ _('Message') }} {% if num_unread_notifications > 0 %}
{{ mark_all_notifications_as_read_form.hidden_tag() }}
{% endif %}
{{ delete_all_notifications_form.hidden_tag() }}
{{ notification.utc_datetime | babel_format_date }} {% if notification.type == NotificationType.ASSIGNED_AS_RESPONSIBLE_USER %} {{ _('%(assigner_name)s assigned you as responsible user for object #%(object_id)s.', assigner_url=url_for('.user_profile', user_id=notification.data['assigner_id']), assigner_name=get_user(notification.data['assigner_id']).name, object_url=url_for('.object', object_id=notification.data['object_id']), object_id=notification.data['object_id']) }} {% if 'confirmation_url' in notification.data and not object_location_assignment_is_confirmed_or_declined(notification.data['object_location_assignment_id']) %} {{ _('Confirm') }} {% if 'declination_url' in notification.data %} {{ _('Decline') }} {% endif %} {% endif %} {% elif notification.type == NotificationType.OTHER %} {{ notification.data['message'] }} {% elif notification.type == NotificationType.INVITED_TO_GROUP %} {% set group = get_group(notification.data['group_id']) %} {% if group is not none %} {{ _('%(inviter_name)s has invited you to the basic group "%(group_name)s":', inviter_url=url_for('.user_profile', user_id=notification.data['inviter_id']), inviter_name=get_user(notification.data['inviter_id']).name, group_url=url_for('.group', group_id=notification.data['group_id']), group_name=get_group(notification.data['group_id']).name | get_translated_text) }} {% if is_group_member(current_user.id, notification.data['group_id']) %} {{ _('You are already a member of this basic group.') }} {% elif 'invitation_id' in notification.data and is_group_invitation_revoked(notification.data.get('invitation_id')) %} {{ _('The invitation has been revoked.')}} {% elif notification.data['expiration_utc_datetime'] is none or datetime.datetime.strptime(notification.data['expiration_utc_datetime'], '%Y-%m-%d %H:%M:%S').replace(tzinfo=datetime.timezone.utc) > datetime.datetime.now(datetime.timezone.utc) %} {{ _('Join Basic Group') }} {% else %} {{ _('The invitation has expired at %(expiration_datetime)s.', expiration_datetime=notification.data['expiration_utc_datetime'] | babel_format_datetime) }} {% endif %} {% else %} {{ _('%(inviter_name)s has invited you to a basic group, but it has been deleted already.', inviter_url=url_for('.user_profile', user_id=notification.data['inviter_id']), inviter_name=get_user(notification.data['inviter_id']).name) }} {% endif %} {% elif notification.type == NotificationType.INVITED_TO_PROJECT %} {% set project = get_project(notification.data['project_id']) %} {% if project is not none %} {{ _('%(inviter_name)s has invited you to the project group "%(project_name)s":', inviter_url=url_for('.user_profile', user_id=notification.data['inviter_id']), inviter_name=get_user(notification.data['inviter_id']).name, project_url=url_for('.project', project_id=notification.data['project_id']), project_name=get_project(notification.data['project_id']).name | get_translated_text) }} {% if is_project_member(current_user.id, notification.data['project_id']) %} {{ _('You are already a member of this project group.')}} {% elif 'invitation_id' in notification.data and is_project_invitation_revoked(notification.data.get('invitation_id')) %} {{ _('The invitation has been revoked.')}} {% elif notification.data['expiration_utc_datetime'] is none or datetime.datetime.strptime(notification.data['expiration_utc_datetime'], '%Y-%m-%d %H:%M:%S').replace(tzinfo=datetime.timezone.utc) > datetime.datetime.now(datetime.timezone.utc) %} {{ _('Join Project Group') }} {% else %} {{ _('The invitation has expired at %(expiration_datetime)s.', expiration_datetime=notification.data['expiration_utc_datetime'] | babel_format_datetime) }} {% endif %} {% else %} {{ _('%(inviter_name)s has invited you to a project group, but it has been deleted already.', inviter_url=url_for('.user_profile', user_id=notification.data['inviter_id']), inviter_name=get_user(notification.data['inviter_id']).name) }} {% endif %} {% elif notification.type == NotificationType.ANNOUNCEMENT %} {% if 'html' in notification.data and notification.data['html'] %} {{ notification.data['html'] | safe }} {% else %}

{{ notification.data['message'] }}

{% endif %} {% elif notification.type == NotificationType.RECEIVED_OBJECT_PERMISSIONS_REQUEST %} {% set current_permissions = get_user_object_permissions(user_id=notification.data['requester_id'], object_id=notification.data['object_id']) %} {% if Permissions.READ in current_permissions %} {{ _('%(requester_name)s has requested read permissions for object #%(object_id)s, but has been granted %(permissions)s already.', requester_url=url_for('.user_profile', user_id=notification.data['requester_id']), requester_name=get_user(notification.data['requester_id']).name, object_url=url_for('.object', object_id=notification.data['object_id']), object_id=notification.data['object_id'], permissions=_(current_permissions.name.lower() + " permissions")) }} {% elif current_user.is_readonly %} {{ _('%(requester_name)s has requested read permissions for object #%(object_id)s, but your account has been marked as read only and you cannot grant permissions.', requester_url=url_for('.user_profile', user_id=notification.data['requester_id']), requester_name=get_user(notification.data['requester_id']).name, object_url=url_for('.object', object_id=notification.data['object_id']), object_id=notification.data['object_id']) }} {% else %} {{ _('%(requester_name)s has requested read permissions for object #%(object_id)s:', requester_url=url_for('.user_profile', user_id=notification.data['requester_id']), requester_name=get_user(notification.data['requester_id']).name, object_url=url_for('.object', object_id=notification.data['object_id']), object_id=notification.data['object_id']) }} {{ _('View object permissions')}} {% endif %} {% elif notification.type == NotificationType.INSTRUMENT_LOG_ENTRY_CREATED %} {% set instrument_log_entry = get_instrument_log_entry(notification.data['instrument_log_entry_id']) %} {{ _('%(user_name)s has created a new log entry for the instrument %(instrument_name)s.', user_url=url_for('.user_profile', user_id=instrument_log_entry.user_id), user_name=get_user(instrument_log_entry.user_id).name, log_entry_url=url_for('.instrument', instrument_id=instrument_log_entry.instrument_id, _anchor='log_entry-{}'.format(instrument_log_entry.id)), instrument_url=url_for('.instrument', instrument_id=instrument_log_entry.instrument_id), instrument_name=get_instrument(instrument_log_entry.instrument_id).name | get_translated_text(default=_('Unnamed Instrument'))) }} {% elif notification.type == NotificationType.REFERENCED_BY_OBJECT_METADATA %} {{ _('You were referenced in the metadata for object #%(object_id)s.', object_url=url_for('.object', object_id=notification.data['object_id']), object_id=notification.data['object_id']) }} {% elif notification.type == NotificationType.INSTRUMENT_LOG_ENTRY_EDITED %} {% set instrument_log_entry = get_instrument_log_entry(notification.data['instrument_log_entry_id']) %} {{ _('%(user_name)s has edited a log entry for the instrument %(instrument_name)s.', user_url=url_for('.user_profile', user_id=instrument_log_entry.user_id), user_name=get_user(instrument_log_entry.user_id).name, log_entry_url=url_for('.instrument', instrument_id=instrument_log_entry.instrument_id, _anchor='log_entry-{}'.format(instrument_log_entry.id)), instrument_url=url_for('.instrument', instrument_id=instrument_log_entry.instrument_id), instrument_name=get_instrument(instrument_log_entry.instrument_id).name | get_translated_text(default=_('Unnamed Instrument'))) }} {% elif notification.type == NotificationType.RESPONSIBILITY_ASSIGNMENT_DECLINED %} {% set object_location_assignment = get_object_location_assignment(notification.data['object_location_assignment_id']) %} {% if object_location_assignment %} {{ _('%(user_name)s has declined responsibility for object #%(object_id)s.', user_url=url_for('.user_profile', user_id=object_location_assignment.responsible_user_id), user_name=get_user(object_location_assignment.responsible_user_id).name, object_url=url_for('.object', object_id=object_location_assignment.object_id), object_id=object_location_assignment.object_id) }} {% else %} {{ _('An unknown object responsibility assignment has been declined.') }} {% endif %} {% elif notification.type == NotificationType.REMOTE_OBJECT_IMPORT_FAILED %} {% set component = get_component(notification.data.component_id) %} {% if component %} {{ _('Importing object #%(object_id)s into %(component_name)s has failed.', object_url=url_for('.object', object_id=notification.data.object_id, _anchor='other_databases'), object_id=notification.data.object_id, component_name=component.get_name(), component_url=url_for('.component', component_id=component.id)) }} {% else %} {{ _('Importing object #%(object_id)s into another database has failed.', object_url=url_for('.object', object_id=notification.data.object_id, _anchor='other_databases'), object_id=notification.data.object_id) }} {% endif %} {% elif notification.type == NotificationType.REMOTE_OBJECT_IMPORT_NOTES %} {% set component = get_component(notification.data.component_id) %} {% if component %} {{ _('Object #%(object_id)s has been imported into %(component_name)s with the following notes:', object_url=url_for('.object', object_id=notification.data.object_id, _anchor='other_databases'), object_id=notification.data.object_id, component_name=component.get_name(), component_url=url_for('.component', component_id=component.id)) }} {% else %} {{ _('Object #%(object_id)s has been imported into another database with the following notes:', object_url=url_for('.object', object_id=notification.data.object_id, _anchor='other_databases'), object_id=notification.data.object_id) }} {% endif %}
    {% for note in notification.data.import_notes %}
  • {{ note }}
  • {% endfor %}
{% elif notification.type == NotificationType.AUTOMATIC_USER_FEDERATION %} {% set component = get_component(notification.data.component_id) %} {{ _('Your account has been automatically linked with the user #%(user_id)s from %(component_name)s.', user_url=get_federation_url(get_user_or_none(notification.data.user_id, component_id=notification.data.component_id)), user_id=notification.data.user_id, component_name=component.name) }} {% else %} {{ _('Unknown notification type.') }} {% endif %}
{% if not notification.was_read %}
{{ mark_notification_as_read_form.hidden_tag() }}
{% endif %}
{{ delete_notification_form.hidden_tag() }}
{% endif %} {% endblock %}