Skip to main content

Tests

ckanext-comments

Add comment-trees to CKAN pages.

This plugins provides comment threads linked to any of the main CKAN entities:

  • datasets
  • resources
  • groups
  • organizations
  • users.

All the features are API-first, so anything you can do via UI, can be done via API.

No changes to the WebUI are done by default. One have to include a snippet into Jinja2 template in order to show the comments on a page.

{# subject_type := package | group | resource | user #}
{% snippet 'comments/snippets/thread.html', subject_id=pkg.id, subject_type='package' %}

:info: For the datasets it also can be achieved by enabling ckanext.comments.enable_default_dataset_comments option.

Requirements

  • python >= 3.7
  • CKAN >= 2.9

Installation

To install ckanext-comments:

  1. Install python package
pip install ckanext-comments
  1. Add comments to the ckan.plugins setting in your CKAN config file

  2. Apply database migrations

ckan db upgrade -p comments
  1. Add cooments/snippets/thread.html to your package/read.html template, like this:
{% ckan_extends %}

{% block primary_content_inner %}
  {{ super() }}
  {% snippet 'comments/snippets/thread.html', subject_id=pkg.id, subject_type='package' %}
{% endblock primary_content_inner %}

Config settings

# Require comment approval in order to make it visible
# (optional, default: true).
ckanext.comments.require_approval = false

# Editor(admin) can edit draft comments
# (optional, default: true).
ckanext.comments.draft_edits = true

# Author can edit own draft comments
# (optional, default: true).
ckanext.comments.draft_edits_by_author = false

# Editor(admin) can edit approved comments
# (optional, default: false).
ckanext.comments.approved_edits = false

# Author can edit own approved comments
# (optional, default: false).
ckanext.comments.approved_edits_by_author = false

# Number of reply levels that are shown on mobile layout
# (optional, default: 3).
ckanext.comments.mobile_depth_threshold = 3

# Include default thread implementation on the dataset page
# (optional, default: false).
ckanext.comments.enable_default_dataset_comments = true

# Register custom getter for a subject by providing a path to a function
# ckanext.comments.subject.{self.subject_type}_getter = path
# The function must accept an ID and return a model object
ckanext.comments.subject.question_getter = ckanext.msf_ask_question.model.question_getter

API

comments_thread_create

Create a thread for the subject.

Args:

  • subject_id(str): unique ID of the commented entity
  • subject_type(str:package|resource|user|group): type of the commented entity

comments_thread_show

Show the subject's thread.

Args:

  • subject_id(str): unique ID of the commented entity
  • subject_type(str:package|resource|user|group): type of the commented entity
  • init_missing(bool, optional): return an empty thread instead of 404
  • include_comments(bool, optional): show comments from the thread
  • include_author(bool, optional): show authors of the comments
  • combine_comments(bool, optional): combine comments into a tree-structure
  • after_date(str:ISO date, optional): show comments only since the given date

comments_thread_delete

Delete the thread.

Args:

  • id(str): ID of the thread

comments_comment_create

Add a comment to the thread.

Args:

  • subject_id(str): unique ID of the commented entity
  • subject_type(str:package|resource|user|group): type of the commented entity
  • content(str): comment's message
  • reply_to_id(str, optional): reply to the existing comment
  • create_thread(bool, optional): create a new thread if it doesn't exist yet

comments_comment_show

Show the details of the comment

Args:

  • id(str): ID of the comment

comments_comment_approve

Approve draft comment

Args:

  • id(str): ID of the comment

comments_comment_delete

Remove existing comment

Args:

  • id(str): ID of the comment

comments_comment_update

Update existing comment

Args:

  • id(str): ID of the comment
  • content(str): comment's message

Tests

To run the tests, do:

pytest

License

AGPL

Download files

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

Source Distribution

ckanext-comments-0.3.1.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ckanext_comments-0.3.1-py3-none-any.whl (47.2 kB view details)

Uploaded Python 3

File details

Details for the file ckanext-comments-0.3.1.tar.gz.

File metadata

  • Download URL: ckanext-comments-0.3.1.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.13

File hashes

Hashes for ckanext-comments-0.3.1.tar.gz
Algorithm Hash digest
SHA256 a166b083f9a16de0a6e3b0e3b6853cececcd769366963edf03b1e02d92bf85d8
MD5 f642c3ee1105f270a43df55a5474f82f
BLAKE2b-256 480454b8d816651fb6ab85d8e9c6bcea92ad80c6a4ff7c64be01e51cbea5a0d7

See more details on using hashes here.

File details

Details for the file ckanext_comments-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ckanext_comments-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f247fb924cf87e354185c129615e4a0996590b1ab3abd83ee588eeb498a83066
MD5 03f7e5a899c22da6c89a7bf17b975b7b
BLAKE2b-256 7b311a12c5a4c7ef2fb15a8a3c0b5f39bcd5ef043508ad6d8f66dde80822d276

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.1.post1

2 files

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.22

2 files

0.0.21

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page