{% extends "admin/base.html" %} {% import 'actor_registry/snippets/dataset_list.html' as dl with context %} {% block subtitle %}{{ _('Publishers') }}{% endblock %} {% block breadcrumb_content %}
  • {{ _('Publishers') }}
  • {% endblock %} {% block primary_content_inner %} {% set cleanup_count = h.actor_registry_cleanup_count() %} {% if cleanup_count %}
    {% trans count=cleanup_count, url=h.url_for('actor_registry.cleanup_index') %}{{ count }} inactive or missing record is still used by datasets. Clean up{% pluralize %}{{ count }} inactive or missing records are still used by datasets. Clean up{% endtrans %}
    {% endif %} {% asset 'actor_registry/actor-merge-select' %}

    {{ _('Publishers') }}

    {{ _('New publisher') }}

    {{ _('Reusable organizations and people who can have roles in metadata, for example as publisher.') }}

    {{ _('Merging retires the losing publisher instead of deleting it, so its web address (URI) keeps resolving if anything already links to or has cached it -- its page simply points to the publisher it was merged into. Merged publishers are hidden here by default to keep this list focused on publishers still in use; check the box above to see them too, for example before permanently deleting one you are sure is no longer needed.') }}

    {% if c.userobj and c.userobj.sysadmin %} {# 2026-09-16: sammanslagning är fortfarande sysadmin-only (Börns beslut -- destruktiv ändring över hela katalogen, inte org-scopad) även om resten av sidan nu är öppen för alla inloggade redaktörer. Döljer kryssrutorna och slå-ihop-knappen istället för att visa en knapp som ändå skulle ge 403. #}
    {{ _('Select exactly two publishers to merge.') }}
    {% endif %} {% for item in items %}{% else %}{% endfor %}
    {{ _('Name') }}{{ _('Kind') }}{{ _('Identifier') }}{{ _('Status') }}
    {% if item.active and c.userobj and c.userobj.sysadmin %}{% endif %}{{ item.name }}{{ _('Person') if item.actor_kind == 'person' else _('Organization') }}{{ item.identifier or '–' }}{{ _('Active') if item.active else _('Inactive') }}{% snippet 'actor_registry/snippets/row_actions.html', edit_url=h.url_for('actor_registry.actors_edit', item_id=item.id), delete_url=(h.url_for('actor_registry.actors_delete', item_id=item.id) if c.userobj and c.userobj.sysadmin else '') %}
    {{ _('There are no publishers yet.') }}

    {{ missing_heading }}

    {% set missing_text = _('Missing:') %} {% if unlinked_datasets.total %}

    {{ _('Open each dataset to add what is missing.') }}

    {{ dl.dataset_list(unlinked_datasets, h.url_for('actor_registry.actors_unlinked_datasets', missing=missing), '') }} {% elif missing == 'both' %}

    {{ _('All datasets have at least one publisher or contact point linked.') }}

    {% else %}

    {{ _('No datasets are missing this.') }}

    {% endif %} {% endblock %} {% block secondary_content %}

    {{ _('General-purpose registry') }}

    {{ _('The registry is independent of organization type and country. Roles are chosen on each dataset.') }}

    {% endblock %}