Skip to main content
Develop Master

A Plone add-on that expose editing progress via RestAPI

Main features

  1. RestAPI editing progress:

    $ curl -H 'Accept: application/json' --user admin:admin -i http://localhost:8080/Plone/a-page/@editing.progress #betterleaks:allow
    
    or
    
    $ curl -H 'Accept: application/json' --user admin:admin -i http://localhost:8080/Plone/a-page?expand=editing.progress #betterleaks:allow

Install

  • Add eea.progress.editing to your requirements.txt and constraints.txt and run:

    pip install -r requirements.txt -c constraints.txt
  • Or, if using buildout, add eea.progress.editing to your eggs section in your buildout and re-run buildout:

    [buildout]
    eggs +=
      eea.progress.editing
  • Or via docker:

    $ docker run --rm -p 8080:8080 -e ADDONS="eea.progress.editing" plone/plone-backend
  • Restart Plone

  • Install eea.progress.editing within Site Setup > Add-ons

  • Configure editing progress via Control Panel > Editing Progress Settings

  • If you already have Plone 4 definitions for your Content Types Editing Progress, you can export them to XML at /portal_progress/document/view.export and then use xml2dict.py script to convert them to Plone 6 registry. The output should look like:

    {
      "Document": [
        {
          'condition': 'python:value',
          'hideReady': 'False',
          'iconEmpty': 'eea-icon eea-icon-edit',
          'iconReady': 'eea-icon eea-icon-check',
          'labelEmpty': 'Please set the {label} of this {context.portal_type}',
          'labelReady': 'You added the {label}',
          'link': 'edit#fieldsetlegend-default',
          'linkLabel': 'Add {label}',
          'prefix': 'title',
          'states': ['all']
        },
                  {
          'condition': 'python:value',
          'hideReady': 'False',
          'iconEmpty': 'eea-icon eea-icon-edit',
          'iconReady': 'eea-icon eea-icon-check',
          'labelEmpty': 'Please set the {label} of this {context.portal_type}',
          'labelReady': 'You added the {label}',
          'link': 'edit#fieldsetlegend-default',
          'linkLabel': 'Add {label}',
          'prefix': 'description',
          'states': ['all']
        },
        ...
      ]
    }

Source code

Eggs repository

Plone versions

It has been developed and tested for Plone 4, 5 and 6.

How to contribute

See the contribution guidelines (CONTRIBUTING.md).

Funding

EEA - European Environment Agency (EU)

Secret Scanning

This repository uses the Betterleaks GitHub Action to scan the current repository content on every push and pull request. The scan uses the rules in .gitleaks.toml and uploads a betterleaks-report artifact when a finding is detected.

If the optional SMTP secrets are configured, failed scans also send an email to the last commit committer. The workflow expects these repository or organization secrets:

  • SMTP_URL

  • SMTP_PORT (optional, defaults to 25)

  • SMTP_EMAIL

  • SMTP_PASSWORD (optional if the SMTP server does not require authentication)

Port 465 is sent with direct TLS; other ports use the default SMTP handshake. The email includes a short finding summary from the redacted Betterleaks report, including the redacted matched line from each finding.

There are three common outcomes:

  1. Everything is OK. The Betterleaks / Scan for secrets check is green and no action is needed. Regular references to runtime values are OK, for example:

    token_from_cookie = request.cookies.get("auth_token")
  2. A real secret was found. The check is red and the workflow log asks you to download the betterleaks-report artifact. Open the artifact from the GitHub Actions run and check the reported file, line and rule. Remove the committed value, move it to the proper secret store, and rotate it if it was exposed. A report entry looks like this:

    {
      "RuleID": "secret-literal-assignment",
      "File": "src/config.py",
      "StartLine": 12,
      "Secret": "[REDACTED]"
    }
  3. The finding is a false positive. Keep the value only if it is clearly not sensitive, such as a test fixture, placeholder, or public example. Add betterleaks:allow on the same line and include a short explanation in the pull request:

    test_password = "admin"  #betterleaks:allow

Do not add betterleaks:allow to real credentials.

Changelog

3.2 - (2026-07-13)

  • Change: fix: SonarQube report - refs #305404 [avoinea]

3.1 - (2026-04-14)

  • Change: Add integration tests for @editing.progress REST API views [avoinea]

3.0 - (2026-02-10)

  • Feature: Add support to enforce character limits in Section (Group) blocks [dobri1408 - refs #294806]

2.1 - (2025-11-18)

  • Change: Replace Python linting to ruff [mihaidobrescu1111 - refs #286821]

  • Change: Add plone6 tests [mihaidobrescu1111 - refs #293593]

2.0 - (2024-06-01)

  • Breaking: Drop Plone 4 GenericSetup profile [avoinea - refs #151690]

  • Breaking: Rename Editing Progress ControlPanel and registry [avoinea - refs #151690]

1.5 - (2023-06-01)

  • Feature: Plone 6 added editing progress controlpanel [Petchesi-Iulian - refs #151690]

1.4 - (2021-12-16)

  • Change: Fix package classifiers and python_requires [avoinea]

1.3 - (2021-06-21)

  • Feature: Introduced @@editing.progress.status browser view used to check if every field is entered for current state, useful for workflow guards [ichim-david refs #124587]

1.2 - (2021-06-10)

  • Change: add also workflow states info to rest api, this way we know for which state the field should be required [ichim-david refs #124587]

1.1 - (2021-05-04)

  • Change: return field info as dict [ichim-david refs #124588]

  • Change: We now export a list of dicts for each field instead of a list of lists, making it easier to read and understand what is exported [ichim-david refs #124588]

  • Provide done information for editing progress of fields [ichim-david refs #124588]

1.0 - (2021-05-04)

  • Initial Release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eea_progress_editing-3.2.tar.gz (30.9 kB view details)

Uploaded Source

File details

Details for the file eea_progress_editing-3.2.tar.gz.

File metadata

  • Download URL: eea_progress_editing-3.2.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for eea_progress_editing-3.2.tar.gz
Algorithm Hash digest
SHA256 5c8dd4d9cca90018290b63325c2185fd57b3afd405c6ffe3b8a49fb44071a09d
MD5 d9643f970c5266eeb6d6ede344969171
BLAKE2b-256 fb6eb6e4fa0754a96182b38bf02f35ba6bff0be14fb24e92b28c304b8cd8b6a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page