{% extends "admin_base.html" %} {% block extra_head %} {{ super() }} {% endblock %} {% block admin_content %}

{{ community['name'] or community['slug'] }}

All communities
{% if busy %}

A run or a discovery is in progress. This page updates by itself.

{% endif %} {% if not sync_enabled %}

Community sync is switched off: live runs are refused, dry runs still work.

{% endif %} {% if community['last_error'] %} {% endif %}

About

Status
{{ community['status'] }}
Address
{{ community['url'] }}
Origin
{{ community['origin'] }}
Language
{{ community['language'] or '-' }}
Members
{{ community['user_count'] or '-' }}
Learned
{% if community['learned_at'] %}{{ local_dt(community['learned_at']) }}{% else %}-{% endif %}
Description
{{ community['description'] or '-' }}

Schedule

{% set opts = community['sync_options'] or {} %}
Next run
{% if community['next_run_at'] %}{{ local_dt(community['next_run_at']) }}{% else %}-{% endif %}
Runs
{{ community['run_count'] }} ({{ community['failure_count'] }} consecutive failures)
{% for key, value in totals.items() %}
{{ key.replace('_', ' ') }}
{{ value }}
{% endfor %}

Actions

Edit schema
{% if collectors_path %}

Generated collectors: {{ collectors_path }} ({{ collectors_lines }} lines)

{% endif %}
{% if rules %}

Rules and guidelines (as published)

{{ rules }}

{% endif %}

Learned feeds

{% for feed in feeds %} {% else %} {% endfor %}
Feeds learned for this community
FeedTypePost fieldsCommentsPagination
{{ feed['url'] }} {{ feed['type'] }}{{ feed['list_path'] or feed['item_selector'] or '' }} {% for name, paths in feed['post_fields'].items() %}{{ name }}: {{ paths|join(' | ') if paths is not string else paths }}
{% endfor %}
{{ feed['comments'] }}{% if feed['comments_reason'] %}{{ feed['comments_reason'] }}{% endif %} {{ feed['pagination'] }}
No feed learned yet.

Recent runs

Everything the sync did
{% for run in runs %} {% else %} {% endfor %}
The most recent runs of this community, newest first
Result Started What happened Mode Open
{{ run['status'] }} {{ run['headline'] }} {{ local_dt(run['started_at']) }}{% if run['duration_seconds'] is not none %}{{ run['duration_seconds'] }}s{% endif %} {% for key, count in run['tally'].items() %}{{ count }} {{ key }}{% else %}nothing{% endfor %} {% if run['dry_run'] %}dry run{% else %}live{% endif %}{{ run['trigger'] }} Open
No runs yet.
{% endblock %}